From 29a5759801f22dccab6fdf8db1b541c6c7070fd5 Mon Sep 17 00:00:00 2001 From: Zack Jackson <25274700+ScriptedAlchemy@users.noreply.github.com> Date: Wed, 28 Oct 2026 20:14:24 -0700 Subject: [PATCH 01/13] docs(compat): delete compatibility policy and retention docs (U2) Items removed: L005, L010, L011, L012. - L010: delete docs/REBRAND-COMPATIBILITY-POLICY.md and the pre-rebrand shim and compatibility-policy sections of TREESITTERS-RENAME-CONSTRAINTS. - L005: drop the retired qualification-gate history from the search-quality module docs and dev doc; delete the deny_unknown_fields re-proof test a_workload_declaring_a_qualification_methodology_is_refused and rename the matrix test to describe the current fact. - L011: remove /legacy dashboard, legacy local store and legacy .tracedecay fallback narration (dashboard.md, DOMAIN-EXTRACTORS, LCM payload docs, USER-GUIDE). Delete LCM-PAYLOAD-LIFECYCLE section 11 and renumber the contract sections and cross-references. Delete the test retired_dashboard_routes_fall_through_to_the_canonical_spa_index. - L012: plans 08 and 17 no longer prescribe compatibility aliases, deprecated-name bindings, older-shape conformance or reserved retired identifiers. Upgrade impact: none (documentation and two tests only). Co-Authored-By: Claude Opus 5.5 --- .../src/search_quality/candidate_output.rs | 28 +- .../src/search_quality/mod.rs | 14 +- .../tests/dashboard_api_test/api.rs | 43 --- docs/DOMAIN-EXTRACTORS.md | 2 +- docs/LCM-PAYLOAD-GC.md | 23 +- docs/LCM-PAYLOAD-LIFECYCLE.md | 47 +-- docs/REBRAND-COMPATIBILITY-POLICY.md | 327 ------------------ docs/TREESITTERS-RENAME-CONSTRAINTS.md | 26 +- docs/USER-GUIDE.md | 3 +- docs/dashboard.md | 13 +- .../search-quality-direct-evaluation.md | 62 +--- .../tracedecay-v2/08-tool-catalog-crate.md | 14 +- .../17-official-public-api-and-sdks.md | 20 +- 13 files changed, 46 insertions(+), 576 deletions(-) delete mode 100644 docs/REBRAND-COMPATIBILITY-POLICY.md diff --git a/crates/tracedecay-query/src/search_quality/candidate_output.rs b/crates/tracedecay-query/src/search_quality/candidate_output.rs index 0a7454f97c..bdacf1402c 100644 --- a/crates/tracedecay-query/src/search_quality/candidate_output.rs +++ b/crates/tracedecay-query/src/search_quality/candidate_output.rs @@ -1098,33 +1098,9 @@ mod need_provenance_tests { ); } - /// The held-out Student-t gate was deleted with the dense lane it governed, - /// and schema 1 cannot express a replacement. A workload declaring a - /// methodology, a practical-effect bound, a policy freeze, or the retired - /// single-variant decision-policy slice is refused rather than trusted as - /// activation authority. + /// The packaged matrix holds only the always-on baseline profile. #[test] - fn a_workload_declaring_a_qualification_methodology_is_refused() { - for field in [ - "methodology_version", - "practical_effect_ppm", - "policy_freeze", - "decision_policy", - ] { - let mut json = serde_json::to_value(workload()).expect("serialize workload"); - json[field] = serde_json::json!("held_out_student_t_v1"); - let error = serde_json::from_value::(json) - .expect_err("schema 1 carries no qualification methodology") - .to_string(); - assert!(error.contains(field), "{error}"); - } - } - - /// Nothing is left to qualify: the packaged matrix holds only the always-on - /// baseline, so there is no candidate profile a paired held-out effect could - /// be measured against. - #[test] - fn the_packaged_matrix_has_no_candidate_profile_to_qualify() { + fn the_packaged_matrix_holds_only_the_baseline_profile() { assert_eq!( workload() .profile_matrix diff --git a/crates/tracedecay-query/src/search_quality/mod.rs b/crates/tracedecay-query/src/search_quality/mod.rs index 08e99858c4..c893ec5924 100644 --- a/crates/tracedecay-query/src/search_quality/mod.rs +++ b/crates/tracedecay-query/src/search_quality/mod.rs @@ -6,23 +6,15 @@ //! //! # Evidence, not activation authority //! -//! Retiring the dense FastEmbed lane deleted `native_qualification` and the -//! paired held-out Student-t practical-effect gate with it, because the only -//! thing that gate governed was activating a lane that no longer exists. The -//! exact/lexical/graph lanes are unconditionally part of production retrieval: -//! there is nothing left for a measurement to switch on. +//! The exact/lexical/graph lanes are unconditionally part of production +//! retrieval: there is nothing for a measurement to switch on. //! //! Everything in this module is therefore evidence-only. A `Pass` report says //! the checked-in labels were met on the packaged corpus; it does not qualify, //! activate, promote, or accept a retrieval profile, and no caller may treat it //! as doing so. Validation of the packaged workload, including natural-language //! need provenance, attests that the measurement inputs are fit and sourced, -//! never that retrieval is qualified. -//! -//! Re-introducing a qualification gate is a schema change, not a comment -//! change: workload schema 1 carries no `methodology_version`, no practical- -//! effect bound, no `policy_freeze`, and no `decision_policy`, so it cannot -//! express a held-out methodology or a single-variant policy slice. See +//! never that retrieval is qualified. See //! `docs/development/search-quality-direct-evaluation.md`. pub mod candidate_output; diff --git a/crates/tracedecay/tests/dashboard_api_test/api.rs b/crates/tracedecay/tests/dashboard_api_test/api.rs index 10b6a43276..e93008bc34 100644 --- a/crates/tracedecay/tests/dashboard_api_test/api.rs +++ b/crates/tracedecay/tests/dashboard_api_test/api.rs @@ -7,49 +7,6 @@ fn absent_canonical_fact_id(existing: &FactId) -> String { format!("{}{replacement}", &raw[..raw.len() - 1]) } -#[test] -fn retired_dashboard_routes_fall_through_to_the_canonical_spa_index() { - let runtime = create_runtime(); - runtime.block_on(async { - let fixture = start_dashboard_fixture_without_memory().await; - let agent = http_agent(); - // The suite serves the fixture bundle; production placeholder-proofing - // lives in the CLI build script's manifest validation and the - // registered product-runtime provider's bundle validation. - let fixture_index = tracedecay_project::product_runtime::FIXTURE_DASHBOARD_ASSETS - .assets - .iter() - .find(|asset| asset.path == "index.html") - .unwrap_or_else(|| panic!("fixture bundle must carry index.html")); - - for path in [ - "/legacy", - "/shell/shell.js", - "/dashboard-plugins/savings/dist/index.js", - ] { - let mut response = agent - .get(format!("{}{path}", fixture.base_url)) - .call() - .unwrap_or_else(|err| panic!("GET {path} failed: {err}")); - assert_eq!(response.status().as_u16(), 200); - assert_eq!( - response - .headers() - .get("content-type") - .and_then(|value| value.to_str().ok()), - Some("text/html; charset=utf-8"), - "retired path must fall through to the canonical SPA, never a legacy asset" - ); - let body = response.body_mut().read_to_string().unwrap(); - assert_eq!( - body.as_bytes(), - fixture_index.contents, - "retired path {path} must serve the mounted SPA index byte-exact" - ); - } - }); -} - #[test] fn automation_outcomes_endpoint_returns_live_read_only_outcomes() { let runtime = create_runtime(); diff --git a/docs/DOMAIN-EXTRACTORS.md b/docs/DOMAIN-EXTRACTORS.md index c37b86cf78..160665383d 100644 --- a/docs/DOMAIN-EXTRACTORS.md +++ b/docs/DOMAIN-EXTRACTORS.md @@ -252,7 +252,7 @@ This means two rules in the same layer that extract the same string automaticall ### Project-local rules (primary use case) -`.tracedecay/domain-symbols.toml` at the project root (an existing legacy `.tracedecay/` directory is still honored as a fallback). Rules are private to the project; they are not committed alongside the source unless the project author chooses to. +`.tracedecay/domain-symbols.toml` at the project root. Rules are private to the project; they are not committed alongside the source unless the project author chooses to. ### Rule packs (shareable) diff --git a/docs/LCM-PAYLOAD-GC.md b/docs/LCM-PAYLOAD-GC.md index 9be1cd7a38..e8919e61ef 100644 --- a/docs/LCM-PAYLOAD-GC.md +++ b/docs/LCM-PAYLOAD-GC.md @@ -46,7 +46,7 @@ invariants. (`apply = true`) and requires explicit owner authorization. 5. Emit no payload body bytes anywhere (logs, reports, metrics, errors). -**Non-goals** (inherit the contract §14): age/content retention policy, +**Non-goals** (inherit the contract §13): age/content retention policy, cross-store/cross-profile GC, soft-delete/undo/body recovery, cross-message dedup, reaping summary nodes / lifecycle state / maintenance debt. @@ -57,7 +57,7 @@ dedup, reaping summary nodes / lifecycle state / maintenance debt. GC adds a *destructive* capability to a module that today has none. Every non-destructive building block already exists and is battle-tested by the read path and the doctor diagnostics. Reusing them is a hard requirement, not a -convenience, they encode the path/ref/symlink safety the contract §13 demands. +convenience, they encode the path/ref/symlink safety the contract §12 demands. | Need | Primitive | Location | Notes for GC | |---|---|---|---| @@ -271,7 +271,7 @@ CREATE TABLE IF NOT EXISTS lcm_gc_meta ( ); ``` -Monotonic safety (contract §11, §13): the schema guard skips DBs written by a +Monotonic safety (contract §12): the schema guard skips DBs written by a newer release, and the `IF NOT EXISTS` DDL is idempotent. **No existing column or row is altered**, payloads without a mark are `live` until the first observed- unreferenced scan. This honors GP-2 ("no new column" on the payload table) while @@ -511,7 +511,7 @@ concurrent ingest. `grace_seconds` clamps up to 300. its own txn. A run that hits the cap stops reaping and leaves the remainder for the next scheduled run (reported as `deferred`). This bounds lock hold time and matches the existing `SQLITE_IN_BATCH_SIZE=500` chunking in `doctor.rs`. -- **Two processes GC-ing the same store** (contract §12): only one holds the reap +- **Two processes GC-ing the same store** (contract §11): only one holds the reap `BEGIN IMMEDIATE` at a time; the loser observes the row/mark already gone and no-ops (idempotent). The store's existing writer-lock model applies; GC adds no new cross-process lock. @@ -533,7 +533,7 @@ concurrent ingest. `grace_seconds` clamps up to 300. Dry-run (`apply = false`) is the **default** and is mandatory before any destructive view in the dashboard (contract §10.6). The report enumerates exactly what *would* be removed, refs, counts, byte totals, ages, and **never** -body bytes, snippet text, or message content (contract §13). Hashes shown are +body bytes, snippet text, or message content (contract §12). Hashes shown are the `content_hash` already stored in `lcm_external_payloads`, never re-derived body digests in a way that implies we read bodies into reports. @@ -588,15 +588,15 @@ cadence is `retention.interval_hours` (daily by default); the grace windows in candidate counts and the last run status, but it has no `gc` mode, no `apply` flag, and no destructive alias. -**Per-store, not global.** Each resolved project store (user-level shard, -explicit local store, or legacy local store) is GC'd independently against its -own DB (contract §14). There is no cross-store coordination. +**Per-store, not global.** Each resolved project store (user-level shard or +explicit local store) is GC'd independently against its +own DB (contract §13). There is no cross-store coordination. --- ## 13. Safety invariants (consolidated checklist) -Mapped to the contract §13 and this doc. Implementation and tests assert each. +Mapped to the contract §12 and this doc. Implementation and tests assert each. 1. **Never log/preview/report/stream body bytes.** Reports carry refs, counts, byte totals, and the `content_hash` already in the DB, nothing more (§11). @@ -635,8 +635,7 @@ Mapped to the contract §13 and this doc. Implementation and tests assert each. ## 14. Status / health fields the reaper produces (for `t_0ab1c041`) The reaper writes `lcm_gc_meta` and the existing doctor/status queries already -compute the candidate sets. Additive fields only (contract §11: no rename/remove -of existing fields): +compute the candidate sets. Fields are additive: - `LcmPayloadStatus` (`types.rs:517`) gains: `last_gc_at: Option`, `last_gc_dry_run_at: Option`, `bytes_reclaimable: i64` (sum of orphan + @@ -697,7 +696,7 @@ To make GC deterministic and assertable without sleeping for grace periods: missing files, dangling placeholders, and concurrent-write files (open fd held during reap), covering every invariant in §13. -See the contract §16 test handoff for the state-transition and crash-order cases +See the contract §15 test handoff for the state-transition and crash-order cases these hooks support. --- diff --git a/docs/LCM-PAYLOAD-LIFECYCLE.md b/docs/LCM-PAYLOAD-LIFECYCLE.md index f9fdf9c0ef..f4d50955b8 100644 --- a/docs/LCM-PAYLOAD-LIFECYCLE.md +++ b/docs/LCM-PAYLOAD-LIFECYCLE.md @@ -34,10 +34,9 @@ GC, diagnostics, and any future delete APIs converge on one model. - When a payload becomes collectable, the safe order of removal, and the grace window before an orphan/unreferenced payload is reaped. - Required behavior of any delete path (existing or future), idempotency, missing-file and - dangling-reference handling, and compatibility with payloads created before this - contract. + dangling-reference handling. -**Out of scope (non-goals, §13)** +**Out of scope (non-goals, §12)** - Age/content-based retention policy ("delete payloads older than N"). - Cross-storage-root or cross-profile GC. @@ -54,8 +53,8 @@ has the full map. `payload_.payload` and writes it under `payload_dir(storage_root)` = `/lcm-payloads` (`payload.rs:64`). User-level project stores resolve the root to - `~/.tracedecay/projects/`; explicit local/legacy stores resolve to - `/.tracedecay` (or legacy `.tracedecay` fallback). + `~/.tracedecay/projects/`; explicit local stores resolve to + `/.tracedecay`. - **Schema.** `lcm_external_payloads` is keyed by `payload_ref` (PK) with `UNIQUE(provider, message_id, payload_ref)` and `FOREIGN KEY(provider, session_id) REFERENCES sessions ON DELETE CASCADE` (`crates/tracedecay-lcm/src/schema.rs:432-446`). There is @@ -339,28 +338,7 @@ The full algorithm is `t_bbd369f2`'s to design, but it MUST satisfy this contrac 8. **Metrics:** emit counts and bytes reaped, orphans remaining, missing remaining, errors; record `last_gc_at` and last error. (Surface fields are specified by `t_0ab1c041`.) -## 11. Compatibility & migration - -- **Existing payloads are valid as-is.** Payloads created before this contract already have a - metadata row + file + reference; they are `live`. No data migration is required to honor the - contract, it is enforced *forward* by routing deletes through the deleter (§6.1) and adding - GC. -- **Existing orphans are the first GC candidates.** Files orphaned by past owner-maintenance runs, - pre-contract crashes, or inline-conversions are simply collected on the first GC pass after - the grace period. No special one-off reclaim is needed. -- **Tombstone markers are forward-compatible.** `is_external_payload_placeholder` already - accepts the `[gc'd …]` prefixes, and `ensure_current_raw_payload_ref` already treats them as - valid references; only the *write* of the tombstone and the `PayloadGc'd` error branch are - new. -- **Optional future schema revision** (`unreferenced_since`/`gc_state`, GP-3) is - additive and backfill-initialized to `live`; the migration guard keeps it - monotonic-safe against DBs written by newer releases. The current owner GC - uses the side-table two-scan rule. -- **No breaking change to `lcm_doctor`/`lcm_status` response shapes** is required; the GC task - may *add* fields (e.g., `last_gc_at`, `bytes_reclaimable`) but must not remove or rename - existing ones. - -## 12. Edge cases +## 11. Edge cases - **Concurrent ingest during GC scan**, guarded by the grace period plus the reap-time referenced-ness re-check under `BEGIN IMMEDIATE` (§10.3). A payload written between scan and @@ -381,7 +359,7 @@ The full algorithm is `t_bbd369f2`'s to design, but it MUST satisfy this contrac time; the loser observes the row already gone and no-ops (idempotent). The store's existing writer lock model applies. -## 13. Security invariants (non-negotiable) +## 12. Security invariants (non-negotiable) - **Never log, preview, report, or stream payload body bytes.** Reports carry refs, counts, byte totals, and the hashes already stored in `lcm_external_payloads`, nothing more. @@ -393,13 +371,12 @@ The full algorithm is `t_bbd369f2`'s to design, but it MUST satisfy this contrac recoverability comes from per-ref transactions and crash-convergent pending deletes, never from a secondary copy of the database. -## 14. Non-goals +## 13. Non-goals - Age- or content-based retention policy (delete payloads older/larger than N). This contract defines the *mechanical* lifetime only; age-based retention can layer on top later and would convert `live` payloads into `unreferenced` via a policy pass. -- Cross-project-store GC. Each resolved project store (user-level shard, explicit local store, - or legacy local store) is GC'd independently against its own DB. +- Cross-project-store GC. Each resolved project store (user-level shard or explicit local store) is GC'd independently against its own DB. - Soft-delete, undo, archive, or restoration of reaped bodies. Reap is hard and permanent, consistent with memory fact deletion being hard-delete. The tombstone is informational only. - Cross-message / cross-owner payload deduplication. The owner-hash includes `message_id`; no @@ -408,7 +385,7 @@ The full algorithm is `t_bbd369f2`'s to design, but it MUST satisfy this contrac daemon/authorized owner maintenance paths. This contract is strictly about payload files + `lcm_external_payloads`. -## 15. Decision rationale summary +## 14. Decision rationale summary | # | Decision | Primary rationale | Rejected alternative | |---|---|---|---| @@ -422,11 +399,11 @@ The full algorithm is `t_bbd369f2`'s to design, but it MUST satisfy this contrac | MF-1 | Distinct `PayloadGc'd` error for tombstones | Distinguishes intentional reap from unexpected loss in ops/telemetry | Reuse `PayloadMissing` (ambiguous) | | §7 | Session/message delete: recommend drop row + leave files for GC | Simplest, crash-safe; FK cascade does the DB work | Force every delete through the synchronous deleter (over-engineered for the common case) | -## 16. Handoff to child tasks +## 15. Handoff to child tasks - **GC workflow:** implement/use `delete_external_payload` + the daemon/authorized owner reaper per §6 and §10. This contract is its spec; cite §6.1 (D-1..D-4), §6.2, §6.3, §9, - §10, §13. + §10, §12. - **Dashboard/Doctor visibility:** surface `live`/`unreferenced`/`missing`/`orphan`/ `tombstoned` counts and bytes, `last_gc_at`, and last error. Doctor and status remain read-only; any destructive cleanup control must use a separate owner endpoint with a @@ -434,6 +411,6 @@ The full algorithm is `t_bbd369f2`'s to design, but it MUST satisfy this contrac and `missing_payload_refs` (error) versus `orphan`/`unreferenced` counts (warning). - **`t_f0e07c5c` (tests):** cover the state transitions in §5, the safe removal order (§6.2 incl. crash-between-commit-and-remove), idempotency (§8), symlink/path-traversal reap rejection - (§10.1-2, §13), missing vs tombstoned error distinction (§9 MF-1), and inline-conversion/ + (§10.1-2, §12), missing vs tombstoned error distinction (§9 MF-1), and inline-conversion/ re-externalization orphaning (§2). The reserved `[gc'd …]` tombstone prefix (`payload.rs:104`) is the marker to assert against. diff --git a/docs/REBRAND-COMPATIBILITY-POLICY.md b/docs/REBRAND-COMPATIBILITY-POLICY.md deleted file mode 100644 index 2c8c8e9e30..0000000000 --- a/docs/REBRAND-COMPATIBILITY-POLICY.md +++ /dev/null @@ -1,327 +0,0 @@ -# TraceDecay rebrand compatibility policy - -Date: 2026-06-14 -Source audits: `TRACEDECAY-COMPATIBILITY-AUDIT.md` (git history, formerly `docs/archive/`), `docs/TREESITTERS-RENAME-CONSTRAINTS.md` - -This policy defines how the project treats names and artifacts from the pre-rebrand -TraceDecay era. It is normative for new code, docs, tests, release automation, and -agent/plugin integrations. - -It applies only to independently shipped public interfaces, installed-agent -artifacts, and user-owned pre-rebrand data with evidence of that external -contract. It does not authorize a V2 internal-store reader, converter, -backfill, dual write, profile census, or staged cutover; fresh V2 profiles use -the final product shape. - -## Policy principles - -1. **TraceDecay is the canonical name for new behavior.** New files, commands, - config keys, docs, release assets, plugin IDs, and examples must use - `tracedecay`, `.tracedecay`, `TRACEDECAY_*`, or `TraceDecay` unless this policy - explicitly assigns the surface to a legacy-retention category. -2. **Compatibility must protect externally contracted user data and installed - agents.** Legacy project/user data, plugin installs, and shell/profile - configuration must not be orphaned by a cosmetic rename. -3. **Compatibility shims must be intentional and tested.** Any code that accepts a - legacy spelling must say whether it is retained, reconciled as an owned - generated artifact, warning-producing, rejected, or externally constrained. - Tests should cover the chosen category for runtime behavior. -4. **No silent destructive data move.** A directory-name fallback is not a - license to rename, delete, or rewrite user data. A separately released - rebrand data-move utility would require explicit user intent, backups, - atomicity, and reversibility; this policy does not create one. -5. **Historical documents are not product surface.** Changelog entries, old plans, - benchmark outputs, and TraceDecay-era narrative may keep old names when the name - is part of the historical record. - -## Category A, retained indefinitely without migration - -These surfaces remain valid indefinitely. New code must continue to understand them -because removing them would hide existing data, break old installs, or erase useful -history. - -### A1. Existing `.tracedecay/` project data directories - -If a project root has `.tracedecay/`, TraceDecay must continue using it as the -active data directory **in place**. It must keep reading and writing -`tracedecay.db`, branch metadata, curation sidecars, diagnostics target -artifacts, session sidecars, and other data rooted under that directory. It must -not auto-rename the directory or create a parallel index that makes the existing -index look lost. - -### A2. Existing `~/.tracedecay/` user data directories - -If the user has `~/.tracedecay/`, TraceDecay must keep using it for user-scoped -state such as `global.db` and monitor mmap/lock files. New users should default -to `~/.tracedecay/`. Provider pricing is not a home-directory cache: reads use -the immutable bundled all-provider table. - -### A3. Legacy project discovery for maintenance commands - -Commands that discover local project roots for listing, status, global accounting, -wipe/cleanup previews, or similar maintenance must recognize the canonical -`.tracedecay/tracedecay.db` layout and any explicitly enumerated pre-rename stores -during migration. Destructive commands must show the resolved legacy path clearly -before deleting anything. - -### A4. Historical docs, changelog entries, benchmark outputs, and old daemon cleanup docs - -Historical wording in `CHANGELOG.md`, retained old plans/specs, -benchmark reports, and daemon-removal instructions should remain unless it is -factually wrong. These references should be labeled as historical when helpful, not -mechanically rewritten. - -### A5. Worldwide counter endpoint (retired) - -The worldwide counter was removed from the client (issue #3619); no TraceDecay -binary calls the `tracedecay-counter` Cloudflare Worker anymore. Shutting the -hosted Worker and its Upstash Redis store down is a maintainer action outside -this repository, see the worldwide token counter note in `docs/USER-GUIDE.md`. - -## Category B, automatically migrated or cleaned up - -These surfaces are accepted as old installed state, but installers, refreshers, or -uninstallers should rewrite or remove generated legacy artifacts so the post-rebrand -state has a single canonical TraceDecay entry. - -### B1. Agent MCP server keys and generated prompt/rule markers - -Agent integrations must install new entries under `tracedecay`. During install, -refresh, or uninstall they should detect generated `tracedecay` server entries, hook -commands, permissions, prompt headers, rule files, and managed plugin metadata and -reconcile them to the canonical `tracedecay` form or remove them when uninstalling. - -Ownership checks are required. Generated legacy artifacts may be removed; unrelated -user-authored files under old directories must be preserved. - -Examples: Cursor `rules/tracedecay.mdc`, old `## Prefer tracedecay MCP tools` prompt -blocks, Codex marketplace entries named `tracedecay`, Antigravity -`plugins/tracedecay.json`, Claude hook/config legacy shapes, and generated entries in -Zed/Cline/Kimi/OpenCode/Gemini/Kiro/Roo/Kilo/Copilot agent configs. - -### B2. Hermes generated configuration cleanup - -Hermes integration refresh may recognize old generated state only to remove or -replace it safely. It must not retain runtime aliases, profile-local installs, -or project-pin routing. A historical `plugins.tracedecay.project_root` value -is cleanup provenance only; it never authorizes store conversion or current -runtime routing. - -Generated state includes: - -- `plugins: ["tracedecay"]` -> `plugins: ["tracedecay"]` when enabling/refreshing. -- `provider: tracedecay` and context-engine `engine: tracedecay` -> the corresponding - `tracedecay` provider/engine. -- Legacy `plugins/tracedecay` generated plugin directories and - `skills/tracedecay/SKILL.md` -> removed or replaced by generated `tracedecay` - artifacts, preserving unknown user files. - -### B3. Legacy release archive extraction for explicit versions - -When a user explicitly requests an old version, upgrade/install code must probe -current `tracedecay-*` assets first and then pre-rename release assets. Archive -extraction must prefer `tracedecay` / `tracedecay.exe` and then accept pre-rename -binaries for those old archives. - -This is compatibility for explicit old-version requests only; it is not permission -to present old TraceDecay-only releases as the latest version. - -### B4. Documentation wording for active compatibility behavior - -Primary user docs should use TraceDecay as the canonical name while retaining short, -actionable compatibility notes where behavior exists. When behavior changes, docs -must be updated in the same change. Historical docs remain Category A instead of -being migrated. - -## Category C, accepted as fallback but warning-producing - -These surfaces are still honored, but the new spelling is canonical. Runtime code or -installer/reporting code should warn once per process or once per operation when the -legacy spelling is the one being used. Warnings should be concise, actionable, and -non-fatal. - -Recommended warning format: - -```text -warning: legacy TraceDecay setting is deprecated; use instead. TraceDecay honored for this run. -``` - -When both old and new settings are present, the new setting wins. The preferred -warning is: - -```text -warning: both and legacy are set; using . -``` - -Warnings must not print secret values. They should name keys, paths, or config -locations only. - -### C1. Legacy environment variable fallbacks - -The following `TRACEDECAY_*` variables remain accepted as fallbacks for their -`TRACEDECAY_*` equivalents, with `TRACEDECAY_*` winning when both are set: - -- Generic `TRACEDECAY_` values read through the brand env helper. -- `TRACEDECAY_GLOBAL_DB`. -- `TRACEDECAY_DISABLE_GLOBAL_DB`. -- `TRACEDECAY_PROJECT_ROOT`. -- `TRACEDECAY_DISABLE_SUBPROCESS`. -- `TRACEDECAY_PLUGIN_PATH`, but only where an implementation actually honors it; docs - must not promise this fallback beyond verified code paths. - -Provider usage and pricing are deliberately outside this fallback list. The -runtime does not consult a model-pricing environment path or pricing-specific -offline toggle, and it does not read a home-directory pricing cache. Cost reads -use immutable provider usage observations and the deterministic bundled -all-provider pricing table; missing evidence remains typed unknown/unavailable. - -Boolean parsing should be made consistent before changing semantics. Today, -`DISABLE_TRACEDECAY` is exact-string `true`, while many `brand_env()` consumers use -truthy parsing. Treat this as a compatibility constraint until tests document any -intentional divergence. - -### C2. Legacy disable variable for server opt-out - -`DISABLE_TRACEDECAY=true` is the exact opt-out spelling that makes -`tracedecay serve` exit cleanly so hosts do not retry. -If a warning is emitted, it must not prevent the clean zero-effect exit. - -### C3. Legacy docs-only plugin path claims - -Docs that mention `$TRACEDECAY_PLUGIN_PATH` or `.tracedecay/plugins/` fallback must be -kept only where backed by implementation. If implementation is absent or unknown, -the doc should be phrased as a compatibility target/follow-up rather than a runtime -guarantee. - -### C4. Homebrew/Scoop legacy package names - -Docs may warn that external taps/buckets can lag behind the rename and still expose a -legacy package name. This is a user-support warning, not a new canonical install path. - -## Category D, reject, fail, or do not silently accept - -These surfaces should not be accepted silently because doing so creates downgrade, -data-loss, or supply-chain risk. - -### D1. Legacy-only releases in latest-version detection - -Automatic latest-version detection must reject releases that only contain legacy -`tracedecay-*` assets, including old pre-reset release epochs. Users may still request -specific old versions explicitly via Category B behavior, but the automatic updater -must not advertise legacy-only releases as current. - -### D2. Silent storage renames or implicit data moves - -Code must reject any implicit rename or move of pre-rebrand data directories or -databases. This policy does not promise a conversion command. Any separately -released user-data move would require clear user intent, backups, rollback, and -explicit ownership of every affected external artifact. - -### D3. New public TraceDecay-branded product surface - -New features must not introduce public pre-rename names for commands, configuration, -API fields, docs examples, package names, release assets, service identifiers, or -generated plugin artifacts unless the name is categorized here as legacy retention or -an external constraint. - -### D4. Unowned cleanup - -Installers and uninstallers must not delete unknown user-authored files merely -because they live under an old path. Generated files can be migrated or -removed; unrecognized files require preservation or explicit user confirmation. - -## Category E, externally constrained names that must not change yet - -These names are not compatibility shims owned by TraceDecay. They are external -upstream identifiers or ecosystem state that the project cannot safely rename by -itself. - -### E1. `tracedecay-large-treesitters` - -`tracedecay-large-treesitters` and its `tracedecay-medium-treesitters` / -`tracedecay-lite-treesitters` siblings must keep their exact legacy names while the -project depends on the external upstream package. The crate name, git repository, -crates.io package, build script, vendored grammars, and large -> medium -> lite -internal dependency chain are upstream-owned. - -Do not rename, vendor, fork, or publish tracedecay-branded replacements for these -crates unless one of these policy-changing events occurs: - -1. The upstream renames all three crates, the git repository, crates.io packages, and - internal manifests consistently and publishes new versions; or -2. The project explicitly approves maintaining a full fork of the three-tier grammar - pipeline, including build scripts, vendored grammars, registry publishing, and - ongoing language updates. - -Until then, keep `Cargo.toml` pointed at the upstream dependency, keep Rust imports -such as `tracedecay_large_treesitters::*`, and prefer the Rust-parser migration as the -long-term path to removing the dependency instead of renaming it. - -## Compatibility surface map - -Every audited surface maps to exactly one policy category below. - -| Surface | Category | Required behavior | -|---|---:|---| -| Project `.tracedecay/` data dir and `tracedecay.db` | A | Use in place; no auto-migration. | -| User `~/.tracedecay/` data dir, `global.db`, monitor files | A | Use in place; new users default to `~/.tracedecay/`. | -| Project root discovery for `.tracedecay/tracedecay.db` | A | Continue detecting for list/status/wipe-style maintenance. | -| Branch metadata DB filenames in legacy dirs | A | Keep `tracedecay.db` for legacy active data dirs. | -| Dashboard curation artifacts under legacy active dir | A | Store under the active data dir, including `.tracedecay/` when that is active. | -| MCP schema text describing legacy project fallback | B | Keep docs/resources aligned with actual fallback behavior. | -| Diagnostics target dir under active data dir | A | Use active data dir; legacy projects use `.tracedecay/target`. | -| Generic `TRACEDECAY_*` env prefix | C | `brand_env` reads only `TRACEDECAY_`; there is no second-prefix fallback. | -| `DISABLE_TRACEDECAY=true` | C | Exact-string `true` is the clean serve opt-out. | -| `TRACEDECAY_GLOBAL_DB` | C | Accept fallback with warning; `TRACEDECAY_GLOBAL_DB` wins. | -| `TRACEDECAY_DISABLE_GLOBAL_DB` | C | The one global-accounting opt-out; a truthy value disables recording and keeps cargo-launched tests hermetic. | -| Hook/extraction env fallbacks (`TRACEDECAY_PROJECT_ROOT`, `TRACEDECAY_DISABLE_SUBPROCESS`) | C | Accept fallback with warning; new names win. | -| Hermes historical project pins | B | Read only as cleanup provenance, then remove generated routing state; never use for runtime routing or store conversion. | -| Hermes plugin list, memory provider, and context-engine aliases named `tracedecay` | B | Rewrite/remove to canonical `tracedecay` behavior. | -| `$TRACEDECAY_PLUGIN_PATH` and `.tracedecay/plugins/` docs claim | C | Warn/accept only where implemented; otherwise document as pending compatibility. | -| Generic agent config server key `tracedecay` | B | Reconcile generated old entries to one canonical `tracedecay` entry. | -| Legacy prompt/rule markers | B | Remove generated old blocks/files during install/uninstall/refresh. | -| Cursor legacy plugin directory and skill slugs | B | Remove generated old plugin artifacts; preserve unknown user files. | -| Hermes generated `plugins/tracedecay` directories and `skills/tracedecay/SKILL.md` | B | Migrate/remove generated artifacts; preserve unknown user files. | -| Codex legacy plugin directory and marketplace entry | B | Reconcile to canonical `tracedecay`; remove generated stale hooks/prompts. | -| Antigravity legacy CLI plugin path | B | Remove generated `tracedecay.json` on uninstall/reconcile. | -| Claude legacy hook/config migration | B | Repair/remove known generated legacy hook and config shapes. | -| `tracedecay-large-treesitters` package/dependency name | E | Keep exact upstream name until upstream rename or explicit maintained-fork policy. | -| Worldwide counter endpoint `tracedecay-counter` | A | Retired from the client; the hosted Worker is decommissioned by a maintainer. | -| Legacy release asset names for explicit requested versions | B | Probe after current asset names for explicit old-version installs/upgrades. | -| Latest-version filtering of legacy-only releases | D | Reject legacy-only/pre-reset releases as automatic latest candidates. | -| Extracted binary name `tracedecay` in old archives | B | Accept only as fallback while extracting explicit old archives. | -| Homebrew/Scoop legacy package note | C | Keep as support warning while external packages lag; not canonical install path. | -| Primary user docs mentioning fallback behavior | B | Keep aligned with runtime behavior; canonical examples use TraceDecay names. | -| Design docs mentioning path/env/plugin fallback | B | Keep aligned with runtime behavior or mark as compatibility target. | -| Historical plans/specs with TraceDecay names | A | Preserve as history unless factually wrong. | -| Benchmark reports with TraceDecay tool/path names | A | Preserve measured historical names. | -| Changelog historical TraceDecay references | A | Preserve history; summarize rename in current entries only. | -| Legacy config field `include` unrelated to brand rename | B | Keep ordinary config compatibility/migration separate from brand policy. | - -## Warning and migration implementation guidance - -- Prefer one warning per legacy key/path per process or command invocation. -- Warnings must explain the replacement and state that the old spelling was honored - for this run. -- Warnings must not include environment variable values, DB paths containing secrets, - tokens, or raw config contents. -- Tests for fallback code should cover: old-only, new-only, both-set precedence, and - warning/no-warning behavior where warning hooks exist. -- Installer reconciliation must be idempotent. Running install/refresh twice should - not duplicate entries or re-delete preserved user files. -- This policy does not authorize internal V2 storage conversion. A separately - released external user-data move would need explicit user approval, an exact - source/destination inventory, backups, validation, and reversible cleanup. - -## Review checklist for future rebrand-related changes - -Before merging a change that touches `tracedecay`, `.tracedecay`, `TRACEDECAY_*`, or -TraceDecay-era docs, answer all of the following in the PR description or review: - -1. Which policy category owns the surface? -2. Does the change preserve existing user data and installed agent state? -3. If it accepts a legacy spelling, does the new spelling win when both are present? -4. If it migrates/removes anything, is ownership proven and are unknown user files - preserved? -5. If it rejects something, is the failure mode clear and covered by tests? -6. If it touches `tracedecay-large-treesitters`, has the upstream/fork policy changed? diff --git a/docs/TREESITTERS-RENAME-CONSTRAINTS.md b/docs/TREESITTERS-RENAME-CONSTRAINTS.md index de659e4bf0..239c7f156e 100644 --- a/docs/TREESITTERS-RENAME-CONSTRAINTS.md +++ b/docs/TREESITTERS-RENAME-CONSTRAINTS.md @@ -30,12 +30,8 @@ migration (`docs/RUST-PARSER-MIGRATION.md`), not renaming them. | Build-script coupling | Upstream's build script compiles vendored C/C++ grammars under `.cargo/config.toml` `CFLAGS=-DNDEBUG` | `CHANGELOG.md:582-583` | | API tracedecay consumes | `all_languages()`, `markdown::LANGUAGE`, `markdown::inline::LANGUAGE` | `ts_provider.rs:27`, `markdown_extractor.rs:70,139` | -The project *itself* rebranded tracedecay → tracedecay (lib/bin name is `tracedecay`, -`Cargo.toml:97,100`; version reset at `CHANGELOG.md:12`) and carries extensive -pre-rebrand compatibility shims (legacy `.tracedecay/` dir at `src/config.rs:16`, -legacy archive names at `src/cloud.rs:140`, legacy `TRACEDECAY_*` env at -`src/config.rs:152`). **Only the grammar-bundle dependency retains the legacy -`tracedecay-` prefix, and that is intentional** (`AGENTS.md:20`). +Only the grammar-bundle dependency retains the `tracedecay-` prefix, and that is +intentional (`AGENTS.md:20`). ## Why it must keep the name (constraints) @@ -99,24 +95,6 @@ scripts that hardcode the `aovestdipaperino/tracedecay-large-treesitters` git UR parsers. Eliminating the dependency removes the naming question outright and is the recommended end state rather than a rename. -## Recommended compatibility-policy wording - -Add the following (verbatim or adapted) to the compatibility policy / `AGENTS.md` -`Learned Workspace Facts`, expanding on the existing one-liner at `AGENTS.md:20`: - -> **`tracedecay-large-treesitters` is an external upstream dependency and must not be -> renamed, vendored, or forked.** The crate name, git repo -> (`aovestdipaperino/tracedecay-large-treesitters`), crates.io publication, build -> script, and vendored grammars are owned by the upstream and intentionally kept on -> the legacy `tracedecay-*` name despite the tracedecay rebrand. The `large → medium -> → lite` tier names are coupled inside the upstream's own manifests, so the three -> crates rise and fall together. Renaming is only safe if (a) the upstream renames -> all three crates and republishes, or (b) the project explicitly adopts a -> maintained fork as a policy change. Until then, keep the exact name in -> `Cargo.toml`, keep import sites as `tracedecay_large_treesitters::*`, and prefer the -> Rust-parser migration (`docs/RUST-PARSER-MIGRATION.md`) as the path to eventually -> removing the dependency rather than renaming it. - ## Verification trail - `Cargo.toml:108`, git dep declaration (current, `0.5.0`, aovestdipaperino). diff --git a/docs/USER-GUIDE.md b/docs/USER-GUIDE.md index 88db93a4f8..4ba974aa97 100644 --- a/docs/USER-GUIDE.md +++ b/docs/USER-GUIDE.md @@ -444,8 +444,7 @@ so run `/hooks` inside Codex after install or recopy. Current Codex limitations: TraceDecay drives `codex plugin add` / `remove` but cannot reload an active Codex session or trust plugin command hooks for you (use `/hooks` after install or recopy). Uninstall drives `codex plugin remove -tracedecay@personal` and then removes the staged source. The legacy Codex -configuration files are left unchanged. +tracedecay@personal` and then removes the staged source. Kimi's first global install is also two-step: TraceDecay stages source, then Kimi Code's `/plugins install ` registers it after Kimi's trust diff --git a/docs/dashboard.md b/docs/dashboard.md index e32b1fd2f5..3738de78e0 100644 --- a/docs/dashboard.md +++ b/docs/dashboard.md @@ -49,13 +49,11 @@ without the token. A request to `/api/**` without the token gets `401 dashboard_request_unauthenticated`; a request whose `Host` or `Origin` does not name the bound listener gets `403`. -## Code graph plugin API +## Code graph API -The legacy `/legacy` frontend's Code Graph tab reads a project-local, bounded -API over the indexed code graph (`nodes`, `edges`, `files` in -`.tracedecay/tracedecay.db`), mounted in -`crates/tracedecay-dashboard-api/src/lib.rs` (see `graph_api`). Under the -Hermes wrapper the same routes are reverse-proxied at +The SPA code workspace reads a project-local, bounded API over the indexed code +graph, mounted in `crates/tracedecay-dashboard-api/src/lib.rs` (see +`graph_api`). Under the Hermes wrapper the same routes are reverse-proxied at `/api/plugins/tracedecay/graph/*`. | Route | Description | @@ -69,8 +67,7 @@ Hermes wrapper the same routes are reverse-proxied at `GET /api/capabilities` advertises `features.graph: true` and lists `graph` in `dashboards`; hosts can feature-detect via -`window.__HERMES_PLUGIN_SDK__.capabilities`. Full legacy-frontend history -(views, wiring, tests) lives in git history under `docs/archive/graph-explorer.md`. +`window.__HERMES_PLUGIN_SDK__.capabilities`. ## Hermes plugin and LCM diagnostics diff --git a/docs/development/search-quality-direct-evaluation.md b/docs/development/search-quality-direct-evaluation.md index b66fbf0e9f..f2257254ac 100644 --- a/docs/development/search-quality-direct-evaluation.md +++ b/docs/development/search-quality-direct-evaluation.md @@ -3,51 +3,10 @@ The direct evaluator (`tracedecay_query::search_quality`, driven by `tracedecay-search-eval`) runs production retrieval over a packaged workload and corpus, then scores the result against checked-in labels. This note records what -that measurement may and may not be used for, because the qualification gate it -used to feed no longer exists. - -## What was deleted, and why - -`feat(search-quality): qualify on a paired held-out effect` (`881d25579a`) -introduced a real activation gate: a predeclared practical-effect threshold of -20 000 ppm plus a two-sided 95% paired Student-t interval on the held-out mean - -```text -d(query) = nDCG@10(candidate profile) - nDCG@10(query-fallback) -``` - -whose lower bound had to exceed zero. The rule travelled with the evidence as -`methodology_version`, and `policy_freeze` pinned the commit and every profile's -tuning material digest so the threshold could not be re-tuned to fit the result -it produced. - -The same subtraction applies to the policy slice that survived that deletion. -`decision_policy` could express only `required_cancellation = -bounded_typed_cancelled` plus an unread `required_fallback_byte_stability` -flag. Candidate generation already proves cancellation fail-closed -(`prove_cancellation`) and already records fallback byte equality as -`fallback_stable` / `fallback_matches_expected`. The slice, the single-variant -`RequiredCancellationV1` stamp, and the report aliases `cancellation_bounded` -and `offline` (the latter was `fallback_matches_expected` copied) added no -observation. Schema 1 refuses `decision_policy` the same way it refuses a -methodology. The leftover `QUALIFICATION-METHODOLOGY.md` described that -deleted gate as if it were still the live rule; it is gone rather than kept -as a stub. - -`refactor(retrieval): retire dense FastEmbed path for lexical/graph` -(`8e7952f91a`) deleted `native_qualification.rs` along with the whole semantic -runtime. That was not an oversight: the gate existed to decide whether a -*candidate* retrieval profile should be activated in place of the always-on -`query-fallback` lanes. With the dense lane gone, the packaged profile matrix -holds exactly one profile, `query-fallback` itself, so there is no candidate, -no paired difference, and nothing for a held-out interval to decide. Keeping a -statistical gate that can only ever compare a profile with itself would report -authority it does not have. +that measurement may and may not be used for. ## The evidence-only boundary -Consequently: - - The exact/lexical/graph lanes are unconditionally part of production retrieval. No measurement activates them and none can switch them off. - A `Pass` from `tracedecay-search-eval compare` means the checked-in labels @@ -76,21 +35,4 @@ as the other: | `ProductionCandidateOutputV1` (an evaluator run's candidate evidence) | 2 | the producer in `tracedecay-search-eval` | The direct evaluator refuses candidate outputs whose `schema_version` is not 2, -so a schema-1 workload document can never be re-read as candidate evidence or as -a qualification record. - -## Re-introducing a gate - -Restoring an activation gate is a schema change, not a comment change. Workload -schema 1 carries no `methodology_version`, no practical-effect bound, no -`policy_freeze`, and no `decision_policy`, and `deny_unknown_fields` refuses -those keys outright, so a workload cannot smuggle a methodology back in. A -future gate needs, at minimum: - -1. a second profile in the packaged matrix to serve as the candidate, -2. a versioned methodology declaration (`methodology_version`) travelling with - the evidence, -3. a predeclared practical-effect bound and interval rule, and -4. a `policy_freeze` binding the commit and every profile's material digest. - -Until all four exist, the honest report is evidence-only. +so a schema-1 workload document can never be re-read as candidate evidence. diff --git a/docs/plans/tracedecay-v2/08-tool-catalog-crate.md b/docs/plans/tracedecay-v2/08-tool-catalog-crate.md index 2221ce6b00..a6e23631e8 100644 --- a/docs/plans/tracedecay-v2/08-tool-catalog-crate.md +++ b/docs/plans/tracedecay-v2/08-tool-catalog-crate.md @@ -106,15 +106,7 @@ duplicating business logic. - **Foundation, policy:** expose read-only capability metadata to policy routing. Availability and effect metadata inform a decision but never execute it. - **Foundation, daemon:** bind each executable capability to the single tracedecayd/application authority. Catalog consumers never open a database or bypass application authorization. - **Foundation, profiles:** define explicit capability sets and hard ceilings for default, compact, administrative, and host-limited surfaces. Absence is explicit, not a hidden fallback. -- **Foundation, compatibility:** retain a deprecated name as a `SurfaceBinding` - only when actual independent public release evidence proves a supported - caller; a direct compatibility test alone is not release evidence. Pure - source-only names are replaced in place, as are branch-era V2 callable names. - A binding survives only for that released public protocol; it delegates to - the canonical operation or returns an actionable negotiated upgrade result, - never a generic unknown-operation response. After retirement it behaves as - an ordinary unknown name; authorized callers may use ordinary discovery - guidance. No retired-name tombstone registry or compatibility ledger exists. +- **Foundation, names:** names change in place. A retired name is an ordinary unknown name; no compatibility binding, tombstone, or ledger exists. - **Bindings, bindings:** map CLI commands, MCP tools, HTTP operations, and LSP methods to the same CapabilityId and typed application handler where the protocol exposes a callable product operation. Dashboard binding, dashboard @@ -325,7 +317,7 @@ There is no aggregate or universal count shared by all profiles. to the same CapabilityId, schemas, effect, cursor, deadline/cancellation, and receipt contract. 4. **Retirement:** delete legacy handler registries and duplicate discovery - metadata after supported names pass direct compatibility behavior. Do not + metadata after every binding passes direct parity. Do not retain a shadow registry, generated inventory, or declaration-only gate. Plan 24/32 contributions enter the runtime snapshot only with their shipped typed application handlers. SDK BindingIds enter only with shipped official @@ -383,7 +375,7 @@ same behavior is covered directly. authorization, paging/streaming, problems/retry directives, cancellation, receipts, reconnect/resume, and unavailable/partial lifecycle semantics. - Discovery tests prove compact profiles stay bounded and administrative/private capabilities are filtered correctly. -- Compatibility tests cover only currently supported names and typed guidance for retired names; no frozen total-count assertion is allowed. +- Tests cover only currently supported names; no frozen total-count assertion is allowed. - Architecture tests reject source parsers, generators, generated inventories, plan/workflow dependencies, execution logic, storage, transport implementations, and UI code from tracedecay-tool-catalog. - Repository checks verify no public adapter has a handler-local query, policy, persistence, or authorization path that bypasses the cataloged application use case. diff --git a/docs/plans/tracedecay-v2/17-official-public-api-and-sdks.md b/docs/plans/tracedecay-v2/17-official-public-api-and-sdks.md index ffb590e502..3e3c0ee3fe 100644 --- a/docs/plans/tracedecay-v2/17-official-public-api-and-sdks.md +++ b/docs/plans/tracedecay-v2/17-official-public-api-and-sdks.md @@ -111,27 +111,21 @@ when their syntax is idiomatic to the surface. ### Compatibility and lifecycle behavior Each accepted operation proves semantic and lifecycle parity across CLI, MCP, -HTTP, Rust, and TypeScript. Compatibility with an older shape is tested when -actual independent release evidence establishes that public protocol shape; -the documented release support policy governs its conformance. -Conformance covers supported syntax, +HTTP, Rust, and TypeScript. Conformance covers supported syntax, protocol/capability range, required authorization, paging or stream shape, retry class, cancellation support, reconnect/resume behavior, stable errors, and explicit transport limitations through callable adapters. A generated or manually maintained matrix is optional implementation evidence, not a product requirement or acceptance artifact. -After the first evidenced publication, additive changes within a major -protocol version preserve compatibility and breaking changes negotiate a new -major version with an actionable error. Before publication, a transient -request/response API changes in place. Persisted V2 state accepts only its -exact final shape; any other shape returns `ResetRequired` and requires +A transient request/response API changes in place. Persisted V2 state accepts +only its exact final shape; any other shape returns `ResetRequired` and requires explicit reset or recreation, never a reader or conversion. The policy retains the full required/optional field, default, nullability, open object, union/enum, numeric narrowing, identifier, error, stream-event, cursor, operation rename/removal, retry-class, and capability-removal behavior. Unknown fields, enums, errors, and events are handled consistently for the -negotiated version; retired identifiers and codes remain reserved. +negotiated version. Cancellation retains typed requested, accepted, before-start, publication-suppressed, upstream-acknowledged, execution-stopped, @@ -199,12 +193,6 @@ provider execution, work mutation, or an arbitrary daemon/LSP method. - Choose public names and request/response shapes at the daemon application boundary for every supported operation, including all daemon-API base families and the accepted work/workflow additions. -- Preserve names proven by an actual independent public release as - compatibility aliases that delegate to the canonical operation. Pure - source-only and branch-era callable names are replaced in place. A - compatibility name may translate syntax but - owns no readiness, scoring, routing, scheduling, provider selection, - storage, or lifecycle logic. - Define pagination cursors, stream events, cancellation and retry classes, structured errors, version negotiation, and unavailable/partial outcomes in the operation that uses them. Schema/OpenAPI generation is package input, From 603668ef1cc015b22a560045ec4fe40fadb51e43 Mon Sep 17 00:00:00 2001 From: Zack Jackson <25274700+ScriptedAlchemy@users.noreply.github.com> Date: Wed, 28 Oct 2026 20:37:28 -0700 Subject: [PATCH 02/13] docs(compat): reword stale legacy comments and help text (U1) Items removed: L001, L002, L003, L004, L006, L007, L008, L009. - L001: uninstall/wipe help describes profile project stores, not checkout-local .tracedecay indexes or "legacy" stores. - L002: drop the doctor "migration advisory" section and the legacy core_doctor wording. - L003: remove the dead default_collection slot from MultiRootCollectionSelectorV1 (new() takes only the explicit target; the single caller is migrated) and reword the NoCollectionNamed reason. - L004, L006, L007, L008, L009: comments describing gone behaviour are reworded or deleted. LiveActivityPulse.detail is now required (string | null) and the pulse fixtures set detail: null. Callers migrated: multi_root_api.rs selector construction; dashboard pulse fixtures. Tests deleted: none. Upgrade impact: none. The only wire-visible text change is the multi-root "no collection named" reason string. Co-Authored-By: Claude Opus 5.5 --- crates/tracedecay-cli/src/cli/help.rs | 10 ++++---- crates/tracedecay-contracts/src/doctor/mod.rs | 9 ------- .../tracedecay-contracts/src/doctor/types.rs | 6 ++--- .../src/multi_root/collection.rs | 25 ++++++------------- .../src/authority_tests.rs | 2 +- .../src/multi_root_api.rs | 11 +++----- .../tracedecay-graph-db/src/sealed_store.rs | 5 ++-- .../src/runtime/hosts/cline_like.rs | 2 +- .../src/runtime/hosts/cursor.rs | 2 +- .../src/runtime/hosts/hermes.rs | 4 +-- .../src/runtime/hosts/hermes/tests.rs | 4 +-- .../src/runtime/hosts/kiro.rs | 2 +- .../snapshot_observation/admission.rs | 4 +-- .../src/runtime/source/jsonl.rs | 2 +- .../src/codex_goal_context.rs | 4 +-- crates/tracedecay-store/src/runtime/ports.rs | 9 +++---- .../tracedecay-temporal-query/src/context.rs | 6 ++--- crates/tracedecay/src/daemon/core_proxy.rs | 16 +++++------- crates/tracedecay/src/daemon/pr_autotrack.rs | 4 +-- crates/tracedecay/src/daemon/scheduler.rs | 2 +- crates/tracedecay/src/mcp/server.rs | 2 +- crates/tracedecay/src/mcp/server/requests.rs | 5 ++-- .../tests/automation_runner_test/jobs.rs | 2 +- .../graph_suite/annotation_helpers_test.rs | 13 +++------- .../mcp_suite/mcp_handler_test/edit_test.rs | 3 --- .../mcp_suite/mcp_handler_test/lcm_test.rs | 2 +- dashboard/src/data/query/envelope.ts | 2 +- dashboard/src/data/query/payload.ts | 2 +- dashboard/src/data/sse/connect.ts | 5 ++-- dashboard/src/viz/trace/reducedMotion.ts | 4 +-- .../brain/BrainInteraction.dom.test.tsx | 1 + .../workspaces/brain/SignalPanel.dom.test.tsx | 5 ++-- .../workspaces/brain/activitySummary.test.ts | 2 +- .../workspaces/brain/registryScene.test.ts | 2 +- .../work/WorkTaskActivity.dom.test.tsx | 2 +- 35 files changed, 70 insertions(+), 111 deletions(-) diff --git a/crates/tracedecay-cli/src/cli/help.rs b/crates/tracedecay-cli/src/cli/help.rs index 748864e241..aa816f676f 100644 --- a/crates/tracedecay-cli/src/cli/help.rs +++ b/crates/tracedecay-cli/src/cli/help.rs @@ -267,8 +267,8 @@ tracedecay update (binary + plugins + daemon + health pass).", pub(crate) const UNINSTALL_LONG_ABOUT: &str = "\ Removes tracedecay's MCP server registration, permissions, hooks, and prompt \ rules from agent configuration through the same component-set lifecycle. Removes \ -every installed agent's integration when --agent is omitted. Project indexes under \ -.tracedecay/ are left intact. use `tracedecay wipe` to delete data."; +every installed agent's integration when --agent is omitted. Project stores under \ +the TraceDecay profile are left intact. use `tracedecay wipe` to delete data."; pub(crate) const UNINSTALL_AFTER_HELP: &str = concat!( "\ @@ -643,10 +643,10 @@ Examples: Related: tracedecay projects (registry view), tracedecay wipe."; pub(crate) const WIPE_LONG_ABOUT: &str = "\ -Deletes .tracedecay stores (code graph, memory, sessions) for the current \ -folder, its parents, and its children. With --all, deletes the complete \ +Deletes the profile project stores (code graph, memory, sessions) registered \ +for the current folder, its parents, and its children. With --all, deletes the complete \ profile-scoped database state, including global, user memory/session, project, \ -legacy, remote, Grafeo WAL, and host-admission stores. With --stale, deletes \ +remote, Grafeo WAL, and host-admission stores. With --stale, deletes \ exactly the stores the running daemon reports as requiring reset (a persisted \ shape this binary does not open) and nothing else; the daemon recreates each \ one empty. Resetting the profile authority (global.db) drops the project \ diff --git a/crates/tracedecay-contracts/src/doctor/mod.rs b/crates/tracedecay-contracts/src/doctor/mod.rs index d30b1775c4..d8f586343e 100644 --- a/crates/tracedecay-contracts/src/doctor/mod.rs +++ b/crates/tracedecay-contracts/src/doctor/mod.rs @@ -6,15 +6,6 @@ //! that gathers findings across every family into a [`DoctorReportV1`]. This //! module owns no store, transport, provider runtime, or health formula; //! source-port implementations and any surface binding are owned elsewhere. -//! -//! # Install / doctor parity after host wire renames -//! -//! When a host lifecycle retires write targets (for example Kiro's shift to a -//! global MCP-only install), Doctor must keep install/doctor parity: either -//! grade the current owned surface, or emit an explicit migration advisory for -//! leftover retired artifacts. Silent omission of retired steering/agent -//! checks is schema drift. Operators need a truthful advisory, not a green -//! report that ignores rotting files. mod adapters; mod report; diff --git a/crates/tracedecay-contracts/src/doctor/types.rs b/crates/tracedecay-contracts/src/doctor/types.rs index af55598876..b4f58fbd3c 100644 --- a/crates/tracedecay-contracts/src/doctor/types.rs +++ b/crates/tracedecay-contracts/src/doctor/types.rs @@ -15,9 +15,9 @@ use crate::identity::application_identifier; /// Stable Doctor finding families. /// /// The initial list covers advisory findings from -/// Brain, Explorer, Loom, Code, and Observatory, plus the legacy -/// `core_doctor` checks (graph quick-check, temporal/migration health, -/// configuration compatibility drift, code-index mount state, session ingest). +/// Brain, Explorer, Loom, Code, and Observatory, plus the daemon +/// core doctor checks (graph quick-check, temporal health, configuration +/// drift, code-index mount state, session ingest). /// Each family maps to one audited typed input surface. The set is kept small /// and honest; new families are added through a future versioned enum rather /// than by widening the meaning of an existing variant. diff --git a/crates/tracedecay-contracts/src/multi_root/collection.rs b/crates/tracedecay-contracts/src/multi_root/collection.rs index 2981dade44..c93f6b0c80 100644 --- a/crates/tracedecay-contracts/src/multi_root/collection.rs +++ b/crates/tracedecay-contracts/src/multi_root/collection.rs @@ -12,30 +12,20 @@ use super::AuthorizedScopeSet; /// Selects the collection a read surface must resolve. /// -/// The default collection never outranks an explicit target: when both are -/// present the explicit target wins unconditionally, and the default is only -/// consulted when the caller named nothing. +/// Only an explicit target selects a collection; an unnamed request resolves +/// to the typed no-collection state. #[derive(Clone, Debug, PartialEq, Eq)] pub struct MultiRootCollectionSelectorV1 { explicit_target: Option, - default_collection: Option, } impl MultiRootCollectionSelectorV1 { - pub fn new( - explicit_target: Option, - default_collection: Option, - ) -> Self { - Self { - explicit_target, - default_collection, - } + pub fn new(explicit_target: Option) -> Self { + Self { explicit_target } } pub fn target(&self) -> Option<&ScopeSetId> { - self.explicit_target - .as_ref() - .or(self.default_collection.as_ref()) + self.explicit_target.as_ref() } } @@ -44,7 +34,7 @@ impl MultiRootCollectionSelectorV1 { pub enum MultiRootCollectionUnavailableV1 { /// The read surface has no daemon application transport at all. TransportNotAdmitted, - /// No explicit target was named and no default collection is configured. + /// No explicit target was named. NoCollectionNamed, /// The named collection has no persisted scope set for this project. CollectionNotPersisted { scope_set_id: ScopeSetId }, @@ -60,8 +50,7 @@ impl MultiRootCollectionUnavailableV1 { "the daemon application transport is not admitted for this dashboard".to_owned() } Self::NoCollectionNamed => { - "no default multi-root collection is configured; name an explicit collection" - .to_owned() + "no multi-root collection was named; name an explicit collection".to_owned() } Self::CollectionNotPersisted { scope_set_id } => format!( "multi-root collection {} names no persisted scope set for this project", diff --git a/crates/tracedecay-dashboard-api/src/authority_tests.rs b/crates/tracedecay-dashboard-api/src/authority_tests.rs index 7ad4b41acf..8d33dd958f 100644 --- a/crates/tracedecay-dashboard-api/src/authority_tests.rs +++ b/crates/tracedecay-dashboard-api/src/authority_tests.rs @@ -1043,7 +1043,7 @@ async fn capabilities_with_admitted_transport_report_the_typed_no_collection_sta assert_eq!(capabilities["multi_root"]["status"], "unavailable"); assert_eq!( capabilities["multi_root"]["reason"], - "no default multi-root collection is configured; name an explicit collection" + "no multi-root collection was named; name an explicit collection" ); } diff --git a/crates/tracedecay-dashboard-api/src/multi_root_api.rs b/crates/tracedecay-dashboard-api/src/multi_root_api.rs index 29b6047ab6..f34e201534 100644 --- a/crates/tracedecay-dashboard-api/src/multi_root_api.rs +++ b/crates/tracedecay-dashboard-api/src/multi_root_api.rs @@ -2,10 +2,8 @@ //! //! The dashboard resolves a named collection through the daemon application //! transport; selection precedence and read mapping are owned by the -//! application resolver. No default collection is currently configurable, -//! the retired `query.default_collection.v1` setting fails closed in old -//! stores and no replacement setting exists, so an unnamed resolution -//! reports the typed no-collection state instead of guessing a scope set. +//! application resolver. An unnamed resolution reports the typed +//! no-collection state instead of guessing a scope set. use axum::Json; use axum::extract::{Query, State}; @@ -30,8 +28,7 @@ pub struct CollectionQueryV1 { /// `GET /api/multi-root/collection`, resolve the selected named collection. /// /// An explicit `collection` query parameter names the target; without one the -/// selector falls through to the (currently absent) default collection and -/// reports the typed no-collection state. +/// resolution reports the typed no-collection state. #[tracing::instrument(name = "dashboard_api.multi_root.resolve", level = "trace", skip_all)] pub async fn resolve_collection( State(state): State, @@ -69,7 +66,7 @@ pub(crate) async fn resolve_collection_capability( MultiRootCollectionUnavailableV1::TransportNotAdmitted.reason(), ); }; - let selector = MultiRootCollectionSelectorV1::new(explicit_target, None); + let selector = MultiRootCollectionSelectorV1::new(explicit_target); let Some(target) = selector.target().cloned() else { return MultiRootCapabilityV1::unavailable( MultiRootCollectionUnavailableV1::NoCollectionNamed.reason(), diff --git a/crates/tracedecay-graph-db/src/sealed_store.rs b/crates/tracedecay-graph-db/src/sealed_store.rs index 8a62ce07cf..a6e140d089 100644 --- a/crates/tracedecay-graph-db/src/sealed_store.rs +++ b/crates/tracedecay-graph-db/src/sealed_store.rs @@ -229,9 +229,8 @@ const SEALED_STORE_FORM_LAYERED: &str = "layered"; #[derive(Debug, Deserialize, Serialize)] struct SealedStoreReceiptV1 { version: u32, - /// Always [`SEALED_STORE_FORM_COMPACT`] for stores this revision builds; - /// receipts written by earlier revisions may name a replay-form store, - /// which reopens and proves exactly like a compact one. + /// [`SEALED_STORE_FORM_COMPACT`] or [`SEALED_STORE_FORM_LAYERED`]; any + /// other form is refused. form: String, namespace: String, projection: String, diff --git a/crates/tracedecay-sessions/src/runtime/hosts/cline_like.rs b/crates/tracedecay-sessions/src/runtime/hosts/cline_like.rs index 40e31fecbb..2969a2c2ac 100644 --- a/crates/tracedecay-sessions/src/runtime/hosts/cline_like.rs +++ b/crates/tracedecay-sessions/src/runtime/hosts/cline_like.rs @@ -365,7 +365,7 @@ impl ClineLikeSource { /// Captures bounded Cline-family snapshots through the daemon-owned observation authority. /// /// This deliberately re-reads complete snapshots and derives a new source generation -/// from their content hash; it neither consults nor advances legacy parse offsets. +/// from their content hash; it neither consults nor advances append-only parse offsets. /// `max_new_bytes` is one logical source-byte budget for the complete sweep. #[tracing::instrument(name = "sessions.hosts.cline_like.capture", level = "trace", skip_all)] pub async fn capture_cline_like_snapshot_observations( diff --git a/crates/tracedecay-sessions/src/runtime/hosts/cursor.rs b/crates/tracedecay-sessions/src/runtime/hosts/cursor.rs index ca1a02b3f3..edf412c560 100644 --- a/crates/tracedecay-sessions/src/runtime/hosts/cursor.rs +++ b/crates/tracedecay-sessions/src/runtime/hosts/cursor.rs @@ -1009,7 +1009,7 @@ fn cursor_transcript_authority_rank(path: &Path) -> (bool, std::time::SystemTime } /// Synthesizes the minimal hook-shaped event used by startup sweeps so their -/// scope and location provenance match the legacy parser's behavior. +/// scope and location provenance match hook-event provenance. fn cursor_sweep_event(parent_session_id: &str, project_root: &Path, user_scope: bool) -> Value { if user_scope { serde_json::json!({ diff --git a/crates/tracedecay-sessions/src/runtime/hosts/hermes.rs b/crates/tracedecay-sessions/src/runtime/hosts/hermes.rs index 93fba6dc14..d920ac678f 100644 --- a/crates/tracedecay-sessions/src/runtime/hosts/hermes.rs +++ b/crates/tracedecay-sessions/src/runtime/hosts/hermes.rs @@ -4,8 +4,8 @@ //! per-profile `SQLite` store at `/state.db` (tables `sessions` + //! `messages`), where `` is `~/.hermes` for the default profile or //! `~/.hermes/profiles/` for named profiles. A profile maps to exactly -//! one ingest target only when provenance proves a real code project: a -//! legacy `plugins.tracedecay.project_root` pin or the session row's `cwd`. +//! one ingest target only when the session row's `cwd` proves a real code +//! project. //! For projectless/gateway sessions, one completed turn may instead prove its //! project through structured tool-call routing (`project_path`, //! `project_root`, or a nested project selector). Only that turn is admitted to diff --git a/crates/tracedecay-sessions/src/runtime/hosts/hermes/tests.rs b/crates/tracedecay-sessions/src/runtime/hosts/hermes/tests.rs index bc4ab048c7..2e3b0cdf82 100644 --- a/crates/tracedecay-sessions/src/runtime/hosts/hermes/tests.rs +++ b/crates/tracedecay-sessions/src/runtime/hosts/hermes/tests.rs @@ -1552,9 +1552,7 @@ async fn multi_page_session_emits_one_usage_checkpoint_and_a_later_frontier_upda async fn unreadable_state_db_is_a_counted_source_failure_not_a_clean_sweep() { let dir = tempfile::tempdir().unwrap(); initialize_owned_store_before_foreign_fixture(dir.path()).await; - // The pin resolver is a root-registered port and stays unwired in this - // crate's tests, so the project qualifies as a candidate destination by - // being a git worktree instead of carrying a config pin. + // The project qualifies as a candidate destination by being a git worktree. let project_root = dir.path().join("project"); std::fs::create_dir_all(&project_root).unwrap(); let init = std::process::Command::new(tracedecay_runtime_core::git::try_git_program().unwrap()) diff --git a/crates/tracedecay-sessions/src/runtime/hosts/kiro.rs b/crates/tracedecay-sessions/src/runtime/hosts/kiro.rs index b80fb75f9b..4f81b445aa 100644 --- a/crates/tracedecay-sessions/src/runtime/hosts/kiro.rs +++ b/crates/tracedecay-sessions/src/runtime/hosts/kiro.rs @@ -258,7 +258,7 @@ fn collect_user_workspace_session_files( /// Captures bounded Kiro snapshots through the daemon-owned observation authority. /// /// This deliberately re-reads complete snapshots and derives a new source generation -/// from their content hash; it neither consults nor advances legacy parse offsets. +/// from their content hash; it neither consults nor advances append-only parse offsets. /// `max_new_bytes` is one logical source-byte budget for the complete sweep. #[tracing::instrument(name = "sessions.hosts.kiro.capture", level = "trace", skip_all)] pub async fn capture_kiro_snapshot_observations( diff --git a/crates/tracedecay-sessions/src/runtime/observation/snapshot_observation/admission.rs b/crates/tracedecay-sessions/src/runtime/observation/snapshot_observation/admission.rs index be423ea062..a8ff41506c 100644 --- a/crates/tracedecay-sessions/src/runtime/observation/snapshot_observation/admission.rs +++ b/crates/tracedecay-sessions/src/runtime/observation/snapshot_observation/admission.rs @@ -222,8 +222,8 @@ where /// complete source-generation batches. /// /// This deliberately re-reads complete snapshots and derives a new source -/// generation from their content; it neither consults nor advances legacy parse -/// offsets. `max_new_bytes` is one logical source-byte budget for the complete +/// generation from their content; it neither consults nor advances append-only +/// parse offsets. `max_new_bytes` is one logical source-byte budget for the complete /// sweep. A source the store permanently refuses is quarantined in `sweep` /// and the sweep moves on to the next one. #[allow(clippy::too_many_arguments)] diff --git a/crates/tracedecay-sessions/src/runtime/source/jsonl.rs b/crates/tracedecay-sessions/src/runtime/source/jsonl.rs index 5ae48a93fc..94d5d4f01e 100644 --- a/crates/tracedecay-sessions/src/runtime/source/jsonl.rs +++ b/crates/tracedecay-sessions/src/runtime/source/jsonl.rs @@ -875,7 +875,7 @@ fn rewritten_jsonl_generation( /// Bounded raw JSONL framing shared by skip and defer policies. /// /// The retained record buffer never exceeds `max_record_bytes`. Oversized -/// frames are drained in-place so legacy callers can skip complete records and +/// frames are drained in-place so callers can skip complete records and /// continue without allocating or parsing them. pub struct RawJsonlFrameReader { reader: R, diff --git a/crates/tracedecay-store/src/codex_goal_context.rs b/crates/tracedecay-store/src/codex_goal_context.rs index 8a311edafa..301eb54cf1 100644 --- a/crates/tracedecay-store/src/codex_goal_context.rs +++ b/crates/tracedecay-store/src/codex_goal_context.rs @@ -6,7 +6,7 @@ use sha2::{Digest as _, Sha256}; /// Native Codex record shape that carried a rendered goal context. #[derive(Clone, Copy, Debug, Eq, PartialEq)] pub enum CodexGoalContextSource { - /// Legacy/user `response_item.message` representation. + /// User `response_item.message` representation. ResponseItem, /// Current `event_msg.item_completed/UserMessage` representation. ItemCompleted, @@ -31,7 +31,7 @@ impl CodexGoalContextCorrelation { } } -/// Collect visible text from current and legacy Codex content bags. +/// Collect visible text from current Codex content bags. pub fn codex_message_visible_text(value: &Value) -> String { match value { Value::String(text) => text.clone(), diff --git a/crates/tracedecay-store/src/runtime/ports.rs b/crates/tracedecay-store/src/runtime/ports.rs index 873650f68c..0c9abc1f47 100644 --- a/crates/tracedecay-store/src/runtime/ports.rs +++ b/crates/tracedecay-store/src/runtime/ports.rs @@ -24,9 +24,8 @@ pub enum RuntimeInterruptionV1 { /// /// Both identities must equal those carried by the request. Once /// `interruption` returns a decision, implementations must return that same -/// decision on every later poll. Compatibility adapters poll immediately -/// before and after each legacy call; those calls are not mid-call -/// interruptible. +/// decision on every later poll. Adapters poll immediately before and +/// after each call; those calls are not mid-call interruptible. pub trait RuntimeRequestProbeV1: Send + Sync { fn cancellation_identity(&self) -> &RuntimeCancellationIdentityV1; fn deadline_identity(&self) -> &RuntimeDeadlineV1; @@ -449,8 +448,8 @@ pub enum RuntimeReadResultV1 { #[serde(tag = "kind", rename_all = "snake_case", deny_unknown_fields)] pub enum RuntimeReadCoverageV1 { Latest { - /// Canonical runtime watermark when one exists. Compatibility reads - /// may honestly serve latest state without inventing a commit position. + /// Canonical runtime watermark when one exists. Reads may honestly + /// serve latest state without inventing a commit position. observed: Option, }, Complete { diff --git a/crates/tracedecay-temporal-query/src/context.rs b/crates/tracedecay-temporal-query/src/context.rs index ecbe830484..5074d26e3d 100644 --- a/crates/tracedecay-temporal-query/src/context.rs +++ b/crates/tracedecay-temporal-query/src/context.rs @@ -77,11 +77,11 @@ pub struct TemporalContextFrames { pub summary_omissions: Vec, } -/// Canonical ordered text admission for compatibility bindings that must -/// preserve richer transport metadata around each context block. +/// Canonical ordered text admission for bindings that must preserve richer +/// transport metadata around each context block. /// /// The temporal context module owns the budget and UTF-8-safe slicing policy; -/// callers only translate the admitted slice into their legacy response type. +/// callers only translate the admitted slice into their response type. #[derive(Clone, Debug, PartialEq, Eq)] pub struct OrderedTextContextAdmission { pub content: Option, diff --git a/crates/tracedecay/src/daemon/core_proxy.rs b/crates/tracedecay/src/daemon/core_proxy.rs index 2960aa22a4..7dc1bcba88 100644 --- a/crates/tracedecay/src/daemon/core_proxy.rs +++ b/crates/tracedecay/src/daemon/core_proxy.rs @@ -588,11 +588,11 @@ pub(crate) async fn resolve_daemon_initialize_route( identity, ) => { // An initialize route has no retained configuration authority. - // Never revive legacy-file fallback here, but a fresh repo with - // no published snapshot follows the schema default (auto-init - // enabled), not fail-closed: treating a missing snapshot as - // "disabled" contradicted the config default and left explicit - // initialize-roots repos unable to open at all. + // A fresh repo with no published snapshot follows the schema + // default (auto-init enabled), not fail-closed: treating a + // missing snapshot as "disabled" contradicted the config + // default and left explicit initialize-roots repos unable to + // open at all. let allow_init = tracedecay_project::config::cached_sync_config( profile.data_dir(), &identity.worktree_root, @@ -979,11 +979,7 @@ where } /// Extracts the daemon's advertised version from a proxied `initialize` -/// response (`result.serverInfo.version`, which daemons have always sent). -/// -/// This works against daemons older than the handshake version field, so a -/// freshly-updated client can still detect a stale daemon left running by a -/// non-systemd setup or a plain `tracedecay upgrade`. +/// response (`result.serverInfo.version`). #[cfg(test)] pub(crate) fn proxy_initialize_metadata( request_line: &str, diff --git a/crates/tracedecay/src/daemon/pr_autotrack.rs b/crates/tracedecay/src/daemon/pr_autotrack.rs index 22cf713ca5..a8a28a1b8f 100644 --- a/crates/tracedecay/src/daemon/pr_autotrack.rs +++ b/crates/tracedecay/src/daemon/pr_autotrack.rs @@ -468,8 +468,8 @@ pub(crate) async fn cleanup_manual_branch_activation( /// Retires only the manual artifacts proven by a persisted graph-source entry /// before branch metadata removal commits. The source's exact worktree, -/// synthetic ref, and OID are the ownership proof; a legacy entry without -/// that proof is intentionally left untouched rather than guessing at Git +/// synthetic ref, and OID are the ownership proof; an entry without that +/// proof is refused with a typed activation error rather than guessing at Git /// artifacts. The lifecycle lease returns only after synchronous Git teardown /// finishes, so request cancellation cannot admit a concurrent replacement /// while the blocking worker still owns those artifacts. diff --git a/crates/tracedecay/src/daemon/scheduler.rs b/crates/tracedecay/src/daemon/scheduler.rs index 891e60213e..5d8c2dca07 100644 --- a/crates/tracedecay/src/daemon/scheduler.rs +++ b/crates/tracedecay/src/daemon/scheduler.rs @@ -1556,7 +1556,7 @@ fn global_table_retention_config( }; tracedecay_maintenance::retention::RetentionConfig { // The root retention tree has no analytics-event window. Disabling - // this legacy table is the only mapping that does not invent policy. + // this table is the only mapping that does not invent policy. analytics_events_days: None, lcm_raw_messages_days, } diff --git a/crates/tracedecay/src/mcp/server.rs b/crates/tracedecay/src/mcp/server.rs index 0f61a29b73..a2f27a12cd 100644 --- a/crates/tracedecay/src/mcp/server.rs +++ b/crates/tracedecay/src/mcp/server.rs @@ -883,7 +883,7 @@ impl McpServer { // `TraceDecay` materializes this from one resolved configuration // snapshot when it opens. Copy it once so catch-up, sync-on-read, - // the staleness banner, and telemetry never re-read legacy input, + // the staleness banner, and telemetry never re-read input, // a database, or IPC per call. let sync_config = cg.get_config().sync.clone(); let telemetry_config = cg.get_config().telemetry.clone(); diff --git a/crates/tracedecay/src/mcp/server/requests.rs b/crates/tracedecay/src/mcp/server/requests.rs index 32baf779a6..091ac26a20 100644 --- a/crates/tracedecay/src/mcp/server/requests.rs +++ b/crates/tracedecay/src/mcp/server/requests.rs @@ -998,9 +998,8 @@ impl McpServer { /// Resolves the raw-read counterfactual from the retained cache, falling /// back to bounded metadata reads for files owned by the current response. /// - /// The daemon code-index cutover intentionally stopped reading the legacy - /// graph database's file table, so a cache miss is not evidence that a - /// touched source file costs zero tokens. + /// A cache miss is not evidence that a touched source file costs zero + /// tokens. #[tracing::instrument( name = "mcp.server.accounting.raw_file_tokens", level = "trace", diff --git a/crates/tracedecay/tests/automation_runner_test/jobs.rs b/crates/tracedecay/tests/automation_runner_test/jobs.rs index 293086fdb1..394d5eeacc 100644 --- a/crates/tracedecay/tests/automation_runner_test/jobs.rs +++ b/crates/tracedecay/tests/automation_runner_test/jobs.rs @@ -317,7 +317,7 @@ fn parse_schedule_accepts_five_field_cron_expressions() { assert!(!cron.matches(wednesday_0915 - 3_600)); // 08:15 assert!(!cron.matches(wednesday_0915 + 4 * 86_400)); // Sunday 09:15 - // Legacy shorthands keep working. + // Named shorthands resolve to intervals. assert_eq!( resolve_schedule(Some("hourly"), None).unwrap(), AutomationSchedule::Interval { diff --git a/crates/tracedecay/tests/graph_suite/annotation_helpers_test.rs b/crates/tracedecay/tests/graph_suite/annotation_helpers_test.rs index b8d2624261..5ef5ae6a0a 100644 --- a/crates/tracedecay/tests/graph_suite/annotation_helpers_test.rs +++ b/crates/tracedecay/tests/graph_suite/annotation_helpers_test.rs @@ -1,16 +1,9 @@ //! Annotation emission behavior, asserted end-to-end through the real //! `JavaExtractor` / `KotlinExtractor` production path. //! -//! These tests previously drove the crate-private `emit_annotation_usage` and -//! `scan_children_for_annotation_kinds` helpers through a hand-rolled -//! `AnnotationEmitterState` mock, reached by `#[path]`-including a *copy* of -//! `crates/tracedecay-code-extraction/src/annotations.rs` into this test -//! binary (with a `crate::types` shim in `main.rs` to make the copy compile). -//! The two extractors are the only production callers of those helpers, so -//! driving the extractors covers the same emission logic, node kind, name, -//! signature, `attrs_start_line`, `Annotates` edge, and the unresolved ref, -//! without the mock, and without a source copy that can silently drift from -//! the crate it was copied out of. +//! These tests drive the Java and Kotlin extractors and assert the annotation +//! node kind, name, signature, `attrs_start_line`, `Annotates` edge, and the +//! unresolved ref. use tracedecay_code_extraction::{JavaExtractor, KotlinExtractor, LanguageExtractor}; use tracedecay_domain::code_intelligence::{Edge, EdgeKind, ExtractionResult, Node, NodeKind}; diff --git a/crates/tracedecay/tests/mcp_suite/mcp_handler_test/edit_test.rs b/crates/tracedecay/tests/mcp_suite/mcp_handler_test/edit_test.rs index 5ca6322c9b..d14c20b4d6 100644 --- a/crates/tracedecay/tests/mcp_suite/mcp_handler_test/edit_test.rs +++ b/crates/tracedecay/tests/mcp_suite/mcp_handler_test/edit_test.rs @@ -469,9 +469,6 @@ async fn test_replace_symbol_documented_fn_keeps_single_doc_comment() { let project = project_root.as_path(); fs::create_dir_all(project.join("src")).unwrap(); - // A leading item keeps `foo` off row 0 so its extracted attrs_start_line is - // non-zero and survives the DB round-trip (a stored 0 is treated as a - // pre-v7 sentinel and falls back to start_line). fs::write( project.join("src/main.rs"), "pub const N: u32 = 0;\n/// Doc for foo.\nfn foo() {\n let _ = 1;\n}\n", diff --git a/crates/tracedecay/tests/mcp_suite/mcp_handler_test/lcm_test.rs b/crates/tracedecay/tests/mcp_suite/mcp_handler_test/lcm_test.rs index b6547b3f75..67b8171914 100644 --- a/crates/tracedecay/tests/mcp_suite/mcp_handler_test/lcm_test.rs +++ b/crates/tracedecay/tests/mcp_suite/mcp_handler_test/lcm_test.rs @@ -1302,7 +1302,7 @@ async fn lcm_status_cli_bridge_accepts_json_args() { let project_arg = cg.project_root().display().to_string(); close_test_graph(cg).await; let _daemon = common::spawn_tracedecay_daemon(&home); - // Compatibility `tracedecay tool` still returns the typed warming state + // `tracedecay tool` still returns the typed warming state // from `call_default_tool_within` without an internal project-open retry // (unlike the typed application-surface CLI path). Waiting that documented // retryable state out is the client protocol for this bridge. diff --git a/dashboard/src/data/query/envelope.ts b/dashboard/src/data/query/envelope.ts index 81ba6385bb..78790f866a 100644 --- a/dashboard/src/data/query/envelope.ts +++ b/dashboard/src/data/query/envelope.ts @@ -10,7 +10,7 @@ export type EnvelopeResult = | { outcome: 'transport'; state: DashboardDomainStateV1; detail?: string; responseReceived?: true }; /** Dashboard envelopes retain domain state even on non-2xx responses. Unlike - * legacy payload routes, an absent payload can itself be a typed reading. */ + * payload routes, an absent payload can itself be a typed reading. */ export async function fetchEnvelope( url: string, payloadSchema: WireSchema, diff --git a/dashboard/src/data/query/payload.ts b/dashboard/src/data/query/payload.ts index 2a8ba2a4b0..184e3d0ba7 100644 --- a/dashboard/src/data/query/payload.ts +++ b/dashboard/src/data/query/payload.ts @@ -2,7 +2,7 @@ import { decodeJsonBody, fetchJsonResponse, UNDECODABLE } from './responseBody.t import type { WireSchema } from './wireSchema.ts'; import { readOnlyScopeRefusal, type ReadOnlyScopeRefusal } from '../scope/store.ts'; -/** Legacy payload routes publish the schema itself, not a DashboardEnvelope. +/** Payload routes publish the schema itself, not a DashboardEnvelope. * Keep their canonical unavailable responses distinct from transport errors. */ export type PayloadResult = | { outcome: 'ok'; data: T } diff --git a/dashboard/src/data/sse/connect.ts b/dashboard/src/data/sse/connect.ts index d2905c6abb..c45b76b9d3 100644 --- a/dashboard/src/data/sse/connect.ts +++ b/dashboard/src/data/sse/connect.ts @@ -46,9 +46,8 @@ export interface LiveActivityPulse { /** Client receipt time (ms since epoch). */ at: number; /** The daemon's bounded detail word for the pulse (`leased`, `file_edit`, - * …) when the family carried one; `null` when the frame named none. Absent - * on pulses built before this field existed. */ - detail?: string | null; + * …) when the family carried one; `null` when the frame named none. */ + detail: string | null; } export interface SseConnection { diff --git a/dashboard/src/viz/trace/reducedMotion.ts b/dashboard/src/viz/trace/reducedMotion.ts index a27f794979..fa4cabccb2 100644 --- a/dashboard/src/viz/trace/reducedMotion.ts +++ b/dashboard/src/viz/trace/reducedMotion.ts @@ -111,8 +111,8 @@ export function useReducedMotion(): { if (typeof window.matchMedia !== 'function') return; const media = window.matchMedia(QUERY); const onChange = () => setSystemReduced(media.matches); - // Safari < 14 only has the deprecated form; both are guarded so a missing - // one never throws during render of an otherwise working surface. + // Guarded so a missing listener API never throws during render of an + // otherwise working surface. media.addEventListener?.('change', onChange); return () => media.removeEventListener?.('change', onChange); }, []); diff --git a/dashboard/src/workspaces/brain/BrainInteraction.dom.test.tsx b/dashboard/src/workspaces/brain/BrainInteraction.dom.test.tsx index b7a2a8dc9e..0d45d0c5d5 100644 --- a/dashboard/src/workspaces/brain/BrainInteraction.dom.test.tsx +++ b/dashboard/src/workspaces/brain/BrainInteraction.dom.test.tsx @@ -119,6 +119,7 @@ describe('Brain exact interaction identity', () => { family: 'heartbeat', streamId: 'heartbeat', at: Date.now(), + detail: null, }, ]; stream.revision = 1; diff --git a/dashboard/src/workspaces/brain/SignalPanel.dom.test.tsx b/dashboard/src/workspaces/brain/SignalPanel.dom.test.tsx index a88f6e81d9..bf58c3c8fa 100644 --- a/dashboard/src/workspaces/brain/SignalPanel.dom.test.tsx +++ b/dashboard/src/workspaces/brain/SignalPanel.dom.test.tsx @@ -13,15 +13,16 @@ const NOW = 1_700_000_000_000; function pulses(): LiveActivityPulse[] { return [ - { projectId: 'p1', family: 'heartbeat', streamId: 'heartbeat', at: NOW - 400_000, + { projectId: 'p1', family: 'heartbeat', streamId: 'heartbeat', at: NOW - 400_000, detail: null, eventId: 'fixture:heartbeat:1', observationTime: String((NOW - 400_000) * 1000) }, - { projectId: 'p1', family: 'heartbeat', streamId: 'heartbeat', at: NOW - 380_000, + { projectId: 'p1', family: 'heartbeat', streamId: 'heartbeat', at: NOW - 380_000, detail: null, eventId: 'fixture:heartbeat:2', observationTime: String((NOW - 380_000) * 1000) }, { projectId: 'p1', family: 'code_index_completed', streamId: 'code_index', at: NOW - 370_000, + detail: null, eventId: 'fixture:code_index:1', observationTime: String((NOW - 370_000) * 1000), }, diff --git a/dashboard/src/workspaces/brain/activitySummary.test.ts b/dashboard/src/workspaces/brain/activitySummary.test.ts index 7679677843..f104495b0f 100644 --- a/dashboard/src/workspaces/brain/activitySummary.test.ts +++ b/dashboard/src/workspaces/brain/activitySummary.test.ts @@ -3,7 +3,7 @@ import type { LiveActivityPulse } from '../../data/sse/connect.ts'; import { ageTickIntervalMs, formatDurationMs, summarizeActivity, RATE_WINDOW_MS } from './activitySummary.ts'; function pulse(family: string, at: number): LiveActivityPulse { - return { projectId: 'p1', family, streamId: 'code_index', at, + return { projectId: 'p1', family, streamId: 'code_index', at, detail: null, eventId: `fixture:${family}:${at}`, observationTime: String(at * 1000) }; } diff --git a/dashboard/src/workspaces/brain/registryScene.test.ts b/dashboard/src/workspaces/brain/registryScene.test.ts index decade0ec7..328f06537c 100644 --- a/dashboard/src/workspaces/brain/registryScene.test.ts +++ b/dashboard/src/workspaces/brain/registryScene.test.ts @@ -47,7 +47,7 @@ function scene() { } function pulse(projectId: string | null, family = 'tool_call_activity'): LiveActivityPulse { - return { eventId: 'e1', observationTime: '1', projectId, family, streamId: 'tool_call', at: 0 }; + return { eventId: 'e1', observationTime: '1', projectId, family, streamId: 'tool_call', at: 0, detail: null }; } describe('buildRegistryScene', () => { diff --git a/dashboard/src/workspaces/work/WorkTaskActivity.dom.test.tsx b/dashboard/src/workspaces/work/WorkTaskActivity.dom.test.tsx index 61f28182eb..1594686d05 100644 --- a/dashboard/src/workspaces/work/WorkTaskActivity.dom.test.tsx +++ b/dashboard/src/workspaces/work/WorkTaskActivity.dom.test.tsx @@ -30,7 +30,7 @@ vi.mock('../../data/sse/useEvents.tsx', () => ({ })); function pulse(family: string, projectId: string | null = 'project.alpha'): LiveActivityPulse { - return { projectId, family, streamId: `${family}:${projectId ?? 'none'}`, at: 1, + return { projectId, family, streamId: `${family}:${projectId ?? 'none'}`, at: 1, detail: null, eventId: `fixture:${family}:${projectId ?? 'none'}`, observationTime: '1000' }; } From a7b42bb2a35dc1bf8329619830fd29ebf4596b7b Mon Sep 17 00:00:00 2001 From: Zack Jackson <25274700+ScriptedAlchemy@users.noreply.github.com> Date: Wed, 28 Oct 2026 21:56:52 -0700 Subject: [PATCH 03/13] refactor(compat): drop dead re-exports and rename aliases (U3) Items removed: L014, L015, L017, L018, L019, L020, L021. - L014: delete CanonicalEvidenceHit::compatibility_hit and the orphaned tracedecay_lcm::LcmGrepHit; skill_writer reads CanonicalEvidenceHit. - L015: rename AutomationConfig, AutomationTaskConfig, AutomationTaskSet, AutomationBackend, AutomationHostMode, SkillUsageSummary and AutomationSettledProblem to their V1/Record domain names in 61 files and delete the `as` re-export renames and the two `pub type` aliases. - L017: delete the identity legacy_/registered_registry_reap_* copy converters in the profile registry test support. - L018: delete runtime_core::windows_security; callers use tracedecay_private_fs::windows (daemon-control gains a cfg(windows) tracedecay-private-fs dependency; Cargo.lock updated). - L019: delete RetainedSessionRefreshPortV1; callers use tracedecay_session_memory::session::SessionRefreshServicePort. - L020: delete CLAUDE_SESSION_MESSAGE_PROJECTOR_VERSION; tests use SESSION_MESSAGE_PROJECTOR_VERSION. - L021: delete the mcp_server_test re-export; three callers use mcp_server_test::support. Tests deleted: none. Upgrade impact: none. Source-level renames only; serialized shapes are unchanged. Co-Authored-By: Claude Opus 5.5 --- Cargo.lock | 1 + .../src/agents/context_scout/model.rs | 26 +- .../src/automation/backend.rs | 18 +- .../src/automation/backend_identity.rs | 15 +- .../src/automation/config.rs | 12 +- .../src/automation/effect_runtime.rs | 2 +- .../src/automation/effect_runtime/journal.rs | 14 +- .../src/automation/effect_runtime/problem.rs | 7 +- .../automation/effect_runtime/settlement.rs | 19 +- .../effect_runtime/settlement/tests.rs | 34 ++- .../src/automation/effect_runtime/terminal.rs | 12 +- .../src/automation/jobs.rs | 14 +- .../automation/jobs/scheduler_config_tests.rs | 6 +- .../src/automation/jobs/scheduler_gate.rs | 12 +- .../src/automation/lifecycle.rs | 32 ++- .../src/automation/lifecycle/tests.rs | 70 ++--- .../src/automation/memory_curator.rs | 8 +- .../src/automation/memory_curator/tests.rs | 2 +- .../src/automation/outcomes.rs | 6 +- .../run_ledger/exact_publication.rs | 2 +- .../src/automation/runner.rs | 11 +- .../src/automation/runner/curation.rs | 10 +- .../src/automation/runner/evidence.rs | 39 +-- .../automation/runner/session_reflector.rs | 14 +- .../src/automation/runner/skill_writer.rs | 14 +- .../src/automation/runner/tests/early_gate.rs | 24 +- .../src/automation/scheduler.rs | 59 ++-- .../src/automation/skill_usage.rs | 8 +- .../automation/skill_usage/recommendations.rs | 16 +- .../src/automation/skill_writer.rs | 12 +- crates/tracedecay-automation/src/backend.rs | 4 +- crates/tracedecay-automation/src/config.rs | 66 ++--- .../src/agent_cmd/automation.rs | 6 +- .../src/automation_cli/config.rs | 32 +-- .../src/config/mod.rs | 6 +- .../src/configuration/user_settings.rs | 8 +- crates/tracedecay-daemon-control/Cargo.toml | 1 + .../src/service/windows_task.rs | 71 +++-- .../src/authority/windows_acl.rs | 2 +- .../src/profile_identity.rs | 4 +- .../src/automation_effect/journal/tests.rs | 29 +- .../src/retained_owner.rs | 5 +- .../profile_refresh_journeys.rs | 7 +- .../src/retained_owner/retained_curator.rs | 4 +- .../src/automation_config_api.rs | 6 +- .../src/automation_scheduler_api.rs | 20 +- .../src/capabilities.rs | 8 +- crates/tracedecay-lcm/src/lib.rs | 8 +- crates/tracedecay-lcm/src/types.rs | 15 - .../profile_registry_test_support.rs | 90 +----- .../src/db/access/owner_io.rs | 6 +- crates/tracedecay-runtime-core/src/lib.rs | 2 - .../src/storage/paths_and_io.rs | 2 +- .../src/user_config.rs | 8 +- .../src/retained.rs | 1 - .../src/retained/profile.rs | 4 +- .../src/retained/session.rs | 16 +- .../src/retained/session_refresh.rs | 7 +- crates/tracedecay-store/src/lib.rs | 6 +- crates/tracedecay-store/src/projection.rs | 1 - .../src/daemon/dashboard_automation.rs | 18 +- .../tracedecay/src/daemon/profile_retained.rs | 7 +- .../advisory_runtime/scout_journey_tests.rs | 22 +- crates/tracedecay/src/daemon/scheduler.rs | 16 +- .../src/daemon/scheduler/combined_effect.rs | 12 +- .../src/daemon/scheduler/effect_admission.rs | 2 +- crates/tracedecay/src/daemon/tests.rs | 2 +- .../src/daemon/tests/scheduler_config.rs | 40 +-- .../tests/scheduler_config/paused_tick.rs | 4 +- .../tests/automation_runner_test/backend.rs | 28 +- .../automation_runner_test/combined_review.rs | 2 +- .../tests/automation_runner_test/config.rs | 18 +- .../tests/automation_runner_test/jobs.rs | 20 +- .../automation_runner_test/memory_curator.rs | 112 ++++---- .../memory_curator/backend_failures.rs | 36 +-- .../memory_curator/manual_trigger.rs | 24 +- .../memory_curator/pagination.rs | 8 +- .../tests/automation_runner_test/scheduler.rs | 38 +-- .../session_reflector.rs | 268 +++++++++--------- .../automation_runner_test/skill_writer.rs | 24 +- .../tests/automation_runner_test/support.rs | 54 ++-- .../support/settlement.rs | 12 +- .../dashboard_api_test/automation_jobs.rs | 2 +- .../automation_run_list_behavior_test.rs | 2 +- .../session_refresh_cancel_test.rs | 2 +- .../tests/mcp_suite/mcp_server_test.rs | 3 - crates/tracedecay/tests/mcp_suite/support.rs | 21 +- .../tests/mcp_suite/workflow_query_test.rs | 14 +- .../observation_projection/mod.rs | 11 +- .../observation_projection/queue.rs | 8 +- .../observation_projection/rebuild.rs | 12 +- 91 files changed, 841 insertions(+), 965 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 43895b7f71..914f0145cc 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -6568,6 +6568,7 @@ dependencies = [ "tracedecay-daemon-identity", "tracedecay-daemon-protocol", "tracedecay-domain", + "tracedecay-private-fs", "tracedecay-runtime-core", "tracing", "windows", diff --git a/crates/tracedecay-agent-hosts/src/agents/context_scout/model.rs b/crates/tracedecay-agent-hosts/src/agents/context_scout/model.rs index 9472c0c103..dddbd0f953 100644 --- a/crates/tracedecay-agent-hosts/src/agents/context_scout/model.rs +++ b/crates/tracedecay-agent-hosts/src/agents/context_scout/model.rs @@ -12,7 +12,9 @@ use tracedecay_automation_runtime::automation::backend::{ AgentTaskBackend, AgentTaskContract, AgentTaskError, AgentTaskKind, AgentTaskRequest, AgentTaskResponse, CodexAppServerBackend, backend_availability, }; -use tracedecay_automation_runtime::automation::config::{AutomationBackend, AutomationConfig}; +use tracedecay_automation_runtime::automation::config::{ + AutomationBackendV1, AutomationSettingsV1, +}; use tracedecay_domain::configuration::LcmSummarizerExecutableV1; use tracedecay_runtime_core::native_runtime; use tracedecay_session_memory::provider_pricing::{cost_of_usage, load_table}; @@ -21,7 +23,7 @@ use tracedecay_session_memory::provider_pricing::{cost_of_usage, load_table}; /// configuration snapshot binds for the Scout model route. #[derive(Clone, Copy)] pub struct ContextScoutModelConfig<'a> { - pub automation: &'a AutomationConfig, + pub automation: &'a AutomationSettingsV1, pub codex: &'a LcmSummarizerExecutableV1, } @@ -35,14 +37,14 @@ state, such as which value was expected or what caused a failure. Do not call to files, run commands, access credentials, mutate state."; pub fn context_scout_backend_from_automation_config( - config: &AutomationConfig, + config: &AutomationSettingsV1, ) -> ContextScoutModelBackendV1 { if !config.enabled { return ContextScoutModelBackendV1::Disabled; } match config.backend { - AutomationBackend::Disabled => ContextScoutModelBackendV1::Disabled, - AutomationBackend::CodexAppServer => ContextScoutModelBackendV1::CodexAppServer, + AutomationBackendV1::Disabled => ContextScoutModelBackendV1::Disabled, + AutomationBackendV1::CodexAppServer => ContextScoutModelBackendV1::CodexAppServer, } } @@ -442,23 +444,23 @@ mod tests { ContextScoutModelBackendV1::Disabled ); assert_eq!( - context_scout_backend_from_automation_config(&AutomationConfig::default()), + context_scout_backend_from_automation_config(&AutomationSettingsV1::default()), ContextScoutModelBackendV1::CodexAppServer ); assert_eq!( - context_scout_backend_from_automation_config(&AutomationConfig { + context_scout_backend_from_automation_config(&AutomationSettingsV1 { enabled: false, - backend: AutomationBackend::CodexAppServer, - ..AutomationConfig::default() + backend: AutomationBackendV1::CodexAppServer, + ..AutomationSettingsV1::default() }), ContextScoutModelBackendV1::Disabled ); assert_eq!( - context_scout_backend_from_automation_config(&AutomationConfig { + context_scout_backend_from_automation_config(&AutomationSettingsV1 { enabled: true, - backend: AutomationBackend::Disabled, + backend: AutomationBackendV1::Disabled, model_id: None, - ..AutomationConfig::default() + ..AutomationSettingsV1::default() }), ContextScoutModelBackendV1::Disabled ); diff --git a/crates/tracedecay-automation-runtime/src/automation/backend.rs b/crates/tracedecay-automation-runtime/src/automation/backend.rs index ec5084b81f..cb951920e2 100644 --- a/crates/tracedecay-automation-runtime/src/automation/backend.rs +++ b/crates/tracedecay-automation-runtime/src/automation/backend.rs @@ -13,7 +13,7 @@ pub use tracedecay_automation::backend::{ pub use tracedecay_contracts::automation::AgentTaskRetryAttempt; use tracedecay_domain::configuration::LcmSummarizerExecutableV1; -use super::config::{AutomationBackend, AutomationConfig}; +use super::config::{AutomationBackendV1, AutomationSettingsV1}; use crate::ports::codex_app_server::{ SummaryConfig as CodexAppServerSummaryConfig, run_prompt as run_prompt_with_codex_app_server, }; @@ -85,19 +85,19 @@ pub const CODEX_EXECUTABLE_UNCONFIGURED: &str = /// Whether the configured backend can run, given the `codex` executable the /// project's configuration snapshot binds. Nothing is resolved from `PATH`. pub fn backend_availability( - config: &AutomationConfig, + config: &AutomationSettingsV1, codex: &LcmSummarizerExecutableV1, ) -> AgentBackendAvailability { match config.backend { - AutomationBackend::Disabled => AgentBackendAvailability { - backend: AutomationBackend::Disabled, + AutomationBackendV1::Disabled => AgentBackendAvailability { + backend: AutomationBackendV1::Disabled, available: false, executable: None, reason: Some("automation backend is disabled".to_string()), }, - AutomationBackend::CodexAppServer => match codex.canonical_path() { + AutomationBackendV1::CodexAppServer => match codex.canonical_path() { None => AgentBackendAvailability { - backend: AutomationBackend::CodexAppServer, + backend: AutomationBackendV1::CodexAppServer, available: false, executable: None, reason: Some(CODEX_EXECUTABLE_UNCONFIGURED.to_string()), @@ -106,14 +106,14 @@ pub fn backend_availability( let executable = path.to_string_lossy().into_owned(); if path.is_file() { AgentBackendAvailability { - backend: AutomationBackend::CodexAppServer, + backend: AutomationBackendV1::CodexAppServer, available: true, executable: Some(executable), reason: None, } } else { AgentBackendAvailability { - backend: AutomationBackend::CodexAppServer, + backend: AutomationBackendV1::CodexAppServer, available: false, reason: Some(format!( "codex app-server backend executable '{executable}' was not found" @@ -211,7 +211,7 @@ pub struct CodexAppServerBackend { impl CodexAppServerBackend { pub fn from_automation_config( - config: &AutomationConfig, + config: &AutomationSettingsV1, codex: &LcmSummarizerExecutableV1, ) -> Self { Self::new(config.model_id.clone(), config.timeout_secs, codex) diff --git a/crates/tracedecay-automation-runtime/src/automation/backend_identity.rs b/crates/tracedecay-automation-runtime/src/automation/backend_identity.rs index c8e949ff18..58528e6a2e 100644 --- a/crates/tracedecay-automation-runtime/src/automation/backend_identity.rs +++ b/crates/tracedecay-automation-runtime/src/automation/backend_identity.rs @@ -11,7 +11,7 @@ //! counter. This module computes one: a content digest over //! //! * the **effective automation configuration revision**, the full -//! [`AutomationConfig`] the run executed under. A content digest is the +//! [`AutomationSettingsV1`] the run executed under. A content digest is the //! configuration's revision: it changes exactly when the effective settings //! change, and (unlike a monotonic revision counter) never advances for a //! rewrite that leaves the settings identical. Backend kind, host mode, @@ -45,7 +45,7 @@ use serde_json::{Value, json}; use tracedecay_domain::canonical_sha256; use super::backend::AgentTaskFailureClass; -use super::config::{AutomationBackend, AutomationConfig}; +use super::config::{AutomationBackendV1, AutomationSettingsV1}; use super::config_error; use tracedecay_domain::errors::Result; @@ -99,7 +99,10 @@ fn executable_digest_cache() -> &'static Mutex) -> Result { +pub fn backend_identity( + config: &AutomationSettingsV1, + executable: Option<&Path>, +) -> Result { // `canonical_sha256` is the crate's one identity primitive: key-ordered, // whitespace-free, and already used to derive the configuration identity // that curation decisions are bound to. @@ -125,12 +128,12 @@ pub fn backend_identity(config: &AutomationConfig, executable: Option<&Path>) -> /// digest. A missing or unreadable executable stays a typed /// `path` + `unreadable` component so identity remains computable. fn backend_executable_identity( - config: &AutomationConfig, + config: &AutomationSettingsV1, executable: Option<&Path>, ) -> Option { match config.backend { - AutomationBackend::Disabled => None, - AutomationBackend::CodexAppServer => executable.map(|path| { + AutomationBackendV1::Disabled => None, + AutomationBackendV1::CodexAppServer => executable.map(|path| { opened_executable_identity(path).unwrap_or_else(|| { json!({ "path": path.to_string_lossy(), diff --git a/crates/tracedecay-automation-runtime/src/automation/config.rs b/crates/tracedecay-automation-runtime/src/automation/config.rs index 0886ee81ce..e080478cba 100644 --- a/crates/tracedecay-automation-runtime/src/automation/config.rs +++ b/crates/tracedecay-automation-runtime/src/automation/config.rs @@ -1,23 +1,23 @@ //! Runtime adapter for daemon-owned automation configuration. pub use tracedecay_automation::config::{ - AdmittedAutomationConfig, AutomationBackend, AutomationConfig, AutomationConfigPatch, - AutomationHostMode, AutomationSchedule, AutomationTaskConfig, AutomationTaskPatch, - AutomationTaskSet, CronSchedule, DEFAULT_SCHEDULER_TICK_SECS, RetentionConfig, + AdmittedAutomationConfig, AutomationBackendV1, AutomationConfigPatch, AutomationHostModeV1, + AutomationSchedule, AutomationSettingsV1, AutomationTaskPatch, AutomationTaskSetV1, + AutomationTaskSettingsV1, CronSchedule, DEFAULT_SCHEDULER_TICK_SECS, RetentionConfig, ScheduleResolutionError, admit_config, }; use tracedecay_domain::errors::Result; pub fn effective_config( - global: &AutomationConfig, + global: &AutomationSettingsV1, project: Option<&AutomationConfigPatch>, -) -> Result { +) -> Result { Ok(tracedecay_automation::config::effective_config( global, project, )?) } -pub fn validate_config(config: &AutomationConfig) -> Result<()> { +pub fn validate_config(config: &AutomationSettingsV1) -> Result<()> { Ok(tracedecay_automation::config::validate_config(config)?) } diff --git a/crates/tracedecay-automation-runtime/src/automation/effect_runtime.rs b/crates/tracedecay-automation-runtime/src/automation/effect_runtime.rs index 98c3633d62..2dfddcbeab 100644 --- a/crates/tracedecay-automation-runtime/src/automation/effect_runtime.rs +++ b/crates/tracedecay-automation-runtime/src/automation/effect_runtime.rs @@ -34,4 +34,4 @@ pub use settlement::{ RetainedAutomationSettlementProjection, RetainedSettlementPairWaiter, RetainedSettlementWaiter, ReusedSchedulerSkipStartError, pinned_automation_configuration_digest, }; -pub use terminal::{AutomationSettledProblem, AutomationSettledTerminal, curate_receipt_outcome}; +pub use terminal::{AutomationSettledTerminal, curate_receipt_outcome}; diff --git a/crates/tracedecay-automation-runtime/src/automation/effect_runtime/journal.rs b/crates/tracedecay-automation-runtime/src/automation/effect_runtime/journal.rs index c4754dee71..027aab9085 100644 --- a/crates/tracedecay-automation-runtime/src/automation/effect_runtime/journal.rs +++ b/crates/tracedecay-automation-runtime/src/automation/effect_runtime/journal.rs @@ -21,7 +21,8 @@ use tracedecay_private_fs::framed_log::{ }; use super::contract::contract_error; -use super::terminal::{AutomationSettledProblem, AutomationSettledTerminal}; +use super::terminal::AutomationSettledTerminal; +use tracedecay_contracts::retained_surfaces::AutomationRunProblemV1; use tracedecay_domain::errors::{Result, TraceDecayError}; /// Production builds keep the item crate-private. Test / `test-helpers` builds @@ -102,18 +103,18 @@ pub struct DurableAutomationAdmission { pub enum AutomationRecoveryBinding { Memory { owner: FactOwnerV1, - recovery_problem: AutomationSettledProblem, + recovery_problem: AutomationRunProblemV1, }, /// External effects have no canonical destination-side receipt store. /// Restart recovery must close them with this typed indeterminate problem /// and must never repeat the delivery or skill mutation. External { - recovery_problem: AutomationSettledProblem, + recovery_problem: AutomationRunProblemV1, }, } impl DurableAutomationAdmission { - pub fn recovery_problem(&self) -> &AutomationSettledProblem { + pub fn recovery_problem(&self) -> &AutomationRunProblemV1 { match &self.recovery { AutomationRecoveryBinding::Memory { recovery_problem, .. @@ -1298,8 +1299,7 @@ pub fn replace_automation_file_atomically( ) -> std::io::Result<()> { #[cfg(windows)] { - let temporary_file = - tracedecay_runtime_core::windows_security::make_private_file(temporary)?; + let temporary_file = tracedecay_private_fs::windows::make_private_file(temporary)?; temporary_file.sync_all()?; drop(temporary_file); } @@ -1310,7 +1310,7 @@ pub fn replace_automation_file_atomically( ) .map_err(std::io::Error::other)?; #[cfg(windows)] - tracedecay_runtime_core::windows_security::validate_private_file(destination)?; + tracedecay_private_fs::windows::validate_private_file(destination)?; Ok(()) } diff --git a/crates/tracedecay-automation-runtime/src/automation/effect_runtime/problem.rs b/crates/tracedecay-automation-runtime/src/automation/effect_runtime/problem.rs index aff871a682..6ae50d4b34 100644 --- a/crates/tracedecay-automation-runtime/src/automation/effect_runtime/problem.rs +++ b/crates/tracedecay-automation-runtime/src/automation/effect_runtime/problem.rs @@ -11,14 +11,13 @@ use tracedecay_contracts::{ use crate::automation::run_ledger::AutomationRunLedgerRecord; use super::contract::contract_error; -use super::terminal::AutomationSettledProblem; use tracedecay_domain::errors::{Result, TraceDecayError}; pub fn reset_required_problem( operation: &tracedecay_contracts::ApplicationOperation, context: &RequestContext, request: &AutomationRunRequestV1, -) -> Result { +) -> Result { zero_effect_terminal( operation, context, @@ -37,7 +36,7 @@ pub fn indeterminate_external_effect_problem( operation: &tracedecay_contracts::ApplicationOperation, context: &RequestContext, request: &AutomationRunRequestV1, -) -> Result { +) -> Result { zero_effect_terminal( operation, context, @@ -167,7 +166,7 @@ fn zero_effect_terminal( context: &RequestContext, request: &AutomationRunRequestV1, problem: ApplicationProblem, -) -> Result { +) -> Result { problem.validate().map_err(contract_error)?; let problem = ApplicationProblemEnvelope::new( operation.result_contract().clone(), diff --git a/crates/tracedecay-automation-runtime/src/automation/effect_runtime/settlement.rs b/crates/tracedecay-automation-runtime/src/automation/effect_runtime/settlement.rs index 3f2c8da7bd..7dcf0ea574 100644 --- a/crates/tracedecay-automation-runtime/src/automation/effect_runtime/settlement.rs +++ b/crates/tracedecay-automation-runtime/src/automation/effect_runtime/settlement.rs @@ -47,8 +47,8 @@ use crate::automation::effect_runtime::projection::{ project_skip_reason, }; use crate::automation::effect_runtime::{ - AutomationSettledProblem, AutomationSettledTerminal, add_pending_blocking, contract_error, - curate_receipt_outcome, digest, effect_authority_digest as calculate_effect_authority_digest, + AutomationSettledTerminal, add_pending_blocking, contract_error, curate_receipt_outcome, + digest, effect_authority_digest as calculate_effect_authority_digest, finalize_terminal_housekeeping, journal, recovered_partial_terminal, remove_pending_blocking, }; use crate::automation::run_ledger::{ @@ -233,7 +233,7 @@ pub enum RetainedAutomationSettlementOutcome { record: AutomationRunLedgerRecord, }, Problem { - problem: Box, + problem: Box, record: Option, }, Reused { @@ -820,9 +820,8 @@ impl AutomationEffectAuthority { error: AutomationRunError, guard: AutomationRunSettlementGuard, observer: Option, - ) -> RetainedSettlementWaiter< - Result<(AutomationSettledProblem, Option)>, - > { + ) -> RetainedSettlementWaiter)>> + { RetainedSettlementWaiter::start(move || { self.settle_retained_problem_blocking( error, @@ -952,7 +951,7 @@ impl AutomationEffectAuthority { guard: RetainedSettlementGuardOwner, observer: Option, #[cfg(test)] phase_hook: Option, - ) -> Result)>> + ) -> Result)>> { let projection = match error { AutomationRunError::PartialEffect { @@ -1523,7 +1522,7 @@ impl AutomationEffectAuthority { committed_receipt: Box, detail: String, committed_outer_result: AutomationRunResultV1, - ) -> Result { + ) -> Result { let problem = retained_surface_execution_problem(RetainedSurfaceExecutionErrorV1::PartialEffect { reason_code, @@ -1617,7 +1616,7 @@ impl AutomationEffectAuthority { run_id: &str, committed: &AutomationCommittedReceipt, detail: &'static str, - ) -> Result { + ) -> Result { if run_id != self.admission.request.run_id.as_str() { return Err(contract_error( "automation run identity changed before settlement", @@ -1656,7 +1655,7 @@ impl AutomationEffectAuthority { &self, problem: ApplicationProblem, committed_receipts: Vec, - ) -> Result { + ) -> Result { problem.validate().map_err(contract_error)?; let problem = ApplicationProblemEnvelope::new( self.operation.result_contract().clone(), diff --git a/crates/tracedecay-automation-runtime/src/automation/effect_runtime/settlement/tests.rs b/crates/tracedecay-automation-runtime/src/automation/effect_runtime/settlement/tests.rs index 93dcb4552a..f9e6791e89 100644 --- a/crates/tracedecay-automation-runtime/src/automation/effect_runtime/settlement/tests.rs +++ b/crates/tracedecay-automation-runtime/src/automation/effect_runtime/settlement/tests.rs @@ -224,10 +224,7 @@ fn write_private_test_file(path: &std::path::Path, bytes: &[u8]) { .expect("private test file mode"); } #[cfg(windows)] - drop( - tracedecay_runtime_core::windows_security::make_private_file(path) - .expect("private test file ACL"), - ); + drop(tracedecay_private_fs::windows::make_private_file(path).expect("private test file ACL")); } fn retained_external_authority( @@ -349,17 +346,19 @@ async fn retained_disabled_user_job_run( job_id: &str, ) -> crate::automation::runner::RetainedAutomationRun { - use crate::automation::config::{AutomationBackend, AutomationConfig, AutomationHostMode}; + use crate::automation::config::{ + AutomationBackendV1, AutomationHostModeV1, AutomationSettingsV1, + }; use crate::automation::jobs::{ AutomationJob, JobDelivery, UserJobRunOptions, run_user_job_with_backend_for_retained_settlement, }; - let config = AutomationConfig { + let config = AutomationSettingsV1 { enabled: true, - backend: AutomationBackend::CodexAppServer, - host_mode: AutomationHostMode::Standalone, - ..AutomationConfig::default() + backend: AutomationBackendV1::CodexAppServer, + host_mode: AutomationHostModeV1::Standalone, + ..AutomationSettingsV1::default() }; let job = AutomationJob { id: job_id.to_owned(), @@ -977,14 +976,13 @@ fn indexed_terminal_publishers_replace_a_held_journal_with_private_files() { ReservationResult::Execute { claim, .. } => claim, _ => panic!("fresh indexed reservation must execute"), }; - tracedecay_runtime_core::windows_security::validate_private_file(&journal_path) + tracedecay_private_fs::windows::validate_private_file(&journal_path) .expect("private Reserved journal"); - tracedecay_runtime_core::windows_security::validate_private_file(&pending_index_path) + tracedecay_private_fs::windows::validate_private_file(&pending_index_path) .expect("private pending index"); let reserved_bytes = std::fs::read(&journal_path).expect("Reserved journal bytes"); - let mut held_reader = - tracedecay_runtime_core::windows_security::open_private_file(&journal_path) - .expect("held Reserved journal reader"); + let mut held_reader = tracedecay_private_fs::windows::open_private_file(&journal_path) + .expect("held Reserved journal reader"); let terminal = AutomationSettledTerminal::Problem(admission.recovery_problem().clone()); persist_terminal_blocking(&journal_path, &admission, terminal) @@ -1006,13 +1004,13 @@ fn indexed_terminal_publishers_replace_a_held_journal_with_private_files() { .expect("Terminal journal") .is_terminal() ); - tracedecay_runtime_core::windows_security::validate_private_file(&journal_path) + tracedecay_private_fs::windows::validate_private_file(&journal_path) .expect("private Terminal journal"); - tracedecay_runtime_core::windows_security::validate_private_file( + tracedecay_private_fs::windows::validate_private_file( &terminal_sidecar_path(&journal_path).expect("terminal sidecar path"), ) .expect("private terminal sidecar"); - tracedecay_runtime_core::windows_security::validate_private_file(&pending_index_path) + tracedecay_private_fs::windows::validate_private_file(&pending_index_path) .expect("private retained pending index"); drop(claim); } @@ -2109,7 +2107,7 @@ fn retained_settlement_waiter_is_send_and_static() { assert_send_static::< super::RetainedSettlementWaiter< tracedecay_domain::errors::Result<( - super::AutomationSettledProblem, + super::AutomationRunProblemV1, Option, )>, >, diff --git a/crates/tracedecay-automation-runtime/src/automation/effect_runtime/terminal.rs b/crates/tracedecay-automation-runtime/src/automation/effect_runtime/terminal.rs index 9a83bda656..e313e18a6a 100644 --- a/crates/tracedecay-automation-runtime/src/automation/effect_runtime/terminal.rs +++ b/crates/tracedecay-automation-runtime/src/automation/effect_runtime/terminal.rs @@ -11,8 +11,6 @@ use tracedecay_contracts::{ use super::journal::DurableAutomationAdmission; -pub type AutomationSettledProblem = AutomationRunProblemV1; - #[derive(Clone, Debug, Serialize, Deserialize, PartialEq)] #[serde( tag = "kind", @@ -27,7 +25,7 @@ pub enum AutomationSettledTerminal { scope: ResolvedScope, outcome: Box>, }, - Problem(AutomationSettledProblem), + Problem(AutomationRunProblemV1), } /// The `fact_store_curate` outcome for a settled run: the same effect @@ -43,10 +41,8 @@ pub fn curate_receipt_outcome( impl AutomationSettledTerminal { pub fn into_outcome( self, - ) -> std::result::Result< - ApplicationOutcome, - Box, - > { + ) -> std::result::Result, Box> + { match self { Self::Outcome { outcome, .. } => Ok(curate_receipt_outcome(*outcome)), Self::Problem(problem) => Err(Box::new(problem)), @@ -93,7 +89,7 @@ impl AutomationSettledTerminal { effect.payload.as_ref() } - pub fn problem(&self) -> Option<&AutomationSettledProblem> { + pub fn problem(&self) -> Option<&AutomationRunProblemV1> { match self { Self::Outcome { .. } => None, Self::Problem(problem) => Some(problem), diff --git a/crates/tracedecay-automation-runtime/src/automation/jobs.rs b/crates/tracedecay-automation-runtime/src/automation/jobs.rs index b76da74c27..c9ea3f4d76 100644 --- a/crates/tracedecay-automation-runtime/src/automation/jobs.rs +++ b/crates/tracedecay-automation-runtime/src/automation/jobs.rs @@ -13,7 +13,7 @@ use super::backend::{ AgentTaskRetryReport, BackendRetryPolicy, run_agent_task_with_retry_report, }; use super::config::{ - AutomationBackend, AutomationConfig, AutomationHostMode, ScheduleResolutionError, + AutomationBackendV1, AutomationHostModeV1, AutomationSettingsV1, ScheduleResolutionError, }; use super::job_error; use super::job_webhook; @@ -541,7 +541,7 @@ fn latest_terminal_job_record<'a>( /// caller's application settlement. pub async fn run_user_job_with_backend_for_retained_settlement( dashboard_root: &Path, - config: &AutomationConfig, + config: &AutomationSettingsV1, backend: &dyn AgentTaskBackend, job: &AutomationJob, options: UserJobRunOptions, @@ -561,7 +561,7 @@ pub async fn run_user_job_with_backend_for_retained_settlement( async fn run_retained_user_job( dashboard_root: &Path, - config: &AutomationConfig, + config: &AutomationSettingsV1, backend: &dyn AgentTaskBackend, job: &AutomationJob, options: UserJobRunOptions, @@ -797,14 +797,14 @@ async fn run_retained_user_job( }) } -fn config_skip_reason(config: &AutomationConfig) -> Option { +fn config_skip_reason(config: &AutomationSettingsV1) -> Option { if !config.enabled { return Some(AutomationSkipReasonV1::AutomationDisabled); } - if config.host_mode == AutomationHostMode::DelegatedHost { + if config.host_mode == AutomationHostModeV1::DelegatedHost { return Some(AutomationSkipReasonV1::DelegatedHostMode); } - if config.backend == AutomationBackend::Disabled { + if config.backend == AutomationBackendV1::Disabled { return Some(AutomationSkipReasonV1::BackendDisabled); } None @@ -812,7 +812,7 @@ fn config_skip_reason(config: &AutomationConfig) -> Option { dashboard_root: &'a Path, - config: &'a AutomationConfig, + config: &'a AutomationSettingsV1, /// The executable the job's backend spawns (`AgentTaskBackend::executable`). executable: Option<&'a Path>, job: &'a AutomationJob, diff --git a/crates/tracedecay-automation-runtime/src/automation/jobs/scheduler_config_tests.rs b/crates/tracedecay-automation-runtime/src/automation/jobs/scheduler_config_tests.rs index e960e228f3..cc32cd3ae4 100644 --- a/crates/tracedecay-automation-runtime/src/automation/jobs/scheduler_config_tests.rs +++ b/crates/tracedecay-automation-runtime/src/automation/jobs/scheduler_config_tests.rs @@ -8,7 +8,7 @@ use super::{ jobs_path, validate_job, }; use crate::automation::backend::{AgentTaskFailureClass, AgentTaskKind}; -use crate::automation::config::AutomationConfig; +use crate::automation::config::AutomationSettingsV1; use crate::automation::run_ledger::{ AutomationRunLedgerRecord, AutomationRunStatus, AutomationTrigger, append_run_record, find_run_record_exact_bounded, load_run_records_for_task_key, @@ -297,7 +297,7 @@ async fn persisted_and_deduplicated_skips_do_not_block_later_due_execution() { ) .await .unwrap(); - let config = AutomationConfig::default(); + let config = AutomationSettingsV1::default(); let first = super::scheduler_gate::evaluate_and_record_scheduler_skip_at( temp.path(), &config, @@ -441,7 +441,7 @@ async fn persisted_and_deduplicated_skips_do_not_block_later_due_execution() { async fn scheduler_lock_skip_uses_a_diagnostic_identity_outside_the_effect_occurrence() { let temp = tempfile::TempDir::new().unwrap(); let job = interval_job(); - let config = AutomationConfig::default(); + let config = AutomationSettingsV1::default(); let occurrence = "locked-occurrence"; let started_at = "200".to_owned(); let skip = super::scheduler_gate::record_scheduler_lock_skip( diff --git a/crates/tracedecay-automation-runtime/src/automation/jobs/scheduler_gate.rs b/crates/tracedecay-automation-runtime/src/automation/jobs/scheduler_gate.rs index 0097ffebbe..8e3b21d66a 100644 --- a/crates/tracedecay-automation-runtime/src/automation/jobs/scheduler_gate.rs +++ b/crates/tracedecay-automation-runtime/src/automation/jobs/scheduler_gate.rs @@ -5,8 +5,8 @@ use tracedecay_contracts::retained_surfaces::AutomationSkipReasonV1; #[cfg(test)] use super::admit_job; use super::{ - AdmittedAutomationJob, AgentTaskKind, AutomationConfig, AutomationJob, - AutomationRunLedgerPublication, AutomationTrigger, JobRunContext, Result, TraceDecayError, + AdmittedAutomationJob, AgentTaskKind, AutomationJob, AutomationRunLedgerPublication, + AutomationSettingsV1, AutomationTrigger, JobRunContext, Result, TraceDecayError, UserJobAutomationRun, config_skip_reason, current_timestamp, job_schedule_decision, job_task_key, load_run_ledger_task_summary, try_acquire_job_task_lock, }; @@ -37,7 +37,7 @@ use super::{ #[tracing::instrument(name = "automation.scheduler.job_gate", level = "trace", skip_all)] pub async fn evaluate_and_record_scheduler_skip( dashboard_root: &Path, - config: &AutomationConfig, + config: &AutomationSettingsV1, executable: Option<&Path>, job: &AdmittedAutomationJob, run_id: &str, @@ -99,7 +99,7 @@ pub async fn evaluate_and_record_scheduler_skip( #[cfg(test)] pub(super) async fn evaluate_and_record_scheduler_skip_at( dashboard_root: &Path, - config: &AutomationConfig, + config: &AutomationSettingsV1, executable: Option<&Path>, job: &AutomationJob, run_id: &str, @@ -172,7 +172,7 @@ async fn load_scheduler_summary( /// [`evaluate_and_record_scheduler_skip`] for the invariant this preserves. async fn record_scheduler_diagnostic( dashboard_root: &Path, - config: &AutomationConfig, + config: &AutomationSettingsV1, executable: Option<&Path>, job: &AutomationJob, occurrence_run_id: &str, @@ -200,7 +200,7 @@ async fn record_scheduler_diagnostic( /// `occurrence_run_id` was minted from, not one re-derived here. pub(super) async fn record_scheduler_lock_skip( dashboard_root: &Path, - config: &AutomationConfig, + config: &AutomationSettingsV1, executable: Option<&Path>, job: &AutomationJob, occurrence_run_id: &str, diff --git a/crates/tracedecay-automation-runtime/src/automation/lifecycle.rs b/crates/tracedecay-automation-runtime/src/automation/lifecycle.rs index 612065e517..04cc5d8fe2 100644 --- a/crates/tracedecay-automation-runtime/src/automation/lifecycle.rs +++ b/crates/tracedecay-automation-runtime/src/automation/lifecycle.rs @@ -18,7 +18,9 @@ use super::backend::{ AgentTaskRetryReport, BackendRetryPolicy, agent_task_contract, prompt_version, run_agent_task_with_retry_report, task_key, }; -use super::config::{AutomationBackend, AutomationConfig, AutomationHostMode, admit_config}; +use super::config::{ + AutomationBackendV1, AutomationHostModeV1, AutomationSettingsV1, admit_config, +}; use super::config_error; use super::jobs::effect_receipt::ExternalAutomationEffectReceipt; use super::run_ledger::{ @@ -323,7 +325,7 @@ pub(crate) struct AgentTaskRunContext<'a> { /// Exact registered LCM session shard whose newest message timestamp is /// the scheduler activity signal. sessions_db: RegisteredGlobalDbLeaseV1, - config: &'a AutomationConfig, + config: &'a AutomationSettingsV1, /// The executable the run's backend spawns (`AgentTaskBackend::executable`), /// stamped into every terminal record's backend identity. executable: Option, @@ -344,7 +346,7 @@ impl<'a> AgentTaskRunContext<'a> { run_id: Option, run_id_prefix: &'static str, trigger: AutomationTrigger, - config: &'a AutomationConfig, + config: &'a AutomationSettingsV1, executable: Option<&Path>, task: AgentTaskKind, ) -> Self { @@ -497,13 +499,13 @@ impl<'a> AgentTaskRunContext<'a> { } pub(crate) fn task_skip_reason( - config: &AutomationConfig, + config: &AutomationSettingsV1, _task: AgentTaskKind, ) -> Option { - if config.host_mode == AutomationHostMode::DelegatedHost { + if config.host_mode == AutomationHostModeV1::DelegatedHost { return Some(AutomationSkipReasonV1::DelegatedHostMode); } - if config.backend == AutomationBackend::Disabled { + if config.backend == AutomationBackendV1::Disabled { return Some(AutomationSkipReasonV1::BackendDisabled); } None @@ -513,7 +515,7 @@ pub(crate) fn task_skip_reason( type GatedTask = (SchedulerGate, Option); fn scheduler_gate_with_lock_retention<'a>( - config: &'a AutomationConfig, + config: &'a AutomationSettingsV1, executable: Option<&'a Path>, dashboard_root: &'a Path, sessions_db: &'a RegisteredGlobalDb, @@ -584,7 +586,7 @@ fn scheduler_gate_with_lock_retention<'a>( } pub(crate) async fn task_run_gate( - config: &AutomationConfig, + config: &AutomationSettingsV1, executable: Option<&Path>, dashboard_root: &Path, sessions_db: &RegisteredGlobalDb, @@ -604,7 +606,7 @@ pub(crate) async fn task_run_gate( } pub(crate) async fn task_run_gate_for_retained_settlement( - config: &AutomationConfig, + config: &AutomationSettingsV1, executable: Option<&Path>, dashboard_root: &Path, sessions_db: &RegisteredGlobalDb, @@ -626,7 +628,7 @@ pub(crate) async fn task_run_gate_for_retained_settlement( } async fn task_run_gate_with_lock_retention( - config: &AutomationConfig, + config: &AutomationSettingsV1, executable: Option<&Path>, dashboard_root: &Path, sessions_db: &RegisteredGlobalDb, @@ -841,7 +843,7 @@ pub(crate) struct AgentRunFinalizer<'a> { dashboard_root: &'a Path, run_id: &'a str, trigger: AutomationTrigger, - config: &'a AutomationConfig, + config: &'a AutomationSettingsV1, executable: Option<&'a Path>, task: AgentTaskKind, started_at: &'a str, @@ -860,7 +862,7 @@ impl<'a> AgentRunFinalizer<'a> { dashboard_root: &'a Path, run_id: &'a str, trigger: AutomationTrigger, - config: &'a AutomationConfig, + config: &'a AutomationSettingsV1, executable: Option<&'a Path>, task: AgentTaskKind, started_at: &'a str, @@ -884,7 +886,7 @@ impl<'a> AgentRunFinalizer<'a> { dashboard_root: &'a Path, run_id: &'a str, trigger: AutomationTrigger, - config: &'a AutomationConfig, + config: &'a AutomationSettingsV1, executable: Option<&'a Path>, task: AgentTaskKind, started_at: &'a str, @@ -1330,7 +1332,7 @@ fn apply_retry_report(record: &mut AutomationRunLedgerRecord, retry_report: &Age record.backend_attempts = retry_report.attempts().to_vec(); } -fn task_disabled(config: &AutomationConfig, task: AgentTaskKind) -> bool { +fn task_disabled(config: &AutomationSettingsV1, task: AgentTaskKind) -> bool { match task { AgentTaskKind::MemoryCurator => !config.tasks.memory_curator.enabled, AgentTaskKind::SessionReflector => !config.tasks.session_reflector.enabled, @@ -1371,7 +1373,7 @@ mod recorded_failure_tests { #[test] fn retained_settlement_disposition_carries_exact_reused_scheduler_skip() { - let config = AutomationConfig::default(); + let config = AutomationSettingsV1::default(); let prior_record = AgentRunFinalizer::new_at( Path::new("/unused"), "prior_scheduler_skip", diff --git a/crates/tracedecay-automation-runtime/src/automation/lifecycle/tests.rs b/crates/tracedecay-automation-runtime/src/automation/lifecycle/tests.rs index 5a79fac0bb..35a41ad71d 100644 --- a/crates/tracedecay-automation-runtime/src/automation/lifecycle/tests.rs +++ b/crates/tracedecay-automation-runtime/src/automation/lifecycle/tests.rs @@ -8,8 +8,8 @@ use super::{ }; use crate::automation::backend::AgentTaskKind; use crate::automation::config::{ - AutomationBackend, AutomationConfig, AutomationHostMode, AutomationTaskConfig, - AutomationTaskSet, + AutomationBackendV1, AutomationHostModeV1, AutomationSettingsV1, AutomationTaskSetV1, + AutomationTaskSettingsV1, }; use crate::automation::run_ledger::{ AutomationRunLedgerRecord, AutomationTrigger, load_run_records, @@ -49,7 +49,7 @@ fn session_reflector_malformed_output_projection_is_payload_free() { #[test] fn pre_epoch_completion_clock_fails_before_ledger_mutation() { let temp = tempfile::TempDir::new().expect("temp dir"); - let config = AutomationConfig::default(); + let config = AutomationSettingsV1::default(); let completion_time = std::time::UNIX_EPOCH .checked_sub(std::time::Duration::from_micros(1)) .expect("pre-epoch instant"); @@ -76,7 +76,7 @@ fn pre_epoch_completion_clock_fails_before_ledger_mutation() { #[test] fn terminal_clock_is_fresh_and_posteffect_failure_stays_typed() { let temp = tempfile::TempDir::new().expect("temp dir"); - let config = AutomationConfig::default(); + let config = AutomationSettingsV1::default(); let preflight = std::time::UNIX_EPOCH + std::time::Duration::from_secs(1); let finalizer = super::AgentRunFinalizer::new_at( temp.path(), @@ -209,7 +209,7 @@ async fn append_skip( task: AgentTaskKind, reason: &str, ) -> AutomationRunLedgerRecord { - let config = AutomationConfig::default(); + let config = AutomationSettingsV1::default(); let sessions = test_sessions_db(dashboard_root).await; let mut run = AgentTaskRunContext::new( dashboard_root.to_path_buf(), @@ -290,20 +290,20 @@ async fn manual_trigger_skips_always_persist() { assert_eq!(records.len(), 2, "manual skips must always be recorded"); } -fn scheduler_enabled_config() -> AutomationConfig { - AutomationConfig { +fn scheduler_enabled_config() -> AutomationSettingsV1 { + AutomationSettingsV1 { enabled: true, - backend: AutomationBackend::CodexAppServer, - host_mode: AutomationHostMode::Standalone, - tasks: AutomationTaskSet { - memory_curator: AutomationTaskConfig { + backend: AutomationBackendV1::CodexAppServer, + host_mode: AutomationHostModeV1::Standalone, + tasks: AutomationTaskSetV1 { + memory_curator: AutomationTaskSettingsV1 { enabled: true, schedule: Some("hourly".to_string()), - ..AutomationTaskConfig::default() + ..AutomationTaskSettingsV1::default() }, - ..AutomationTaskSet::default() + ..AutomationTaskSetV1::default() }, - ..AutomationConfig::default() + ..AutomationSettingsV1::default() } } @@ -311,18 +311,18 @@ fn scheduler_enabled_config() -> AutomationConfig { async fn on_demand_triggers_bypass_only_scheduler_enablement() { let temp = tempfile::TempDir::new().expect("temp dir"); let sessions = test_sessions_db(temp.path()).await; - let disabled = AutomationConfig { + let disabled = AutomationSettingsV1 { enabled: false, - backend: AutomationBackend::CodexAppServer, - host_mode: AutomationHostMode::Standalone, - tasks: AutomationTaskSet { - memory_curator: AutomationTaskConfig { + backend: AutomationBackendV1::CodexAppServer, + host_mode: AutomationHostModeV1::Standalone, + tasks: AutomationTaskSetV1 { + memory_curator: AutomationTaskSettingsV1 { enabled: false, - ..AutomationTaskConfig::default() + ..AutomationTaskSettingsV1::default() }, - ..AutomationTaskSet::default() + ..AutomationTaskSetV1::default() }, - ..AutomationConfig::default() + ..AutomationSettingsV1::default() }; for trigger in [ @@ -397,11 +397,11 @@ async fn concurrent_on_demand_runs_share_the_canonical_task_lock() { async fn scheduler_trigger_still_obeys_global_enablement() { let temp = tempfile::TempDir::new().expect("temp dir"); let sessions = test_sessions_db(temp.path()).await; - let disabled = AutomationConfig { + let disabled = AutomationSettingsV1 { enabled: false, - backend: AutomationBackend::CodexAppServer, - host_mode: AutomationHostMode::Standalone, - ..AutomationConfig::default() + backend: AutomationBackendV1::CodexAppServer, + host_mode: AutomationHostModeV1::Standalone, + ..AutomationSettingsV1::default() }; let (gate, _) = task_run_gate( @@ -424,12 +424,12 @@ async fn scheduler_trigger_still_obeys_global_enablement() { async fn on_demand_trigger_does_not_bypass_backend_or_host_admission() { let temp = tempfile::TempDir::new().expect("temp dir"); let sessions = test_sessions_db(temp.path()).await; - let unavailable = AutomationConfig { + let unavailable = AutomationSettingsV1 { enabled: false, - backend: AutomationBackend::Disabled, - host_mode: AutomationHostMode::Standalone, + backend: AutomationBackendV1::Disabled, + host_mode: AutomationHostModeV1::Standalone, model_id: None, - ..AutomationConfig::default() + ..AutomationSettingsV1::default() }; let (gate, _) = task_run_gate( &unavailable, @@ -446,9 +446,9 @@ async fn on_demand_trigger_does_not_bypass_backend_or_host_admission() { SchedulerGate::Skip(AutomationSkipReasonV1::BackendDisabled) )); - let delegated = AutomationConfig { - backend: AutomationBackend::CodexAppServer, - host_mode: AutomationHostMode::DelegatedHost, + let delegated = AutomationSettingsV1 { + backend: AutomationBackendV1::CodexAppServer, + host_mode: AutomationHostModeV1::DelegatedHost, ..unavailable }; let (gate, _) = task_run_gate( @@ -470,7 +470,7 @@ async fn on_demand_trigger_does_not_bypass_backend_or_host_admission() { /// The shortest valid interval schedule: a post-gate skip is a cadence /// terminal, so a repeat scheduler run can only be gated in after the /// interval elapses. Tests wait out one real second between runs. -fn every_second_config() -> AutomationConfig { +fn every_second_config() -> AutomationSettingsV1 { let mut config = scheduler_enabled_config(); config.tasks.memory_curator.schedule = Some("every 1s".to_string()); config @@ -589,7 +589,7 @@ async fn page_cursor_transitions_bypass_reason_only_skip_deduplication() { async fn append_path_relies_solely_on_caller_computed_repeat_flag() { let temp = tempfile::TempDir::new().expect("temp dir"); let root = temp.path(); - let config = AutomationConfig::default(); + let config = AutomationSettingsV1::default(); let task = AgentTaskKind::MemoryCurator; let sessions = test_sessions_db(root).await; diff --git a/crates/tracedecay-automation-runtime/src/automation/memory_curator.rs b/crates/tracedecay-automation-runtime/src/automation/memory_curator.rs index 4b968949ea..a6d8263b93 100644 --- a/crates/tracedecay-automation-runtime/src/automation/memory_curator.rs +++ b/crates/tracedecay-automation-runtime/src/automation/memory_curator.rs @@ -12,7 +12,7 @@ use super::backend::{ AgentTaskRetryReport, BackendRetryPolicy, run_agent_task_with_retry_report, runtime_failure_class, }; -use super::config::AutomationConfig; +use super::config::AutomationSettingsV1; use super::lifecycle::{ AgentTaskRunContext, AutomationCommittedReceipt, AutomationRunControl, AutomationRunError, AutomationRunLedgerPublication, AutomationRunPublication, AutomationRunResult, @@ -81,7 +81,7 @@ pub struct MemoryCuratorAutomationRun { /// ledger terminal before the daemon accepts the outer application terminal. pub async fn run_memory_curator_with_backend_for_retained_settlement( cg: &AutomationProjectContext, - config: &AutomationConfig, + config: &AutomationSettingsV1, configuration_revision_id: &ConfigurationRevisionId, backend: &dyn AgentTaskBackend, options: MemoryCuratorAutomationOptions, @@ -148,7 +148,7 @@ impl MemoryCuratorStore<'_> { #[tracing::instrument(name = "automation.run.memory_curator", level = "trace", skip_all)] async fn run_memory_curator_for_store_with_publication( store: MemoryCuratorStore<'_>, - config: &AutomationConfig, + config: &AutomationSettingsV1, configuration_revision_id: &ConfigurationRevisionId, backend: &dyn AgentTaskBackend, options: MemoryCuratorAutomationOptions, @@ -907,7 +907,7 @@ fn memory_curation_report( } fn memory_curation_decision( - config: &AutomationConfig, + config: &AutomationSettingsV1, authority: &CurationApplyAuthorityV1, evidence_hash: Option<&str>, accepted_ops: &[Value], diff --git a/crates/tracedecay-automation-runtime/src/automation/memory_curator/tests.rs b/crates/tracedecay-automation-runtime/src/automation/memory_curator/tests.rs index 15e86bf8ff..c85874a90e 100644 --- a/crates/tracedecay-automation-runtime/src/automation/memory_curator/tests.rs +++ b/crates/tracedecay-automation-runtime/src/automation/memory_curator/tests.rs @@ -159,7 +159,7 @@ fn all_noop_curation_is_settled_without_claiming_a_store_mutation() { let operations = vec![json!({"op": "add"}), json!({"op": "remove"})]; let evidence = crate::automation::artifacts::sha256_bytes(b"all-noop curation evidence"); let decision = memory_curation_decision( - &AutomationConfig::default(), + &AutomationSettingsV1::default(), &authority, Some(&evidence), &operations, diff --git a/crates/tracedecay-automation-runtime/src/automation/outcomes.rs b/crates/tracedecay-automation-runtime/src/automation/outcomes.rs index 6741fe666e..64553f9486 100644 --- a/crates/tracedecay-automation-runtime/src/automation/outcomes.rs +++ b/crates/tracedecay-automation-runtime/src/automation/outcomes.rs @@ -33,7 +33,7 @@ use tracedecay_store::{ use super::backend::AgentTaskKind; use super::config_error; use super::managed_skills::{ManagedSkillState, list_managed_skills}; -use super::skill_usage::{SkillUsageSummary, summarize_skill_usage}; +use super::skill_usage::{SkillUsageRecord, summarize_skill_usage}; use tracedecay_domain::errors::{Result, TraceDecayError}; use tracedecay_session_memory::memory::{ MemoryApplication, MemoryApplicationError, memory_application_error, @@ -184,7 +184,7 @@ pub struct AutomationOutcomesSnapshot { /// Computes the adoption verdict for one activated skill. `None` when the /// skill has never been activated (no post-activation window to measure). -pub fn skill_outcome(summary: &SkillUsageSummary, now_unix: i64) -> Option { +pub fn skill_outcome(summary: &SkillUsageRecord, now_unix: i64) -> Option { let activated_at = summary.activated_at?; let secs_since_activation = now_unix.saturating_sub(activated_at); let views_since_activation = count_since_activation( @@ -391,7 +391,7 @@ pub async fn refresh_fact_outcomes( } pub fn compute_skill_outcomes( - summaries: &[SkillUsageSummary], + summaries: &[SkillUsageRecord], now_unix: i64, ) -> Vec { summaries diff --git a/crates/tracedecay-automation-runtime/src/automation/run_ledger/exact_publication.rs b/crates/tracedecay-automation-runtime/src/automation/run_ledger/exact_publication.rs index 5f14fcec94..2207f54fa0 100644 --- a/crates/tracedecay-automation-runtime/src/automation/run_ledger/exact_publication.rs +++ b/crates/tracedecay-automation-runtime/src/automation/run_ledger/exact_publication.rs @@ -2023,7 +2023,7 @@ mod tests { let publication = stage_run_record_exact(temp.path(), &record).expect("stage"); let spool = spool_path(temp.path(), &record.run_id, &publication).expect("spool path"); - tracedecay_runtime_core::windows_security::validate_private_file(&spool) + tracedecay_private_fs::windows::validate_private_file(&spool) .expect("published spool must retain the canonical private Windows ACL"); } diff --git a/crates/tracedecay-automation-runtime/src/automation/runner.rs b/crates/tracedecay-automation-runtime/src/automation/runner.rs index dccf16a93d..b7a5d6deac 100644 --- a/crates/tracedecay-automation-runtime/src/automation/runner.rs +++ b/crates/tracedecay-automation-runtime/src/automation/runner.rs @@ -13,7 +13,7 @@ use super::backend::{ AgentTaskRetryReport, BackendRetryPolicy, run_agent_task_with_retry_report, runtime_failure_class, }; -use super::config::AutomationConfig; +use super::config::AutomationSettingsV1; use super::lifecycle::{ AgentRunFinalizer, AutomationCommittedReceipt, AutomationRunControl, AutomationRunError, AutomationRunLedgerPublication, AutomationRunResult, BackendTaskRun, SchedulerGate, @@ -65,6 +65,7 @@ pub use super::memory_curator::{ MemoryCuratorAutomationOptions, MemoryCuratorAutomationRun, run_memory_curator_with_backend_for_retained_settlement, }; +pub(crate) use evidence::CanonicalEvidenceHit; pub use evidence::{AutomationTemporalEvidence, AutomationTemporalEvidenceItem}; pub use retrieval::registered_project_automation_retrieval; pub use retrieval::{ @@ -287,7 +288,7 @@ impl RetainedCombinedReviewRun { #[allow(clippy::too_many_arguments)] pub async fn run_combined_review_with_backend_and_retrieval_for_retained_settlement( cg: &AutomationProjectContext, - config: &AutomationConfig, + config: &AutomationSettingsV1, configuration_revision_id: &ConfigurationRevisionId, backend: &dyn AgentTaskBackend, retrieval: &dyn AutomationSessionRetrieval, @@ -319,7 +320,7 @@ pub async fn run_combined_review_with_backend_and_retrieval_for_retained_settlem /// /// `Ok(Err(dispatch))` is the not-due answer the caller returns verbatim. async fn acquire_combined_task_lock( - config: &AutomationConfig, + config: &AutomationSettingsV1, executable: Option<&Path>, dashboard_root: &Path, sessions_db: &RegisteredGlobalDb, @@ -398,7 +399,7 @@ fn combined_skill_writer_evidence_or_not_combined( )] async fn run_combined_review_for_retrieval( cg: &AutomationProjectContext, - config: &AutomationConfig, + config: &AutomationSettingsV1, configuration_revision_id: &ConfigurationRevisionId, io: AutomationTaskIo<'_>, options: CombinedReviewAutomationOptions, @@ -423,7 +424,7 @@ async fn run_combined_review_for_retrieval( #[allow(clippy::too_many_arguments)] fn run_combined_review_for_retrieval_inner<'a>( cg: &'a AutomationProjectContext, - config: &'a AutomationConfig, + config: &'a AutomationSettingsV1, configuration_revision_id: &'a ConfigurationRevisionId, io: AutomationTaskIo<'a>, options: CombinedReviewAutomationOptions, diff --git a/crates/tracedecay-automation-runtime/src/automation/runner/curation.rs b/crates/tracedecay-automation-runtime/src/automation/runner/curation.rs index 7cd45391a7..1640cc12de 100644 --- a/crates/tracedecay-automation-runtime/src/automation/runner/curation.rs +++ b/crates/tracedecay-automation-runtime/src/automation/runner/curation.rs @@ -10,14 +10,14 @@ use tracedecay_policy::{ use crate::automation::backend::{ AgentTaskKind, AgentTaskResponse, agent_task_contract, prompt_version, task_key, }; -use crate::automation::config::AutomationConfig; +use crate::automation::config::AutomationSettingsV1; use crate::automation::lifecycle::AgentTaskRunContext; use crate::automation::run_ledger::{AutomationRunLedgerRecord, AutomationRunStatus}; use tracedecay_domain::errors::{Result, TraceDecayError}; use tracedecay_runtime_core::tracedecay::current_timestamp; pub(super) fn evaluate_session_curation( - config: &AutomationConfig, + config: &AutomationSettingsV1, authority: &CurationApplyAuthorityV1, evidence_hash: Option<&str>, accepted_facts: &[Value], @@ -33,7 +33,7 @@ pub(super) fn evaluate_session_curation( } pub(super) fn evaluate_skill_curation( - config: &AutomationConfig, + config: &AutomationSettingsV1, authority: &CurationApplyAuthorityV1, evidence_hash: Option<&str>, proposals: &[Value], @@ -49,7 +49,7 @@ pub(super) fn evaluate_skill_curation( } fn evaluate_curation_output( - config: &AutomationConfig, + config: &AutomationSettingsV1, authority: &CurationApplyAuthorityV1, evidence_hash: Option<&str>, output: &[Value], @@ -112,7 +112,7 @@ pub(super) fn combined_review_output( pub(super) fn unpersisted_rejected_parts( run: &AgentTaskRunContext<'_>, - config: &AutomationConfig, + config: &AutomationSettingsV1, task: AgentTaskKind, reason: &str, budget_stage: Option, diff --git a/crates/tracedecay-automation-runtime/src/automation/runner/evidence.rs b/crates/tracedecay-automation-runtime/src/automation/runner/evidence.rs index 394b309f80..302ae67f4a 100644 --- a/crates/tracedecay-automation-runtime/src/automation/runner/evidence.rs +++ b/crates/tracedecay-automation-runtime/src/automation/runner/evidence.rs @@ -4,7 +4,7 @@ use tracedecay_contracts::retained_surfaces::AutomationSkipReasonV1; use tracedecay_contracts::retrieval::SessionRetrievalBudgetStageV1; use tracedecay_domain::TemporalCoverageCountsV1; -use tracedecay_lcm::{LcmGrepHit, LcmGrepSort, LcmScope}; +use tracedecay_lcm::{LcmGrepSort, LcmScope}; use crate::automation::artifacts::sha256_json; use crate::automation::managed_skills::list_managed_skills; @@ -80,15 +80,15 @@ pub(super) struct SerializedAutomationEvidence { } #[derive(Clone, Debug, Serialize)] -pub(super) struct CanonicalEvidenceHit { - pub(super) kind: String, - pub(super) provider: String, - pub(super) session_id: String, - pub(super) message_id: Option, - pub(super) node_id: Option, - pub(super) store_id: Option, +pub(crate) struct CanonicalEvidenceHit { + pub(crate) kind: String, + pub(crate) provider: String, + pub(crate) session_id: String, + pub(crate) message_id: Option, + pub(crate) node_id: Option, + pub(crate) store_id: Option, pub(super) role: Option, - pub(super) snippet: String, + pub(crate) snippet: String, pub(super) anchor_id: String, pub(super) stable_id: String, pub(super) knowledge_at_micros: i64, @@ -96,21 +96,6 @@ pub(super) struct CanonicalEvidenceHit { pub(super) ordinal: Option, } -impl CanonicalEvidenceHit { - fn compatibility_hit(&self) -> LcmGrepHit { - LcmGrepHit { - kind: self.kind.clone(), - provider: self.provider.clone(), - session_id: self.session_id.clone(), - message_id: self.message_id.clone(), - node_id: self.node_id.clone(), - store_id: self.store_id, - role: self.role.clone(), - snippet: self.snippet.clone(), - } - } -} - pub(super) struct OwnedToolUsageObservation { pub(super) tool_names: Option, pub(super) metadata_json: Option, @@ -866,12 +851,8 @@ pub(super) async fn build_skill_writer_evidence( })); let overlap_candidates = skill_overlap_candidates(&existing_skills, DEFAULT_SKILL_OVERLAP_LIMIT); - let compatibility_hits = hits - .iter() - .map(CanonicalEvidenceHit::compatibility_hit) - .collect::>(); let skill_improvement_recommendations = skill_improvement_recommendations( - &compatibility_hits, + &hits, &skill_usage_summaries, &stale_recommendations, &underused_tool_families, diff --git a/crates/tracedecay-automation-runtime/src/automation/runner/session_reflector.rs b/crates/tracedecay-automation-runtime/src/automation/runner/session_reflector.rs index 633f73e87c..65d8c6b41e 100644 --- a/crates/tracedecay-automation-runtime/src/automation/runner/session_reflector.rs +++ b/crates/tracedecay-automation-runtime/src/automation/runner/session_reflector.rs @@ -13,7 +13,7 @@ use crate::automation::backend::{ AgentTaskBackend, AgentTaskKind, AgentTaskRequest, AgentTaskResponse, AgentTaskRetryReport, runtime_failure_class, }; -use crate::automation::config::AutomationConfig; +use crate::automation::config::AutomationSettingsV1; use crate::automation::lifecycle::{ AgentRunFinalizer, AgentTaskRunContext, AutomationCommittedReceipt, AutomationRunControl, AutomationRunError, AutomationRunLedgerPublication, AutomationRunResult, @@ -335,7 +335,7 @@ async fn skipped_session_reflector_run( pub(super) fn rejected_session_reflector_run( run: &AgentTaskRunContext<'_>, - config: &AutomationConfig, + config: &AutomationSettingsV1, reason: &str, budget_stage: Option, evidence_hash: Option, @@ -385,7 +385,7 @@ pub(super) enum SessionReflectorFinalization { pub(super) async fn finalize_session_reflector_success( memory: &MemoryApplication, run_control: &AutomationRunControl, - config: &AutomationConfig, + config: &AutomationSettingsV1, authority: &tracedecay_policy::CurationApplyAuthorityV1, finalizer: &AgentRunFinalizer<'_>, output: ProposedAgentOutput<'_>, @@ -630,7 +630,7 @@ pub(super) async fn run_session_reflector_for_store_with_publication, - config: &AutomationConfig, + config: &AutomationSettingsV1, run_control: &AutomationRunControl, authority: &tracedecay_policy::CurationApplyAuthorityV1, backend: &dyn AgentTaskBackend, @@ -664,7 +664,7 @@ fn run_session_reflector_for_store_with_publication_inner<'a, A: ProjectMemoryFa sessions_db: RegisteredGlobalDbLeaseV1, retrieval: &'a dyn AutomationSessionRetrieval, memory: &'a MemoryApplication, - config: &'a AutomationConfig, + config: &'a AutomationSettingsV1, run_control: &'a AutomationRunControl, authority: &'a tracedecay_policy::CurationApplyAuthorityV1, backend: &'a dyn AgentTaskBackend, @@ -946,7 +946,7 @@ fn run_session_reflector_for_store_with_publication_inner<'a, A: ProjectMemoryFa #[allow(clippy::too_many_arguments)] async fn run_session_reflector_with_backend_and_retrieval_publication( cg: &AutomationProjectContext, - config: &AutomationConfig, + config: &AutomationSettingsV1, run_control: &AutomationRunControl, configuration_revision_id: &ConfigurationRevisionId, backend: &dyn AgentTaskBackend, @@ -994,7 +994,7 @@ async fn run_session_reflector_with_backend_and_retrieval_publication( #[allow(clippy::too_many_arguments)] pub async fn run_session_reflector_with_backend_and_retrieval_for_retained_settlement( cg: &AutomationProjectContext, - config: &AutomationConfig, + config: &AutomationSettingsV1, run_control: &AutomationRunControl, configuration_revision_id: &ConfigurationRevisionId, backend: &dyn AgentTaskBackend, diff --git a/crates/tracedecay-automation-runtime/src/automation/runner/skill_writer.rs b/crates/tracedecay-automation-runtime/src/automation/runner/skill_writer.rs index b96768708c..e30e660645 100644 --- a/crates/tracedecay-automation-runtime/src/automation/runner/skill_writer.rs +++ b/crates/tracedecay-automation-runtime/src/automation/runner/skill_writer.rs @@ -8,7 +8,7 @@ use crate::automation::backend::{ AgentTaskBackend, AgentTaskFailureClass, AgentTaskKind, AgentTaskResponse, runtime_failure_class, }; -use crate::automation::config::AutomationConfig; +use crate::automation::config::AutomationSettingsV1; use crate::automation::host_io::HostIo; use crate::automation::lifecycle::{ AgentTaskRunContext, AutomationRunLedgerPublication, AutomationRunPublication, @@ -128,7 +128,7 @@ pub(super) fn validate_skill_writer_decision(output: &Value, proposals: &[Value] /// retrieval authority instead of silently reopening the production route. pub async fn run_skill_writer_with_backend_and_retrieval_for_retained_settlement( cg: &AutomationProjectContext, - config: &AutomationConfig, + config: &AutomationSettingsV1, configuration_revision_id: &ConfigurationRevisionId, backend: &dyn AgentTaskBackend, retrieval: &dyn AutomationSessionRetrieval, @@ -153,7 +153,7 @@ pub async fn run_skill_writer_with_backend_and_retrieval_for_retained_settlement async fn run_skill_writer_with_backend_and_retrieval_publication( cg: &AutomationProjectContext, - config: &AutomationConfig, + config: &AutomationSettingsV1, configuration_revision_id: &ConfigurationRevisionId, backend: &dyn AgentTaskBackend, retrieval: &dyn AutomationSessionRetrieval, @@ -199,7 +199,7 @@ pub(super) struct SkillWriterStoreRuntime<'a> { async fn run_skill_writer_for_store_with_publication( runtime: SkillWriterStoreRuntime<'_>, retrieval: &dyn AutomationSessionRetrieval, - config: &AutomationConfig, + config: &AutomationSettingsV1, backend: &dyn AgentTaskBackend, options: SkillWriterAutomationOptions, prebuilt_evidence: Option, @@ -223,7 +223,7 @@ async fn run_skill_writer_for_store_with_publication( fn run_skill_writer_for_store_with_publication_inner<'a>( runtime: SkillWriterStoreRuntime<'a>, retrieval: &'a dyn AutomationSessionRetrieval, - config: &'a AutomationConfig, + config: &'a AutomationSettingsV1, backend: &'a dyn AgentTaskBackend, options: SkillWriterAutomationOptions, prebuilt_evidence: Option, @@ -675,7 +675,7 @@ pub(super) async fn finalize_skill_writer_success( finalizer: &AgentRunFinalizer<'_>, profile_root: &std::path::Path, project_root: Option<&std::path::Path>, - config: &AutomationConfig, + config: &AutomationSettingsV1, authority: &CurationApplyAuthorityV1, activation_policy: &'static str, output: ProposedSkillOutput<'_>, @@ -1004,7 +1004,7 @@ pub(super) async fn skipped_skill_writer_run( pub(super) fn rejected_skill_writer_run( run: &AgentTaskRunContext<'_>, - config: &AutomationConfig, + config: &AutomationSettingsV1, reason: &str, budget_stage: Option, evidence_hash: Option, diff --git a/crates/tracedecay-automation-runtime/src/automation/runner/tests/early_gate.rs b/crates/tracedecay-automation-runtime/src/automation/runner/tests/early_gate.rs index 7105e30f82..590c497b39 100644 --- a/crates/tracedecay-automation-runtime/src/automation/runner/tests/early_gate.rs +++ b/crates/tracedecay-automation-runtime/src/automation/runner/tests/early_gate.rs @@ -11,7 +11,7 @@ use super::super::session_reflector::run_session_reflector_for_store_with_public use super::super::*; use crate::automation::backend::{AgentTaskBackend, AgentTaskRequest, AgentTaskResponse}; use crate::automation::config::{ - AutomationBackend, AutomationHostMode, AutomationTaskConfig, AutomationTaskSet, + AutomationBackendV1, AutomationHostModeV1, AutomationTaskSetV1, AutomationTaskSettingsV1, }; use crate::automation::lifecycle::AutomationRunLedgerPublication; use crate::automation::run_ledger::AutomationRunStatus; @@ -70,23 +70,23 @@ impl AgentTaskBackend for RecordingBackend { } } -fn scheduled_disabled_config() -> AutomationConfig { - AutomationConfig { +fn scheduled_disabled_config() -> AutomationSettingsV1 { + AutomationSettingsV1 { enabled: false, - backend: AutomationBackend::CodexAppServer, - host_mode: AutomationHostMode::Standalone, - tasks: AutomationTaskSet { - session_reflector: AutomationTaskConfig { + backend: AutomationBackendV1::CodexAppServer, + host_mode: AutomationHostModeV1::Standalone, + tasks: AutomationTaskSetV1 { + session_reflector: AutomationTaskSettingsV1 { enabled: false, - ..AutomationTaskConfig::default() + ..AutomationTaskSettingsV1::default() }, - skill_writer: AutomationTaskConfig { + skill_writer: AutomationTaskSettingsV1 { enabled: false, - ..AutomationTaskConfig::default() + ..AutomationTaskSettingsV1::default() }, - ..AutomationTaskSet::default() + ..AutomationTaskSetV1::default() }, - ..AutomationConfig::default() + ..AutomationSettingsV1::default() } } diff --git a/crates/tracedecay-automation-runtime/src/automation/scheduler.rs b/crates/tracedecay-automation-runtime/src/automation/scheduler.rs index 58ee3b3533..53072d587d 100644 --- a/crates/tracedecay-automation-runtime/src/automation/scheduler.rs +++ b/crates/tracedecay-automation-runtime/src/automation/scheduler.rs @@ -18,8 +18,8 @@ use super::backend::{ }; use super::backend_identity::{backend_identity, is_deterministic_failure_class}; use super::config::{ - AdmittedAutomationConfig, AutomationBackend, AutomationConfig, AutomationHostMode, - AutomationTaskConfig, + AdmittedAutomationConfig, AutomationBackendV1, AutomationHostModeV1, AutomationSettingsV1, + AutomationTaskSettingsV1, }; use super::run_ledger::{ AutomationRunLedgerRecord, AutomationRunStatus, AutomationTrigger, @@ -334,12 +334,12 @@ fn schedule_decision_for_trigger( AutomationSkipReasonV1::AutomationDisabled, )); } - if config.host_mode == AutomationHostMode::DelegatedHost { + if config.host_mode == AutomationHostModeV1::DelegatedHost { return Ok(AutomationScheduleDecision::skipped( AutomationSkipReasonV1::DelegatedHostMode, )); } - if config.backend == AutomationBackend::Disabled { + if config.backend == AutomationBackendV1::Disabled { return Ok(AutomationScheduleDecision::skipped( AutomationSkipReasonV1::BackendDisabled, )); @@ -579,7 +579,7 @@ enum BackendFailureStanding { /// callers cannot treat them as unstamped-legacy and silently re-admit. fn deterministic_backend_failure_standing( record: &AutomationRunLedgerRecord, - config: &AutomationConfig, + config: &AutomationSettingsV1, executable: Option<&Path>, ) -> Result { let Some(classification) = record.error_classification else { @@ -679,7 +679,7 @@ pub fn cron_is_due(cron: &CronSchedule, last_completed_at: Option, now_secs /// User jobs carry their own schedule/enabled state (see /// `automation::jobs`), so the fixed-task config lookup falls back to a /// disabled default that makes the fixed-task gates skip them. -const USER_JOB_TASK_CONFIG: AutomationTaskConfig = AutomationTaskConfig { +const USER_JOB_TASK_CONFIG: AutomationTaskSettingsV1 = AutomationTaskSettingsV1 { enabled: false, schedule: None, interval_secs: None, @@ -689,7 +689,10 @@ const USER_JOB_TASK_CONFIG: AutomationTaskConfig = AutomationTaskConfig { session_evidence_budget_backoff_secs: None, }; -fn task_config(config: &AutomationConfig, task: AgentTaskKind) -> Option<&AutomationTaskConfig> { +fn task_config( + config: &AutomationSettingsV1, + task: AgentTaskKind, +) -> Option<&AutomationTaskSettingsV1> { match task { AgentTaskKind::MemoryCurator => Some(&config.tasks.memory_curator), AgentTaskKind::SessionReflector => Some(&config.tasks.session_reflector), @@ -769,7 +772,7 @@ fn try_acquire_task_lock_blocking( fn open_task_lease(path: &Path) -> std::io::Result> { tracedecay_runtime_core::storage::reject_symlink_components(path, "automation task lease")?; #[cfg(windows)] - let file = tracedecay_runtime_core::windows_security::open_or_create_private_lock_file(path)?; + let file = tracedecay_private_fs::windows::open_or_create_private_lock_file(path)?; #[cfg(not(windows))] let file = { let parent_path = path.parent().ok_or_else(|| { @@ -1009,7 +1012,7 @@ mod tests { use super::super::backend::{AgentTaskFailureClass, AgentTaskRetryAttempt}; use super::super::backend_identity::BACKEND_IDENTITY_SUPPRESSED; - use super::super::config::AutomationTaskSet; + use super::super::config::AutomationTaskSetV1; use super::*; use tempfile::tempdir; use tracedecay_automation::evidence_budget::{ @@ -1206,25 +1209,25 @@ mod tests { ); } - fn session_evidence_task_config() -> AutomationTaskConfig { - AutomationTaskConfig { + fn session_evidence_task_config() -> AutomationTaskSettingsV1 { + AutomationTaskSettingsV1 { enabled: true, schedule: Some("interval".to_owned()), interval_secs: Some(60), - ..AutomationTaskConfig::default() + ..AutomationTaskSettingsV1::default() } } - fn session_evidence_config() -> AutomationConfig { - AutomationConfig { + fn session_evidence_config() -> AutomationSettingsV1 { + AutomationSettingsV1 { enabled: true, - backend: AutomationBackend::CodexAppServer, - tasks: AutomationTaskSet { + backend: AutomationBackendV1::CodexAppServer, + tasks: AutomationTaskSetV1 { session_reflector: session_evidence_task_config(), skill_writer: session_evidence_task_config(), - ..AutomationTaskSet::default() + ..AutomationTaskSetV1::default() }, - ..AutomationConfig::default() + ..AutomationSettingsV1::default() } } @@ -1278,27 +1281,27 @@ mod tests { /// A `memory_curator` config on a plain interval schedule: the task that /// burned the measured 26.9 runs/hour, and the one with no session-evidence /// gate in front of it. - fn curator_config() -> AutomationConfig { - AutomationConfig { + fn curator_config() -> AutomationSettingsV1 { + AutomationSettingsV1 { enabled: true, - backend: AutomationBackend::CodexAppServer, - tasks: AutomationTaskSet { - memory_curator: AutomationTaskConfig { + backend: AutomationBackendV1::CodexAppServer, + tasks: AutomationTaskSetV1 { + memory_curator: AutomationTaskSettingsV1 { enabled: true, schedule: Some("interval".to_owned()), interval_secs: Some(60), - ..AutomationTaskConfig::default() + ..AutomationTaskSettingsV1::default() }, - ..AutomationTaskSet::default() + ..AutomationTaskSetV1::default() }, - ..AutomationConfig::default() + ..AutomationSettingsV1::default() } } /// One terminal failure whose retry ladder reproduced `classification` on /// every attempt, stamped with `identity`. fn settled_backend_failure( - config: &AutomationConfig, + config: &AutomationSettingsV1, executable: Option<&Path>, error: &str, classification: AgentTaskFailureClass, @@ -1876,7 +1879,7 @@ evidence about it", } fn schedule_decision( - config: &AutomationConfig, + config: &AutomationSettingsV1, executable: Option<&Path>, task: AgentTaskKind, records: &[AutomationRunLedgerRecord], diff --git a/crates/tracedecay-automation-runtime/src/automation/skill_usage.rs b/crates/tracedecay-automation-runtime/src/automation/skill_usage.rs index 2479fef367..1becabd8d8 100644 --- a/crates/tracedecay-automation-runtime/src/automation/skill_usage.rs +++ b/crates/tracedecay-automation-runtime/src/automation/skill_usage.rs @@ -51,8 +51,6 @@ pub struct SkillUsageLedger { pub imported_analytics_events: BTreeSet, } -pub type SkillUsageSummary = SkillUsageRecord; - impl Default for SkillUsageLedger { fn default() -> Self { Self { @@ -218,7 +216,7 @@ pub async fn list_skill_usage_records(profile_root: &Path) -> Result Result> { +) -> Result> { let mut ledger = load_skill_usage_ledger(profile_root).await?; Ok(skills .iter() @@ -229,7 +227,7 @@ pub async fn summarize_skill_usage( pub async fn summarize_skill_usage_for( profile_root: &Path, skill: &ManagedSkill, -) -> Result { +) -> Result { Ok(summarize_skill( skill, load_skill_usage_ledger(profile_root) @@ -274,7 +272,7 @@ fn ledger_skill_id(raw: &str) -> Result { } } -fn summarize_skill(skill: &ManagedSkill, record: Option) -> SkillUsageSummary { +fn summarize_skill(skill: &ManagedSkill, record: Option) -> SkillUsageRecord { let mut record = record.unwrap_or_else(|| new_usage_record(skill.metadata.id.clone(), 0)); merge_skill_metadata(&mut record, skill); record diff --git a/crates/tracedecay-automation-runtime/src/automation/skill_usage/recommendations.rs b/crates/tracedecay-automation-runtime/src/automation/skill_usage/recommendations.rs index 7b8c6820be..2534382215 100644 --- a/crates/tracedecay-automation-runtime/src/automation/skill_usage/recommendations.rs +++ b/crates/tracedecay-automation-runtime/src/automation/skill_usage/recommendations.rs @@ -1,14 +1,14 @@ use super::super::managed_skills::{ManagedSkillSource, ManagedSkillState}; -use super::{SkillImprovementRecommendation, SkillStaleRecommendation, SkillUsageSummary}; +use super::{SkillImprovementRecommendation, SkillStaleRecommendation, SkillUsageRecord}; pub fn stale_skill_recommendations( - summaries: &[SkillUsageSummary], + summaries: &[SkillUsageRecord], ) -> Vec { summaries.iter().map(stale_skill_recommendation).collect() } pub fn skill_improvement_recommendations( - summaries: &[SkillUsageSummary], + summaries: &[SkillUsageRecord], ) -> Vec { summaries .iter() @@ -16,7 +16,7 @@ pub fn skill_improvement_recommendations( .collect() } -fn stale_skill_recommendation(summary: &SkillUsageSummary) -> SkillStaleRecommendation { +fn stale_skill_recommendation(summary: &SkillUsageRecord) -> SkillStaleRecommendation { let evidence = usage_evidence(summary); if summary.pinned { return keep_recommendation( @@ -55,7 +55,7 @@ fn stale_skill_recommendation(summary: &SkillUsageSummary) -> SkillStaleRecommen ) } -fn skill_improvement_recommendation(summary: &SkillUsageSummary) -> SkillImprovementRecommendation { +fn skill_improvement_recommendation(summary: &SkillUsageRecord) -> SkillImprovementRecommendation { let evidence = usage_evidence(summary); if summary.pinned { return no_improvement_recommendation( @@ -102,7 +102,7 @@ fn skill_improvement_recommendation(summary: &SkillUsageSummary) -> SkillImprove } fn keep_recommendation( - summary: &SkillUsageSummary, + summary: &SkillUsageRecord, reason: impl Into, evidence: Vec, ) -> SkillStaleRecommendation { @@ -116,7 +116,7 @@ fn keep_recommendation( } fn no_improvement_recommendation( - summary: &SkillUsageSummary, + summary: &SkillUsageRecord, reason: impl Into, evidence: Vec, ) -> SkillImprovementRecommendation { @@ -130,7 +130,7 @@ fn no_improvement_recommendation( } } -fn usage_evidence(summary: &SkillUsageSummary) -> Vec { +fn usage_evidence(summary: &SkillUsageRecord) -> Vec { let mut evidence = vec![ format!("state={}", optional_state_key(summary.state)), format!("pinned={}", summary.pinned), diff --git a/crates/tracedecay-automation-runtime/src/automation/skill_writer.rs b/crates/tracedecay-automation-runtime/src/automation/skill_writer.rs index 8292ef3e81..8e49cda655 100644 --- a/crates/tracedecay-automation-runtime/src/automation/skill_writer.rs +++ b/crates/tracedecay-automation-runtime/src/automation/skill_writer.rs @@ -13,15 +13,15 @@ use super::managed_skills::{ apply_managed_skill_update, create_managed_skill, default_managed_skill_targets, list_managed_skills, }; +use super::runner::CanonicalEvidenceHit; use super::skill_usage::{ - SkillOverlapCandidate, SkillStaleRecommendation, SkillUsageSummary, + SkillOverlapCandidate, SkillStaleRecommendation, SkillUsageRecord, skill_improvement_recommendations as usage_skill_improvement_recommendations, }; use tracedecay_automation::analytics::ToolFamilySignal; use tracedecay_automation::managed_skills::validate_managed_skill_update; use tracedecay_automation::text::truncate_chars_for_prompt; use tracedecay_domain::errors::Result; -use tracedecay_lcm::LcmGrepHit; use super::{config_error, normalized_non_empty}; @@ -444,8 +444,8 @@ pub(crate) fn support_file_evidence(support: &ManagedSupportFile) -> Value { } pub(crate) fn skill_improvement_recommendations( - hits: &[LcmGrepHit], - usage_summaries: &[SkillUsageSummary], + hits: &[CanonicalEvidenceHit], + usage_summaries: &[SkillUsageRecord], stale_recommendations: &[SkillStaleRecommendation], underused_tool_families: &[ToolFamilySignal], overlap_candidates: &[SkillOverlapCandidate], @@ -566,7 +566,7 @@ pub(crate) fn skill_improvement_recommendations( recommendations } -fn hit_mentions_correction_or_failure(hit: &LcmGrepHit) -> bool { +fn hit_mentions_correction_or_failure(hit: &CanonicalEvidenceHit) -> bool { let snippet = hit.snippet.to_ascii_lowercase(); [ "correction", @@ -584,7 +584,7 @@ fn hit_mentions_correction_or_failure(hit: &LcmGrepHit) -> bool { .any(|needle| snippet.contains(needle)) } -fn hit_evidence_ref(hit: &LcmGrepHit) -> Value { +fn hit_evidence_ref(hit: &CanonicalEvidenceHit) -> Value { json!({ "kind": hit.kind, "provider": hit.provider, diff --git a/crates/tracedecay-automation/src/backend.rs b/crates/tracedecay-automation/src/backend.rs index 42dd548ef7..38eab0adbb 100644 --- a/crates/tracedecay-automation/src/backend.rs +++ b/crates/tracedecay-automation/src/backend.rs @@ -7,7 +7,7 @@ pub use tracedecay_contracts::automation::{AgentTaskFailureClass, AgentTaskKind} use tracedecay_domain::canonical_text::encode_tagged_lowercase_hex; use tracedecay_domain::errors::{ProjectOpenFailureKind, TraceDecayError}; -use crate::config::AutomationBackend; +use crate::config::AutomationBackendV1; use crate::{AutomationError, Result, config_error}; #[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] @@ -606,7 +606,7 @@ pub trait AgentTaskBackend: Send + Sync { /// the ambient process environment. #[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)] pub struct AgentBackendAvailability { - pub backend: AutomationBackend, + pub backend: AutomationBackendV1, pub available: bool, #[serde(default, skip_serializing_if = "Option::is_none")] pub executable: Option, diff --git a/crates/tracedecay-automation/src/config.rs b/crates/tracedecay-automation/src/config.rs index b90395f3cb..cb64d5639f 100644 --- a/crates/tracedecay-automation/src/config.rs +++ b/crates/tracedecay-automation/src/config.rs @@ -1,8 +1,7 @@ use serde::{Deserialize, Deserializer, Serialize}; pub use tracedecay_domain::configuration::{ - AutomationBackendV1 as AutomationBackend, AutomationHostModeV1 as AutomationHostMode, - AutomationSettingsV1 as AutomationConfig, AutomationTaskSetV1 as AutomationTaskSet, - AutomationTaskSettingsV1 as AutomationTaskConfig, + AutomationBackendV1, AutomationHostModeV1, AutomationSettingsV1, AutomationTaskSetV1, + AutomationTaskSettingsV1, }; use crate::backend::AgentTaskKind; @@ -82,9 +81,9 @@ pub struct AutomationConfigPatch { #[serde(default, skip_serializing_if = "Option::is_none")] pub enabled: Option, #[serde(default, skip_serializing_if = "Option::is_none")] - pub backend: Option, + pub backend: Option, #[serde(default, skip_serializing_if = "Option::is_none")] - pub host_mode: Option, + pub host_mode: Option, #[serde( default, deserialize_with = "deserialize_clearable_field", @@ -119,9 +118,9 @@ where } pub fn effective_config( - global: &AutomationConfig, + global: &AutomationSettingsV1, project: Option<&AutomationConfigPatch>, -) -> Result { +) -> Result { let mut config = global.clone(); config.retire_lock_timeout(); if let Some(patch) = project { @@ -140,7 +139,7 @@ pub fn merge_project_config( merged } -pub fn validate_config(config: &AutomationConfig) -> Result<()> { +pub fn validate_config(config: &AutomationSettingsV1) -> Result<()> { admit_config(config).map(|_| ()) } @@ -148,12 +147,12 @@ pub fn validate_config(config: &AutomationConfig) -> Result<()> { /// for reports and backend identity, but cannot change independently of timing. #[derive(Debug, Clone, PartialEq)] pub struct AdmittedAutomationConfig { - settings: AutomationConfig, + settings: AutomationSettingsV1, schedules: [AutomationSchedule; 3], } impl std::ops::Deref for AdmittedAutomationConfig { - type Target = AutomationConfig; + type Target = AutomationSettingsV1; fn deref(&self) -> &Self::Target { &self.settings @@ -171,7 +170,7 @@ impl AdmittedAutomationConfig { } } -pub fn admit_config(config: &AutomationConfig) -> Result { +pub fn admit_config(config: &AutomationSettingsV1) -> Result { let mut config = config.clone(); config.retire_lock_timeout(); if config.timeout_secs == 0 { @@ -218,7 +217,7 @@ pub fn admit_config(config: &AutomationConfig) -> Result(current: &mut Option, patch: Option) { } } -fn resolve_task_schedule(task: &str, config: &AutomationTaskConfig) -> Result { +fn resolve_task_schedule( + task: &str, + config: &AutomationTaskSettingsV1, +) -> Result { resolve_schedule(config.schedule.as_deref(), config.interval_secs).map_err( |error| match error { ScheduleResolutionError::Invalid(error) => { @@ -631,11 +633,11 @@ mod tests { #[test] fn effective_settings_retire_legacy_lock_timeout_and_patch_refuses_it() { - let mut stored = serde_json::to_value(AutomationConfig::default()).unwrap(); + let mut stored = serde_json::to_value(AutomationSettingsV1::default()).unwrap(); stored["tasks"]["memory_curator"]["stale_lock_secs"] = serde_json::json!(3600); stored["tasks"]["session_reflector"]["stale_lock_secs"] = serde_json::Value::Null; stored["timeout_secs"] = serde_json::json!(137); - let stored: AutomationConfig = serde_json::from_value(stored).unwrap(); + let stored: AutomationSettingsV1 = serde_json::from_value(stored).unwrap(); let historical_bytes = serde_json::to_vec(&stored).unwrap(); let effective = effective_config(&stored, None).unwrap(); assert_eq!(effective.timeout_secs, 137); @@ -670,7 +672,7 @@ mod tests { #[test] fn session_evidence_budget_backoff_is_patchable_clearable_and_nonzero() { - let base = AutomationConfig::default(); + let base = AutomationSettingsV1::default(); assert_eq!( base.tasks .session_reflector @@ -729,14 +731,14 @@ mod tests { #[test] fn non_codex_backend_wins_over_model_in_the_same_patch() { - let current = AutomationConfig { + let current = AutomationSettingsV1 { enabled: true, - backend: AutomationBackend::CodexAppServer, + backend: AutomationBackendV1::CodexAppServer, model_id: Some("gpt-5.6-mini".to_owned()), - ..AutomationConfig::default() + ..AutomationSettingsV1::default() }; let patch = AutomationConfigPatch { - backend: Some(AutomationBackend::Disabled), + backend: Some(AutomationBackendV1::Disabled), model_id: Some(Some("must-not-survive".to_owned())), ..AutomationConfigPatch::default() }; @@ -746,14 +748,14 @@ mod tests { effective_config(¤t, Some(&patch)).expect("backend patch should be canonical"); assert_eq!(merged.model_id, Some(None)); - assert_eq!(effective.backend, AutomationBackend::Disabled); + assert_eq!(effective.backend, AutomationBackendV1::Disabled); assert_eq!(effective.model_id, None); } #[test] fn codex_model_set_and_clear_preserve_explicit_patch_intent() { let codex = AutomationConfigPatch { - backend: Some(AutomationBackend::CodexAppServer), + backend: Some(AutomationBackendV1::CodexAppServer), ..AutomationConfigPatch::default() }; let set = merge_project_config( @@ -793,7 +795,7 @@ mod tests { }, ..AutomationConfigPatch::default() }; - effective_config(&AutomationConfig::default(), Some(&patch)).unwrap(); + effective_config(&AutomationSettingsV1::default(), Some(&patch)).unwrap(); } for (schedule, detail) in [ ("60 * * * *", "value 60 is outside 0-59"), @@ -808,7 +810,7 @@ mod tests { ..AutomationConfigPatch::default() }; assert_eq!( - effective_config(&AutomationConfig::default(), Some(&patch)) + effective_config(&AutomationSettingsV1::default(), Some(&patch)) .unwrap_err() .to_string(), format!( @@ -834,7 +836,7 @@ mod tests { #[test] fn schedule_admission_preserves_patch_omission_clear_and_precedence() { - let mut base = AutomationConfig::default(); + let mut base = AutomationSettingsV1::default(); base.tasks.memory_curator.schedule = Some("interval".to_owned()); base.tasks.memory_curator.interval_secs = Some(600); for (patch, expected) in [ @@ -881,12 +883,12 @@ mod tests { #[test] fn validation_rejects_zero_global_and_task_durations() { - let mut config = AutomationConfig { + let mut config = AutomationSettingsV1 { timeout_secs: 0, - ..AutomationConfig::default() + ..AutomationSettingsV1::default() }; let rejection = - |config: &AutomationConfig| validate_config(config).unwrap_err().to_string(); + |config: &AutomationSettingsV1| validate_config(config).unwrap_err().to_string(); assert_eq!( rejection(&config), "config error: automation timeout_secs must be greater than zero" @@ -942,7 +944,7 @@ mod tests { }, ..AutomationConfigPatch::default() }; - effective_config(&AutomationConfig::default(), Some(&patch)).unwrap(); + effective_config(&AutomationSettingsV1::default(), Some(&patch)).unwrap(); let AutomationSchedule::Cron(cron) = resolve_schedule(Some(schedule), None).unwrap() else { panic!("expected cron schedule"); }; diff --git a/crates/tracedecay-cli/src/agent_cmd/automation.rs b/crates/tracedecay-cli/src/agent_cmd/automation.rs index 6c13bdfe42..cf21747448 100644 --- a/crates/tracedecay-cli/src/agent_cmd/automation.rs +++ b/crates/tracedecay-cli/src/agent_cmd/automation.rs @@ -2,7 +2,7 @@ use std::path::{Path, PathBuf}; use tracedecay_runtime_core::config::ProfileRoot; use tracedecay_automation_runtime::automation::config::{ - AutomationBackend, AutomationConfigPatch, AutomationHostMode, AutomationTaskPatch, + AutomationBackendV1, AutomationConfigPatch, AutomationHostModeV1, AutomationTaskPatch, }; /// How `install --agent codex --automation` should configure the daemon loop. @@ -49,8 +49,8 @@ pub(super) async fn install_codex_daemon_automation( ) -> tracedecay_domain::errors::Result<()> { let patch = AutomationConfigPatch { enabled: Some(true), - backend: Some(AutomationBackend::CodexAppServer), - host_mode: Some(AutomationHostMode::Standalone), + backend: Some(AutomationBackendV1::CodexAppServer), + host_mode: Some(AutomationHostModeV1::Standalone), memory_curator: codex_daemon_interval_task(15 * 60), session_reflector: codex_daemon_interval_task(15 * 60), skill_writer: AutomationTaskPatch { diff --git a/crates/tracedecay-cli/src/automation_cli/config.rs b/crates/tracedecay-cli/src/automation_cli/config.rs index ddbfa8daf0..51ac3c9fe3 100644 --- a/crates/tracedecay-cli/src/automation_cli/config.rs +++ b/crates/tracedecay-cli/src/automation_cli/config.rs @@ -29,7 +29,7 @@ pub(super) async fn handle_automation_config_command( action: AutomationConfigAction, ) -> tracedecay_domain::errors::Result<()> { use tracedecay_automation_runtime::automation::config::{ - AutomationBackend, AutomationConfigPatch, + AutomationBackendV1, AutomationConfigPatch, }; let path = match &action { @@ -54,7 +54,7 @@ pub(super) async fn handle_automation_config_command( } AutomationConfigAction::Enable { .. } => AutomationConfigPatch { enabled: Some(true), - backend: Some(AutomationBackend::CodexAppServer), + backend: Some(AutomationBackendV1::CodexAppServer), ..AutomationConfigPatch::default() }, AutomationConfigAction::Disable { .. } => AutomationConfigPatch { @@ -132,7 +132,7 @@ pub(crate) async fn load_canonical_automation_config( profile: &ProfileRoot, project_path: &std::path::Path, ) -> tracedecay_domain::errors::Result< - tracedecay_automation_runtime::automation::config::AutomationConfig, + tracedecay_automation_runtime::automation::config::AutomationSettingsV1, > { match crate::commands::current_project_setting( profile, @@ -178,7 +178,7 @@ pub(crate) async fn apply_project_automation_patch( project_path: &std::path::Path, patch: tracedecay_automation_runtime::automation::config::AutomationConfigPatch, ) -> tracedecay_domain::errors::Result< - tracedecay_automation_runtime::automation::config::AutomationConfig, + tracedecay_automation_runtime::automation::config::AutomationSettingsV1, > { let resolved = crate::commands::resolve_project_scope(profile, project_path.to_path_buf()).await?; @@ -266,7 +266,7 @@ fn parse_optional_u64( } fn print_automation_config( - effective: &tracedecay_automation_runtime::automation::config::AutomationConfig, + effective: &tracedecay_automation_runtime::automation::config::AutomationSettingsV1, codex: &tracedecay_domain::configuration::LcmSummarizerExecutableV1, json: bool, explain: bool, @@ -275,9 +275,9 @@ fn print_automation_config( tracedecay_automation_runtime::automation::backend::backend_availability(effective, codex); let trace_decay_backend_calls = effective.enabled && effective.backend - == tracedecay_automation_runtime::automation::config::AutomationBackend::CodexAppServer + == tracedecay_automation_runtime::automation::config::AutomationBackendV1::CodexAppServer && effective.host_mode - == tracedecay_automation_runtime::automation::config::AutomationHostMode::Standalone; + == tracedecay_automation_runtime::automation::config::AutomationHostModeV1::Standalone; let payload = serde_json::json!({ "source": "daemon_pinned_snapshot", "effective": effective, @@ -285,7 +285,7 @@ fn print_automation_config( "explanation": { "trace_decay_backend_calls": trace_decay_backend_calls, "delegated_host": effective.host_mode - == tracedecay_automation_runtime::automation::config::AutomationHostMode::DelegatedHost, + == tracedecay_automation_runtime::automation::config::AutomationHostModeV1::DelegatedHost, "automatic_memory_apply": true, "automatic_skill_activation": true, }, @@ -323,12 +323,12 @@ fn print_automation_config( fn parse_automation_backend( value: &str, ) -> tracedecay_domain::errors::Result< - tracedecay_automation_runtime::automation::config::AutomationBackend, + tracedecay_automation_runtime::automation::config::AutomationBackendV1, > { - use tracedecay_automation_runtime::automation::config::AutomationBackend; + use tracedecay_automation_runtime::automation::config::AutomationBackendV1; match value { - "disabled" => Ok(AutomationBackend::Disabled), - "codex-app-server" => Ok(AutomationBackend::CodexAppServer), + "disabled" => Ok(AutomationBackendV1::Disabled), + "codex-app-server" => Ok(AutomationBackendV1::CodexAppServer), _ => Err(config_error(format!( "unknown automation backend '{value}' (expected disabled, codex-app-server)" ))), @@ -338,12 +338,12 @@ fn parse_automation_backend( fn parse_automation_host_mode( value: &str, ) -> tracedecay_domain::errors::Result< - tracedecay_automation_runtime::automation::config::AutomationHostMode, + tracedecay_automation_runtime::automation::config::AutomationHostModeV1, > { - use tracedecay_automation_runtime::automation::config::AutomationHostMode; + use tracedecay_automation_runtime::automation::config::AutomationHostModeV1; match value { - "standalone" => Ok(AutomationHostMode::Standalone), - "delegated-host" => Ok(AutomationHostMode::DelegatedHost), + "standalone" => Ok(AutomationHostModeV1::Standalone), + "delegated-host" => Ok(AutomationHostModeV1::DelegatedHost), _ => Err(config_error(format!( "unknown automation host mode '{value}' (expected standalone, delegated-host)" ))), diff --git a/crates/tracedecay-configuration/src/config/mod.rs b/crates/tracedecay-configuration/src/config/mod.rs index a64599315e..a1cba57ad5 100644 --- a/crates/tracedecay-configuration/src/config/mod.rs +++ b/crates/tracedecay-configuration/src/config/mod.rs @@ -649,7 +649,7 @@ mod tests { Err(TraceDecayError::Config { .. }) )); let mut noncanonical = resolved(BTreeMap::new()); - let mut settings = tracedecay_automation::config::AutomationConfig::default(); + let mut settings = tracedecay_automation::config::AutomationSettingsV1::default(); settings.tasks.memory_curator.schedule = Some(" hourly ".to_owned()); noncanonical.effective_values.insert( key, @@ -705,7 +705,7 @@ mod tests { let key = SettingKey::new(AUTOMATION_SETTINGS_SETTING_KEY).unwrap(); let task = tracedecay_automation::backend::AgentTaskKind::MemoryCurator; for schedule in ["every 10m", "after lunch"] { - let mut settings = tracedecay_automation::config::AutomationConfig::default(); + let mut settings = tracedecay_automation::config::AutomationSettingsV1::default(); settings.tasks.memory_curator.schedule = Some(schedule.to_owned()); settings.tasks.memory_curator.interval_secs = Some(5); let mut snapshot = resolved(BTreeMap::from([( @@ -766,7 +766,7 @@ mod tests { let key = SettingKey::new(tracedecay_domain::configuration::AUTOMATION_SETTINGS_SETTING_KEY) .unwrap(); - let mut settings = tracedecay_automation::config::AutomationConfig::default(); + let mut settings = tracedecay_automation::config::AutomationSettingsV1::default(); settings.tasks.memory_curator.schedule = Some("every 10m".to_owned()); settings.tasks.memory_curator.interval_secs = Some(5); let snapshot = resolved(BTreeMap::from([( diff --git a/crates/tracedecay-configuration/src/configuration/user_settings.rs b/crates/tracedecay-configuration/src/configuration/user_settings.rs index 5b3a8c6c10..35a0284477 100644 --- a/crates/tracedecay-configuration/src/configuration/user_settings.rs +++ b/crates/tracedecay-configuration/src/configuration/user_settings.rs @@ -9,7 +9,7 @@ use std::future::Future; use std::path::{Path, PathBuf}; use std::pin::Pin; -use tracedecay_automation::config::AutomationConfig; +use tracedecay_automation::config::AutomationSettingsV1; use tracedecay_domain::configuration::{ ConfigurationLayerIdV1, ConfigurationValueV1, SettingKey, USER_EXTRACTION_TIMEOUT_SECS_SETTING_KEY, USER_WATCHER_DEBOUNCE_MS_SETTING_KEY, UserProfileId, @@ -33,7 +33,7 @@ pub struct UserSettingsSnapshotV1 { pub extraction_timeout_secs: u64, pub installed_agents: Vec, pub cached_latest_version: String, - pub automation: AutomationConfig, + pub automation: AutomationSettingsV1, } #[derive(Clone, Debug, Default, PartialEq, Eq)] @@ -122,7 +122,7 @@ impl UserSettingsDaemonClient for ProductionUserSettingsDaemonClient { struct UserMetadata { installed_agents: Vec, cached_latest_version: String, - automation: AutomationConfig, + automation: AutomationSettingsV1, } fn read_user_metadata(profile_root: &Path) -> Result { @@ -254,7 +254,7 @@ mod tests { extraction_timeout_secs: 60, installed_agents: Vec::new(), cached_latest_version: String::new(), - automation: AutomationConfig::default(), + automation: AutomationSettingsV1::default(), } } diff --git a/crates/tracedecay-daemon-control/Cargo.toml b/crates/tracedecay-daemon-control/Cargo.toml index 0a2910ec2e..eb192284db 100644 --- a/crates/tracedecay-daemon-control/Cargo.toml +++ b/crates/tracedecay-daemon-control/Cargo.toml @@ -25,6 +25,7 @@ tracing.workspace = true # (`service/windows_task.rs`). `Win32_System_Ole` is not imported by name but # is required by the `windows` crate's VARIANT/TaskScheduler machinery. [target.'cfg(windows)'.dependencies] +tracedecay-private-fs = { path = "../tracedecay-private-fs" } windows = { version = "0.62.2", features = [ "Win32_Foundation", "Win32_System_Com", diff --git a/crates/tracedecay-daemon-control/src/service/windows_task.rs b/crates/tracedecay-daemon-control/src/service/windows_task.rs index 7e31b44016..e6d97da4e6 100644 --- a/crates/tracedecay-daemon-control/src/service/windows_task.rs +++ b/crates/tracedecay-daemon-control/src/service/windows_task.rs @@ -102,9 +102,11 @@ impl TaskIdentity { .ok() .and_then(|path| package_id_from_executable(&path)) .unwrap_or(WindowsPackageId::Stable); - let user_sid = tracedecay_runtime_core::windows_security::current_user_sid_string() - .map_err(|error| TraceDecayError::Config { - message: format!("could not determine current Windows user SID: {error}"), + let user_sid = + tracedecay_private_fs::windows::current_user_sid_string().map_err(|error| { + TraceDecayError::Config { + message: format!("could not determine current Windows user SID: {error}"), + } })?; Self::for_package_user_sid(package_id, &user_sid)?.for_profile(profile) } @@ -723,10 +725,9 @@ pub(super) fn materialize_service_spec_after_quiescence( let source = scoop_service_source(&spec.tracedecay_bin, package_id)?; atomic_copy_private_executable(&source, &layout.executable)?; } else { - tracedecay_runtime_core::windows_security::validate_private_file(&layout.executable) - .map_err(|error| { - secure_path_error("validate service executable", &layout.executable, error) - })?; + tracedecay_private_fs::windows::validate_private_file(&layout.executable).map_err( + |error| secure_path_error("validate service executable", &layout.executable, error), + )?; } let mut materialized = spec.clone(); materialized.tracedecay_bin = layout.executable; @@ -791,15 +792,15 @@ fn ensure_private_runtime_layout(layout: &ServiceRuntimeLayout) -> Result<()> { layout.directory.display() ), })?; - tracedecay_runtime_core::windows_security::validate_directory_path(local_app_data) + tracedecay_private_fs::windows::validate_directory_path(local_app_data) .map_err(|error| secure_path_error("validate LOCALAPPDATA", local_app_data, error))?; let tracedecay_dir = local_app_data.join("TraceDecay"); let service_dir = tracedecay_dir.join("service"); for directory in [&tracedecay_dir, &service_dir, &layout.directory] { - tracedecay_runtime_core::windows_security::create_private_directory(directory).map_err( - |error| secure_path_error("create private service directory", directory, error), - )?; + tracedecay_private_fs::windows::create_private_directory(directory).map_err(|error| { + secure_path_error("create private service directory", directory, error) + })?; } Ok(()) } @@ -826,8 +827,8 @@ fn atomic_copy_private_executable(source: &Path, destination: &Path) -> Result<( source.display() ), })?; - let mut output = tracedecay_runtime_core::windows_security::create_private_file(&temporary) - .map_err(|error| { + let mut output = + tracedecay_private_fs::windows::create_private_file(&temporary).map_err(|error| { secure_path_error("create service executable temporary", &temporary, error) })?; let mut buffer = vec![0_u8; 64 * 1024]; @@ -856,7 +857,7 @@ fn atomic_copy_private_executable(source: &Path, destination: &Path) -> Result<( destination, "Scoop service executable", )?; - tracedecay_runtime_core::windows_security::validate_private_file(destination) + tracedecay_private_fs::windows::validate_private_file(destination) .map_err(|error| secure_path_error("validate service executable", destination, error)) })(); if operation.is_err() { @@ -1240,12 +1241,11 @@ fn verify_restored_task( #[cfg(windows)] fn current_package_identity(package_id: WindowsPackageId) -> Result { - let user_sid = - tracedecay_runtime_core::windows_security::current_user_sid_string().map_err(|error| { - TraceDecayError::Config { - message: format!("could not determine current Windows user SID: {error}"), - } - })?; + let user_sid = tracedecay_private_fs::windows::current_user_sid_string().map_err(|error| { + TraceDecayError::Config { + message: format!("could not determine current Windows user SID: {error}"), + } + })?; TaskIdentity::for_package_user_sid(package_id, &user_sid) } @@ -1289,7 +1289,7 @@ fn write_scoop_state(state_file: &Path, state: &ScoopServiceState) -> Result<()> #[cfg(windows)] fn read_scoop_state(state_file: &Path) -> Result> { - let file = match tracedecay_runtime_core::windows_security::open_private_file(state_file) { + let file = match tracedecay_private_fs::windows::open_private_file(state_file) { Ok(file) => file, Err(error) if error.kind() == std::io::ErrorKind::NotFound => return Ok(None), Err(error) => { @@ -1312,15 +1312,13 @@ fn read_scoop_state(state_file: &Path) -> Result> { #[cfg(windows)] fn remove_scoop_state(state_file: &Path) -> Result<()> { - tracedecay_runtime_core::windows_security::validate_private_file(state_file).map_err( - |error| { - secure_path_error( - "validate Scoop service state before removal", - state_file, - error, - ) - }, - )?; + tracedecay_private_fs::windows::validate_private_file(state_file).map_err(|error| { + secure_path_error( + "validate Scoop service state before removal", + state_file, + error, + ) + })?; std::fs::remove_file(state_file).map_err(|error| { secure_path_error("remove restored Scoop service state", state_file, error) }) @@ -1328,7 +1326,7 @@ fn remove_scoop_state(state_file: &Path) -> Result<()> { #[cfg(windows)] fn remove_private_runtime_executable(executable: &Path) -> Result<()> { - match tracedecay_runtime_core::windows_security::validate_private_file(executable) { + match tracedecay_private_fs::windows::validate_private_file(executable) { Ok(()) => std::fs::remove_file(executable).map_err(|error| { secure_path_error( "remove quiesced Scoop service executable", @@ -2116,12 +2114,11 @@ fn with_platform_api_for_package( package_id: WindowsPackageId, operation: impl FnOnce(&mut dyn TaskSchedulerApi) -> Result, ) -> Result { - let user_sid = - tracedecay_runtime_core::windows_security::current_user_sid_string().map_err(|error| { - TraceDecayError::Config { - message: format!("could not determine current Windows user SID: {error}"), - } - })?; + let user_sid = tracedecay_private_fs::windows::current_user_sid_string().map_err(|error| { + TraceDecayError::Config { + message: format!("could not determine current Windows user SID: {error}"), + } + })?; let identity = TaskIdentity::for_package_user_sid(package_id, &user_sid)? .for_profile(&ProfileRoot::from_env()?)?; let mut api = native::NativeTaskScheduler::connect_for(identity)?; diff --git a/crates/tracedecay-daemon-identity/src/authority/windows_acl.rs b/crates/tracedecay-daemon-identity/src/authority/windows_acl.rs index 5626334b22..d191858f57 100644 --- a/crates/tracedecay-daemon-identity/src/authority/windows_acl.rs +++ b/crates/tracedecay-daemon-identity/src/authority/windows_acl.rs @@ -1,4 +1,4 @@ -pub(super) use tracedecay_runtime_core::windows_security::{ +pub(super) use tracedecay_private_fs::windows::{ create_private_directory, open_or_create_private_lock_file, open_private_file, validate_directory_path, validate_private_directory, validate_private_file, }; diff --git a/crates/tracedecay-daemon-identity/src/profile_identity.rs b/crates/tracedecay-daemon-identity/src/profile_identity.rs index a2ab971034..fe6e94fb89 100644 --- a/crates/tracedecay-daemon-identity/src/profile_identity.rs +++ b/crates/tracedecay-daemon-identity/src/profile_identity.rs @@ -264,9 +264,7 @@ fn validate_private_profile_root(path: &Path) -> Result<()> { #[cfg(test)] mod tests { #[cfg(windows)] - use tracedecay_runtime_core::windows_security::{ - validate_private_directory, validate_private_file, - }; + use tracedecay_private_fs::windows::{validate_private_directory, validate_private_file}; use super::*; diff --git a/crates/tracedecay-daemon-service/src/automation_effect/journal/tests.rs b/crates/tracedecay-daemon-service/src/automation_effect/journal/tests.rs index 1fec777295..94154de3de 100644 --- a/crates/tracedecay-daemon-service/src/automation_effect/journal/tests.rs +++ b/crates/tracedecay-daemon-service/src/automation_effect/journal/tests.rs @@ -225,10 +225,7 @@ fn write_private_test_file(path: &std::path::Path, bytes: &[u8]) { .expect("private test file mode"); } #[cfg(windows)] - drop( - tracedecay_runtime_core::windows_security::make_private_file(path) - .expect("private test file ACL"), - ); + drop(tracedecay_private_fs::windows::make_private_file(path).expect("private test file ACL")); } async fn retained_external_authority( @@ -324,18 +321,18 @@ async fn retained_disabled_user_job_run( tracedecay_automation_runtime::automation::jobs::UserJobAutomationRun, > { use tracedecay_automation_runtime::automation::config::{ - AutomationBackend, AutomationConfig, AutomationHostMode, + AutomationBackendV1, AutomationHostModeV1, AutomationSettingsV1, }; use tracedecay_automation_runtime::automation::jobs::{ AutomationJob, JobDelivery, UserJobRunOptions, run_user_job_with_backend_for_retained_settlement, }; - let config = AutomationConfig { + let config = AutomationSettingsV1 { enabled: true, - backend: AutomationBackend::CodexAppServer, - host_mode: AutomationHostMode::Standalone, - ..AutomationConfig::default() + backend: AutomationBackendV1::CodexAppServer, + host_mode: AutomationHostModeV1::Standalone, + ..AutomationSettingsV1::default() }; let job = AutomationJob { id: job_id.to_owned(), @@ -400,7 +397,7 @@ async fn fixed_task_lock_is_denied( async fn retained_repeated_memory_curator( cg: &tracedecay_project::project::TraceDecay, - config: &tracedecay_automation_runtime::automation::config::AutomationConfig, + config: &tracedecay_automation_runtime::automation::config::AutomationSettingsV1, configuration_revision: &tracedecay_domain::configuration::ConfigurationRevisionId, run_id: &str, ) -> ( @@ -424,7 +421,7 @@ async fn retained_repeated_memory_curator( async fn retained_repeated_memory_curator_run( cg: &tracedecay_project::project::TraceDecay, - config: &tracedecay_automation_runtime::automation::config::AutomationConfig, + config: &tracedecay_automation_runtime::automation::config::AutomationSettingsV1, configuration_revision: &tracedecay_domain::configuration::ConfigurationRevisionId, run_id: &str, ) -> tracedecay_automation_runtime::automation::runner::RetainedAutomationRun< @@ -989,7 +986,7 @@ async fn reused_scheduler_skip_abandons_current_effect_before_observing_exact_pr use tracedecay_automation_runtime::automation::AutomationRunControl; use tracedecay_automation_runtime::automation::backend::{AgentTaskKind, task_key}; use tracedecay_automation_runtime::automation::config::{ - AutomationBackend, AutomationConfig, AutomationHostMode, + AutomationBackendV1, AutomationHostModeV1, AutomationSettingsV1, }; use tracedecay_automation_runtime::automation::run_ledger::AutomationTrigger; use tracedecay_automation_runtime::automation::runner::{ @@ -1017,12 +1014,12 @@ async fn reused_scheduler_skip_abandons_current_effect_before_observing_exact_pr .automation_project_context(None) .expect("compose project automation context"); let dashboard_root = &cg.store_layout().dashboard_root; - let config = AutomationConfig { + let config = AutomationSettingsV1 { enabled: true, - backend: AutomationBackend::Disabled, - host_mode: AutomationHostMode::Standalone, + backend: AutomationBackendV1::Disabled, + host_mode: AutomationHostModeV1::Standalone, model_id: None, - ..AutomationConfig::default() + ..AutomationSettingsV1::default() }; let configuration_revision = ConfigurationRevisionId::new("configuration.reused-scheduler-skip") diff --git a/crates/tracedecay-daemon-service/src/retained_owner.rs b/crates/tracedecay-daemon-service/src/retained_owner.rs index b3272b4e5b..ab21485ac7 100644 --- a/crates/tracedecay-daemon-service/src/retained_owner.rs +++ b/crates/tracedecay-daemon-service/src/retained_owner.rs @@ -14,8 +14,9 @@ use tracedecay_contracts::{ RetainedMemoryExecutionPortV1, RetainedSurfaceExecutionErrorV1, RetainedSurfacePortsV1, }; use tracedecay_domain::{FactOwnerV1, ManifestDigest, ProjectId}; +use tracedecay_session_memory::session::SessionRefreshServicePort; use tracedecay_session_runtime::retained::{ - ProjectRetainedSessionAuthoritiesV1, RetainedSessionRefreshPortV1, map_execution_error, + ProjectRetainedSessionAuthoritiesV1, map_execution_error, }; use tracedecay_store_runtime::retained_memory::{ MemoryTargetAccessV1, RetainedMemoryTargetAuthorityV1, RetainedMemoryTargetV1, @@ -44,7 +45,7 @@ pub struct ProductionRetainedAuthoritiesV1 { pub mounted_session_store_id: Option, pub mounted_session_root_id: Option, pub registered_session_db: Option, - pub project_refresh: Option>, + pub project_refresh: Option>, pub project_retrieval: Option< Arc, >, diff --git a/crates/tracedecay-daemon-service/src/retained_owner/profile_refresh_journeys.rs b/crates/tracedecay-daemon-service/src/retained_owner/profile_refresh_journeys.rs index 55f853876e..6c092e1d3f 100644 --- a/crates/tracedecay-daemon-service/src/retained_owner/profile_refresh_journeys.rs +++ b/crates/tracedecay-daemon-service/src/retained_owner/profile_refresh_journeys.rs @@ -13,10 +13,11 @@ use tracedecay_contracts::{ use tracedecay_daemon_identity::profile_identity; use tracedecay_domain::{TemporalModeV1, UtcMicros}; use tracedecay_session_memory::context::ResolvedSessionIdentity; +use tracedecay_session_memory::session::SessionRefreshServicePort; use tracedecay_session_runtime::retained::{ ProfileRetainedAuthoritiesV1, ProfileRetainedConnectionAuthorityV1, - RetainedSessionRefreshPortV1, execute_profile_retained_application, - profile_retained_connection_authority, profile_session_retrieval_serving_identity, + execute_profile_retained_application, profile_retained_connection_authority, + profile_session_retrieval_serving_identity, }; use tracedecay_session_runtime::session_retrieval::DaemonSessionRetrievalRoot; use tracedecay_session_runtime::session_temporal_refresh_scheduler::SessionTemporalRefreshSchedulerRegistry; @@ -73,7 +74,7 @@ async fn execute_refresh( profile_sessions: tracedecay_global_db::RegisteredGlobalDbLeaseV1, session_identity: &ResolvedSessionIdentity, connection: &ProfileRetainedConnectionAuthorityV1, - refresh: Option<&dyn RetainedSessionRefreshPortV1>, + refresh: Option<&dyn SessionRefreshServicePort>, request: RetainedSurfaceRequestV1, label: &str, ) -> Result, ApplicationProblem> { diff --git a/crates/tracedecay-daemon-service/src/retained_owner/retained_curator.rs b/crates/tracedecay-daemon-service/src/retained_owner/retained_curator.rs index b53931d083..62b3a633c7 100644 --- a/crates/tracedecay-daemon-service/src/retained_owner/retained_curator.rs +++ b/crates/tracedecay-daemon-service/src/retained_owner/retained_curator.rs @@ -232,9 +232,7 @@ fn log_curator_settlement( } fn automation_problem( - problem: Box< - tracedecay_automation_runtime::automation::effect_runtime::AutomationSettledProblem, - >, + problem: Box, ) -> RetainedSurfaceExecutionErrorV1 { RetainedSurfaceExecutionErrorV1::ApplicationProblem(problem.problem.problem.source().clone()) } diff --git a/crates/tracedecay-dashboard-api/src/automation_config_api.rs b/crates/tracedecay-dashboard-api/src/automation_config_api.rs index 244b8ac952..97461243b9 100644 --- a/crates/tracedecay-dashboard-api/src/automation_config_api.rs +++ b/crates/tracedecay-dashboard-api/src/automation_config_api.rs @@ -27,7 +27,7 @@ use super::DashboardState; use crate::request_identity::{GlobalRequestSurface, mint_global_request_id}; use tracedecay_automation_runtime::automation::backend; use tracedecay_automation_runtime::automation::config::{ - AdmittedAutomationConfig, AutomationConfig, AutomationConfigPatch, effective_config, + AdmittedAutomationConfig, AutomationConfigPatch, AutomationSettingsV1, effective_config, }; use tracedecay_global_db::configuration::contracts::types::DirectConfigurationMutation; @@ -183,7 +183,7 @@ fn raw_automation_config( state: &DashboardState, ) -> tracedecay_domain::errors::Result<( ConfigurationRevisionId, - Arc, + Arc, LcmSummarizerExecutableV1, )> { let pinned = state.cached_runtime_configuration()?; @@ -196,7 +196,7 @@ fn raw_automation_config( fn config_payload( configuration_revision_id: &ConfigurationRevisionId, - effective: &AutomationConfig, + effective: &AutomationSettingsV1, codex: &LcmSummarizerExecutableV1, application_outcome: Option<&ApplicationOutcome>, ) -> std::result::Result { diff --git a/crates/tracedecay-dashboard-api/src/automation_scheduler_api.rs b/crates/tracedecay-dashboard-api/src/automation_scheduler_api.rs index 85b7fd82a4..fe96fc00fd 100644 --- a/crates/tracedecay-dashboard-api/src/automation_scheduler_api.rs +++ b/crates/tracedecay-dashboard-api/src/automation_scheduler_api.rs @@ -10,7 +10,7 @@ use super::automation_config_api::effective_automation_config; use super::util::{JsonError, internal_error}; use tracedecay_automation_runtime::automation::backend::{AgentTaskKind, task_key}; use tracedecay_automation_runtime::automation::config::{ - AdmittedAutomationConfig, AutomationConfig, + AdmittedAutomationConfig, AutomationSettingsV1, }; use tracedecay_automation_runtime::automation::run_ledger::{ AutomationRunLedgerRecord, AutomationRunLedgerTaskSummary, load_run_ledger_task_summary, @@ -205,7 +205,7 @@ fn task_status( } fn scheduler_status_label( - config: &AutomationConfig, + config: &AutomationSettingsV1, paused: bool, ) -> AutomationSchedulerAvailabilityV1 { if paused { @@ -215,12 +215,12 @@ fn scheduler_status_label( return AutomationSchedulerAvailabilityV1::AutomationDisabled; } if config.host_mode - == tracedecay_automation_runtime::automation::config::AutomationHostMode::DelegatedHost + == tracedecay_automation_runtime::automation::config::AutomationHostModeV1::DelegatedHost { return AutomationSchedulerAvailabilityV1::DelegatedHost; } if config.backend - == tracedecay_automation_runtime::automation::config::AutomationBackend::Disabled + == tracedecay_automation_runtime::automation::config::AutomationBackendV1::Disabled { return AutomationSchedulerAvailabilityV1::BackendDisabled; } @@ -233,7 +233,7 @@ mod tests { use super::*; use tracedecay_automation_runtime::automation::backend::AgentTaskFailureClass; use tracedecay_automation_runtime::automation::config::{ - AutomationBackend, AutomationTaskConfig, + AutomationBackendV1, AutomationTaskSettingsV1, }; use tracedecay_automation_runtime::automation::run_ledger::{ AutomationRunLedgerRecord, AutomationRunStatus, AutomationTrigger, run_ledger_path, @@ -310,15 +310,15 @@ mod tests { ) .await .unwrap(); - let mut config = AutomationConfig { + let mut config = AutomationSettingsV1 { enabled: true, - backend: AutomationBackend::CodexAppServer, - ..AutomationConfig::default() + backend: AutomationBackendV1::CodexAppServer, + ..AutomationSettingsV1::default() }; - config.tasks.memory_curator = AutomationTaskConfig { + config.tasks.memory_curator = AutomationTaskSettingsV1 { enabled: true, schedule: Some("daily".to_string()), - ..AutomationTaskConfig::default() + ..AutomationTaskSettingsV1::default() }; let status = task_status( diff --git a/crates/tracedecay-dashboard-api/src/capabilities.rs b/crates/tracedecay-dashboard-api/src/capabilities.rs index e87fc7a93e..4cba050f1c 100644 --- a/crates/tracedecay-dashboard-api/src/capabilities.rs +++ b/crates/tracedecay-dashboard-api/src/capabilities.rs @@ -3,7 +3,9 @@ use axum::extract::State; use axum::response::Json; use serde_json::{Value, json}; use tracedecay_automation_runtime::automation::backend; -use tracedecay_automation_runtime::automation::config::{AutomationBackend, AutomationHostMode}; +use tracedecay_automation_runtime::automation::config::{ + AutomationBackendV1, AutomationHostModeV1, +}; use crate::{DashboardState, RequestControl, automation_config_api, multi_root_api}; @@ -18,11 +20,11 @@ pub(super) async fn capabilities( let automation = automation_config_api::effective_automation_config(&state); let (automation_configured, automation_mode, automation_payload) = match automation { Ok((configuration_revision_id, config, codex)) => { - let backend_supported = matches!(config.backend, AutomationBackend::CodexAppServer); + let backend_supported = matches!(config.backend, AutomationBackendV1::CodexAppServer); let configured = config.enabled && backend_supported; let mode = if !configured { "disabled" - } else if config.host_mode == AutomationHostMode::DelegatedHost { + } else if config.host_mode == AutomationHostModeV1::DelegatedHost { "delegated_host" } else { "standalone_backend" diff --git a/crates/tracedecay-lcm/src/lib.rs b/crates/tracedecay-lcm/src/lib.rs index 3d4bc888c5..f61a0f6663 100644 --- a/crates/tracedecay-lcm/src/lib.rs +++ b/crates/tracedecay-lcm/src/lib.rs @@ -62,10 +62,10 @@ pub use types::{ LcmDescribeTarget, LcmError, LcmExpandQueryBudget, LcmExpandQueryContextBlock, LcmExpandQueryMatch, LcmExpandQueryPagination, LcmExpandQueryResponse, LcmExpandQuerySynthesisPrompt, LcmExpandRequest, LcmExpandResponse, LcmExpandSourcePagination, - LcmExpandTarget, LcmExpandedSummarySource, LcmGcConfig, LcmGrepHit, LcmGrepSort, - LcmLifecycleState, LcmLifecycleUpdate, LcmLoadSessionMessage, LcmLoadSessionPage, - LcmLoadSessionRequest, LcmMaintenanceDebt, LcmPayloadExpansion, LcmPayloadGcStatus, - LcmPayloadRef, LcmPreflightRequest, LcmPreflightResponse, LcmRawMessage, LcmRawMessageMetadata, + LcmExpandTarget, LcmExpandedSummarySource, LcmGcConfig, LcmGrepSort, LcmLifecycleState, + LcmLifecycleUpdate, LcmLoadSessionMessage, LcmLoadSessionPage, LcmLoadSessionRequest, + LcmMaintenanceDebt, LcmPayloadExpansion, LcmPayloadGcStatus, LcmPayloadRef, + LcmPreflightRequest, LcmPreflightResponse, LcmRawMessage, LcmRawMessageMetadata, LcmRawMessageOverview, LcmRecentSession, LcmRelationProjectionStatus, LcmReplayMessage, LcmReplaySummaryNode, LcmScope, LcmSessionBoundaryRequest, LcmSessionBoundaryResponse, LcmSessionReplayRequest, LcmSessionReplaySlice, LcmSourceRef, LcmStatus, LcmStorageKind, diff --git a/crates/tracedecay-lcm/src/types.rs b/crates/tracedecay-lcm/src/types.rs index 1c5a8cbbb7..29581eadad 100644 --- a/crates/tracedecay-lcm/src/types.rs +++ b/crates/tracedecay-lcm/src/types.rs @@ -209,21 +209,6 @@ impl std::str::FromStr for LcmGrepSort { } } -#[derive(Debug, Clone, PartialEq, Eq, serde::Serialize, serde::Deserialize)] -pub struct LcmGrepHit { - pub kind: String, - pub provider: String, - pub session_id: String, - pub message_id: Option, - pub node_id: Option, - pub store_id: Option, - /// Raw-message role (`assistant`/`user`/`tool`/`system`); `None` for - /// summary nodes and rows ingested before roles were recorded. - #[serde(default, skip_serializing_if = "Option::is_none")] - pub role: Option, - pub snippet: String, -} - #[derive(Debug, Clone, PartialEq, Eq, serde::Serialize, serde::Deserialize)] pub struct LcmExpandQueryResponse { // `answer` and `needs_synthesis` lead the payload so the synthesized answer diff --git a/crates/tracedecay-project/src/test_support/host_admission/profile_registry_test_support.rs b/crates/tracedecay-project/src/test_support/host_admission/profile_registry_test_support.rs index 3e7366c745..0b47200af5 100644 --- a/crates/tracedecay-project/src/test_support/host_admission/profile_registry_test_support.rs +++ b/crates/tracedecay-project/src/test_support/host_admission/profile_registry_test_support.rs @@ -208,10 +208,7 @@ impl HostAdmissionTestRuntimeV1 { #[doc(hidden)] pub async fn plan_registry_reap(&self) -> Result { - self.profile_database - .plan_registry_reap() - .await - .map(legacy_registry_reap_plan) + self.profile_database.plan_registry_reap().await } #[doc(hidden)] @@ -219,8 +216,7 @@ impl HostAdmissionTestRuntimeV1 { &self, plan: &tracedecay_global_db::RegistryReapPlan, ) -> Result { - let plan = registered_registry_reap_plan(plan); - self.profile_database.apply_registry_reap(&plan).await + self.profile_database.apply_registry_reap(plan).await } #[doc(hidden)] @@ -240,88 +236,6 @@ impl HostAdmissionTestRuntimeV1 { } } -fn legacy_registry_reap_plan( - plan: tracedecay_global_db::RegistryReapPlan, -) -> tracedecay_global_db::RegistryReapPlan { - tracedecay_global_db::RegistryReapPlan { - reapable: plan - .reapable - .into_iter() - .map(legacy_registry_reap_entry) - .collect(), - retained: plan - .retained - .into_iter() - .map(|retained| tracedecay_global_db::RetainedRegistryEntry { - entry: legacy_registry_reap_entry(retained.entry), - reason: retained.reason, - }) - .collect(), - } -} - -fn legacy_registry_reap_entry( - entry: tracedecay_global_db::RegistryReapEntry, -) -> tracedecay_global_db::RegistryReapEntry { - tracedecay_global_db::RegistryReapEntry { - kind: match entry.kind { - tracedecay_global_db::ReapEntryKind::SavingsLedgerPath => { - tracedecay_global_db::ReapEntryKind::SavingsLedgerPath - } - tracedecay_global_db::ReapEntryKind::ProjectAlias => { - tracedecay_global_db::ReapEntryKind::ProjectAlias - } - tracedecay_global_db::ReapEntryKind::CodeProject => { - tracedecay_global_db::ReapEntryKind::CodeProject - } - }, - key: entry.key, - missing_path: entry.missing_path, - project_id: entry.project_id, - } -} - -fn registered_registry_reap_plan( - plan: &tracedecay_global_db::RegistryReapPlan, -) -> tracedecay_global_db::RegistryReapPlan { - tracedecay_global_db::RegistryReapPlan { - reapable: plan - .reapable - .iter() - .map(registered_registry_reap_entry) - .collect(), - retained: plan - .retained - .iter() - .map(|retained| tracedecay_global_db::RetainedRegistryEntry { - entry: registered_registry_reap_entry(&retained.entry), - reason: retained.reason.clone(), - }) - .collect(), - } -} - -fn registered_registry_reap_entry( - entry: &tracedecay_global_db::RegistryReapEntry, -) -> tracedecay_global_db::RegistryReapEntry { - tracedecay_global_db::RegistryReapEntry { - kind: match entry.kind { - tracedecay_global_db::ReapEntryKind::SavingsLedgerPath => { - tracedecay_global_db::ReapEntryKind::SavingsLedgerPath - } - tracedecay_global_db::ReapEntryKind::ProjectAlias => { - tracedecay_global_db::ReapEntryKind::ProjectAlias - } - tracedecay_global_db::ReapEntryKind::CodeProject => { - tracedecay_global_db::ReapEntryKind::CodeProject - } - }, - key: entry.key.clone(), - missing_path: entry.missing_path.clone(), - project_id: entry.project_id.clone(), - } -} - /// `VACUUM INTO` over a read-only connection: one read transaction yields a /// consistent standalone image of the live WAL database without the writer. async fn vacuum_into_for_test(source: &Path, destination: &Path) -> Result<()> { diff --git a/crates/tracedecay-runtime-core/src/db/access/owner_io.rs b/crates/tracedecay-runtime-core/src/db/access/owner_io.rs index 42e629b13d..73e4bf7193 100644 --- a/crates/tracedecay-runtime-core/src/db/access/owner_io.rs +++ b/crates/tracedecay-runtime-core/src/db/access/owner_io.rs @@ -28,7 +28,7 @@ pub(super) fn publish_record_atomically( let publish = (|| { #[cfg(windows)] let mut file = - crate::windows_security::create_private_file(temporary).map_err(|error| { + tracedecay_private_fs::windows::create_private_file(temporary).map_err(|error| { access_io_error(&format!("create {record_name}"), temporary, &error) })?; #[cfg(not(windows))] @@ -42,7 +42,7 @@ pub(super) fn publish_record_atomically( drop(file); replace_file_atomically(temporary, destination, record_name)?; #[cfg(windows)] - crate::windows_security::validate_private_file(destination).map_err(|error| { + tracedecay_private_fs::windows::validate_private_file(destination).map_err(|error| { access_io_error( &format!("validate published {record_name}"), destination, @@ -61,7 +61,7 @@ pub(super) fn read_record_strict(path: &Path, record_name: &str) -> Result file, Err(error) if error.kind() == std::io::ErrorKind::NotFound => return Ok(None), Err(error) => { diff --git a/crates/tracedecay-runtime-core/src/lib.rs b/crates/tracedecay-runtime-core/src/lib.rs index 73bac69e1c..9af7db74d9 100644 --- a/crates/tracedecay-runtime-core/src/lib.rs +++ b/crates/tracedecay-runtime-core/src/lib.rs @@ -140,8 +140,6 @@ pub mod tracedecay; pub mod weak_registry; pub use asupersync::{Cx, signal}; pub use operation_task_owner::RuntimeOperationTaskOwnerV1; -#[cfg(windows)] -pub use tracedecay_private_fs::windows as windows_security; pub mod worktree; /// Ports the kernel exposes so the root crate can inject subsystems that stay diff --git a/crates/tracedecay-runtime-core/src/storage/paths_and_io.rs b/crates/tracedecay-runtime-core/src/storage/paths_and_io.rs index bcb7981c4f..d774f8cd5f 100644 --- a/crates/tracedecay-runtime-core/src/storage/paths_and_io.rs +++ b/crates/tracedecay-runtime-core/src/storage/paths_and_io.rs @@ -746,7 +746,7 @@ pub(super) fn open_lock_file(lock_path: &Path, private: bool) -> io::Result { pub lcm_authority: Option<&'a dyn MountedLcmAuthorityPort>, /// Daemon-wide profile session refresh service; refresh handles it issues /// stay valid across every connection that reaches the same profile store. - pub session_refresh: Option<&'a dyn RetainedSessionRefreshPortV1>, + pub session_refresh: Option<&'a dyn SessionRefreshServicePort>, /// Serving-status port of the mounted profile refresh worker. Retrieval /// with `RequireFresh` reads this instead of assuming the worker is /// missing when only the wake was retained. diff --git a/crates/tracedecay-session-runtime/src/retained/session.rs b/crates/tracedecay-session-runtime/src/retained/session.rs index fa83dbcb47..ab1b1d306d 100644 --- a/crates/tracedecay-session-runtime/src/retained/session.rs +++ b/crates/tracedecay-session-runtime/src/retained/session.rs @@ -24,7 +24,8 @@ use tracedecay_domain::{ use tracedecay_runtime_core::native_runtime; use tracedecay_session_memory::context::{ResolvedSessionIdentity, SessionRootId, SessionStoreId}; use tracedecay_session_memory::session::{ - SessionDataFreshness, SessionFreshnessPolicy, SessionRetrievalScope, SessionTemporalQuery, + SessionDataFreshness, SessionFreshnessPolicy, SessionRefreshServicePort, SessionRetrievalScope, + SessionTemporalQuery, }; use tracedecay_sessions::WorkflowIndexReadPort; use tracedecay_sessions::runtime::git_correlation::{GitScopeFilter, git_scope_filter_from_args}; @@ -37,10 +38,7 @@ use tracedecay_temporal_query::ranking::DiversityLimits; use tracedecay_temporal_query::snapshot::TemporalCandidateFilterV1; use tracedecay_temporal_query::snapshot::TemporalCandidatePopulationCount; -use super::session_refresh::{ - MountedSessionRefreshAuthorityV1, RetainedSessionRefreshPortV1, - admitted_session_refresh_command, -}; +use super::session_refresh::{MountedSessionRefreshAuthorityV1, admitted_session_refresh_command}; use crate::session_retrieval::{ DaemonSessionRetrievalService, SessionApplicationRetrievalPortV1, SessionRetrievalCoverageOmissionView, SessionRetrievalPageView, SessionRetrievalServiceOutcome, @@ -65,7 +63,7 @@ pub struct ProjectRetainedSessionAuthoritiesV1 { pub session_store_id: SessionStoreId, pub session_root_id: SessionRootId, pub configuration_digest: ManifestDigest, - pub refresh: Arc, + pub refresh: Arc, pub retrieval: Arc, pub session_database: RegisteredGlobalDbLeaseV1, pub workflow_index: Arc, @@ -77,7 +75,7 @@ enum RetainedSessionAuthority<'a> { session_database: super::ProfileSessionDatabaseSource<'a>, identity: ResolvedSessionIdentity, configuration_digest: ManifestDigest, - refresh: Option<&'a dyn RetainedSessionRefreshPortV1>, + refresh: Option<&'a dyn SessionRefreshServicePort>, refresh_status: Option>, }, @@ -92,7 +90,7 @@ impl<'a> DirectRetainedSessionPortV1<'a> { session_database: super::ProfileSessionDatabaseSource<'a>, identity: ResolvedSessionIdentity, configuration_digest: ManifestDigest, - refresh: Option<&'a dyn RetainedSessionRefreshPortV1>, + refresh: Option<&'a dyn SessionRefreshServicePort>, refresh_status: Option< Arc, >, @@ -114,7 +112,7 @@ impl<'a> DirectRetainedSessionPortV1<'a> { request: &SessionRefreshRequestV1, identity: &ResolvedSessionIdentity, configuration_digest: &ManifestDigest, - refresh: Option<&dyn RetainedSessionRefreshPortV1>, + refresh: Option<&dyn SessionRefreshServicePort>, ) -> Result, RetainedSurfaceExecutionErrorV1> { let SessionRefreshScopeV1::Profile {} = &request.request.scope else { return Err(RetainedSurfaceExecutionErrorV1::NotFoundOrNotAuthorized); diff --git a/crates/tracedecay-session-runtime/src/retained/session_refresh.rs b/crates/tracedecay-session-runtime/src/retained/session_refresh.rs index d47eede060..8079e00586 100644 --- a/crates/tracedecay-session-runtime/src/retained/session_refresh.rs +++ b/crates/tracedecay-session-runtime/src/retained/session_refresh.rs @@ -25,8 +25,9 @@ use tracedecay_session_memory::context::{ use tracedecay_session_memory::session::{SessionRefreshTarget, SessionRequestBinding}; use tracedecay_store::SessionRefreshFrontierV1; -pub use tracedecay_session_memory::session::SessionRefreshServicePort as RetainedSessionRefreshPortV1; -use tracedecay_session_memory::session::{SessionRefreshAction, SessionRefreshCommand}; +use tracedecay_session_memory::session::{ + SessionRefreshAction, SessionRefreshCommand, SessionRefreshServicePort, +}; const REQUEST_MAX_RESULTS: u64 = 64; const REQUEST_MAX_BYTES: u64 = 64 * 1024 * 1024; @@ -47,7 +48,7 @@ pub struct MountedSessionRefreshAuthorityV1<'a> { pub session_root_id: &'a SessionRootId, pub configuration_digest: &'a ManifestDigest, pub policy_digest: &'a ManifestDigest, - pub refresh: &'a dyn RetainedSessionRefreshPortV1, + pub refresh: &'a dyn SessionRefreshServicePort, } #[tracing::instrument( diff --git a/crates/tracedecay-store/src/lib.rs b/crates/tracedecay-store/src/lib.rs index 1c2cfffeb5..b1cb232e20 100644 --- a/crates/tracedecay-store/src/lib.rs +++ b/crates/tracedecay-store/src/lib.rs @@ -153,9 +153,9 @@ pub use observation::{ build_scope_resolution_authorization_v1, observation_capture_access_policy_digest_v1, }; pub use projection::{ - CLAUDE_SESSION_MESSAGE_PROJECTOR_VERSION, ObservationProjection, ObservationProjectionStore, - PROJECTION_TERMINAL_RETRY_MICROS, PROVIDER_USAGE_PROJECTOR_VERSION, ProjectedObservation, - ProjectionBatchItem, ProjectionCheckpoint, ProjectionDrainBatch, ProjectionPersistOutcome, + ObservationProjection, ObservationProjectionStore, PROJECTION_TERMINAL_RETRY_MICROS, + PROVIDER_USAGE_PROJECTOR_VERSION, ProjectedObservation, ProjectionBatchItem, + ProjectionCheckpoint, ProjectionDrainBatch, ProjectionPersistOutcome, ProjectionPredecessorConvergence, ProjectionProvenance, ProjectionRebuildOutcome, ProjectionSkipReason, ProjectionStoreError, ProjectionStoreResult, SESSION_MESSAGE_PROJECTOR_VERSION, SESSION_MESSAGE_PROJECTOR_VERSION_V4, diff --git a/crates/tracedecay-store/src/projection.rs b/crates/tracedecay-store/src/projection.rs index aacfdfe6cb..d1a37963ac 100644 --- a/crates/tracedecay-store/src/projection.rs +++ b/crates/tracedecay-store/src/projection.rs @@ -22,7 +22,6 @@ pub const SESSION_MESSAGE_PROJECTOR_VERSION_V5: &str = "claude-session-message-v /// immutable session-temporal effects bind the v6 output digests. pub const SESSION_MESSAGE_PROJECTOR_VERSION_V7: &str = "claude-session-message-v7"; pub const SESSION_MESSAGE_PROJECTOR_VERSION: &str = SESSION_MESSAGE_PROJECTOR_VERSION_V7; -pub const CLAUDE_SESSION_MESSAGE_PROJECTOR_VERSION: &str = SESSION_MESSAGE_PROJECTOR_VERSION; /// Immutable provider-usage row contract. Usage shares the canonical /// observation projection's checkpoint and rebuild transaction, but carries /// its own output version so an already-published message checkpoint can never diff --git a/crates/tracedecay/src/daemon/dashboard_automation.rs b/crates/tracedecay/src/daemon/dashboard_automation.rs index 3f105397c8..d400cf7d55 100644 --- a/crates/tracedecay/src/daemon/dashboard_automation.rs +++ b/crates/tracedecay/src/daemon/dashboard_automation.rs @@ -7,7 +7,7 @@ use std::sync::Arc; use serde_json::Value; use tracedecay_automation_runtime::automation::AutomationRunControl; use tracedecay_automation_runtime::automation::backend::CodexAppServerBackend; -use tracedecay_automation_runtime::automation::config::AutomationConfig; +use tracedecay_automation_runtime::automation::config::AutomationSettingsV1; use tracedecay_automation_runtime::automation::host_io::HostIo; use tracedecay_automation_runtime::automation::managed_skills::{ ManagedSkill, ManagedSkillExt, ManagedSkillReadError, apply_managed_skill_update, @@ -47,13 +47,13 @@ type DashboardAutomationProjectResolver = const USER_JOB_REQUEST_TIMEOUT_SECS: u64 = 120; struct DashboardAutomationRequestRuntime { - config: AutomationConfig, + config: AutomationSettingsV1, backend: CodexAppServerBackend, } impl DashboardAutomationRequestRuntime { fn new( - configured: &AutomationConfig, + configured: &AutomationSettingsV1, codex: &tracedecay_domain::configuration::LcmSummarizerExecutableV1, ) -> Self { let mut config = configured.clone(); @@ -62,7 +62,7 @@ impl DashboardAutomationRequestRuntime { Self { config, backend } } - fn execution(&self) -> (&AutomationConfig, &CodexAppServerBackend) { + fn execution(&self) -> (&AutomationSettingsV1, &CodexAppServerBackend) { (&self.config, &self.backend) } } @@ -623,9 +623,7 @@ fn automation_terminal_run( } fn automation_problem( - problem: Box< - tracedecay_automation_runtime::automation::effect_runtime::AutomationSettledProblem, - >, + problem: Box, ) -> DashboardAutomationAuthorityErrorV1 { DashboardAutomationAuthorityErrorV1::AutomationProblem(problem) } @@ -633,13 +631,13 @@ fn automation_problem( #[cfg(test)] mod tests { use super::DashboardAutomationRequestRuntime; - use tracedecay_automation_runtime::automation::config::AutomationConfig; + use tracedecay_automation_runtime::automation::config::AutomationSettingsV1; #[test] fn dashboard_user_job_caps_backend_calls_for_the_wall_budget() { - let configured = AutomationConfig { + let configured = AutomationSettingsV1 { timeout_secs: 300, - ..AutomationConfig::default() + ..AutomationSettingsV1::default() }; let runtime = DashboardAutomationRequestRuntime::new( diff --git a/crates/tracedecay/src/daemon/profile_retained.rs b/crates/tracedecay/src/daemon/profile_retained.rs index 5e40d29899..5f26871676 100644 --- a/crates/tracedecay/src/daemon/profile_retained.rs +++ b/crates/tracedecay/src/daemon/profile_retained.rs @@ -19,11 +19,12 @@ use tracedecay_daemon_protocol::{ }; use tracedecay_domain::errors::{Result, TraceDecayError}; use tracedecay_runtime_core::cancellation::CancellationToken; +use tracedecay_session_memory::session::SessionRefreshServicePort; use tracedecay_session_runtime::lcm_authority::mount_registered_lcm_authority; use tracedecay_session_runtime::retained::{ ProfileRetainedAuthoritiesV1, ProfileRetainedConnectionAuthorityV1, ProfileRetainedTerminalV1, - RetainedSessionRefreshPortV1, execute_profile_retained_application, - profile_retained_connection_authority, profile_session_retrieval_serving_identity, + execute_profile_retained_application, profile_retained_connection_authority, + profile_session_retrieval_serving_identity, }; use tracedecay_session_runtime::session_retrieval::DaemonSessionRetrievalRoot; use tracedecay_sessions::runtime::user_sessions_db_path; @@ -185,7 +186,7 @@ async fn execute_profile_retained( lcm_authority: lcm_authority.as_deref(), session_refresh: session_refresh .as_ref() - .map(|refresh| refresh.service.as_ref() as &dyn RetainedSessionRefreshPortV1), + .map(|refresh| refresh.service.as_ref() as &dyn SessionRefreshServicePort), refresh_status: session_refresh .as_ref() .map(|refresh| Arc::clone(&refresh.serving)), diff --git a/crates/tracedecay/src/daemon/project_open_owners/advisory_runtime/scout_journey_tests.rs b/crates/tracedecay/src/daemon/project_open_owners/advisory_runtime/scout_journey_tests.rs index 5b668a54d3..1296697733 100644 --- a/crates/tracedecay/src/daemon/project_open_owners/advisory_runtime/scout_journey_tests.rs +++ b/crates/tracedecay/src/daemon/project_open_owners/advisory_runtime/scout_journey_tests.rs @@ -318,13 +318,15 @@ async fn claim_public( #[tokio::test] async fn project_open_edit_stop_and_explicit_feedback_preserve_privacy_and_supersession() { - use tracedecay_automation_runtime::automation::config::{AutomationBackend, AutomationConfig}; + use tracedecay_automation_runtime::automation::config::{ + AutomationBackendV1, AutomationSettingsV1, + }; let temporary = tempfile::tempdir().expect("temporary directory"); - let model_config = AutomationConfig { + let model_config = AutomationSettingsV1 { enabled: true, - backend: AutomationBackend::CodexAppServer, - ..AutomationConfig::default() + backend: AutomationBackendV1::CodexAppServer, + ..AutomationSettingsV1::default() }; let pin = configured_model_pin(); let control = pin.control(); @@ -597,13 +599,15 @@ async fn project_open_edit_stop_and_explicit_feedback_preserve_privacy_and_super #[tokio::test] async fn claim_refuses_work_from_a_displaced_configuration_revision() { - use tracedecay_automation_runtime::automation::config::{AutomationBackend, AutomationConfig}; + use tracedecay_automation_runtime::automation::config::{ + AutomationBackendV1, AutomationSettingsV1, + }; let temporary = tempfile::tempdir().expect("temporary directory"); - let model_config = AutomationConfig { + let model_config = AutomationSettingsV1 { enabled: true, - backend: AutomationBackend::CodexAppServer, - ..AutomationConfig::default() + backend: AutomationBackendV1::CodexAppServer, + ..AutomationSettingsV1::default() }; let first_pin = configured_model_pin_with_timeout("revision.scout.claim.first", 30); let first_control = first_pin.control(); @@ -727,7 +731,7 @@ async fn stock_disabled_configuration_produces_nothing() { pin, tracedecay_agent_hosts::agents::context_scout::model::ContextScoutModelConfig { automation: - &tracedecay_automation_runtime::automation::config::AutomationConfig::default(), + &tracedecay_automation_runtime::automation::config::AutomationSettingsV1::default(), codex: &tracedecay_domain::configuration::LcmSummarizerExecutableV1::Unconfigured, }, ) diff --git a/crates/tracedecay/src/daemon/scheduler.rs b/crates/tracedecay/src/daemon/scheduler.rs index 5d8c2dca07..4f7d148cf9 100644 --- a/crates/tracedecay/src/daemon/scheduler.rs +++ b/crates/tracedecay/src/daemon/scheduler.rs @@ -111,7 +111,7 @@ fn log_scheduler_automation_replay( pub(super) fn scheduler_application_problem_log_fields( project_path: &Path, task: AgentTaskKind, - problem: &tracedecay_automation_runtime::automation::effect_runtime::AutomationSettledProblem, + problem: &tracedecay_contracts::retained_surfaces::AutomationRunProblemV1, ) -> Vec<(&'static str, String)> { let mut fields = scheduler_project_task_fields(project_path, task); fields.extend([ @@ -2001,12 +2001,12 @@ async fn effective_automation_config_for_project( pub(super) fn automation_scheduler_configured(config: &AdmittedAutomationConfig) -> bool { use tracedecay_automation_runtime::automation::config::{ - AutomationBackend, AutomationHostMode, + AutomationBackendV1, AutomationHostModeV1, }; if !config.enabled - || config.host_mode == AutomationHostMode::DelegatedHost - || config.backend != AutomationBackend::CodexAppServer + || config.host_mode == AutomationHostModeV1::DelegatedHost + || config.backend != AutomationBackendV1::CodexAppServer { return false; } @@ -2045,15 +2045,15 @@ async fn automation_scheduler_has_work( config: &AdmittedAutomationConfig, ) -> Result { use tracedecay_automation_runtime::automation::config::{ - AutomationBackend, AutomationHostMode, + AutomationBackendV1, AutomationHostModeV1, }; if automation_scheduler_configured(config) { return Ok(true); } if !config.enabled - || config.host_mode == AutomationHostMode::DelegatedHost - || config.backend != AutomationBackend::CodexAppServer + || config.host_mode == AutomationHostModeV1::DelegatedHost + || config.backend != AutomationBackendV1::CodexAppServer { return Ok(false); } @@ -2082,7 +2082,7 @@ async fn run_user_jobs_scheduler_pass( profile_root: &Path, cg: &tracedecay_project::project::TraceDecay, configuration_digest: tracedecay_domain::ManifestDigest, - config: &tracedecay_automation_runtime::automation::config::AutomationConfig, + config: &tracedecay_automation_runtime::automation::config::AutomationSettingsV1, backend: &tracedecay_automation_runtime::automation::backend::CodexAppServerBackend, first_error: &mut Option, ) { diff --git a/crates/tracedecay/src/daemon/scheduler/combined_effect.rs b/crates/tracedecay/src/daemon/scheduler/combined_effect.rs index a85ffe60d0..14d67d3c60 100644 --- a/crates/tracedecay/src/daemon/scheduler/combined_effect.rs +++ b/crates/tracedecay/src/daemon/scheduler/combined_effect.rs @@ -276,7 +276,7 @@ pub(super) async fn run_combined_scheduler_effect( admission: CombinedEffectAdmission, engine: &DaemonEngine, automation_context: &AutomationProjectContext, - config: &tracedecay_automation_runtime::automation::config::AutomationConfig, + config: &tracedecay_automation_runtime::automation::config::AutomationSettingsV1, configuration_revision_id: &tracedecay_domain::configuration::ConfigurationRevisionId, backend: &dyn tracedecay_automation_runtime::automation::backend::AgentTaskBackend, retrieval: &dyn tracedecay_automation_runtime::automation::runner::AutomationSessionRetrieval, @@ -310,7 +310,7 @@ fn run_combined_scheduler_effect_inner<'a>( admission: CombinedEffectAdmission, engine: &'a DaemonEngine, automation_context: &'a AutomationProjectContext, - config: &'a tracedecay_automation_runtime::automation::config::AutomationConfig, + config: &'a tracedecay_automation_runtime::automation::config::AutomationSettingsV1, configuration_revision_id: &'a tracedecay_domain::configuration::ConfigurationRevisionId, backend: &'a dyn tracedecay_automation_runtime::automation::backend::AgentTaskBackend, retrieval: &'a dyn tracedecay_automation_runtime::automation::runner::AutomationSessionRetrieval, @@ -470,7 +470,7 @@ fn run_execute_pair<'a>( skill: AutomationEffectAuthority, engine: &'a DaemonEngine, automation_context: &'a AutomationProjectContext, - config: &'a tracedecay_automation_runtime::automation::config::AutomationConfig, + config: &'a tracedecay_automation_runtime::automation::config::AutomationSettingsV1, configuration_revision_id: &'a tracedecay_domain::configuration::ConfigurationRevisionId, backend: &'a dyn tracedecay_automation_runtime::automation::backend::AgentTaskBackend, retrieval: &'a dyn tracedecay_automation_runtime::automation::runner::AutomationSessionRetrieval, @@ -798,7 +798,7 @@ mod tests { use tracedecay_automation_runtime::automation::backend::{ AgentTaskBackend, AgentTaskKind, AgentTaskRequest, AgentTaskResponse, }; - use tracedecay_automation_runtime::automation::config::AutomationConfig; + use tracedecay_automation_runtime::automation::config::AutomationSettingsV1; use tracedecay_automation_runtime::automation::run_ledger::{ AutomationRunStatus, AutomationTrigger, find_run_record_exact_bounded_blocking, run_ledger_path, @@ -1189,9 +1189,9 @@ mod tests { let session_db = fixture.mount_observability().await; let backend = RecordingEarlyGateBackend::new(); let retrieval = RecordingEarlyGateRetrieval::new(); - let config = AutomationConfig { + let config = AutomationSettingsV1 { enabled: false, - ..AutomationConfig::default() + ..AutomationSettingsV1::default() }; let parent_control = AutomationRunControl::from_interrupted(Arc::new(|| false)); let options = CombinedReviewAutomationOptions::default(); diff --git a/crates/tracedecay/src/daemon/scheduler/effect_admission.rs b/crates/tracedecay/src/daemon/scheduler/effect_admission.rs index 018f7d239c..7944ce937e 100644 --- a/crates/tracedecay/src/daemon/scheduler/effect_admission.rs +++ b/crates/tracedecay/src/daemon/scheduler/effect_admission.rs @@ -924,7 +924,7 @@ mod tests { #[tokio::test] async fn disabled_fixed_task_preflight_creates_no_effect_journal() { let dashboard = tempfile::tempdir().expect("dashboard root"); - let config = tracedecay_automation_runtime::automation::config::AutomationConfig { + let config = tracedecay_automation_runtime::automation::config::AutomationSettingsV1 { enabled: false, ..Default::default() }; diff --git a/crates/tracedecay/src/daemon/tests.rs b/crates/tracedecay/src/daemon/tests.rs index db75dd5637..1875f8fb87 100644 --- a/crates/tracedecay/src/daemon/tests.rs +++ b/crates/tracedecay/src/daemon/tests.rs @@ -694,7 +694,7 @@ fn scheduled_automation_patch( tracedecay_automation_runtime::automation::config::AutomationConfigPatch { enabled: Some(enabled), backend: Some( - tracedecay_automation_runtime::automation::config::AutomationBackend::CodexAppServer, + tracedecay_automation_runtime::automation::config::AutomationBackendV1::CodexAppServer, ), memory_curator: tracedecay_automation_runtime::automation::config::AutomationTaskPatch { enabled: Some(true), diff --git a/crates/tracedecay/src/daemon/tests/scheduler_config.rs b/crates/tracedecay/src/daemon/tests/scheduler_config.rs index 9ed923b006..07e7136ee3 100644 --- a/crates/tracedecay/src/daemon/tests/scheduler_config.rs +++ b/crates/tracedecay/src/daemon/tests/scheduler_config.rs @@ -6,7 +6,7 @@ use super::*; #[cfg(unix)] use tracedecay_automation_runtime::automation::config::{ - AutomationBackend, AutomationConfigPatch, AutomationTaskPatch, + AutomationBackendV1, AutomationConfigPatch, AutomationTaskPatch, }; #[cfg(unix)] use tracedecay_runtime_core::cancellation::CancellationToken; @@ -28,22 +28,22 @@ impl Drop for AutomationExitBarrierRelease { #[test] fn automation_scheduler_starts_when_any_task_has_interval() { use tracedecay_automation_runtime::automation::config::{ - AutomationBackend, AutomationConfig, AutomationHostMode, AutomationTaskConfig, + AutomationBackendV1, AutomationHostModeV1, AutomationSettingsV1, AutomationTaskSettingsV1, }; - let mut config = AutomationConfig { + let mut config = AutomationSettingsV1 { enabled: true, - backend: AutomationBackend::CodexAppServer, + backend: AutomationBackendV1::CodexAppServer, combine_due_tasks: false, tasks: tracedecay_domain::AutomationTaskSetV1::default(), - ..AutomationConfig::default() + ..AutomationSettingsV1::default() }; - config.tasks.memory_curator = AutomationTaskConfig { + config.tasks.memory_curator = AutomationTaskSettingsV1 { enabled: true, schedule: Some("every:5m".to_string()), interval_secs: None, cooldown_secs: None, - ..AutomationTaskConfig::default() + ..AutomationTaskSettingsV1::default() }; assert!(super::super::automation_scheduler_configured( @@ -64,43 +64,43 @@ fn automation_scheduler_starts_when_any_task_has_interval() { )); config.tasks.memory_curator.enabled = false; - config.tasks.session_reflector = AutomationTaskConfig { + config.tasks.session_reflector = AutomationTaskSettingsV1 { enabled: true, schedule: Some("hourly".to_string()), interval_secs: None, cooldown_secs: None, - ..AutomationTaskConfig::default() + ..AutomationTaskSettingsV1::default() }; assert!(super::super::automation_scheduler_configured( &tracedecay_automation::config::admit_config(&config).unwrap() )); config.tasks.session_reflector.enabled = false; - config.tasks.skill_writer = AutomationTaskConfig { + config.tasks.skill_writer = AutomationTaskSettingsV1 { enabled: true, schedule: Some("daily".to_string()), interval_secs: None, cooldown_secs: None, - ..AutomationTaskConfig::default() + ..AutomationTaskSettingsV1::default() }; assert!(super::super::automation_scheduler_configured( &tracedecay_automation::config::admit_config(&config).unwrap() )); config.tasks.memory_curator.schedule = Some("every:5m".to_string()); - config.backend = AutomationBackend::Disabled; + config.backend = AutomationBackendV1::Disabled; config.model_id = None; assert!(!super::super::automation_scheduler_configured( &tracedecay_automation::config::admit_config(&config).unwrap() )); - config.backend = AutomationBackend::CodexAppServer; - config.host_mode = AutomationHostMode::DelegatedHost; + config.backend = AutomationBackendV1::CodexAppServer; + config.host_mode = AutomationHostModeV1::DelegatedHost; assert!(!super::super::automation_scheduler_configured( &tracedecay_automation::config::admit_config(&config).unwrap() )); - config.host_mode = AutomationHostMode::Standalone; + config.host_mode = AutomationHostModeV1::Standalone; config.enabled = false; assert!(!super::super::automation_scheduler_configured( &tracedecay_automation::config::admit_config(&config).unwrap() @@ -271,7 +271,7 @@ async fn daemon_scheduler_skips_stale_owner_key_after_rekey() { &handshake, AutomationConfigPatch { enabled: Some(true), - backend: Some(AutomationBackend::CodexAppServer), + backend: Some(AutomationBackendV1::CodexAppServer), memory_curator: AutomationTaskPatch { enabled: Some(true), schedule: Some(Some("every:5m".to_string())), @@ -721,7 +721,7 @@ async fn profile_reconcile_broadcasts_to_cached_projects_without_opening_uncache #[tokio::test] async fn cached_project_reconciles_cli_enabled_automation_without_cache_probe() { use tracedecay_automation_runtime::automation::config::{ - AutomationBackend, AutomationConfigPatch, AutomationTaskPatch, + AutomationBackendV1, AutomationConfigPatch, AutomationTaskPatch, }; let dir = TempDir::new().expect("temp dir"); @@ -785,7 +785,7 @@ async fn cached_project_reconciles_cli_enabled_automation_without_cache_probe() &handshake, AutomationConfigPatch { enabled: Some(true), - backend: Some(AutomationBackend::CodexAppServer), + backend: Some(AutomationBackendV1::CodexAppServer), memory_curator: AutomationTaskPatch { enabled: Some(true), schedule: Some(Some("every:5m".to_string())), @@ -863,7 +863,7 @@ async fn cached_project_reconciles_cli_enabled_automation_without_cache_probe() #[tokio::test] async fn disabled_scheduler_reconcile_cannot_acknowledge_an_owner_that_then_exits() { use tracedecay_automation_runtime::automation::config::{ - AutomationBackend, AutomationConfigPatch, AutomationTaskPatch, + AutomationBackendV1, AutomationConfigPatch, AutomationTaskPatch, }; use tracedecay_automation_runtime::automation::scheduler::{ AutomationSchedulerControl, save_scheduler_control, @@ -879,7 +879,7 @@ async fn disabled_scheduler_reconcile_cannot_acknowledge_an_owner_that_then_exit let dashboard_root = layout.dashboard_root; let scheduled = AutomationConfigPatch { enabled: Some(true), - backend: Some(AutomationBackend::CodexAppServer), + backend: Some(AutomationBackendV1::CodexAppServer), memory_curator: AutomationTaskPatch { enabled: Some(true), schedule: Some(Some("every:5m".to_string())), diff --git a/crates/tracedecay/src/daemon/tests/scheduler_config/paused_tick.rs b/crates/tracedecay/src/daemon/tests/scheduler_config/paused_tick.rs index 9f23d334b5..a6ab75eb63 100644 --- a/crates/tracedecay/src/daemon/tests/scheduler_config/paused_tick.rs +++ b/crates/tracedecay/src/daemon/tests/scheduler_config/paused_tick.rs @@ -2,7 +2,7 @@ use std::sync::Arc; use tempfile::TempDir; use tracedecay_automation_runtime::automation::config::{ - AutomationBackend, AutomationConfigPatch, AutomationTaskPatch, + AutomationBackendV1, AutomationConfigPatch, AutomationTaskPatch, }; use tracedecay_automation_runtime::automation::run_ledger::load_run_records; use tracedecay_automation_runtime::automation::scheduler::{ @@ -72,7 +72,7 @@ async fn paused_tick_scenario() { &handshake, AutomationConfigPatch { enabled: Some(true), - backend: Some(AutomationBackend::CodexAppServer), + backend: Some(AutomationBackendV1::CodexAppServer), memory_curator: AutomationTaskPatch { enabled: Some(true), schedule: Some(Some("every:1m".to_string())), diff --git a/crates/tracedecay/tests/automation_runner_test/backend.rs b/crates/tracedecay/tests/automation_runner_test/backend.rs index 64e8952394..4c3ec70f4f 100644 --- a/crates/tracedecay/tests/automation_runner_test/backend.rs +++ b/crates/tracedecay/tests/automation_runner_test/backend.rs @@ -17,7 +17,9 @@ use tracedecay_automation_runtime::automation::backend::{ CODEX_EXECUTABLE_UNCONFIGURED, CodexAppServerBackend, agent_task_failure_disposition, backend_availability, run_agent_task_with_retry, run_agent_task_with_retry_report, }; -use tracedecay_automation_runtime::automation::config::{AutomationBackend, AutomationConfig}; +use tracedecay_automation_runtime::automation::config::{ + AutomationBackendV1, AutomationSettingsV1, +}; use tracedecay_automation_runtime::ports::codex_app_server::SummaryConfig as AutomationSummaryConfig; use tracedecay_contracts::automation::SessionFactProposal; use tracedecay_domain::configuration::LcmSummarizerExecutableV1; @@ -736,11 +738,11 @@ fn codex_app_server_backend_from_automation_config_uses_the_pinned_model() { register_runtime_ports(); let fake = FakeCodexAppServer::new_with_behavior("json"); let backend = CodexAppServerBackend::from_automation_config( - &AutomationConfig { - backend: AutomationBackend::CodexAppServer, + &AutomationSettingsV1 { + backend: AutomationBackendV1::CodexAppServer, model_id: Some("configured-model".to_owned()), timeout_secs: fake_codex_response_timeout_secs(), - ..AutomationConfig::default() + ..AutomationSettingsV1::default() }, &fake.executable_with_model("executable-model"), ); @@ -769,11 +771,11 @@ fn codex_app_server_backend_uses_configured_executable_model_when_unpinned() { register_runtime_ports(); let fake = FakeCodexAppServer::new_with_behavior("json"); let backend = CodexAppServerBackend::from_automation_config( - &AutomationConfig { - backend: AutomationBackend::CodexAppServer, + &AutomationSettingsV1 { + backend: AutomationBackendV1::CodexAppServer, model_id: None, timeout_secs: fake_codex_response_timeout_secs(), - ..AutomationConfig::default() + ..AutomationSettingsV1::default() }, &fake.executable_with_model("executable-model"), ); @@ -837,9 +839,9 @@ fn codex_app_server_backend_propagates_empty_output_errors_and_reaps_child() { #[test] fn backend_availability_reports_configured_codex_executable_status() { let fake = FakeCodexAppServer::new(); - let config = AutomationConfig { - backend: AutomationBackend::CodexAppServer, - ..AutomationConfig::default() + let config = AutomationSettingsV1 { + backend: AutomationBackendV1::CodexAppServer, + ..AutomationSettingsV1::default() }; let available = backend_availability(&config, &fake.executable()); @@ -874,9 +876,9 @@ fn backend_availability_reports_configured_codex_executable_status() { fn unconfigured_codex_backend_settles_unavailable_without_spawning() { register_runtime_ports(); let backend = CodexAppServerBackend::from_automation_config( - &AutomationConfig { - backend: AutomationBackend::CodexAppServer, - ..AutomationConfig::default() + &AutomationSettingsV1 { + backend: AutomationBackendV1::CodexAppServer, + ..AutomationSettingsV1::default() }, &LcmSummarizerExecutableV1::Unconfigured, ); diff --git a/crates/tracedecay/tests/automation_runner_test/combined_review.rs b/crates/tracedecay/tests/automation_runner_test/combined_review.rs index 56e7b170a5..538a970701 100644 --- a/crates/tracedecay/tests/automation_runner_test/combined_review.rs +++ b/crates/tracedecay/tests/automation_runner_test/combined_review.rs @@ -1077,7 +1077,7 @@ async fn combined_review_records_noop_fallbacks_for_both_tasks_when_backend_fail let profile_root = temp.path().join("profile"); let cg = init_project(temp.path()).await; seed_session_evidence(&cg).await; - let config = AutomationConfig { + let config = AutomationSettingsV1 { timeout_secs: 1, ..scheduler_config(Some(3600), None) }; diff --git a/crates/tracedecay/tests/automation_runner_test/config.rs b/crates/tracedecay/tests/automation_runner_test/config.rs index fff0ff6f61..60861c5412 100644 --- a/crates/tracedecay/tests/automation_runner_test/config.rs +++ b/crates/tracedecay/tests/automation_runner_test/config.rs @@ -1,19 +1,19 @@ use tracedecay_automation_runtime::automation::config::{ - AutomationBackend, AutomationConfig, AutomationConfigPatch, AutomationHostMode, + AutomationBackendV1, AutomationConfigPatch, AutomationHostModeV1, AutomationSettingsV1, AutomationTaskPatch, effective_config, }; #[test] fn effective_config_applies_typed_patch() { - let global = AutomationConfig { + let global = AutomationSettingsV1 { timeout_secs: 45, scheduler_tick_secs: 30, - ..AutomationConfig::default() + ..AutomationSettingsV1::default() }; let patch = AutomationConfigPatch { enabled: Some(true), - backend: Some(AutomationBackend::CodexAppServer), - host_mode: Some(AutomationHostMode::DelegatedHost), + backend: Some(AutomationBackendV1::CodexAppServer), + host_mode: Some(AutomationHostModeV1::DelegatedHost), model_id: Some(Some("gpt-5.6-mini".to_owned())), memory_curator: AutomationTaskPatch { enabled: Some(true), @@ -26,8 +26,8 @@ fn effective_config_applies_typed_patch() { let config = effective_config(&global, Some(&patch)).unwrap(); assert!(config.enabled); - assert_eq!(config.backend, AutomationBackend::CodexAppServer); - assert_eq!(config.host_mode, AutomationHostMode::DelegatedHost); + assert_eq!(config.backend, AutomationBackendV1::CodexAppServer); + assert_eq!(config.host_mode, AutomationHostModeV1::DelegatedHost); assert_eq!(config.model_id.as_deref(), Some("gpt-5.6-mini")); assert_eq!(config.timeout_secs, 45); assert_eq!(config.scheduler_tick_secs, 30); @@ -45,7 +45,7 @@ fn validation_rejects_zero_scheduler_tick_secs() { ..AutomationConfigPatch::default() }; - let err = effective_config(&AutomationConfig::default(), Some(&patch)).unwrap_err(); + let err = effective_config(&AutomationSettingsV1::default(), Some(&patch)).unwrap_err(); assert!(err.to_string().contains("scheduler_tick_secs")); } @@ -60,6 +60,6 @@ fn validation_rejects_invalid_task_schedule() { ..AutomationConfigPatch::default() }; - let err = effective_config(&AutomationConfig::default(), Some(&patch)).unwrap_err(); + let err = effective_config(&AutomationSettingsV1::default(), Some(&patch)).unwrap_err(); assert!(err.to_string().contains("skill_writer schedule")); } diff --git a/crates/tracedecay/tests/automation_runner_test/jobs.rs b/crates/tracedecay/tests/automation_runner_test/jobs.rs index 394d5eeacc..e445fe8701 100644 --- a/crates/tracedecay/tests/automation_runner_test/jobs.rs +++ b/crates/tracedecay/tests/automation_runner_test/jobs.rs @@ -37,7 +37,7 @@ fn job_schedule_decision( async fn evaluate_and_record_scheduler_skip( dashboard_root: &Path, - config: &AutomationConfig, + config: &AutomationSettingsV1, executable: Option<&Path>, job: &AutomationJob, run_id: &str, @@ -74,12 +74,12 @@ fn sample_job(id: &str) -> AutomationJob { } } -fn enabled_job_config() -> AutomationConfig { - AutomationConfig { +fn enabled_job_config() -> AutomationSettingsV1 { + AutomationSettingsV1 { enabled: true, - backend: AutomationBackend::CodexAppServer, - host_mode: AutomationHostMode::Standalone, - ..AutomationConfig::default() + backend: AutomationBackendV1::CodexAppServer, + host_mode: AutomationHostModeV1::Standalone, + ..AutomationSettingsV1::default() } } @@ -628,7 +628,7 @@ async fn user_job_pre_run_command_is_refused_unless_allowed() { None } } - let config = AutomationConfig { + let config = AutomationSettingsV1 { allow_job_commands: true, ..enabled_job_config() }; @@ -696,7 +696,7 @@ async fn user_job_pre_run_command_runs_from_project_root() { } } - let config = AutomationConfig { + let config = AutomationSettingsV1 { allow_job_commands: true, ..enabled_job_config() }; @@ -730,7 +730,7 @@ async fn run_scheduled_pre_run_failure( let mut job = sample_job(job_id); job.pre_run_command = Some(command.to_string()); - let config = AutomationConfig { + let config = AutomationSettingsV1 { allow_job_commands: true, ..enabled_job_config() }; @@ -1001,7 +1001,7 @@ async fn user_job_backend_failure_records_failed_ledger_entry() { fs::create_dir_all(&profile_root).unwrap(); let job = sample_job("fails"); - let config = AutomationConfig { + let config = AutomationSettingsV1 { timeout_secs: 1, ..enabled_job_config() }; diff --git a/crates/tracedecay/tests/automation_runner_test/memory_curator.rs b/crates/tracedecay/tests/automation_runner_test/memory_curator.rs index cf8027f8bd..20356e97b1 100644 --- a/crates/tracedecay/tests/automation_runner_test/memory_curator.rs +++ b/crates/tracedecay/tests/automation_runner_test/memory_curator.rs @@ -60,19 +60,19 @@ async fn memory_curator_empty_store_skips_without_a_backend_attempt_and_releases let temp = tempdir().unwrap(); let cg = init_project(temp.path()).await; let backend = JsonBackend::new(json!({"ops": []})); - let config = AutomationConfig { + let config = AutomationSettingsV1 { enabled: true, - backend: AutomationBackend::CodexAppServer, - host_mode: AutomationHostMode::Standalone, - tasks: AutomationTaskSet { - memory_curator: AutomationTaskConfig { + backend: AutomationBackendV1::CodexAppServer, + host_mode: AutomationHostModeV1::Standalone, + tasks: AutomationTaskSetV1 { + memory_curator: AutomationTaskSettingsV1 { enabled: true, schedule: Some("manual".to_string()), - ..AutomationTaskConfig::default() + ..AutomationTaskSettingsV1::default() }, - ..AutomationTaskSet::default() + ..AutomationTaskSetV1::default() }, - ..AutomationConfig::default() + ..AutomationSettingsV1::default() }; let run_control = test_automation_run_control(Arc::new(AtomicBool::new(false))); @@ -146,19 +146,19 @@ async fn memory_curator_repairs_then_applies_validated_ops_and_records_ledger() }] }), ]); - let config = AutomationConfig { + let config = AutomationSettingsV1 { enabled: true, - backend: AutomationBackend::CodexAppServer, - host_mode: AutomationHostMode::Standalone, - tasks: AutomationTaskSet { - memory_curator: AutomationTaskConfig { + backend: AutomationBackendV1::CodexAppServer, + host_mode: AutomationHostModeV1::Standalone, + tasks: AutomationTaskSetV1 { + memory_curator: AutomationTaskSettingsV1 { enabled: true, schedule: Some("manual".to_string()), - ..AutomationTaskConfig::default() + ..AutomationTaskSettingsV1::default() }, - ..AutomationTaskSet::default() + ..AutomationTaskSetV1::default() }, - ..AutomationConfig::default() + ..AutomationSettingsV1::default() }; let run_control = test_automation_run_control(Arc::new(AtomicBool::new(false))); @@ -629,19 +629,19 @@ async fn memory_curator_persists_transient_transient_success_retry_receipt() { let backend = TransientThenJsonBackend { calls: AtomicUsize::new(0), }; - let config = AutomationConfig { + let config = AutomationSettingsV1 { enabled: true, - backend: AutomationBackend::CodexAppServer, - host_mode: AutomationHostMode::Standalone, - tasks: AutomationTaskSet { - memory_curator: AutomationTaskConfig { + backend: AutomationBackendV1::CodexAppServer, + host_mode: AutomationHostModeV1::Standalone, + tasks: AutomationTaskSetV1 { + memory_curator: AutomationTaskSettingsV1 { enabled: true, schedule: Some("manual".to_string()), - ..AutomationTaskConfig::default() + ..AutomationTaskSettingsV1::default() }, - ..AutomationTaskSet::default() + ..AutomationTaskSetV1::default() }, - ..AutomationConfig::default() + ..AutomationSettingsV1::default() }; let run_control = test_automation_run_control(Arc::new(AtomicBool::new(false))); @@ -721,19 +721,19 @@ async fn memory_curator_runner_artifacts_block_handoff_without_validation_exampl let cg = init_project(temp.path()).await; seed_duplicate_facts(&cg).await; let backend = JsonBackend::new(json!({ "ops": [] })); - let config = AutomationConfig { + let config = AutomationSettingsV1 { enabled: true, - backend: AutomationBackend::CodexAppServer, - host_mode: AutomationHostMode::Standalone, - tasks: AutomationTaskSet { - memory_curator: AutomationTaskConfig { + backend: AutomationBackendV1::CodexAppServer, + host_mode: AutomationHostModeV1::Standalone, + tasks: AutomationTaskSetV1 { + memory_curator: AutomationTaskSettingsV1 { enabled: true, schedule: Some("manual".to_string()), - ..AutomationTaskConfig::default() + ..AutomationTaskSettingsV1::default() }, - ..AutomationTaskSet::default() + ..AutomationTaskSetV1::default() }, - ..AutomationConfig::default() + ..AutomationSettingsV1::default() }; let run_control = test_automation_run_control(Arc::new(AtomicBool::new(false))); @@ -816,19 +816,19 @@ async fn memory_curator_quarantines_legacy_output_after_bounded_repair_exhaustio ] }); let backend = SequentialJsonBackend::new(vec![invalid.clone(), invalid]); - let config = AutomationConfig { + let config = AutomationSettingsV1 { enabled: true, - backend: AutomationBackend::CodexAppServer, - host_mode: AutomationHostMode::Standalone, - tasks: AutomationTaskSet { - memory_curator: AutomationTaskConfig { + backend: AutomationBackendV1::CodexAppServer, + host_mode: AutomationHostModeV1::Standalone, + tasks: AutomationTaskSetV1 { + memory_curator: AutomationTaskSettingsV1 { enabled: true, schedule: Some("manual".to_string()), - ..AutomationTaskConfig::default() + ..AutomationTaskSettingsV1::default() }, - ..AutomationTaskSet::default() + ..AutomationTaskSetV1::default() }, - ..AutomationConfig::default() + ..AutomationSettingsV1::default() }; let run_control = test_automation_run_control(Arc::new(AtomicBool::new(false))); @@ -888,19 +888,19 @@ async fn memory_curator_runner_auto_applies_validated_operations() { } ] })); - let config = AutomationConfig { + let config = AutomationSettingsV1 { enabled: true, - backend: AutomationBackend::CodexAppServer, - host_mode: AutomationHostMode::Standalone, - tasks: AutomationTaskSet { - memory_curator: AutomationTaskConfig { + backend: AutomationBackendV1::CodexAppServer, + host_mode: AutomationHostModeV1::Standalone, + tasks: AutomationTaskSetV1 { + memory_curator: AutomationTaskSettingsV1 { enabled: true, schedule: Some("manual".to_string()), - ..AutomationTaskConfig::default() + ..AutomationTaskSettingsV1::default() }, - ..AutomationTaskSet::default() + ..AutomationTaskSetV1::default() }, - ..AutomationConfig::default() + ..AutomationSettingsV1::default() }; let run_control = test_automation_run_control(Arc::new(AtomicBool::new(false))); @@ -982,19 +982,19 @@ async fn memory_curator_stops_before_backend_or_apply_when_caller_is_interrupted .find(|fact| fact.fact_id().as_str() == facts.winner_id.as_str()) .and_then(|fact| fact.payload().map(|payload| payload.tags().to_vec())) .expect("seeded winner must be available through canonical current-fact authority"); - let config = AutomationConfig { + let config = AutomationSettingsV1 { enabled: true, - backend: AutomationBackend::CodexAppServer, - host_mode: AutomationHostMode::Standalone, - tasks: AutomationTaskSet { - memory_curator: AutomationTaskConfig { + backend: AutomationBackendV1::CodexAppServer, + host_mode: AutomationHostModeV1::Standalone, + tasks: AutomationTaskSetV1 { + memory_curator: AutomationTaskSettingsV1 { enabled: true, schedule: Some("manual".to_string()), - ..AutomationTaskConfig::default() + ..AutomationTaskSettingsV1::default() }, - ..AutomationTaskSet::default() + ..AutomationTaskSetV1::default() }, - ..AutomationConfig::default() + ..AutomationSettingsV1::default() }; let interrupted = Arc::new(AtomicBool::new(true)); let run_control = test_automation_run_control(Arc::clone(&interrupted)); diff --git a/crates/tracedecay/tests/automation_runner_test/memory_curator/backend_failures.rs b/crates/tracedecay/tests/automation_runner_test/memory_curator/backend_failures.rs index c8e1297755..1df527232c 100644 --- a/crates/tracedecay/tests/automation_runner_test/memory_curator/backend_failures.rs +++ b/crates/tracedecay/tests/automation_runner_test/memory_curator/backend_failures.rs @@ -1,6 +1,6 @@ use crate::support::{ - AgentTaskFailureClass, AgentTaskKind, AtomicBool, AutomationBackend, AutomationConfig, - AutomationHostMode, AutomationRunStatus, AutomationTaskConfig, AutomationTaskSet, + AgentTaskFailureClass, AgentTaskKind, AtomicBool, AutomationBackendV1, AutomationHostModeV1, + AutomationRunStatus, AutomationSettingsV1, AutomationTaskSetV1, AutomationTaskSettingsV1, AutomationTrigger, FailingBackend, MalformedTextBackend, MemoryCuratorAutomationOptions, assert_noop_fallback_record, fact_exists, init_project, json, load_run_records, run_memory_curator, seed_duplicate_facts, tempdir, test_automation_run_control, @@ -14,19 +14,19 @@ async fn memory_curator_runner_ledgers_malformed_backend_output() { let facts = seed_duplicate_facts(&cg).await; let run_control = test_automation_run_control(Arc::new(AtomicBool::new(false))); let backend = MalformedTextBackend::new(AgentTaskKind::MemoryCurator, "not json"); - let config = AutomationConfig { + let config = AutomationSettingsV1 { enabled: true, - backend: AutomationBackend::CodexAppServer, - host_mode: AutomationHostMode::Standalone, - tasks: AutomationTaskSet { - memory_curator: AutomationTaskConfig { + backend: AutomationBackendV1::CodexAppServer, + host_mode: AutomationHostModeV1::Standalone, + tasks: AutomationTaskSetV1 { + memory_curator: AutomationTaskSettingsV1 { enabled: true, schedule: Some("manual".to_string()), - ..AutomationTaskConfig::default() + ..AutomationTaskSettingsV1::default() }, - ..AutomationTaskSet::default() + ..AutomationTaskSetV1::default() }, - ..AutomationConfig::default() + ..AutomationSettingsV1::default() }; let err = run_memory_curator( @@ -79,20 +79,20 @@ async fn memory_curator_runner_records_noop_fallback_when_backend_run_task_fails let facts = seed_duplicate_facts(&cg).await; let run_control = test_automation_run_control(Arc::new(AtomicBool::new(false))); let backend = FailingBackend::new(AgentTaskKind::MemoryCurator); - let config = AutomationConfig { + let config = AutomationSettingsV1 { enabled: true, - backend: AutomationBackend::CodexAppServer, - host_mode: AutomationHostMode::Standalone, + backend: AutomationBackendV1::CodexAppServer, + host_mode: AutomationHostModeV1::Standalone, timeout_secs: 1, - tasks: AutomationTaskSet { - memory_curator: AutomationTaskConfig { + tasks: AutomationTaskSetV1 { + memory_curator: AutomationTaskSettingsV1 { enabled: true, schedule: Some("manual".to_string()), - ..AutomationTaskConfig::default() + ..AutomationTaskSettingsV1::default() }, - ..AutomationTaskSet::default() + ..AutomationTaskSetV1::default() }, - ..AutomationConfig::default() + ..AutomationSettingsV1::default() }; let run = run_memory_curator( diff --git a/crates/tracedecay/tests/automation_runner_test/memory_curator/manual_trigger.rs b/crates/tracedecay/tests/automation_runner_test/memory_curator/manual_trigger.rs index ee72097774..1e064aa623 100644 --- a/crates/tracedecay/tests/automation_runner_test/memory_curator/manual_trigger.rs +++ b/crates/tracedecay/tests/automation_runner_test/memory_curator/manual_trigger.rs @@ -6,18 +6,18 @@ async fn manual_memory_curator_runs_when_scheduling_and_task_are_disabled() { let cg = init_project(temp.path()).await; seed_duplicate_facts(&cg).await; let backend = JsonBackend::new(json!({"ops": []})); - let config = AutomationConfig { + let config = AutomationSettingsV1 { enabled: false, - backend: AutomationBackend::CodexAppServer, - host_mode: AutomationHostMode::Standalone, - tasks: AutomationTaskSet { - memory_curator: AutomationTaskConfig { + backend: AutomationBackendV1::CodexAppServer, + host_mode: AutomationHostModeV1::Standalone, + tasks: AutomationTaskSetV1 { + memory_curator: AutomationTaskSettingsV1 { enabled: false, - ..AutomationTaskConfig::default() + ..AutomationTaskSettingsV1::default() }, - ..AutomationTaskSet::default() + ..AutomationTaskSetV1::default() }, - ..AutomationConfig::default() + ..AutomationSettingsV1::default() }; let run_control = test_automation_run_control(Arc::new(AtomicBool::new(false))); @@ -50,12 +50,12 @@ async fn manual_memory_curator_skips_when_backend_is_disabled() { let temp = tempdir().unwrap(); let cg = init_project(temp.path()).await; let backend = JsonBackend::new(json!({"ops": []})); - let config = AutomationConfig { + let config = AutomationSettingsV1 { enabled: false, - backend: AutomationBackend::Disabled, - host_mode: AutomationHostMode::Standalone, + backend: AutomationBackendV1::Disabled, + host_mode: AutomationHostModeV1::Standalone, model_id: None, - ..AutomationConfig::default() + ..AutomationSettingsV1::default() }; let run_control = test_automation_run_control(Arc::new(AtomicBool::new(false))); diff --git a/crates/tracedecay/tests/automation_runner_test/memory_curator/pagination.rs b/crates/tracedecay/tests/automation_runner_test/memory_curator/pagination.rs index c21e07db95..8c0088db39 100644 --- a/crates/tracedecay/tests/automation_runner_test/memory_curator/pagination.rs +++ b/crates/tracedecay/tests/automation_runner_test/memory_curator/pagination.rs @@ -52,11 +52,11 @@ async fn memory_curator_resumes_from_the_durable_next_page_cursor() { let cg = init_project(temp.path()).await; let facts = seed_duplicate_facts(&cg).await; let backend = ReviewFactRecordingBackend::new(); - let config = AutomationConfig { + let config = AutomationSettingsV1 { enabled: true, - backend: AutomationBackend::CodexAppServer, - host_mode: AutomationHostMode::Standalone, - ..AutomationConfig::default() + backend: AutomationBackendV1::CodexAppServer, + host_mode: AutomationHostModeV1::Standalone, + ..AutomationSettingsV1::default() }; let run_control = test_automation_run_control(Arc::new(AtomicBool::new(false))); let options = || MemoryCuratorAutomationOptions { diff --git a/crates/tracedecay/tests/automation_runner_test/scheduler.rs b/crates/tracedecay/tests/automation_runner_test/scheduler.rs index ac3d968146..a71baec96a 100644 --- a/crates/tracedecay/tests/automation_runner_test/scheduler.rs +++ b/crates/tracedecay/tests/automation_runner_test/scheduler.rs @@ -1,8 +1,8 @@ use tempfile::tempdir; use tracedecay_automation_runtime::automation::backend::{AgentTaskFailureClass, AgentTaskKind}; use tracedecay_automation_runtime::automation::config::{ - AutomationBackend, AutomationConfig, AutomationConfigPatch, AutomationTaskConfig, - AutomationTaskPatch, AutomationTaskSet, effective_config, + AutomationBackendV1, AutomationConfigPatch, AutomationSettingsV1, AutomationTaskPatch, + AutomationTaskSetV1, AutomationTaskSettingsV1, effective_config, }; use tracedecay_automation_runtime::automation::run_ledger::{ AutomationRunLedgerRecord, AutomationRunStatus, AutomationTrigger, @@ -21,7 +21,7 @@ use tracedecay_sessions::admission::HostAdmissionScope; use crate::support::{SeedSessionMessage, scheduler_record_for, seed_session_message_in_db}; fn schedule_decision( - config: &AutomationConfig, + config: &AutomationSettingsV1, executable: Option<&std::path::Path>, task: AgentTaskKind, records: &[AutomationRunLedgerRecord], @@ -39,7 +39,7 @@ fn schedule_decision( } fn host_receipt_decision( - config: &AutomationConfig, + config: &AutomationSettingsV1, executable: Option<&std::path::Path>, task: AgentTaskKind, records: &[AutomationRunLedgerRecord], @@ -71,34 +71,34 @@ async fn scheduler_session_runtime( .expect("registered scheduler session runtime") } -fn automation_config(schedule: Option<&str>, interval_secs: Option) -> AutomationConfig { - AutomationConfig { +fn automation_config(schedule: Option<&str>, interval_secs: Option) -> AutomationSettingsV1 { + AutomationSettingsV1 { enabled: true, - backend: AutomationBackend::CodexAppServer, - tasks: AutomationTaskSet { - memory_curator: AutomationTaskConfig { + backend: AutomationBackendV1::CodexAppServer, + tasks: AutomationTaskSetV1 { + memory_curator: AutomationTaskSettingsV1 { enabled: true, schedule: schedule.map(str::to_string), interval_secs, cooldown_secs: Some(300), - ..AutomationTaskConfig::default() + ..AutomationTaskSettingsV1::default() }, - session_reflector: AutomationTaskConfig { + session_reflector: AutomationTaskSettingsV1 { enabled: true, schedule: schedule.map(str::to_string), interval_secs, cooldown_secs: Some(300), - ..AutomationTaskConfig::default() + ..AutomationTaskSettingsV1::default() }, - skill_writer: AutomationTaskConfig { + skill_writer: AutomationTaskSettingsV1 { enabled: true, schedule: schedule.map(str::to_string), interval_secs, cooldown_secs: Some(300), - ..AutomationTaskConfig::default() + ..AutomationTaskSettingsV1::default() }, }, - ..AutomationConfig::default() + ..AutomationSettingsV1::default() } } @@ -1318,7 +1318,7 @@ async fn load_session_activity_selects_newest_after_normalizing_mixed_timestamp_ fn config_requires_interval_secs_for_configured_interval_schedule() { let patch = AutomationConfigPatch { enabled: Some(true), - backend: Some(AutomationBackend::CodexAppServer), + backend: Some(AutomationBackendV1::CodexAppServer), memory_curator: AutomationTaskPatch { enabled: Some(true), schedule: Some(Some("interval".to_string())), @@ -1328,7 +1328,7 @@ fn config_requires_interval_secs_for_configured_interval_schedule() { ..AutomationConfigPatch::default() }; - let err = effective_config(&AutomationConfig::default(), Some(&patch)).unwrap_err(); + let err = effective_config(&AutomationSettingsV1::default(), Some(&patch)).unwrap_err(); assert!( err.to_string() .contains("memory_curator interval_secs is required"), @@ -1345,7 +1345,7 @@ fn config_validates_scheduler_idle_bound_and_rejects_retired_lock_timeout() { }, ..AutomationConfigPatch::default() }; - let error = effective_config(&AutomationConfig::default(), Some(&patch)) + let error = effective_config(&AutomationSettingsV1::default(), Some(&patch)) .unwrap_err() .to_string(); assert!( @@ -1378,7 +1378,7 @@ fn config_validates_scheduler_idle_bound_and_rejects_retired_lock_timeout() { ..AutomationConfigPatch::default() }; let config = - effective_config(&AutomationConfig::default(), Some(&patch)).expect("nonzero bounds"); + effective_config(&AutomationSettingsV1::default(), Some(&patch)).expect("nonzero bounds"); assert_eq!(config.tasks.memory_curator.min_idle_secs, Some(600)); } diff --git a/crates/tracedecay/tests/automation_runner_test/session_reflector.rs b/crates/tracedecay/tests/automation_runner_test/session_reflector.rs index a87463c6f4..0a1dfbab69 100644 --- a/crates/tracedecay/tests/automation_runner_test/session_reflector.rs +++ b/crates/tracedecay/tests/automation_runner_test/session_reflector.rs @@ -96,18 +96,18 @@ async fn session_reflector_runner_skips_when_task_is_disabled() { let temp = tempdir().unwrap(); let cg = init_project(temp.path()).await; let backend = SessionJsonBackend::new(json!({"facts": []})); - let config = AutomationConfig { + let config = AutomationSettingsV1 { enabled: true, - backend: AutomationBackend::CodexAppServer, - host_mode: AutomationHostMode::Standalone, - tasks: AutomationTaskSet { - session_reflector: AutomationTaskConfig { + backend: AutomationBackendV1::CodexAppServer, + host_mode: AutomationHostModeV1::Standalone, + tasks: AutomationTaskSetV1 { + session_reflector: AutomationTaskSettingsV1 { enabled: false, - ..AutomationTaskConfig::default() + ..AutomationTaskSettingsV1::default() }, - ..AutomationTaskSet::default() + ..AutomationTaskSetV1::default() }, - ..AutomationConfig::default() + ..AutomationSettingsV1::default() }; let run_control = test_automation_run_control(Arc::new(AtomicBool::new(false))); @@ -155,19 +155,19 @@ async fn session_reflector_interrupts_validation_before_near_match_or_apply() { "reason": "bounded evidence describes the cancellation boundary" }] })); - let config = AutomationConfig { + let config = AutomationSettingsV1 { enabled: true, - backend: AutomationBackend::CodexAppServer, - host_mode: AutomationHostMode::Standalone, - tasks: AutomationTaskSet { - session_reflector: AutomationTaskConfig { + backend: AutomationBackendV1::CodexAppServer, + host_mode: AutomationHostModeV1::Standalone, + tasks: AutomationTaskSetV1 { + session_reflector: AutomationTaskSettingsV1 { enabled: true, schedule: Some("manual".to_string()), - ..AutomationTaskConfig::default() + ..AutomationTaskSettingsV1::default() }, - ..AutomationTaskSet::default() + ..AutomationTaskSetV1::default() }, - ..AutomationConfig::default() + ..AutomationSettingsV1::default() }; let error = run_session_reflector( @@ -209,24 +209,24 @@ async fn project_runners_keep_distinct_budget_stages_in_terminal_reports_and_led "Session reflection does not warrant a managed skill mutation.", "insufficient_repeated_evidence", )); - let config = AutomationConfig { + let config = AutomationSettingsV1 { enabled: true, - backend: AutomationBackend::CodexAppServer, - host_mode: AutomationHostMode::Standalone, - tasks: AutomationTaskSet { - session_reflector: AutomationTaskConfig { + backend: AutomationBackendV1::CodexAppServer, + host_mode: AutomationHostModeV1::Standalone, + tasks: AutomationTaskSetV1 { + session_reflector: AutomationTaskSettingsV1 { enabled: true, schedule: Some("manual".to_string()), - ..AutomationTaskConfig::default() + ..AutomationTaskSettingsV1::default() }, - skill_writer: AutomationTaskConfig { + skill_writer: AutomationTaskSettingsV1 { enabled: true, schedule: Some("manual".to_string()), - ..AutomationTaskConfig::default() + ..AutomationTaskSettingsV1::default() }, - ..AutomationTaskSet::default() + ..AutomationTaskSetV1::default() }, - ..AutomationConfig::default() + ..AutomationSettingsV1::default() }; let reflector_retrieval = StructuralBudgetRefusalRetrieval::new( tracedecay_contracts::retrieval::SessionRetrievalBudgetStageV1::RequestCandidateBytes, @@ -327,24 +327,24 @@ async fn project_reflector_and_skill_writer_terminal_evidence_matrix_has_zero_wr "Rejected evidence must not produce a managed skill mutation.", "no_action", )); - let config = AutomationConfig { + let config = AutomationSettingsV1 { enabled: true, - backend: AutomationBackend::CodexAppServer, - host_mode: AutomationHostMode::Standalone, - tasks: AutomationTaskSet { - session_reflector: AutomationTaskConfig { + backend: AutomationBackendV1::CodexAppServer, + host_mode: AutomationHostModeV1::Standalone, + tasks: AutomationTaskSetV1 { + session_reflector: AutomationTaskSettingsV1 { enabled: true, schedule: Some("manual".to_string()), - ..AutomationTaskConfig::default() + ..AutomationTaskSettingsV1::default() }, - skill_writer: AutomationTaskConfig { + skill_writer: AutomationTaskSettingsV1 { enabled: true, schedule: Some("manual".to_string()), - ..AutomationTaskConfig::default() + ..AutomationTaskSettingsV1::default() }, - ..AutomationTaskSet::default() + ..AutomationTaskSetV1::default() }, - ..AutomationConfig::default() + ..AutomationSettingsV1::default() }; let reflector = settle_session_reflector( @@ -397,24 +397,24 @@ async fn project_reflector_and_skill_writer_terminal_evidence_matrix_has_zero_wr "No retained evidence supports a managed skill mutation.", "insufficient_repeated_evidence", )); - let config = AutomationConfig { + let config = AutomationSettingsV1 { enabled: true, - backend: AutomationBackend::CodexAppServer, - host_mode: AutomationHostMode::Standalone, - tasks: AutomationTaskSet { - session_reflector: AutomationTaskConfig { + backend: AutomationBackendV1::CodexAppServer, + host_mode: AutomationHostModeV1::Standalone, + tasks: AutomationTaskSetV1 { + session_reflector: AutomationTaskSettingsV1 { enabled: true, schedule: Some("manual".to_string()), - ..AutomationTaskConfig::default() + ..AutomationTaskSettingsV1::default() }, - skill_writer: AutomationTaskConfig { + skill_writer: AutomationTaskSettingsV1 { enabled: true, schedule: Some("manual".to_string()), - ..AutomationTaskConfig::default() + ..AutomationTaskSettingsV1::default() }, - ..AutomationTaskSet::default() + ..AutomationTaskSetV1::default() }, - ..AutomationConfig::default() + ..AutomationSettingsV1::default() }; let reflector = settle_session_reflector( &automation_project_context(&cg), @@ -592,19 +592,19 @@ async fn session_reflector_runner_applies_valid_automatic_facts_by_default() { } ] })); - let config = AutomationConfig { + let config = AutomationSettingsV1 { enabled: true, - backend: AutomationBackend::CodexAppServer, - host_mode: AutomationHostMode::Standalone, - tasks: AutomationTaskSet { - session_reflector: AutomationTaskConfig { + backend: AutomationBackendV1::CodexAppServer, + host_mode: AutomationHostModeV1::Standalone, + tasks: AutomationTaskSetV1 { + session_reflector: AutomationTaskSettingsV1 { enabled: true, schedule: Some("manual".to_string()), - ..AutomationTaskConfig::default() + ..AutomationTaskSettingsV1::default() }, - ..AutomationTaskSet::default() + ..AutomationTaskSetV1::default() }, - ..AutomationConfig::default() + ..AutomationSettingsV1::default() }; let run_control = test_automation_run_control(Arc::new(AtomicBool::new(false))); @@ -864,19 +864,19 @@ async fn session_reflector_runner_auto_applies_validated_facts() { } ] })); - let config = AutomationConfig { + let config = AutomationSettingsV1 { enabled: true, - backend: AutomationBackend::CodexAppServer, - host_mode: AutomationHostMode::Standalone, - tasks: AutomationTaskSet { - session_reflector: AutomationTaskConfig { + backend: AutomationBackendV1::CodexAppServer, + host_mode: AutomationHostModeV1::Standalone, + tasks: AutomationTaskSetV1 { + session_reflector: AutomationTaskSettingsV1 { enabled: true, schedule: Some("manual".to_string()), - ..AutomationTaskConfig::default() + ..AutomationTaskSettingsV1::default() }, - ..AutomationTaskSet::default() + ..AutomationTaskSetV1::default() }, - ..AutomationConfig::default() + ..AutomationSettingsV1::default() }; let run_control = test_automation_run_control(Arc::new(AtomicBool::new(false))); @@ -987,19 +987,19 @@ async fn session_reflector_runner_reports_partial_terminal_effects_for_duplicate } ] })); - let config = AutomationConfig { + let config = AutomationSettingsV1 { enabled: true, - backend: AutomationBackend::CodexAppServer, - host_mode: AutomationHostMode::Standalone, - tasks: AutomationTaskSet { - session_reflector: AutomationTaskConfig { + backend: AutomationBackendV1::CodexAppServer, + host_mode: AutomationHostModeV1::Standalone, + tasks: AutomationTaskSetV1 { + session_reflector: AutomationTaskSettingsV1 { enabled: true, schedule: Some("manual".to_string()), - ..AutomationTaskConfig::default() + ..AutomationTaskSettingsV1::default() }, - ..AutomationTaskSet::default() + ..AutomationTaskSetV1::default() }, - ..AutomationConfig::default() + ..AutomationSettingsV1::default() }; let run_control = test_automation_run_control(Arc::new(AtomicBool::new(false))); @@ -1052,19 +1052,19 @@ async fn session_reflector_records_terminal_quarantine_without_an_admitted_fact( "reason": "The fixture deliberately omits trust" }] })); - let config = AutomationConfig { + let config = AutomationSettingsV1 { enabled: true, - backend: AutomationBackend::CodexAppServer, - host_mode: AutomationHostMode::Standalone, - tasks: AutomationTaskSet { - session_reflector: AutomationTaskConfig { + backend: AutomationBackendV1::CodexAppServer, + host_mode: AutomationHostModeV1::Standalone, + tasks: AutomationTaskSetV1 { + session_reflector: AutomationTaskSettingsV1 { enabled: true, schedule: Some("manual".to_string()), - ..AutomationTaskConfig::default() + ..AutomationTaskSettingsV1::default() }, - ..AutomationTaskSet::default() + ..AutomationTaskSetV1::default() }, - ..AutomationConfig::default() + ..AutomationSettingsV1::default() }; let run_control = test_automation_run_control(Arc::new(AtomicBool::new(false))); @@ -1236,19 +1236,19 @@ async fn session_reflector_rejects_unsupported_source_role_and_time_filters_with }; let standalone = run_session_reflector( &cg, - &AutomationConfig { + &AutomationSettingsV1 { enabled: true, - backend: AutomationBackend::CodexAppServer, - host_mode: AutomationHostMode::Standalone, - tasks: AutomationTaskSet { - session_reflector: AutomationTaskConfig { + backend: AutomationBackendV1::CodexAppServer, + host_mode: AutomationHostModeV1::Standalone, + tasks: AutomationTaskSetV1 { + session_reflector: AutomationTaskSettingsV1 { enabled: true, schedule: Some("manual".to_string()), - ..AutomationTaskConfig::default() + ..AutomationTaskSettingsV1::default() }, - ..AutomationTaskSet::default() + ..AutomationTaskSetV1::default() }, - ..AutomationConfig::default() + ..AutomationSettingsV1::default() }, &test_automation_run_control(Arc::new(AtomicBool::new(false))), &backend, @@ -1267,19 +1267,19 @@ async fn session_reflector_rejects_unsupported_source_role_and_time_filters_with let delegated = run_session_reflector( &cg, - &AutomationConfig { + &AutomationSettingsV1 { enabled: true, - backend: AutomationBackend::CodexAppServer, - host_mode: AutomationHostMode::DelegatedHost, - tasks: AutomationTaskSet { - session_reflector: AutomationTaskConfig { + backend: AutomationBackendV1::CodexAppServer, + host_mode: AutomationHostModeV1::DelegatedHost, + tasks: AutomationTaskSetV1 { + session_reflector: AutomationTaskSettingsV1 { enabled: true, schedule: Some("manual".to_string()), - ..AutomationTaskConfig::default() + ..AutomationTaskSettingsV1::default() }, - ..AutomationTaskSet::default() + ..AutomationTaskSetV1::default() }, - ..AutomationConfig::default() + ..AutomationSettingsV1::default() }, &test_automation_run_control(Arc::new(AtomicBool::new(false))), &backend, @@ -1380,19 +1380,19 @@ async fn session_reflector_replays_recent_sessions_without_keyword_matches() { "session-replay-1-message-001", "Always pass the offline flag to cargo nextest on this machine.", ); - let config = AutomationConfig { + let config = AutomationSettingsV1 { enabled: true, - backend: AutomationBackend::CodexAppServer, - host_mode: AutomationHostMode::Standalone, - tasks: AutomationTaskSet { - session_reflector: AutomationTaskConfig { + backend: AutomationBackendV1::CodexAppServer, + host_mode: AutomationHostModeV1::Standalone, + tasks: AutomationTaskSetV1 { + session_reflector: AutomationTaskSettingsV1 { enabled: true, schedule: Some("manual".to_string()), - ..AutomationTaskConfig::default() + ..AutomationTaskSettingsV1::default() }, - ..AutomationTaskSet::default() + ..AutomationTaskSetV1::default() }, - ..AutomationConfig::default() + ..AutomationSettingsV1::default() }; let run = settle_session_reflector( @@ -1495,19 +1495,19 @@ async fn session_reflector_replay_respects_include_summaries_false() { ) .await .expect("summary fixture should publish through production constructor"); - let config = AutomationConfig { + let config = AutomationSettingsV1 { enabled: true, - backend: AutomationBackend::CodexAppServer, - host_mode: AutomationHostMode::Standalone, - tasks: AutomationTaskSet { - session_reflector: AutomationTaskConfig { + backend: AutomationBackendV1::CodexAppServer, + host_mode: AutomationHostModeV1::Standalone, + tasks: AutomationTaskSetV1 { + session_reflector: AutomationTaskSettingsV1 { enabled: true, schedule: Some("manual".to_string()), - ..AutomationTaskConfig::default() + ..AutomationTaskSettingsV1::default() }, - ..AutomationTaskSet::default() + ..AutomationTaskSetV1::default() }, - ..AutomationConfig::default() + ..AutomationSettingsV1::default() }; let retrieval = StaticAutomationSessionRetrieval::message( "session-reflect-1", @@ -1542,19 +1542,19 @@ async fn session_reflector_runner_ledgers_malformed_backend_output() { let cg = init_project(temp.path()).await; seed_session_evidence(&cg).await; let backend = MalformedTextBackend::new(AgentTaskKind::SessionReflector, "not json"); - let config = AutomationConfig { + let config = AutomationSettingsV1 { enabled: true, - backend: AutomationBackend::CodexAppServer, - host_mode: AutomationHostMode::Standalone, - tasks: AutomationTaskSet { - session_reflector: AutomationTaskConfig { + backend: AutomationBackendV1::CodexAppServer, + host_mode: AutomationHostModeV1::Standalone, + tasks: AutomationTaskSetV1 { + session_reflector: AutomationTaskSettingsV1 { enabled: true, schedule: Some("manual".to_string()), - ..AutomationTaskConfig::default() + ..AutomationTaskSettingsV1::default() }, - ..AutomationTaskSet::default() + ..AutomationTaskSetV1::default() }, - ..AutomationConfig::default() + ..AutomationSettingsV1::default() }; let err = run_session_reflector( @@ -1608,19 +1608,19 @@ async fn session_reflector_runner_ledgers_missing_facts_array() { seed_session_evidence(&cg).await; let output = json!({"summary": "no facts"}); let backend = SessionJsonBackend::new(output.clone()); - let config = AutomationConfig { + let config = AutomationSettingsV1 { enabled: true, - backend: AutomationBackend::CodexAppServer, - host_mode: AutomationHostMode::Standalone, - tasks: AutomationTaskSet { - session_reflector: AutomationTaskConfig { + backend: AutomationBackendV1::CodexAppServer, + host_mode: AutomationHostModeV1::Standalone, + tasks: AutomationTaskSetV1 { + session_reflector: AutomationTaskSettingsV1 { enabled: true, schedule: Some("manual".to_string()), - ..AutomationTaskConfig::default() + ..AutomationTaskSettingsV1::default() }, - ..AutomationTaskSet::default() + ..AutomationTaskSetV1::default() }, - ..AutomationConfig::default() + ..AutomationSettingsV1::default() }; let err = run_session_reflector( @@ -1684,20 +1684,20 @@ async fn session_reflector_runner_records_noop_fallback_when_backend_run_task_fa let cg = init_project(temp.path()).await; seed_session_evidence(&cg).await; let backend = FailingBackend::new(AgentTaskKind::SessionReflector); - let config = AutomationConfig { + let config = AutomationSettingsV1 { enabled: true, - backend: AutomationBackend::CodexAppServer, - host_mode: AutomationHostMode::Standalone, + backend: AutomationBackendV1::CodexAppServer, + host_mode: AutomationHostModeV1::Standalone, timeout_secs: 1, - tasks: AutomationTaskSet { - session_reflector: AutomationTaskConfig { + tasks: AutomationTaskSetV1 { + session_reflector: AutomationTaskSettingsV1 { enabled: true, schedule: Some("manual".to_string()), - ..AutomationTaskConfig::default() + ..AutomationTaskSettingsV1::default() }, - ..AutomationTaskSet::default() + ..AutomationTaskSetV1::default() }, - ..AutomationConfig::default() + ..AutomationSettingsV1::default() }; let run = run_session_reflector( diff --git a/crates/tracedecay/tests/automation_runner_test/skill_writer.rs b/crates/tracedecay/tests/automation_runner_test/skill_writer.rs index f66001d374..d6d7a5e650 100644 --- a/crates/tracedecay/tests/automation_runner_test/skill_writer.rs +++ b/crates/tracedecay/tests/automation_runner_test/skill_writer.rs @@ -48,18 +48,18 @@ async fn skill_writer_runner_skips_when_task_is_disabled() { "The disabled task must not invoke this backend.", "no_action", )); - let config = AutomationConfig { + let config = AutomationSettingsV1 { enabled: true, - backend: AutomationBackend::CodexAppServer, - host_mode: AutomationHostMode::Standalone, - tasks: AutomationTaskSet { - skill_writer: AutomationTaskConfig { + backend: AutomationBackendV1::CodexAppServer, + host_mode: AutomationHostModeV1::Standalone, + tasks: AutomationTaskSetV1 { + skill_writer: AutomationTaskSettingsV1 { enabled: false, - ..AutomationTaskConfig::default() + ..AutomationTaskSettingsV1::default() }, - ..AutomationTaskSet::default() + ..AutomationTaskSetV1::default() }, - ..AutomationConfig::default() + ..AutomationSettingsV1::default() }; let run = run_skill_writer( @@ -203,11 +203,11 @@ async fn skill_writer_host_modes_do_not_select_alternate_lcm_storage() { )); for (host_mode, query) in [ ( - AutomationHostMode::Standalone, + AutomationHostModeV1::Standalone, "active project skill writer evidence", ), ( - AutomationHostMode::DelegatedHost, + AutomationHostModeV1::DelegatedHost, "project skill writer evidence", ), ] { @@ -226,7 +226,7 @@ async fn skill_writer_host_modes_do_not_select_alternate_lcm_storage() { ) .await .unwrap(); - if host_mode == AutomationHostMode::Standalone { + if host_mode == AutomationHostModeV1::Standalone { assert_eq!(run.ledger_record.status, AutomationRunStatus::Succeeded); } else { assert_eq!(run.ledger_record.status, AutomationRunStatus::Skipped); @@ -1460,7 +1460,7 @@ async fn skill_writer_runner_records_noop_fallback_when_backend_run_task_fails() let cg = init_project(temp.path()).await; seed_session_evidence(&cg).await; let backend = FailingBackend::new(AgentTaskKind::SkillWriter); - let config = AutomationConfig { + let config = AutomationSettingsV1 { timeout_secs: 1, ..enabled_skill_writer_config() }; diff --git a/crates/tracedecay/tests/automation_runner_test/support.rs b/crates/tracedecay/tests/automation_runner_test/support.rs index f3e3d28e69..9271706758 100644 --- a/crates/tracedecay/tests/automation_runner_test/support.rs +++ b/crates/tracedecay/tests/automation_runner_test/support.rs @@ -37,8 +37,8 @@ pub(crate) use tracedecay_automation_runtime::automation::backend::{ AgentTaskBackend, AgentTaskFailureClass, AgentTaskKind, AgentTaskRequest, AgentTaskResponse, }; pub(crate) use tracedecay_automation_runtime::automation::config::{ - AutomationBackend, AutomationConfig, AutomationHostMode, AutomationTaskConfig, - AutomationTaskSet, + AutomationBackendV1, AutomationHostModeV1, AutomationSettingsV1, AutomationTaskSetV1, + AutomationTaskSettingsV1, }; pub(crate) use tracedecay_automation_runtime::automation::managed_skills::{ ManagedSkillDraft, ManagedSkillProvenance, ManagedSkillSource, ManagedSkillState, @@ -287,7 +287,7 @@ impl AutomationSessionRetrieval for RejectedAutomationSessionRetrieval { pub(crate) async fn run_session_reflector( cg: &TraceDecay, - config: &AutomationConfig, + config: &AutomationSettingsV1, run_control: &AutomationRunControl, backend: &dyn AgentTaskBackend, options: SessionReflectorAutomationOptions, @@ -311,7 +311,7 @@ pub(crate) async fn run_session_reflector( pub(crate) async fn run_skill_writer( cg: &TraceDecay, - config: &AutomationConfig, + config: &AutomationSettingsV1, backend: &dyn AgentTaskBackend, options: SkillWriterAutomationOptions, ) -> Result< @@ -333,7 +333,7 @@ pub(crate) async fn run_skill_writer( pub(crate) async fn run_combined_review( cg: &TraceDecay, - config: &AutomationConfig, + config: &AutomationSettingsV1, run_control: &AutomationRunControl, backend: &dyn AgentTaskBackend, options: CombinedReviewAutomationOptions, @@ -354,7 +354,7 @@ pub(crate) async fn run_combined_review( pub(crate) async fn run_memory_curator( cg: &TraceDecay, - config: &AutomationConfig, + config: &AutomationSettingsV1, run_control: &AutomationRunControl, backend: &dyn AgentTaskBackend, options: MemoryCuratorAutomationOptions, @@ -1246,20 +1246,20 @@ pub(crate) fn assert_noop_fallback_record( /// Standalone automation config with only the skill writer task enabled on a /// manual schedule; override fields with struct update syntax where needed. -pub(crate) fn enabled_skill_writer_config() -> AutomationConfig { - AutomationConfig { +pub(crate) fn enabled_skill_writer_config() -> AutomationSettingsV1 { + AutomationSettingsV1 { enabled: true, - backend: AutomationBackend::CodexAppServer, - host_mode: AutomationHostMode::Standalone, - tasks: AutomationTaskSet { - skill_writer: AutomationTaskConfig { + backend: AutomationBackendV1::CodexAppServer, + host_mode: AutomationHostModeV1::Standalone, + tasks: AutomationTaskSetV1 { + skill_writer: AutomationTaskSettingsV1 { enabled: true, schedule: Some("manual".to_string()), - ..AutomationTaskConfig::default() + ..AutomationTaskSettingsV1::default() }, - ..AutomationTaskSet::default() + ..AutomationTaskSetV1::default() }, - ..AutomationConfig::default() + ..AutomationSettingsV1::default() } } @@ -1278,35 +1278,35 @@ pub(crate) fn manual_skill_writer_options(profile_root: &Path) -> SkillWriterAut pub(crate) fn scheduler_config( interval_secs: Option, cooldown_secs: Option, -) -> AutomationConfig { - AutomationConfig { +) -> AutomationSettingsV1 { + AutomationSettingsV1 { enabled: true, - backend: AutomationBackend::CodexAppServer, - host_mode: AutomationHostMode::Standalone, - tasks: AutomationTaskSet { - memory_curator: AutomationTaskConfig { + backend: AutomationBackendV1::CodexAppServer, + host_mode: AutomationHostModeV1::Standalone, + tasks: AutomationTaskSetV1 { + memory_curator: AutomationTaskSettingsV1 { enabled: true, schedule: interval_secs.map(|_| "interval".to_string()), interval_secs, cooldown_secs, - ..AutomationTaskConfig::default() + ..AutomationTaskSettingsV1::default() }, - session_reflector: AutomationTaskConfig { + session_reflector: AutomationTaskSettingsV1 { enabled: true, schedule: interval_secs.map(|_| "interval".to_string()), interval_secs, cooldown_secs, - ..AutomationTaskConfig::default() + ..AutomationTaskSettingsV1::default() }, - skill_writer: AutomationTaskConfig { + skill_writer: AutomationTaskSettingsV1 { enabled: true, schedule: interval_secs.map(|_| "interval".to_string()), interval_secs, cooldown_secs, - ..AutomationTaskConfig::default() + ..AutomationTaskSettingsV1::default() }, }, - ..AutomationConfig::default() + ..AutomationSettingsV1::default() } } diff --git a/crates/tracedecay/tests/automation_runner_test/support/settlement.rs b/crates/tracedecay/tests/automation_runner_test/support/settlement.rs index 88d26154b9..607125e300 100644 --- a/crates/tracedecay/tests/automation_runner_test/support/settlement.rs +++ b/crates/tracedecay/tests/automation_runner_test/support/settlement.rs @@ -9,7 +9,7 @@ use tracedecay_automation_runtime::automation::backend::AgentTaskBackend; use tracedecay_automation_runtime::automation::combined_effect::{ DeferredLegTerminal, combined_dispatch_terminals, }; -use tracedecay_automation_runtime::automation::config::AutomationConfig; +use tracedecay_automation_runtime::automation::config::AutomationSettingsV1; use tracedecay_automation_runtime::automation::effect_runtime::settlement::{ AdmittedAutomationEffectRequest, AutomationEffectAdmission, AutomationEffectAuthority, DeferredProblemSettlementRequest, DeferredRunSettlementRequest, DeferredSettlementRequest, @@ -219,7 +219,7 @@ async fn settle( pub(crate) async fn settle_memory_curator( cx: &AutomationProjectContext, - config: &AutomationConfig, + config: &AutomationSettingsV1, configuration_revision_id: &ConfigurationRevisionId, backend: &dyn AgentTaskBackend, mut options: MemoryCuratorAutomationOptions, @@ -245,7 +245,7 @@ pub(crate) async fn settle_memory_curator( pub(crate) async fn settle_session_reflector( cx: &AutomationProjectContext, - config: &AutomationConfig, + config: &AutomationSettingsV1, run_control: &AutomationRunControl, configuration_revision_id: &ConfigurationRevisionId, backend: &dyn AgentTaskBackend, @@ -272,7 +272,7 @@ pub(crate) async fn settle_session_reflector( pub(crate) async fn settle_skill_writer( cx: &AutomationProjectContext, - config: &AutomationConfig, + config: &AutomationSettingsV1, configuration_revision_id: &ConfigurationRevisionId, backend: &dyn AgentTaskBackend, retrieval: &dyn AutomationSessionRetrieval, @@ -299,7 +299,7 @@ pub(crate) async fn settle_skill_writer( /// so the admitted reservation is abandoned instead of settled. pub(crate) async fn settle_user_job( dashboard_root: &Path, - config: &AutomationConfig, + config: &AutomationSettingsV1, backend: &dyn AgentTaskBackend, job: &AutomationJob, mut options: UserJobRunOptions, @@ -449,7 +449,7 @@ fn deferred_request(terminal: DeferredLegTerminal) -> DeferredSettlementRequest /// the daemon's combined scheduler effect does. pub(crate) async fn settle_combined_review( cx: &AutomationProjectContext, - config: &AutomationConfig, + config: &AutomationSettingsV1, configuration_revision_id: &ConfigurationRevisionId, backend: &dyn AgentTaskBackend, retrieval: &dyn AutomationSessionRetrieval, diff --git a/crates/tracedecay/tests/dashboard_api_test/automation_jobs.rs b/crates/tracedecay/tests/dashboard_api_test/automation_jobs.rs index c9eb5da8d3..98b00b2c8e 100644 --- a/crates/tracedecay/tests/dashboard_api_test/automation_jobs.rs +++ b/crates/tracedecay/tests/dashboard_api_test/automation_jobs.rs @@ -16,7 +16,7 @@ fn dashboard_three_request_chain_cannot_enable_and_run_a_shell_command() { let mut global_config = tracedecay_session_memory::user_config::UserConfig::default(); global_config.automation.enabled = true; global_config.automation.backend = - tracedecay_automation_runtime::automation::config::AutomationBackend::CodexAppServer; + tracedecay_automation_runtime::automation::config::AutomationBackendV1::CodexAppServer; global_config .save(&profile_root) .expect("global user config should save"); diff --git a/crates/tracedecay/tests/mcp_suite/mcp_handler_test/automation_run_list_behavior_test.rs b/crates/tracedecay/tests/mcp_suite/mcp_handler_test/automation_run_list_behavior_test.rs index e506a95261..d45c7a9bdc 100644 --- a/crates/tracedecay/tests/mcp_suite/mcp_handler_test/automation_run_list_behavior_test.rs +++ b/crates/tracedecay/tests/mcp_suite/mcp_handler_test/automation_run_list_behavior_test.rs @@ -18,7 +18,7 @@ use tracedecay_automation_runtime::automation::run_ledger::{ append_run_record, }; -use crate::mcp_server_test::run_client_connection_with_messages; +use crate::mcp_server_test::support::run_client_connection_with_messages; use crate::mcp_server_test::support::{jsonrpc_request, response_with_id}; use crate::support::{ TestEnv, TestTraceDecay, close_test_graph, init_test_project, real_mcp_server, refusal_problem, diff --git a/crates/tracedecay/tests/mcp_suite/mcp_handler_test/session_refresh_cancel_test.rs b/crates/tracedecay/tests/mcp_suite/mcp_handler_test/session_refresh_cancel_test.rs index b9bd80e133..8a6895f30c 100644 --- a/crates/tracedecay/tests/mcp_suite/mcp_handler_test/session_refresh_cancel_test.rs +++ b/crates/tracedecay/tests/mcp_suite/mcp_handler_test/session_refresh_cancel_test.rs @@ -179,7 +179,7 @@ fn assert_cancel_payload( async fn dispatch_profile_refresh( profile_database: &tracedecay_global_db::RegisteredGlobalDbLeaseV1, authority: &tracedecay_session_runtime::retained::ProfileRetainedConnectionAuthorityV1, - refresh: Option<&dyn tracedecay_session_runtime::retained::RetainedSessionRefreshPortV1>, + refresh: Option<&dyn tracedecay_session_memory::session::SessionRefreshServicePort>, tool_name: &str, arguments: Value, ) -> Value { diff --git a/crates/tracedecay/tests/mcp_suite/mcp_server_test.rs b/crates/tracedecay/tests/mcp_suite/mcp_server_test.rs index 640eaa046a..a6d536c90d 100644 --- a/crates/tracedecay/tests/mcp_suite/mcp_server_test.rs +++ b/crates/tracedecay/tests/mcp_suite/mcp_server_test.rs @@ -18,6 +18,3 @@ mod retrieve_behavior_test; #[cfg(target_os = "linux")] mod server_release_test; pub(crate) mod support; - -// Backwards-compatible path for `crate::mcp_server_test::…` consumers. -pub(crate) use support::run_client_connection_with_messages; diff --git a/crates/tracedecay/tests/mcp_suite/support.rs b/crates/tracedecay/tests/mcp_suite/support.rs index f692374422..a57146dac6 100644 --- a/crates/tracedecay/tests/mcp_suite/support.rs +++ b/crates/tracedecay/tests/mcp_suite/support.rs @@ -796,16 +796,17 @@ pub(crate) async fn handle_tool_call( }, }) .to_string(); - let response = crate::mcp_server_test::run_client_connection_with_messages( - server, - vec![request], - ) - .await - .into_iter() - .next() - .ok_or_else(|| TraceDecayError::Config { - message: format!("{name} returned no MCP response"), - })?; + let response = + crate::mcp_server_test::support::run_client_connection_with_messages( + server, + vec![request], + ) + .await + .into_iter() + .next() + .ok_or_else(|| TraceDecayError::Config { + message: format!("{name} returned no MCP response"), + })?; let response: Value = serde_json::from_str(&response).map_err(|error| TraceDecayError::Config { message: format!("{name} returned invalid MCP JSON: {error}"), diff --git a/crates/tracedecay/tests/mcp_suite/workflow_query_test.rs b/crates/tracedecay/tests/mcp_suite/workflow_query_test.rs index 2738a75979..a19afc6a4b 100644 --- a/crates/tracedecay/tests/mcp_suite/workflow_query_test.rs +++ b/crates/tracedecay/tests/mcp_suite/workflow_query_test.rs @@ -214,12 +214,14 @@ async fn call_md(cg: &TraceDecay, tool: &str, mut args: Value) -> String { }, }) .to_string(); - let response = - crate::mcp_server_test::run_client_connection_with_messages(server.clone(), vec![request]) - .await - .into_iter() - .next() - .unwrap_or_else(|| panic!("{tool} should return one MCP response")); + let response = crate::mcp_server_test::support::run_client_connection_with_messages( + server.clone(), + vec![request], + ) + .await + .into_iter() + .next() + .unwrap_or_else(|| panic!("{tool} should return one MCP response")); server.shutdown().await; let response: Value = serde_json::from_str(&response) .unwrap_or_else(|error| panic!("{tool} should return MCP JSON: {error}")); diff --git a/crates/tracedecay/tests/session_suite/observation_projection/mod.rs b/crates/tracedecay/tests/session_suite/observation_projection/mod.rs index 1df382e103..6aee4e27fd 100644 --- a/crates/tracedecay/tests/session_suite/observation_projection/mod.rs +++ b/crates/tracedecay/tests/session_suite/observation_projection/mod.rs @@ -16,9 +16,9 @@ use tracedecay_project::test_support::host_admission::HostAdmissionTestRuntimeV1 use tracedecay_sessions::admission::HostAdmissionScope; use tracedecay_sessions::observation::ObservationCancellation; use tracedecay_store::{ - AnchoredObservationWrite, CLAUDE_SESSION_MESSAGE_PROJECTOR_VERSION, ObservationPersistOutcome, - ObservationProjectionStatus, ObservationProjectionStore, ObservationStore, ObservationWrite, - ProjectionPersistOutcome, ProjectionRebuildOutcome, ProjectionSkipReason, ProjectionStoreError, + AnchoredObservationWrite, ObservationPersistOutcome, ObservationProjectionStatus, + ObservationProjectionStore, ObservationStore, ObservationWrite, ProjectionPersistOutcome, + ProjectionRebuildOutcome, ProjectionSkipReason, ProjectionStoreError, SESSION_MESSAGE_PROJECTOR_VERSION, SESSION_MESSAGE_PROJECTOR_VERSION_V4, SESSION_MESSAGE_PROJECTOR_VERSION_V5, build_observation_resolution_authorization_v1, build_observation_retrieval_anchor, @@ -435,10 +435,7 @@ async fn add_other_projector_owner(tmp: &TempDir, observation_id: &CanonicalObse receipt_id, output_provider, output_message_id, output_digest, 0 FROM observation_projection_provenance WHERE projector_version = ?1 AND observation_id = ?2", - rusqlite::params![ - CLAUDE_SESSION_MESSAGE_PROJECTOR_VERSION, - observation_id.as_str(), - ], + rusqlite::params![SESSION_MESSAGE_PROJECTOR_VERSION, observation_id.as_str(),], ) .unwrap(); } diff --git a/crates/tracedecay/tests/session_suite/observation_projection/queue.rs b/crates/tracedecay/tests/session_suite/observation_projection/queue.rs index b01e77f9ad..8308e448ad 100644 --- a/crates/tracedecay/tests/session_suite/observation_projection/queue.rs +++ b/crates/tracedecay/tests/session_suite/observation_projection/queue.rs @@ -248,7 +248,7 @@ async fn queued_projection_commits_search_effect_provenance_checkpoint_and_repla assert_eq!(projected.checkpoint().last_sequence(), sequence); assert_eq!( projected.checkpoint().projector_version(), - CLAUDE_SESSION_MESSAGE_PROJECTOR_VERSION + SESSION_MESSAGE_PROJECTOR_VERSION ); assert_eq!( store @@ -275,7 +275,7 @@ async fn queued_projection_commits_search_effect_provenance_checkpoint_and_repla assert_eq!(projection_counts(&tmp).await, (1, 1, 1, 1, 0, 0)); let provenance = projection_provenance_rows(&tmp).await; assert_eq!(provenance.len(), 1); - assert_eq!(provenance[0].0, CLAUDE_SESSION_MESSAGE_PROJECTOR_VERSION); + assert_eq!(provenance[0].0, SESSION_MESSAGE_PROJECTOR_VERSION); assert_eq!(provenance[0].1, candidate.observation_id().as_str()); assert_eq!( provenance[0].2, @@ -294,7 +294,7 @@ async fn queued_projection_commits_search_effect_provenance_checkpoint_and_repla "UPDATE observation_projection_provenance SET retrieval_anchor_id = NULL WHERE projector_version = ?1 AND observation_id = ?2", rusqlite::params![ - CLAUDE_SESSION_MESSAGE_PROJECTOR_VERSION, + SESSION_MESSAGE_PROJECTOR_VERSION, candidate.observation_id().as_str() ], ) @@ -343,7 +343,7 @@ async fn queued_projection_commits_search_effect_provenance_checkpoint_and_repla "UPDATE observation_projection_provenance SET retrieval_anchor_id = NULL WHERE projector_version = ?1 AND observation_id = ?2", rusqlite::params![ - CLAUDE_SESSION_MESSAGE_PROJECTOR_VERSION, + SESSION_MESSAGE_PROJECTOR_VERSION, candidate.observation_id().as_str() ], ) diff --git a/crates/tracedecay/tests/session_suite/observation_projection/rebuild.rs b/crates/tracedecay/tests/session_suite/observation_projection/rebuild.rs index cf01837737..4b50179412 100644 --- a/crates/tracedecay/tests/session_suite/observation_projection/rebuild.rs +++ b/crates/tracedecay/tests/session_suite/observation_projection/rebuild.rs @@ -386,7 +386,7 @@ async fn durable_projection_alias_survives_rebuild_without_rewriting_observation (projector_version, observation_id, output_provider, output_message_id) VALUES (?1, ?2, 'claude', 'consolidated/source/message-alias')", rusqlite::params![ - CLAUDE_SESSION_MESSAGE_PROJECTOR_VERSION, + SESSION_MESSAGE_PROJECTOR_VERSION, candidate.observation_id().as_str() ], ) @@ -984,7 +984,7 @@ async fn interrupted_rebuild_resumes_same_generation_with_pinned_aliases() { 'consolidated/pinned/message-interrupted-rebuild-200' )", rusqlite::params![ - CLAUDE_SESSION_MESSAGE_PROJECTOR_VERSION, + SESSION_MESSAGE_PROJECTOR_VERSION, aliased_observation.as_str(), ], ) @@ -1013,7 +1013,7 @@ async fn interrupted_rebuild_resumes_same_generation_with_pinned_aliases() { SET output_message_id = 'consolidated/transient/message-interrupted-rebuild-200' WHERE projector_version = ?1 AND observation_id = ?2", rusqlite::params![ - CLAUDE_SESSION_MESSAGE_PROJECTOR_VERSION, + SESSION_MESSAGE_PROJECTOR_VERSION, aliased_observation.as_str(), ], ) @@ -1024,7 +1024,7 @@ async fn interrupted_rebuild_resumes_same_generation_with_pinned_aliases() { FROM observation_projection_rebuild_aliases WHERE projector_version = ?1 AND observation_id = ?2", rusqlite::params![ - CLAUDE_SESSION_MESSAGE_PROJECTOR_VERSION, + SESSION_MESSAGE_PROJECTOR_VERSION, aliased_observation.as_str(), ], |row| row.get::<_, String>(0), @@ -1040,7 +1040,7 @@ async fn interrupted_rebuild_resumes_same_generation_with_pinned_aliases() { SET output_message_id = 'consolidated/pinned/message-interrupted-rebuild-200' WHERE projector_version = ?1 AND observation_id = ?2", rusqlite::params![ - CLAUDE_SESSION_MESSAGE_PROJECTOR_VERSION, + SESSION_MESSAGE_PROJECTOR_VERSION, aliased_observation.as_str(), ], ) @@ -1061,7 +1061,7 @@ async fn interrupted_rebuild_resumes_same_generation_with_pinned_aliases() { "SELECT generation, staged_through, state FROM observation_projection_rebuilds WHERE projector_version = ?1", - rusqlite::params![CLAUDE_SESSION_MESSAGE_PROJECTOR_VERSION], + rusqlite::params![SESSION_MESSAGE_PROJECTOR_VERSION], |row| { Ok(( row.get::<_, String>(0)?, From 0acf53dcfa986bca46669e49572d3ba1d0bc03c6 Mon Sep 17 00:00:00 2001 From: Zack Jackson <25274700+ScriptedAlchemy@users.noreply.github.com> Date: Wed, 28 Oct 2026 22:10:28 -0700 Subject: [PATCH 04/13] chore(dev-tooling): drop legacy eval, benchmark and CI fallbacks (U4) Items removed: L022, L029, L046, L066. - L022: scorecard.py reads only the `pass` field; delete row_passed and test_passed_alias. - L029: delete the legacy Bazel disk-cache restore-key fallback in the ci-linux-test job. - L046: the Claude observation benchmark validates only acceptance artifacts. Delete RETIRED_WORKLOAD_ID, the historical and retired validators and their helpers, EvidenceIndex.historical_stale, the five historical result-*.json files, the runner's symlink loop, the publication test's historical fixture, and the optional ProviderBaseline.measurement and catalog compatibility field. - L066: the agent-adoption grader accepts only Codex 0.144+ item.* envelopes and the ____ basename. The selftest fixtures moved to those shapes and the legacy-basename check was deleted. Tests deleted: test_passed_alias; the legacy id__host basename check in agent_adoption selftest. Upgrade impact: dev tooling only. Old hermetic results.jsonl rows that carry only `passed` score as not triggered, old Codex msg transcripts and old-named transcript files no longer grade, and the repo carries no benchmark evidence until a new acceptance run is published. Co-Authored-By: Claude Opus 5.5 --- .github/workflows/ci.yml | 2 - benchmark_data/claude-observation/README.md | 62 +- .../claude-observation/evidence-index.json | 9 +- .../result-2026-07-15-0c289212.json | 641 - .../result-2026-07-15-b05b4cd5.json | 610 - .../result-2026-07-16-00d3d73a.json | 1 - .../result-2026-07-16-8d53b4a9.json | 1 - .../result-2026-07-26-dc17dd73.json | 13743 ---------------- crates/tracedecay-sessions/src/lib.rs | 3 +- .../claude_observation_benchmark/artifact.rs | 223 +- .../claude_observation_benchmark/baseline.rs | 16 +- .../claude_observation_benchmark/main.rs | 3 - .../claude_observation_benchmark/model.rs | 3 +- evals/agent_adoption/README.md | 2 +- evals/agent_adoption/grade.py | 33 +- evals/agent_adoption/selftest.py | 27 +- evals/hermetic/scorecard.py | 13 +- evals/hermetic/test_scorecard.py | 11 - scripts/run-claude-observation-benchmark.sh | 6 +- ...laude-observation-benchmark-publication.py | 8 - 20 files changed, 55 insertions(+), 15362 deletions(-) delete mode 100644 benchmark_data/claude-observation/result-2026-07-15-0c289212.json delete mode 100644 benchmark_data/claude-observation/result-2026-07-15-b05b4cd5.json delete mode 100644 benchmark_data/claude-observation/result-2026-07-16-00d3d73a.json delete mode 100644 benchmark_data/claude-observation/result-2026-07-16-8d53b4a9.json delete mode 100644 benchmark_data/claude-observation/result-2026-07-26-dc17dd73.json diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 98fe25e024..2767a866ac 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -383,8 +383,6 @@ jobs: ${{ (github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository) && ((github.actor_id == '25274700' && vars.TS_BAZEL_CLIENT_ID) || (github.actor_id == '158243242' && vars.TS_BAZEL_BOT_CLIENT_ID)) || '' }} - # Prefer v2; keep legacy prefixes as restore fallbacks if still present. - extra-restore-keys: ci-linux-test,ci-linux-workspace-test - name: Select Linux test targets id: targets diff --git a/benchmark_data/claude-observation/README.md b/benchmark_data/claude-observation/README.md index 0f07d771e3..16e217d5a3 100644 --- a/benchmark_data/claude-observation/README.md +++ b/benchmark_data/claude-observation/README.md @@ -33,19 +33,16 @@ and projection, and replay measures the bounded authoritative-store query. Scopes are embedded beside each distribution so the commit sample is not misrepresented as excluding the adapter's parse and normalization work. -The provider catalog remains schema v1. Its measurement block is an additive -optional field for wire compatibility, while executable validation requires -that block for every supported provider and rejects pending paths. This avoids -an unnecessary incompatible schema-v2 claim. A normal test deserializes the -complete manifest with unknown fields denied, executes every production adapter -once, and proves each repeat is a durable no-op. +The provider catalog is schema v1. Executable validation requires its +measurement block for every supported provider and rejects pending paths. A +normal test deserializes the complete manifest with unknown fields denied, +executes every production adapter once, and proves each repeat is a durable +no-op. -The current measurement includes the nested -`provider_observation_performance` result and `hook_telemetry_readiness` -diagnostic. [evidence-index.json](evidence-index.json) identifies -[result-2026-07-26-dc17dd73.json](result-2026-07-26-dc17dd73.json) as the -legacy `current_acceptance`; that field is deprecated and grants no authority. -Earlier artifacts remain `historical_stale`. +The measurement includes the nested `provider_observation_performance` result +and `hook_telemetry_readiness` diagnostic. [evidence-index.json](evidence-index.json) +names the single `current_acceptance` artifact, or `null` while no acceptance +run is published. The measurement embeds hook telemetry readiness as `hook-telemetry-baseline-readiness-v1`, not as a measured baseline. It reads the @@ -59,7 +56,7 @@ on instrumented hosts; Hermes coverage remains partial. Checked-in distributions and aggregate timeout/disposition counts remain explicitly unavailable rather than being represented as zero. -The legacy schema records real SHA-256 identities for workload members and +The result schema records real SHA-256 identities for workload members and native fixtures plus the host target, Rust/Cargo versions, kernel, and hardware. Those source/content digests remain useful provenance. Do not recreate the former clean-checkout archive, tracked-source snapshot, compiler-input @@ -91,39 +88,12 @@ and compatibility transcript counters report those projector outputs. The timed no-op retry replays after the durable end cursor and must return zero new observations; a full replay verifies unchanged cardinality afterward. -The current [measurement result](result-2026-07-26-dc17dd73.json) records -source revision `dc17dd731e97f9262e570afd9e7ec1602d8af99e` with 3 warmups and -30 independent measured repetitions of 64 records (30 × 64 = 1,920 records). -The raw artifact records the Linux kernel, CPU, memory, Rust/Cargo toolchains, -every repetition, and the nearest-rank/sample-standard-deviation method. - -- Pipeline batch latency: p50 2,341,276,568 ns; p95 2,527,159,267 ns; p99 - 2,708,492,865 ns. -- Pipeline throughput: 27.11224430907219 records/s. -- Timed pipeline CPU: 69,110 ms; peak RSS: 153,276 KiB. -- Timed process write I/O: 1,551,220,736 bytes; SQLite database/WAL/SHM growth: - 1,122,556,640 bytes across the 30 independent databases. -- Exact no-op retry plus bounded replay: p50 1,185,536 ns; p95 1,504,741 ns; - p99 1,558,623 ns; 40 ms CPU total; zero process write bytes, database growth, - observation-count delta, and coordinator work counters. -- Round-robin fairness: maximum provider turn distance 8. - -The earlier [measurement result](result-2026-07-16-00d3d73a.json) remains -`historical_stale` after the checked-in workload identity changed. - -The earlier [measurement result](result-2026-07-16-8d53b4a9.json) remains -`historical_stale` after the PR6 provider-ingestion correctness changes. - -The earlier [measurement result](result-2026-07-15-0c289212.json) remains -`historical_stale` because it predates workload schema 3. - -The [historical result](result-2026-07-15-b05b4cd5.json) was captured from clean -commit `b05b4cd570ab8e3385604c0fef31902fdc3f1e8b`. - -> **Historical/stale evidence:** this result predates schema 2 provenance and -> complete workload validation. Its JSON carries -> `"evidence_status": "historical_stale"` and is not current product evidence. -> Retain it only for provenance. +No acceptance result is published: `current_acceptance` is `null` until +`scripts/run-claude-observation-benchmark.sh` seals one on a Linux evidence +run. A published result records the source revision, 3 warmups and 30 +independent measured repetitions of 64 records, the Linux kernel, CPU, memory, +Rust/Cargo toolchains, every repetition, and the nearest-rank/sample-standard- +deviation method. ```console scripts/run-claude-observation-benchmark.sh diff --git a/benchmark_data/claude-observation/evidence-index.json b/benchmark_data/claude-observation/evidence-index.json index 50425d97a9..32506b3166 100644 --- a/benchmark_data/claude-observation/evidence-index.json +++ b/benchmark_data/claude-observation/evidence-index.json @@ -1,11 +1,4 @@ { "schema_version": 1, - "current_acceptance": null, - "historical_stale": [ - "result-2026-07-15-0c289212.json", - "result-2026-07-15-b05b4cd5.json", - "result-2026-07-16-00d3d73a.json", - "result-2026-07-16-8d53b4a9.json", - "result-2026-07-26-dc17dd73.json" - ] + "current_acceptance": null } \ No newline at end of file diff --git a/benchmark_data/claude-observation/result-2026-07-15-0c289212.json b/benchmark_data/claude-observation/result-2026-07-15-0c289212.json deleted file mode 100644 index 31517f897e..0000000000 --- a/benchmark_data/claude-observation/result-2026-07-15-0c289212.json +++ /dev/null @@ -1,641 +0,0 @@ -{ - "schema_version": 2, - "workload_id": "pr5-observation-pipeline-v1", - "evidence_status": "historical_stale", - "workload_identity": { - "manifest_path": "benchmarks/pr5-observation/workload-v1.json", - "manifest_sha256": "d9ae0d85d9812bdb41e21d48df3dcf0f867358063c7a499d436f793e7571f581", - "harness_paths": [ - "src/sessions/claude_observation_benchmark.rs", - "src/sessions/claude_observation_benchmark/artifact.rs", - "src/sessions/claude_observation_benchmark/manifest.rs", - "src/sessions/claude_observation_benchmark/metrics.rs", - "src/sessions/claude_observation_benchmark/model.rs", - "src/sessions/claude_observation_benchmark/runner.rs", - "src/sessions/claude_observation_benchmark/tests.rs" - ], - "harness_sha256": "c468c65efa3ce7755cb46e4e8ea2c0e97a3486a5726ff45d6915de6d113f2546" - }, - "build_identity": { - "commit": "0c289212de5429e5d5abf309f6bb27e49f66a64e", - "tree": "141a3e36a2bbd0f8a1d74289f2243df1d884c89f", - "profile": "release", - "commit_keyed_target": true, - "executable_sha256": "a07c2ff6e8860b2148ddcdfdede418875a0cc6d3a02aa54acf4a331e61844c98", - "executable_size_bytes": 209609592 - }, - "git_before": { - "commit": "0c289212de5429e5d5abf309f6bb27e49f66a64e", - "tree": "141a3e36a2bbd0f8a1d74289f2243df1d884c89f", - "dirty": false - }, - "git_after": { - "commit": "0c289212de5429e5d5abf309f6bb27e49f66a64e", - "tree": "141a3e36a2bbd0f8a1d74289f2243df1d884c89f", - "dirty": false - }, - "command": "cargo test --quiet --locked --release --lib sessions::claude_observation_benchmark::production_observation_pipeline_baseline -- --ignored --exact --nocapture --test-threads=1", - "rustc": "rustc 1.95.0 (59807616e 2026-04-14)\nbinary: rustc\ncommit-hash: 59807616e1fa2540724bfbac14d7976d7e4a3860\ncommit-date: 2026-04-14\nhost: x86_64-unknown-linux-gnu\nrelease: 1.95.0\nLLVM version: 22.1.2", - "cargo": "cargo 1.95.0 (f2d3ce0bd 2026-03-21)", - "kernel": "Linux 6.8.0-134-generic x86_64 GNU/Linux", - "cpu_identity": "AMD EPYC 7742 64-Core Processor", - "logical_cpu_count": 64, - "memory_total_kib": 151845828, - "clock_ticks_per_second": 100, - "warmup_repetitions": 3, - "measured_repetitions": 30, - "records_per_repetition": 64, - "measured_records": 1920, - "pipeline_raw_samples": [ - { - "repetition": 0, - "latency_ns": 327853330, - "cpu_ticks": 22, - "process_write_bytes": 8355840, - "database_storage_growth_bytes": 3740736, - "peak_rss_kib": 24660, - "replayed_observations": 64 - }, - { - "repetition": 1, - "latency_ns": 322591035, - "cpu_ticks": 22, - "process_write_bytes": 8351744, - "database_storage_growth_bytes": 3740736, - "peak_rss_kib": 24668, - "replayed_observations": 64 - }, - { - "repetition": 2, - "latency_ns": 330672253, - "cpu_ticks": 21, - "process_write_bytes": 8355840, - "database_storage_growth_bytes": 3740736, - "peak_rss_kib": 24668, - "replayed_observations": 64 - }, - { - "repetition": 3, - "latency_ns": 330333649, - "cpu_ticks": 23, - "process_write_bytes": 8351744, - "database_storage_growth_bytes": 3740736, - "peak_rss_kib": 24672, - "replayed_observations": 64 - }, - { - "repetition": 4, - "latency_ns": 305474619, - "cpu_ticks": 22, - "process_write_bytes": 8347648, - "database_storage_growth_bytes": 3740736, - "peak_rss_kib": 24672, - "replayed_observations": 64 - }, - { - "repetition": 5, - "latency_ns": 322796838, - "cpu_ticks": 21, - "process_write_bytes": 8347648, - "database_storage_growth_bytes": 3740736, - "peak_rss_kib": 24676, - "replayed_observations": 64 - }, - { - "repetition": 6, - "latency_ns": 309030642, - "cpu_ticks": 21, - "process_write_bytes": 8355840, - "database_storage_growth_bytes": 3740736, - "peak_rss_kib": 24684, - "replayed_observations": 64 - }, - { - "repetition": 7, - "latency_ns": 316056567, - "cpu_ticks": 22, - "process_write_bytes": 8355840, - "database_storage_growth_bytes": 3744856, - "peak_rss_kib": 24688, - "replayed_observations": 64 - }, - { - "repetition": 8, - "latency_ns": 316854166, - "cpu_ticks": 21, - "process_write_bytes": 8351744, - "database_storage_growth_bytes": 3740736, - "peak_rss_kib": 24688, - "replayed_observations": 64 - }, - { - "repetition": 9, - "latency_ns": 305356697, - "cpu_ticks": 21, - "process_write_bytes": 8347648, - "database_storage_growth_bytes": 3740736, - "peak_rss_kib": 24688, - "replayed_observations": 64 - }, - { - "repetition": 10, - "latency_ns": 299659958, - "cpu_ticks": 22, - "process_write_bytes": 8351744, - "database_storage_growth_bytes": 3740736, - "peak_rss_kib": 24688, - "replayed_observations": 64 - }, - { - "repetition": 11, - "latency_ns": 301927175, - "cpu_ticks": 22, - "process_write_bytes": 8351744, - "database_storage_growth_bytes": 3740736, - "peak_rss_kib": 24688, - "replayed_observations": 64 - }, - { - "repetition": 12, - "latency_ns": 319192554, - "cpu_ticks": 21, - "process_write_bytes": 8347648, - "database_storage_growth_bytes": 3740736, - "peak_rss_kib": 24688, - "replayed_observations": 64 - }, - { - "repetition": 13, - "latency_ns": 322430414, - "cpu_ticks": 22, - "process_write_bytes": 8359936, - "database_storage_growth_bytes": 3740736, - "peak_rss_kib": 24692, - "replayed_observations": 64 - }, - { - "repetition": 14, - "latency_ns": 323112742, - "cpu_ticks": 21, - "process_write_bytes": 8355840, - "database_storage_growth_bytes": 3740736, - "peak_rss_kib": 24692, - "replayed_observations": 64 - }, - { - "repetition": 15, - "latency_ns": 324635470, - "cpu_ticks": 21, - "process_write_bytes": 8347648, - "database_storage_growth_bytes": 3740736, - "peak_rss_kib": 24696, - "replayed_observations": 64 - }, - { - "repetition": 16, - "latency_ns": 326140788, - "cpu_ticks": 23, - "process_write_bytes": 8347648, - "database_storage_growth_bytes": 3740736, - "peak_rss_kib": 24700, - "replayed_observations": 64 - }, - { - "repetition": 17, - "latency_ns": 329603861, - "cpu_ticks": 22, - "process_write_bytes": 8351744, - "database_storage_growth_bytes": 3740736, - "peak_rss_kib": 24700, - "replayed_observations": 64 - }, - { - "repetition": 18, - "latency_ns": 332129030, - "cpu_ticks": 22, - "process_write_bytes": 8351744, - "database_storage_growth_bytes": 3744856, - "peak_rss_kib": 24700, - "replayed_observations": 64 - }, - { - "repetition": 19, - "latency_ns": 328173544, - "cpu_ticks": 21, - "process_write_bytes": 8351744, - "database_storage_growth_bytes": 3740736, - "peak_rss_kib": 24704, - "replayed_observations": 64 - }, - { - "repetition": 20, - "latency_ns": 321653795, - "cpu_ticks": 21, - "process_write_bytes": 8347648, - "database_storage_growth_bytes": 3740736, - "peak_rss_kib": 24704, - "replayed_observations": 64 - }, - { - "repetition": 21, - "latency_ns": 336411433, - "cpu_ticks": 21, - "process_write_bytes": 8351744, - "database_storage_growth_bytes": 3740736, - "peak_rss_kib": 24704, - "replayed_observations": 64 - }, - { - "repetition": 22, - "latency_ns": 323698499, - "cpu_ticks": 22, - "process_write_bytes": 8355840, - "database_storage_growth_bytes": 3740736, - "peak_rss_kib": 24704, - "replayed_observations": 64 - }, - { - "repetition": 23, - "latency_ns": 323889432, - "cpu_ticks": 23, - "process_write_bytes": 8351744, - "database_storage_growth_bytes": 3740736, - "peak_rss_kib": 24704, - "replayed_observations": 64 - }, - { - "repetition": 24, - "latency_ns": 330364270, - "cpu_ticks": 21, - "process_write_bytes": 8351744, - "database_storage_growth_bytes": 3740736, - "peak_rss_kib": 24704, - "replayed_observations": 64 - }, - { - "repetition": 25, - "latency_ns": 341652217, - "cpu_ticks": 21, - "process_write_bytes": 8359936, - "database_storage_growth_bytes": 3740736, - "peak_rss_kib": 24704, - "replayed_observations": 64 - }, - { - "repetition": 26, - "latency_ns": 323175923, - "cpu_ticks": 21, - "process_write_bytes": 8347648, - "database_storage_growth_bytes": 3740736, - "peak_rss_kib": 24704, - "replayed_observations": 64 - }, - { - "repetition": 27, - "latency_ns": 326133519, - "cpu_ticks": 22, - "process_write_bytes": 8355840, - "database_storage_growth_bytes": 3740736, - "peak_rss_kib": 24704, - "replayed_observations": 64 - }, - { - "repetition": 28, - "latency_ns": 321922468, - "cpu_ticks": 22, - "process_write_bytes": 8347648, - "database_storage_growth_bytes": 3740736, - "peak_rss_kib": 24704, - "replayed_observations": 64 - }, - { - "repetition": 29, - "latency_ns": 324590650, - "cpu_ticks": 21, - "process_write_bytes": 8343552, - "database_storage_growth_bytes": 3740736, - "peak_rss_kib": 24704, - "replayed_observations": 64 - } - ], - "pipeline_batch_latency": { - "repetitions": 30, - "min_ns": 299659958, - "p50_ns": 323175923, - "p95_ns": 336411433, - "p99_ns": 341652217, - "max_ns": 341652217, - "mean_ns": 322250584.6, - "sample_stddev_ns": 9804393.919051789 - }, - "pipeline_records_per_second": 198.60320836792673, - "pipeline_cpu_ticks": 648, - "pipeline_cpu_ms": 6480.0, - "pipeline_process_write_bytes": 250552320, - "database_storage_growth_bytes": 112230320, - "peak_rss_kib": 24704, - "no_op_replay_raw_samples": [ - { - "repetition": 0, - "latency_ns": 217183, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 24660, - "replayed_observations": 0 - }, - { - "repetition": 1, - "latency_ns": 210192, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 24668, - "replayed_observations": 0 - }, - { - "repetition": 2, - "latency_ns": 215042, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 24668, - "replayed_observations": 0 - }, - { - "repetition": 3, - "latency_ns": 201252, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 24672, - "replayed_observations": 0 - }, - { - "repetition": 4, - "latency_ns": 193862, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 24672, - "replayed_observations": 0 - }, - { - "repetition": 5, - "latency_ns": 201503, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 24676, - "replayed_observations": 0 - }, - { - "repetition": 6, - "latency_ns": 177533, - "cpu_ticks": 1, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 24684, - "replayed_observations": 0 - }, - { - "repetition": 7, - "latency_ns": 193692, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 24688, - "replayed_observations": 0 - }, - { - "repetition": 8, - "latency_ns": 180882, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 24688, - "replayed_observations": 0 - }, - { - "repetition": 9, - "latency_ns": 194262, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 24688, - "replayed_observations": 0 - }, - { - "repetition": 10, - "latency_ns": 186221, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 24688, - "replayed_observations": 0 - }, - { - "repetition": 11, - "latency_ns": 210243, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 24688, - "replayed_observations": 0 - }, - { - "repetition": 12, - "latency_ns": 183833, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 24688, - "replayed_observations": 0 - }, - { - "repetition": 13, - "latency_ns": 224762, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 24692, - "replayed_observations": 0 - }, - { - "repetition": 14, - "latency_ns": 199003, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 24692, - "replayed_observations": 0 - }, - { - "repetition": 15, - "latency_ns": 200513, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 24696, - "replayed_observations": 0 - }, - { - "repetition": 16, - "latency_ns": 184241, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 24700, - "replayed_observations": 0 - }, - { - "repetition": 17, - "latency_ns": 194962, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 24700, - "replayed_observations": 0 - }, - { - "repetition": 18, - "latency_ns": 205303, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 24700, - "replayed_observations": 0 - }, - { - "repetition": 19, - "latency_ns": 199662, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 24704, - "replayed_observations": 0 - }, - { - "repetition": 20, - "latency_ns": 192643, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 24704, - "replayed_observations": 0 - }, - { - "repetition": 21, - "latency_ns": 193682, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 24704, - "replayed_observations": 0 - }, - { - "repetition": 22, - "latency_ns": 197982, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 24704, - "replayed_observations": 0 - }, - { - "repetition": 23, - "latency_ns": 207423, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 24704, - "replayed_observations": 0 - }, - { - "repetition": 24, - "latency_ns": 217902, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 24704, - "replayed_observations": 0 - }, - { - "repetition": 25, - "latency_ns": 216762, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 24704, - "replayed_observations": 0 - }, - { - "repetition": 26, - "latency_ns": 185311, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 24704, - "replayed_observations": 0 - }, - { - "repetition": 27, - "latency_ns": 170883, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 24704, - "replayed_observations": 0 - }, - { - "repetition": 28, - "latency_ns": 172262, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 24704, - "replayed_observations": 0 - }, - { - "repetition": 29, - "latency_ns": 171492, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 24704, - "replayed_observations": 0 - } - ], - "no_op_replay_latency": { - "repetitions": 30, - "min_ns": 170883, - "p50_ns": 194962, - "p95_ns": 217902, - "p99_ns": 224762, - "max_ns": 224762, - "mean_ns": 196682.93333333332, - "sample_stddev_ns": 14565.72219390048 - }, - "no_op_replay_cpu_ticks": 1, - "no_op_replay_cpu_ms": 10.0, - "no_op_replay_process_write_bytes": 0, - "no_op_replay_database_storage_growth_bytes": 0, - "no_op_replay_observation_count_delta": 0, - "no_op_replay_totals": { - "source_bytes_scanned": 0, - "sessions_upserted": 0, - "messages_upserted": 0, - "observations_committed": 0, - "observation_duplicates": 0, - "cursor_advances": 0, - "cursor_duplicates": 0, - "records_rejected": 0, - "records_quarantined": 0, - "projections_completed": 0, - "projections_skipped": 0, - "projection_duplicates": 0, - "deferred_sources": 0 - }, - "stale_reason": "predates workload schema 3 provider-neutral PR6 baseline catalog", - "superseded_by_workload_schema_version": 3 -} diff --git a/benchmark_data/claude-observation/result-2026-07-15-b05b4cd5.json b/benchmark_data/claude-observation/result-2026-07-15-b05b4cd5.json deleted file mode 100644 index a1febbc917..0000000000 --- a/benchmark_data/claude-observation/result-2026-07-15-b05b4cd5.json +++ /dev/null @@ -1,610 +0,0 @@ -{ - "schema_version": 1, - "evidence_status": "historical_stale", - "stale_reason": "predates result schema 2 provenance and complete workload-contract validation", - "superseded_by_result_schema_version": 2, - "workload_id": "pr5-observation-pipeline-v1", - "benchmark_commit": "b05b4cd570ab8e3385604c0fef31902fdc3f1e8b", - "benchmark_commit_dirty": false, - "command": "cargo test --quiet --release --lib sessions::claude_observation_benchmark::production_observation_pipeline_baseline -- --ignored --exact --nocapture --test-threads=1", - "rustc": "rustc 1.95.0 (59807616e 2026-04-14)\nbinary: rustc\ncommit-hash: 59807616e1fa2540724bfbac14d7976d7e4a3860\ncommit-date: 2026-04-14\nhost: x86_64-unknown-linux-gnu\nrelease: 1.95.0\nLLVM version: 22.1.2", - "cargo": "cargo 1.95.0 (f2d3ce0bd 2026-03-21)", - "kernel": "Linux 6.8.0-134-generic x86_64 GNU/Linux", - "cpu_model": "AMD EPYC 7742 64-Core Processor", - "logical_cpu_count": 64, - "memory_total_kib": 151845828, - "clock_ticks_per_second": 100, - "warmup_repetitions": 3, - "measured_repetitions": 30, - "records_per_repetition": 64, - "measured_records": 1920, - "pipeline_raw_samples": [ - { - "repetition": 0, - "latency_ns": 219041189, - "cpu_ticks": 14, - "process_write_bytes": 6086656, - "database_storage_growth_bytes": 3662384, - "peak_rss_kib": 22608, - "replayed_observations": 64 - }, - { - "repetition": 1, - "latency_ns": 224289055, - "cpu_ticks": 14, - "process_write_bytes": 6086656, - "database_storage_growth_bytes": 3662384, - "peak_rss_kib": 22672, - "replayed_observations": 64 - }, - { - "repetition": 2, - "latency_ns": 225486160, - "cpu_ticks": 14, - "process_write_bytes": 6086656, - "database_storage_growth_bytes": 3662384, - "peak_rss_kib": 22672, - "replayed_observations": 64 - }, - { - "repetition": 3, - "latency_ns": 244396900, - "cpu_ticks": 15, - "process_write_bytes": 6086656, - "database_storage_growth_bytes": 3662384, - "peak_rss_kib": 22672, - "replayed_observations": 64 - }, - { - "repetition": 4, - "latency_ns": 739049127, - "cpu_ticks": 16, - "process_write_bytes": 6086656, - "database_storage_growth_bytes": 3662384, - "peak_rss_kib": 22672, - "replayed_observations": 64 - }, - { - "repetition": 5, - "latency_ns": 3370435094, - "cpu_ticks": 16, - "process_write_bytes": 6086656, - "database_storage_growth_bytes": 3662384, - "peak_rss_kib": 22672, - "replayed_observations": 64 - }, - { - "repetition": 6, - "latency_ns": 4614566543, - "cpu_ticks": 17, - "process_write_bytes": 6094848, - "database_storage_growth_bytes": 3662384, - "peak_rss_kib": 22672, - "replayed_observations": 64 - }, - { - "repetition": 7, - "latency_ns": 2096851057, - "cpu_ticks": 15, - "process_write_bytes": 6086656, - "database_storage_growth_bytes": 3662384, - "peak_rss_kib": 22672, - "replayed_observations": 64 - }, - { - "repetition": 8, - "latency_ns": 2987826623, - "cpu_ticks": 18, - "process_write_bytes": 6086656, - "database_storage_growth_bytes": 3662384, - "peak_rss_kib": 22672, - "replayed_observations": 64 - }, - { - "repetition": 9, - "latency_ns": 2771079104, - "cpu_ticks": 17, - "process_write_bytes": 6094848, - "database_storage_growth_bytes": 3662384, - "peak_rss_kib": 22672, - "replayed_observations": 64 - }, - { - "repetition": 10, - "latency_ns": 232640993, - "cpu_ticks": 16, - "process_write_bytes": 6094848, - "database_storage_growth_bytes": 3662384, - "peak_rss_kib": 22672, - "replayed_observations": 64 - }, - { - "repetition": 11, - "latency_ns": 235013872, - "cpu_ticks": 15, - "process_write_bytes": 6086656, - "database_storage_growth_bytes": 3662384, - "peak_rss_kib": 22672, - "replayed_observations": 64 - }, - { - "repetition": 12, - "latency_ns": 233610736, - "cpu_ticks": 16, - "process_write_bytes": 6086656, - "database_storage_growth_bytes": 3662384, - "peak_rss_kib": 22672, - "replayed_observations": 64 - }, - { - "repetition": 13, - "latency_ns": 229740126, - "cpu_ticks": 15, - "process_write_bytes": 6086656, - "database_storage_growth_bytes": 3662384, - "peak_rss_kib": 22672, - "replayed_observations": 64 - }, - { - "repetition": 14, - "latency_ns": 220311315, - "cpu_ticks": 15, - "process_write_bytes": 6086656, - "database_storage_growth_bytes": 3662384, - "peak_rss_kib": 22672, - "replayed_observations": 64 - }, - { - "repetition": 15, - "latency_ns": 226531515, - "cpu_ticks": 15, - "process_write_bytes": 6086656, - "database_storage_growth_bytes": 3662384, - "peak_rss_kib": 22672, - "replayed_observations": 64 - }, - { - "repetition": 16, - "latency_ns": 228577550, - "cpu_ticks": 15, - "process_write_bytes": 6098944, - "database_storage_growth_bytes": 3662384, - "peak_rss_kib": 22672, - "replayed_observations": 64 - }, - { - "repetition": 17, - "latency_ns": 220189855, - "cpu_ticks": 14, - "process_write_bytes": 6086656, - "database_storage_growth_bytes": 3662384, - "peak_rss_kib": 22672, - "replayed_observations": 64 - }, - { - "repetition": 18, - "latency_ns": 216654910, - "cpu_ticks": 14, - "process_write_bytes": 6086656, - "database_storage_growth_bytes": 3662384, - "peak_rss_kib": 22672, - "replayed_observations": 64 - }, - { - "repetition": 19, - "latency_ns": 236413940, - "cpu_ticks": 15, - "process_write_bytes": 6086656, - "database_storage_growth_bytes": 3662384, - "peak_rss_kib": 22672, - "replayed_observations": 64 - }, - { - "repetition": 20, - "latency_ns": 233536493, - "cpu_ticks": 16, - "process_write_bytes": 6094848, - "database_storage_growth_bytes": 3662384, - "peak_rss_kib": 22672, - "replayed_observations": 64 - }, - { - "repetition": 21, - "latency_ns": 222939500, - "cpu_ticks": 15, - "process_write_bytes": 6086656, - "database_storage_growth_bytes": 3662384, - "peak_rss_kib": 22672, - "replayed_observations": 64 - }, - { - "repetition": 22, - "latency_ns": 243860684, - "cpu_ticks": 17, - "process_write_bytes": 6094848, - "database_storage_growth_bytes": 3662384, - "peak_rss_kib": 22672, - "replayed_observations": 64 - }, - { - "repetition": 23, - "latency_ns": 310223408, - "cpu_ticks": 15, - "process_write_bytes": 6086656, - "database_storage_growth_bytes": 3662384, - "peak_rss_kib": 22672, - "replayed_observations": 64 - }, - { - "repetition": 24, - "latency_ns": 218581924, - "cpu_ticks": 14, - "process_write_bytes": 6086656, - "database_storage_growth_bytes": 3662384, - "peak_rss_kib": 22672, - "replayed_observations": 64 - }, - { - "repetition": 25, - "latency_ns": 222249910, - "cpu_ticks": 16, - "process_write_bytes": 6086656, - "database_storage_growth_bytes": 3662384, - "peak_rss_kib": 22672, - "replayed_observations": 64 - }, - { - "repetition": 26, - "latency_ns": 223959143, - "cpu_ticks": 14, - "process_write_bytes": 6086656, - "database_storage_growth_bytes": 3662384, - "peak_rss_kib": 22672, - "replayed_observations": 64 - }, - { - "repetition": 27, - "latency_ns": 231468087, - "cpu_ticks": 15, - "process_write_bytes": 6086656, - "database_storage_growth_bytes": 3662384, - "peak_rss_kib": 22672, - "replayed_observations": 64 - }, - { - "repetition": 28, - "latency_ns": 231116592, - "cpu_ticks": 14, - "process_write_bytes": 6086656, - "database_storage_growth_bytes": 3662384, - "peak_rss_kib": 22672, - "replayed_observations": 64 - }, - { - "repetition": 29, - "latency_ns": 398754910, - "cpu_ticks": 15, - "process_write_bytes": 6086656, - "database_storage_growth_bytes": 3662384, - "peak_rss_kib": 22672, - "replayed_observations": 64 - } - ], - "pipeline_batch_latency": { - "repetitions": 30, - "min_ns": 216654910, - "p50_ns": 231468087, - "p95_ns": 3370435094, - "p99_ns": 4614566543, - "max_ns": 4614566543, - "mean_ns": 743646543.8333334, - "sample_stddev_ns": 1159889643.3399801 - }, - "pipeline_records_per_second": 86.06239150940468, - "pipeline_cpu_ticks": 457, - "pipeline_cpu_ms": 4570, - "pipeline_process_write_bytes": 182652928, - "database_storage_growth_bytes": 109871520, - "peak_rss_kib": 22672, - "no_op_replay_raw_samples": [ - { - "repetition": 0, - "latency_ns": 1903384, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 22672, - "replayed_observations": 64 - }, - { - "repetition": 1, - "latency_ns": 1963665, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 22672, - "replayed_observations": 64 - }, - { - "repetition": 2, - "latency_ns": 2135867, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 22672, - "replayed_observations": 64 - }, - { - "repetition": 3, - "latency_ns": 1964025, - "cpu_ticks": 1, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 22672, - "replayed_observations": 64 - }, - { - "repetition": 4, - "latency_ns": 2000105, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 22672, - "replayed_observations": 64 - }, - { - "repetition": 5, - "latency_ns": 1935865, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 22672, - "replayed_observations": 64 - }, - { - "repetition": 6, - "latency_ns": 1987355, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 22672, - "replayed_observations": 64 - }, - { - "repetition": 7, - "latency_ns": 2002674, - "cpu_ticks": 1, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 22672, - "replayed_observations": 64 - }, - { - "repetition": 8, - "latency_ns": 1991487, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 22672, - "replayed_observations": 64 - }, - { - "repetition": 9, - "latency_ns": 2022285, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 22672, - "replayed_observations": 64 - }, - { - "repetition": 10, - "latency_ns": 1936686, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 22672, - "replayed_observations": 64 - }, - { - "repetition": 11, - "latency_ns": 1952126, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 22672, - "replayed_observations": 64 - }, - { - "repetition": 12, - "latency_ns": 2128637, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 22672, - "replayed_observations": 64 - }, - { - "repetition": 13, - "latency_ns": 1936415, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 22672, - "replayed_observations": 64 - }, - { - "repetition": 14, - "latency_ns": 1942305, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 22672, - "replayed_observations": 64 - }, - { - "repetition": 15, - "latency_ns": 1963875, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 22672, - "replayed_observations": 64 - }, - { - "repetition": 16, - "latency_ns": 1947725, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 22672, - "replayed_observations": 64 - }, - { - "repetition": 17, - "latency_ns": 1946474, - "cpu_ticks": 1, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 22672, - "replayed_observations": 64 - }, - { - "repetition": 18, - "latency_ns": 1936844, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 22672, - "replayed_observations": 64 - }, - { - "repetition": 19, - "latency_ns": 1956144, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 22672, - "replayed_observations": 64 - }, - { - "repetition": 20, - "latency_ns": 2031385, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 22672, - "replayed_observations": 64 - }, - { - "repetition": 21, - "latency_ns": 2133626, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 22672, - "replayed_observations": 64 - }, - { - "repetition": 22, - "latency_ns": 2577411, - "cpu_ticks": 1, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 22672, - "replayed_observations": 64 - }, - { - "repetition": 23, - "latency_ns": 1938495, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 22672, - "replayed_observations": 64 - }, - { - "repetition": 24, - "latency_ns": 1918453, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 22672, - "replayed_observations": 64 - }, - { - "repetition": 25, - "latency_ns": 1932544, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 22672, - "replayed_observations": 64 - }, - { - "repetition": 26, - "latency_ns": 1924045, - "cpu_ticks": 1, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 22672, - "replayed_observations": 64 - }, - { - "repetition": 27, - "latency_ns": 1951425, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 22672, - "replayed_observations": 64 - }, - { - "repetition": 28, - "latency_ns": 1946424, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 22672, - "replayed_observations": 64 - }, - { - "repetition": 29, - "latency_ns": 1935485, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 22672, - "replayed_observations": 64 - } - ], - "no_op_replay_latency": { - "repetitions": 30, - "min_ns": 1903384, - "p50_ns": 1951425, - "p95_ns": 2135867, - "p99_ns": 2577411, - "max_ns": 2577411, - "mean_ns": 1994774.5333333334, - "sample_stddev_ns": 125925.88573079427 - }, - "no_op_replay_cpu_ticks": 5, - "no_op_replay_cpu_ms": 50, - "no_op_replay_process_write_bytes": 0, - "no_op_replay_database_storage_growth_bytes": 0, - "no_op_replay_observation_count_delta": 0, - "no_op_replay_totals": { - "sessions_upserted": 0, - "messages_upserted": 0, - "observations_committed": 0, - "observation_duplicates": 0, - "cursor_advances": 0, - "cursor_duplicates": 0, - "records_rejected": 0, - "records_quarantined": 0, - "projections_completed": 0, - "projections_skipped": 0, - "projection_duplicates": 0, - "deferred_sources": 0 - } -} diff --git a/benchmark_data/claude-observation/result-2026-07-16-00d3d73a.json b/benchmark_data/claude-observation/result-2026-07-16-00d3d73a.json deleted file mode 100644 index 299c0042e5..0000000000 --- a/benchmark_data/claude-observation/result-2026-07-16-00d3d73a.json +++ /dev/null @@ -1 +0,0 @@ -{"schema_version":2,"workload_id":"pr5-observation-pipeline-v1","evidence_status":"historical_stale","workload_identity":{"manifest_path":"benchmarks/pr5-observation/workload-v1.json","manifest_sha256":"5a5087d7520b76cc96a3e0d058adab9a1b45fac717659ade6f8ae14ec0453736","harness_paths":["src/sessions/claude_observation_benchmark.rs","src/sessions/claude_observation_benchmark/artifact.rs","src/sessions/claude_observation_benchmark/baseline.rs","src/sessions/claude_observation_benchmark/manifest.rs","src/sessions/claude_observation_benchmark/metrics.rs","src/sessions/claude_observation_benchmark/model.rs","src/sessions/claude_observation_benchmark/runner.rs","src/sessions/claude_observation_benchmark/tests.rs"],"harness_sha256":"e1076601d5765f485c2e9fab23992e49b10729be5653e579a13cbfa636c7c717","native_fixture_paths":["tests/fixtures/provider_normalization/claude/assistant_tool_use.input.json","tests/fixtures/provider_normalization/codex/session_meta.input.json","tests/fixtures/provider_normalization/codex/agent_message.input.json","tests/fixtures/provider_normalization/cursor/tool_use.input.json","tests/fixtures/provider_normalization/hermes/assistant_tool_call.input.json","tests/fixtures/provider_normalization/kiro/workspace_session.input.json","tests/fixtures/transcript_golden/cline_like/input/api_conversation_history.json","tests/fixtures/transcript_golden/cline_like/input/task_metadata.json"],"native_fixtures_sha256":"a33854bc6c64bd964ee4665459296346fe522f0fe4f7bc9911bb3c5474de77d5"},"build_identity":{"commit":"00d3d73a06403480487207986506f9b3c4d1df43","tree":"5aeb6a052cfaf31ff2a59936ede6ed76aab065be","profile":"release","source_mode":"git_archive_read_only_v1","source_manifest_sha256":"c01b85f76ca764e94651bca1b9f36a7d80362521798ab4b5993818ec2fb94741","source_file_count":1578,"target_triple":"x86_64-unknown-linux-gnu","rustc_version":"rustc 1.95.0 (59807616e 2026-04-14)\nbinary: rustc\ncommit-hash: 59807616e1fa2540724bfbac14d7976d7e4a3860\ncommit-date: 2026-04-14\nhost: x86_64-unknown-linux-gnu\nrelease: 1.95.0\nLLVM version: 22.1.2","cargo_version":"cargo 1.95.0 (f2d3ce0bd 2026-03-21)","rustflags":"normalized-empty","rustc_wrapper":"environment:none;cargo_config:36aad4637b36949700f277b0b6d18d647d507944","rustc_workspace_wrapper":"environment:none;cargo_config:36aad4637b36949700f277b0b6d18d647d507944","cargo_config_identity":"36aad4637b36949700f277b0b6d18d647d507944","data_root_basis":"current_executable_parent","executable_sha256":"58f2728a654614b22acd30f043ea13e15384e467a0eabfe059a1707ac0867b1d","executable_size_bytes":216496488},"git_before":{"commit":"00d3d73a06403480487207986506f9b3c4d1df43","tree":"5aeb6a052cfaf31ff2a59936ede6ed76aab065be","dirty":false},"git_after":{"commit":"00d3d73a06403480487207986506f9b3c4d1df43","tree":"5aeb6a052cfaf31ff2a59936ede6ed76aab065be","dirty":false},"command":"cargo test --quiet --release --lib sessions::claude_observation_benchmark::production_observation_pipeline_baseline -- --ignored --exact --nocapture --test-threads=1","rustc":"rustc 1.95.0 (59807616e 2026-04-14)\nbinary: rustc\ncommit-hash: 59807616e1fa2540724bfbac14d7976d7e4a3860\ncommit-date: 2026-04-14\nhost: x86_64-unknown-linux-gnu\nrelease: 1.95.0\nLLVM version: 22.1.2","cargo":"cargo 1.95.0 (f2d3ce0bd 2026-03-21)","kernel":"Linux 6.8.0-134-generic x86_64 GNU/Linux","cpu_identity":"AMD EPYC 7742 64-Core Processor","logical_cpu_count":64,"memory_total_kib":151845828,"clock_ticks_per_second":100,"warmup_repetitions":3,"measured_repetitions":30,"records_per_repetition":64,"measured_records":1920,"pipeline_raw_samples":[{"repetition":0,"latency_ns":634975519,"cpu_ticks":42,"process_write_bytes":11186176,"database_storage_growth_bytes":4663640,"peak_rss_kib":57244,"replayed_observations":64},{"repetition":1,"latency_ns":622204388,"cpu_ticks":42,"process_write_bytes":11190272,"database_storage_growth_bytes":4663640,"peak_rss_kib":57244,"replayed_observations":64},{"repetition":2,"latency_ns":622911186,"cpu_ticks":42,"process_write_bytes":11177984,"database_storage_growth_bytes":4659520,"peak_rss_kib":57244,"replayed_observations":64},{"repetition":3,"latency_ns":623357379,"cpu_ticks":42,"process_write_bytes":11177984,"database_storage_growth_bytes":4659520,"peak_rss_kib":57244,"replayed_observations":64},{"repetition":4,"latency_ns":624971339,"cpu_ticks":43,"process_write_bytes":11182080,"database_storage_growth_bytes":4659520,"peak_rss_kib":57244,"replayed_observations":64},{"repetition":5,"latency_ns":631135678,"cpu_ticks":42,"process_write_bytes":11186176,"database_storage_growth_bytes":4663640,"peak_rss_kib":57244,"replayed_observations":64},{"repetition":6,"latency_ns":633120180,"cpu_ticks":41,"process_write_bytes":11186176,"database_storage_growth_bytes":4663640,"peak_rss_kib":57244,"replayed_observations":64},{"repetition":7,"latency_ns":602008763,"cpu_ticks":41,"process_write_bytes":11182080,"database_storage_growth_bytes":4659520,"peak_rss_kib":57244,"replayed_observations":64},{"repetition":8,"latency_ns":595534721,"cpu_ticks":42,"process_write_bytes":11182080,"database_storage_growth_bytes":4659520,"peak_rss_kib":57244,"replayed_observations":64},{"repetition":9,"latency_ns":588208239,"cpu_ticks":42,"process_write_bytes":11182080,"database_storage_growth_bytes":4659520,"peak_rss_kib":57244,"replayed_observations":64},{"repetition":10,"latency_ns":620910816,"cpu_ticks":42,"process_write_bytes":11186176,"database_storage_growth_bytes":4659520,"peak_rss_kib":57244,"replayed_observations":64},{"repetition":11,"latency_ns":625608037,"cpu_ticks":42,"process_write_bytes":11182080,"database_storage_growth_bytes":4659520,"peak_rss_kib":57244,"replayed_observations":64},{"repetition":12,"latency_ns":599879170,"cpu_ticks":42,"process_write_bytes":11186176,"database_storage_growth_bytes":4663640,"peak_rss_kib":57244,"replayed_observations":64},{"repetition":13,"latency_ns":618583500,"cpu_ticks":42,"process_write_bytes":11182080,"database_storage_growth_bytes":4659520,"peak_rss_kib":57244,"replayed_observations":64},{"repetition":14,"latency_ns":642453046,"cpu_ticks":42,"process_write_bytes":11182080,"database_storage_growth_bytes":4659520,"peak_rss_kib":57244,"replayed_observations":64},{"repetition":15,"latency_ns":617555608,"cpu_ticks":43,"process_write_bytes":11186176,"database_storage_growth_bytes":4663640,"peak_rss_kib":57244,"replayed_observations":64},{"repetition":16,"latency_ns":610977864,"cpu_ticks":42,"process_write_bytes":11186176,"database_storage_growth_bytes":4659520,"peak_rss_kib":57244,"replayed_observations":64},{"repetition":17,"latency_ns":646779174,"cpu_ticks":42,"process_write_bytes":11182080,"database_storage_growth_bytes":4659520,"peak_rss_kib":57244,"replayed_observations":64},{"repetition":18,"latency_ns":607176093,"cpu_ticks":42,"process_write_bytes":11182080,"database_storage_growth_bytes":4659520,"peak_rss_kib":57244,"replayed_observations":64},{"repetition":19,"latency_ns":614655477,"cpu_ticks":41,"process_write_bytes":11182080,"database_storage_growth_bytes":4659520,"peak_rss_kib":57244,"replayed_observations":64},{"repetition":20,"latency_ns":644226286,"cpu_ticks":44,"process_write_bytes":11182080,"database_storage_growth_bytes":4659520,"peak_rss_kib":57244,"replayed_observations":64},{"repetition":21,"latency_ns":620126779,"cpu_ticks":42,"process_write_bytes":11182080,"database_storage_growth_bytes":4659520,"peak_rss_kib":57244,"replayed_observations":64},{"repetition":22,"latency_ns":617688901,"cpu_ticks":42,"process_write_bytes":11186176,"database_storage_growth_bytes":4659520,"peak_rss_kib":57244,"replayed_observations":64},{"repetition":23,"latency_ns":633288925,"cpu_ticks":41,"process_write_bytes":11182080,"database_storage_growth_bytes":4659520,"peak_rss_kib":57244,"replayed_observations":64},{"repetition":24,"latency_ns":624101613,"cpu_ticks":42,"process_write_bytes":11182080,"database_storage_growth_bytes":4659520,"peak_rss_kib":57244,"replayed_observations":64},{"repetition":25,"latency_ns":637082058,"cpu_ticks":41,"process_write_bytes":11190272,"database_storage_growth_bytes":4663640,"peak_rss_kib":57244,"replayed_observations":64},{"repetition":26,"latency_ns":625915222,"cpu_ticks":42,"process_write_bytes":11186176,"database_storage_growth_bytes":4659520,"peak_rss_kib":57244,"replayed_observations":64},{"repetition":27,"latency_ns":630808628,"cpu_ticks":42,"process_write_bytes":11177984,"database_storage_growth_bytes":4659520,"peak_rss_kib":57244,"replayed_observations":64},{"repetition":28,"latency_ns":628959707,"cpu_ticks":40,"process_write_bytes":11182080,"database_storage_growth_bytes":4659520,"peak_rss_kib":57244,"replayed_observations":64},{"repetition":29,"latency_ns":634363216,"cpu_ticks":42,"process_write_bytes":11194368,"database_storage_growth_bytes":4663640,"peak_rss_kib":57244,"replayed_observations":64}],"pipeline_batch_latency":{"repetitions":30,"min_ns":588208239,"p50_ns":623357379,"p95_ns":644226286,"p99_ns":646779174,"max_ns":646779174,"mean_ns":622652250.4,"sample_stddev_ns":14078982.721782794},"pipeline_records_per_second":102.78610566152383,"pipeline_cpu_ticks":1257,"pipeline_cpu_ms":12570.0,"pipeline_process_write_bytes":335515648,"database_storage_growth_bytes":139818560,"peak_rss_kib":57244,"no_op_replay_raw_samples":[{"repetition":0,"latency_ns":198442,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":57244,"replayed_observations":0},{"repetition":1,"latency_ns":206912,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":57244,"replayed_observations":0},{"repetition":2,"latency_ns":192862,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":57244,"replayed_observations":0},{"repetition":3,"latency_ns":210622,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":57244,"replayed_observations":0},{"repetition":4,"latency_ns":196823,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":57244,"replayed_observations":0},{"repetition":5,"latency_ns":194992,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":57244,"replayed_observations":0},{"repetition":6,"latency_ns":198172,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":57244,"replayed_observations":0},{"repetition":7,"latency_ns":190662,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":57244,"replayed_observations":0},{"repetition":8,"latency_ns":196622,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":57244,"replayed_observations":0},{"repetition":9,"latency_ns":219283,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":57244,"replayed_observations":0},{"repetition":10,"latency_ns":206733,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":57244,"replayed_observations":0},{"repetition":11,"latency_ns":196972,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":57244,"replayed_observations":0},{"repetition":12,"latency_ns":214862,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":57244,"replayed_observations":0},{"repetition":13,"latency_ns":212592,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":57244,"replayed_observations":0},{"repetition":14,"latency_ns":204611,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":57244,"replayed_observations":0},{"repetition":15,"latency_ns":208172,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":57244,"replayed_observations":0},{"repetition":16,"latency_ns":199333,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":57244,"replayed_observations":0},{"repetition":17,"latency_ns":228572,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":57244,"replayed_observations":0},{"repetition":18,"latency_ns":191601,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":57244,"replayed_observations":0},{"repetition":19,"latency_ns":212542,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":57244,"replayed_observations":0},{"repetition":20,"latency_ns":223992,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":57244,"replayed_observations":0},{"repetition":21,"latency_ns":216013,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":57244,"replayed_observations":0},{"repetition":22,"latency_ns":214633,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":57244,"replayed_observations":0},{"repetition":23,"latency_ns":219042,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":57244,"replayed_observations":0},{"repetition":24,"latency_ns":193092,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":57244,"replayed_observations":0},{"repetition":25,"latency_ns":188452,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":57244,"replayed_observations":0},{"repetition":26,"latency_ns":186842,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":57244,"replayed_observations":0},{"repetition":27,"latency_ns":189192,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":57244,"replayed_observations":0},{"repetition":28,"latency_ns":212552,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":57244,"replayed_observations":0},{"repetition":29,"latency_ns":221772,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":57244,"replayed_observations":0}],"no_op_replay_latency":{"repetitions":30,"min_ns":186842,"p50_ns":204611,"p95_ns":223992,"p99_ns":228572,"max_ns":228572,"mean_ns":204898.8,"sample_stddev_ns":11862.681968082179},"no_op_replay_cpu_ticks":0,"no_op_replay_cpu_ms":0.0,"no_op_replay_process_write_bytes":0,"no_op_replay_database_storage_growth_bytes":0,"no_op_replay_observation_count_delta":0,"no_op_replay_totals":{"source_bytes_scanned":0,"sessions_upserted":0,"messages_upserted":0,"observations_committed":0,"observation_duplicates":0,"cursor_advances":0,"cursor_duplicates":0,"records_rejected":0,"records_quarantined":0,"projections_completed":0,"projections_skipped":0,"projection_duplicates":0,"deferred_sources":0},"provider_observation_performance":{"schema_version":1,"workload_id":"pr5-observation-pipeline-v1","fairness":{"policy":"round_robin_v1","rounds":30,"providers_per_round":8,"max_provider_turn_distance":8,"turns":[{"round":0,"position":0,"provider":"claude"},{"round":0,"position":1,"provider":"codex"},{"round":0,"position":2,"provider":"cursor"},{"round":0,"position":3,"provider":"hermes"},{"round":0,"position":4,"provider":"kiro"},{"round":0,"position":5,"provider":"cline"},{"round":0,"position":6,"provider":"roo-code"},{"round":0,"position":7,"provider":"kilo"},{"round":1,"position":0,"provider":"claude"},{"round":1,"position":1,"provider":"codex"},{"round":1,"position":2,"provider":"cursor"},{"round":1,"position":3,"provider":"hermes"},{"round":1,"position":4,"provider":"kiro"},{"round":1,"position":5,"provider":"cline"},{"round":1,"position":6,"provider":"roo-code"},{"round":1,"position":7,"provider":"kilo"},{"round":2,"position":0,"provider":"claude"},{"round":2,"position":1,"provider":"codex"},{"round":2,"position":2,"provider":"cursor"},{"round":2,"position":3,"provider":"hermes"},{"round":2,"position":4,"provider":"kiro"},{"round":2,"position":5,"provider":"cline"},{"round":2,"position":6,"provider":"roo-code"},{"round":2,"position":7,"provider":"kilo"},{"round":3,"position":0,"provider":"claude"},{"round":3,"position":1,"provider":"codex"},{"round":3,"position":2,"provider":"cursor"},{"round":3,"position":3,"provider":"hermes"},{"round":3,"position":4,"provider":"kiro"},{"round":3,"position":5,"provider":"cline"},{"round":3,"position":6,"provider":"roo-code"},{"round":3,"position":7,"provider":"kilo"},{"round":4,"position":0,"provider":"claude"},{"round":4,"position":1,"provider":"codex"},{"round":4,"position":2,"provider":"cursor"},{"round":4,"position":3,"provider":"hermes"},{"round":4,"position":4,"provider":"kiro"},{"round":4,"position":5,"provider":"cline"},{"round":4,"position":6,"provider":"roo-code"},{"round":4,"position":7,"provider":"kilo"},{"round":5,"position":0,"provider":"claude"},{"round":5,"position":1,"provider":"codex"},{"round":5,"position":2,"provider":"cursor"},{"round":5,"position":3,"provider":"hermes"},{"round":5,"position":4,"provider":"kiro"},{"round":5,"position":5,"provider":"cline"},{"round":5,"position":6,"provider":"roo-code"},{"round":5,"position":7,"provider":"kilo"},{"round":6,"position":0,"provider":"claude"},{"round":6,"position":1,"provider":"codex"},{"round":6,"position":2,"provider":"cursor"},{"round":6,"position":3,"provider":"hermes"},{"round":6,"position":4,"provider":"kiro"},{"round":6,"position":5,"provider":"cline"},{"round":6,"position":6,"provider":"roo-code"},{"round":6,"position":7,"provider":"kilo"},{"round":7,"position":0,"provider":"claude"},{"round":7,"position":1,"provider":"codex"},{"round":7,"position":2,"provider":"cursor"},{"round":7,"position":3,"provider":"hermes"},{"round":7,"position":4,"provider":"kiro"},{"round":7,"position":5,"provider":"cline"},{"round":7,"position":6,"provider":"roo-code"},{"round":7,"position":7,"provider":"kilo"},{"round":8,"position":0,"provider":"claude"},{"round":8,"position":1,"provider":"codex"},{"round":8,"position":2,"provider":"cursor"},{"round":8,"position":3,"provider":"hermes"},{"round":8,"position":4,"provider":"kiro"},{"round":8,"position":5,"provider":"cline"},{"round":8,"position":6,"provider":"roo-code"},{"round":8,"position":7,"provider":"kilo"},{"round":9,"position":0,"provider":"claude"},{"round":9,"position":1,"provider":"codex"},{"round":9,"position":2,"provider":"cursor"},{"round":9,"position":3,"provider":"hermes"},{"round":9,"position":4,"provider":"kiro"},{"round":9,"position":5,"provider":"cline"},{"round":9,"position":6,"provider":"roo-code"},{"round":9,"position":7,"provider":"kilo"},{"round":10,"position":0,"provider":"claude"},{"round":10,"position":1,"provider":"codex"},{"round":10,"position":2,"provider":"cursor"},{"round":10,"position":3,"provider":"hermes"},{"round":10,"position":4,"provider":"kiro"},{"round":10,"position":5,"provider":"cline"},{"round":10,"position":6,"provider":"roo-code"},{"round":10,"position":7,"provider":"kilo"},{"round":11,"position":0,"provider":"claude"},{"round":11,"position":1,"provider":"codex"},{"round":11,"position":2,"provider":"cursor"},{"round":11,"position":3,"provider":"hermes"},{"round":11,"position":4,"provider":"kiro"},{"round":11,"position":5,"provider":"cline"},{"round":11,"position":6,"provider":"roo-code"},{"round":11,"position":7,"provider":"kilo"},{"round":12,"position":0,"provider":"claude"},{"round":12,"position":1,"provider":"codex"},{"round":12,"position":2,"provider":"cursor"},{"round":12,"position":3,"provider":"hermes"},{"round":12,"position":4,"provider":"kiro"},{"round":12,"position":5,"provider":"cline"},{"round":12,"position":6,"provider":"roo-code"},{"round":12,"position":7,"provider":"kilo"},{"round":13,"position":0,"provider":"claude"},{"round":13,"position":1,"provider":"codex"},{"round":13,"position":2,"provider":"cursor"},{"round":13,"position":3,"provider":"hermes"},{"round":13,"position":4,"provider":"kiro"},{"round":13,"position":5,"provider":"cline"},{"round":13,"position":6,"provider":"roo-code"},{"round":13,"position":7,"provider":"kilo"},{"round":14,"position":0,"provider":"claude"},{"round":14,"position":1,"provider":"codex"},{"round":14,"position":2,"provider":"cursor"},{"round":14,"position":3,"provider":"hermes"},{"round":14,"position":4,"provider":"kiro"},{"round":14,"position":5,"provider":"cline"},{"round":14,"position":6,"provider":"roo-code"},{"round":14,"position":7,"provider":"kilo"},{"round":15,"position":0,"provider":"claude"},{"round":15,"position":1,"provider":"codex"},{"round":15,"position":2,"provider":"cursor"},{"round":15,"position":3,"provider":"hermes"},{"round":15,"position":4,"provider":"kiro"},{"round":15,"position":5,"provider":"cline"},{"round":15,"position":6,"provider":"roo-code"},{"round":15,"position":7,"provider":"kilo"},{"round":16,"position":0,"provider":"claude"},{"round":16,"position":1,"provider":"codex"},{"round":16,"position":2,"provider":"cursor"},{"round":16,"position":3,"provider":"hermes"},{"round":16,"position":4,"provider":"kiro"},{"round":16,"position":5,"provider":"cline"},{"round":16,"position":6,"provider":"roo-code"},{"round":16,"position":7,"provider":"kilo"},{"round":17,"position":0,"provider":"claude"},{"round":17,"position":1,"provider":"codex"},{"round":17,"position":2,"provider":"cursor"},{"round":17,"position":3,"provider":"hermes"},{"round":17,"position":4,"provider":"kiro"},{"round":17,"position":5,"provider":"cline"},{"round":17,"position":6,"provider":"roo-code"},{"round":17,"position":7,"provider":"kilo"},{"round":18,"position":0,"provider":"claude"},{"round":18,"position":1,"provider":"codex"},{"round":18,"position":2,"provider":"cursor"},{"round":18,"position":3,"provider":"hermes"},{"round":18,"position":4,"provider":"kiro"},{"round":18,"position":5,"provider":"cline"},{"round":18,"position":6,"provider":"roo-code"},{"round":18,"position":7,"provider":"kilo"},{"round":19,"position":0,"provider":"claude"},{"round":19,"position":1,"provider":"codex"},{"round":19,"position":2,"provider":"cursor"},{"round":19,"position":3,"provider":"hermes"},{"round":19,"position":4,"provider":"kiro"},{"round":19,"position":5,"provider":"cline"},{"round":19,"position":6,"provider":"roo-code"},{"round":19,"position":7,"provider":"kilo"},{"round":20,"position":0,"provider":"claude"},{"round":20,"position":1,"provider":"codex"},{"round":20,"position":2,"provider":"cursor"},{"round":20,"position":3,"provider":"hermes"},{"round":20,"position":4,"provider":"kiro"},{"round":20,"position":5,"provider":"cline"},{"round":20,"position":6,"provider":"roo-code"},{"round":20,"position":7,"provider":"kilo"},{"round":21,"position":0,"provider":"claude"},{"round":21,"position":1,"provider":"codex"},{"round":21,"position":2,"provider":"cursor"},{"round":21,"position":3,"provider":"hermes"},{"round":21,"position":4,"provider":"kiro"},{"round":21,"position":5,"provider":"cline"},{"round":21,"position":6,"provider":"roo-code"},{"round":21,"position":7,"provider":"kilo"},{"round":22,"position":0,"provider":"claude"},{"round":22,"position":1,"provider":"codex"},{"round":22,"position":2,"provider":"cursor"},{"round":22,"position":3,"provider":"hermes"},{"round":22,"position":4,"provider":"kiro"},{"round":22,"position":5,"provider":"cline"},{"round":22,"position":6,"provider":"roo-code"},{"round":22,"position":7,"provider":"kilo"},{"round":23,"position":0,"provider":"claude"},{"round":23,"position":1,"provider":"codex"},{"round":23,"position":2,"provider":"cursor"},{"round":23,"position":3,"provider":"hermes"},{"round":23,"position":4,"provider":"kiro"},{"round":23,"position":5,"provider":"cline"},{"round":23,"position":6,"provider":"roo-code"},{"round":23,"position":7,"provider":"kilo"},{"round":24,"position":0,"provider":"claude"},{"round":24,"position":1,"provider":"codex"},{"round":24,"position":2,"provider":"cursor"},{"round":24,"position":3,"provider":"hermes"},{"round":24,"position":4,"provider":"kiro"},{"round":24,"position":5,"provider":"cline"},{"round":24,"position":6,"provider":"roo-code"},{"round":24,"position":7,"provider":"kilo"},{"round":25,"position":0,"provider":"claude"},{"round":25,"position":1,"provider":"codex"},{"round":25,"position":2,"provider":"cursor"},{"round":25,"position":3,"provider":"hermes"},{"round":25,"position":4,"provider":"kiro"},{"round":25,"position":5,"provider":"cline"},{"round":25,"position":6,"provider":"roo-code"},{"round":25,"position":7,"provider":"kilo"},{"round":26,"position":0,"provider":"claude"},{"round":26,"position":1,"provider":"codex"},{"round":26,"position":2,"provider":"cursor"},{"round":26,"position":3,"provider":"hermes"},{"round":26,"position":4,"provider":"kiro"},{"round":26,"position":5,"provider":"cline"},{"round":26,"position":6,"provider":"roo-code"},{"round":26,"position":7,"provider":"kilo"},{"round":27,"position":0,"provider":"claude"},{"round":27,"position":1,"provider":"codex"},{"round":27,"position":2,"provider":"cursor"},{"round":27,"position":3,"provider":"hermes"},{"round":27,"position":4,"provider":"kiro"},{"round":27,"position":5,"provider":"cline"},{"round":27,"position":6,"provider":"roo-code"},{"round":27,"position":7,"provider":"kilo"},{"round":28,"position":0,"provider":"claude"},{"round":28,"position":1,"provider":"codex"},{"round":28,"position":2,"provider":"cursor"},{"round":28,"position":3,"provider":"hermes"},{"round":28,"position":4,"provider":"kiro"},{"round":28,"position":5,"provider":"cline"},{"round":28,"position":6,"provider":"roo-code"},{"round":28,"position":7,"provider":"kilo"},{"round":29,"position":0,"provider":"claude"},{"round":29,"position":1,"provider":"codex"},{"round":29,"position":2,"provider":"cursor"},{"round":29,"position":3,"provider":"hermes"},{"round":29,"position":4,"provider":"kiro"},{"round":29,"position":5,"provider":"cline"},{"round":29,"position":6,"provider":"roo-code"},{"round":29,"position":7,"provider":"kilo"}]},"providers":[{"provider":"claude","production_path":"claude_production_observation_pipeline_v1","pipeline_scope":"production_parse_normalize_sanitize_commit_project_and_replay","measured_repetitions":30,"observations_per_repetition":8,"replay_limit":9,"max_backlog_records":8,"parse":{"scope":"native_provider_format_decode","raw_samples":[{"repetition":0,"latency_ns":52532,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":58972,"record_count":8},{"repetition":1,"latency_ns":39731,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":2,"latency_ns":41540,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":3,"latency_ns":42090,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":4,"latency_ns":86331,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":5,"latency_ns":54311,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":6,"latency_ns":41321,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":7,"latency_ns":44790,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":8,"latency_ns":45071,"cpu_ticks":1,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":9,"latency_ns":41131,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":10,"latency_ns":41310,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":11,"latency_ns":60051,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":12,"latency_ns":41999,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":13,"latency_ns":42081,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":14,"latency_ns":43461,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":15,"latency_ns":41031,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":16,"latency_ns":44661,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":17,"latency_ns":39699,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":18,"latency_ns":42501,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":19,"latency_ns":40531,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":20,"latency_ns":41351,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":21,"latency_ns":39591,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":22,"latency_ns":47401,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":23,"latency_ns":59551,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":24,"latency_ns":51331,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":25,"latency_ns":49721,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":26,"latency_ns":44121,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":27,"latency_ns":48142,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":28,"latency_ns":47150,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":29,"latency_ns":42940,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8}],"latency":{"repetitions":30,"min_ns":39591,"p50_ns":42940,"p95_ns":60051,"p99_ns":86331,"max_ns":86331,"mean_ns":46582.4,"sample_stddev_ns":9331.983263357592},"cpu_ticks":1,"cpu_ms":10.0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724},"commit":{"scope":"production_adapter_parse_normalize_sanitize_commit_and_project","raw_samples":[{"repetition":0,"latency_ns":77982440,"cpu_ticks":6,"process_write_bytes":1298432,"database_storage_growth_bytes":1231880,"peak_rss_kib":59164,"record_count":8},{"repetition":1,"latency_ns":75373751,"cpu_ticks":5,"process_write_bytes":1298432,"database_storage_growth_bytes":1231880,"peak_rss_kib":61724,"record_count":8},{"repetition":2,"latency_ns":74984326,"cpu_ticks":5,"process_write_bytes":1298432,"database_storage_growth_bytes":1231880,"peak_rss_kib":61724,"record_count":8},{"repetition":3,"latency_ns":74677374,"cpu_ticks":5,"process_write_bytes":1298432,"database_storage_growth_bytes":1231880,"peak_rss_kib":61724,"record_count":8},{"repetition":4,"latency_ns":74356460,"cpu_ticks":6,"process_write_bytes":1298432,"database_storage_growth_bytes":1231880,"peak_rss_kib":61724,"record_count":8},{"repetition":5,"latency_ns":75537633,"cpu_ticks":4,"process_write_bytes":1298432,"database_storage_growth_bytes":1231880,"peak_rss_kib":61724,"record_count":8},{"repetition":6,"latency_ns":72646980,"cpu_ticks":5,"process_write_bytes":1298432,"database_storage_growth_bytes":1231880,"peak_rss_kib":61724,"record_count":8},{"repetition":7,"latency_ns":71482238,"cpu_ticks":6,"process_write_bytes":1298432,"database_storage_growth_bytes":1231880,"peak_rss_kib":61724,"record_count":8},{"repetition":8,"latency_ns":81967665,"cpu_ticks":5,"process_write_bytes":1298432,"database_storage_growth_bytes":1231880,"peak_rss_kib":61724,"record_count":8},{"repetition":9,"latency_ns":74998117,"cpu_ticks":5,"process_write_bytes":1298432,"database_storage_growth_bytes":1231880,"peak_rss_kib":61724,"record_count":8},{"repetition":10,"latency_ns":77879929,"cpu_ticks":5,"process_write_bytes":1298432,"database_storage_growth_bytes":1231880,"peak_rss_kib":61724,"record_count":8},{"repetition":11,"latency_ns":77200463,"cpu_ticks":5,"process_write_bytes":1298432,"database_storage_growth_bytes":1231880,"peak_rss_kib":61724,"record_count":8},{"repetition":12,"latency_ns":74028565,"cpu_ticks":5,"process_write_bytes":1298432,"database_storage_growth_bytes":1231880,"peak_rss_kib":61724,"record_count":8},{"repetition":13,"latency_ns":78506766,"cpu_ticks":5,"process_write_bytes":1298432,"database_storage_growth_bytes":1231880,"peak_rss_kib":61724,"record_count":8},{"repetition":14,"latency_ns":77110150,"cpu_ticks":6,"process_write_bytes":1298432,"database_storage_growth_bytes":1231880,"peak_rss_kib":61724,"record_count":8},{"repetition":15,"latency_ns":74317760,"cpu_ticks":5,"process_write_bytes":1298432,"database_storage_growth_bytes":1231880,"peak_rss_kib":61724,"record_count":8},{"repetition":16,"latency_ns":77821740,"cpu_ticks":4,"process_write_bytes":1298432,"database_storage_growth_bytes":1231880,"peak_rss_kib":61724,"record_count":8},{"repetition":17,"latency_ns":80648510,"cpu_ticks":6,"process_write_bytes":1298432,"database_storage_growth_bytes":1231880,"peak_rss_kib":61724,"record_count":8},{"repetition":18,"latency_ns":72575730,"cpu_ticks":5,"process_write_bytes":1298432,"database_storage_growth_bytes":1231880,"peak_rss_kib":61724,"record_count":8},{"repetition":19,"latency_ns":74770386,"cpu_ticks":5,"process_write_bytes":1298432,"database_storage_growth_bytes":1231880,"peak_rss_kib":61724,"record_count":8},{"repetition":20,"latency_ns":73694531,"cpu_ticks":5,"process_write_bytes":1298432,"database_storage_growth_bytes":1231880,"peak_rss_kib":61724,"record_count":8},{"repetition":21,"latency_ns":75892887,"cpu_ticks":5,"process_write_bytes":1298432,"database_storage_growth_bytes":1231880,"peak_rss_kib":61724,"record_count":8},{"repetition":22,"latency_ns":73809034,"cpu_ticks":5,"process_write_bytes":1298432,"database_storage_growth_bytes":1231880,"peak_rss_kib":61724,"record_count":8},{"repetition":23,"latency_ns":76068549,"cpu_ticks":4,"process_write_bytes":1298432,"database_storage_growth_bytes":1231880,"peak_rss_kib":61724,"record_count":8},{"repetition":24,"latency_ns":76758857,"cpu_ticks":5,"process_write_bytes":1298432,"database_storage_growth_bytes":1231880,"peak_rss_kib":61724,"record_count":8},{"repetition":25,"latency_ns":76707837,"cpu_ticks":5,"process_write_bytes":1298432,"database_storage_growth_bytes":1231880,"peak_rss_kib":61724,"record_count":8},{"repetition":26,"latency_ns":73072166,"cpu_ticks":5,"process_write_bytes":1298432,"database_storage_growth_bytes":1231880,"peak_rss_kib":61724,"record_count":8},{"repetition":27,"latency_ns":76492174,"cpu_ticks":6,"process_write_bytes":1298432,"database_storage_growth_bytes":1231880,"peak_rss_kib":61724,"record_count":8},{"repetition":28,"latency_ns":85755288,"cpu_ticks":6,"process_write_bytes":1298432,"database_storage_growth_bytes":1231880,"peak_rss_kib":61724,"record_count":8},{"repetition":29,"latency_ns":79214015,"cpu_ticks":5,"process_write_bytes":1298432,"database_storage_growth_bytes":1231880,"peak_rss_kib":61724,"record_count":8}],"latency":{"repetitions":30,"min_ns":71482238,"p50_ns":75537633,"p95_ns":81967665,"p99_ns":85755288,"max_ns":85755288,"mean_ns":76211077.36666666,"sample_stddev_ns":2993342.4330868167},"cpu_ticks":154,"cpu_ms":1540.0,"process_write_bytes":38952960,"database_storage_growth_bytes":36956400,"peak_rss_kib":61724},"replay":{"scope":"authoritative_store_bounded_replay","raw_samples":[{"repetition":0,"latency_ns":305223,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":59164,"record_count":8},{"repetition":1,"latency_ns":303243,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":2,"latency_ns":329704,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":3,"latency_ns":311014,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":4,"latency_ns":307393,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":5,"latency_ns":304823,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":6,"latency_ns":304713,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":7,"latency_ns":330494,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":8,"latency_ns":307244,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":9,"latency_ns":310534,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":10,"latency_ns":328513,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":11,"latency_ns":301653,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":12,"latency_ns":307312,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":13,"latency_ns":307153,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":14,"latency_ns":307243,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":15,"latency_ns":304724,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":16,"latency_ns":302123,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":17,"latency_ns":303053,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":18,"latency_ns":311164,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":19,"latency_ns":340724,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":20,"latency_ns":312744,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":21,"latency_ns":303474,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":22,"latency_ns":349254,"cpu_ticks":1,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":23,"latency_ns":303313,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":24,"latency_ns":307504,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":25,"latency_ns":310462,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":26,"latency_ns":361924,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":27,"latency_ns":319673,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":28,"latency_ns":311833,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":29,"latency_ns":330514,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8}],"latency":{"repetitions":30,"min_ns":301653,"p50_ns":307393,"p95_ns":349254,"p99_ns":361924,"max_ns":361924,"mean_ns":314624.73333333334,"sample_stddev_ns":15177.510842516722},"cpu_ticks":1,"cpu_ms":10.0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724},"pipeline_raw_samples":[{"repetition":0,"latency_ns":78477706,"cpu_ticks":6,"process_write_bytes":1298432,"database_storage_growth_bytes":1231880,"peak_rss_kib":59164,"replayed_observations":8},{"repetition":1,"latency_ns":75837297,"cpu_ticks":5,"process_write_bytes":1298432,"database_storage_growth_bytes":1231880,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":2,"latency_ns":75472992,"cpu_ticks":5,"process_write_bytes":1298432,"database_storage_growth_bytes":1231880,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":3,"latency_ns":75178180,"cpu_ticks":5,"process_write_bytes":1298432,"database_storage_growth_bytes":1231880,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":4,"latency_ns":74861826,"cpu_ticks":6,"process_write_bytes":1298432,"database_storage_growth_bytes":1231880,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":5,"latency_ns":76011009,"cpu_ticks":4,"process_write_bytes":1298432,"database_storage_growth_bytes":1231880,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":6,"latency_ns":73114075,"cpu_ticks":5,"process_write_bytes":1298432,"database_storage_growth_bytes":1231880,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":7,"latency_ns":71977184,"cpu_ticks":6,"process_write_bytes":1298432,"database_storage_growth_bytes":1231880,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":8,"latency_ns":82459431,"cpu_ticks":5,"process_write_bytes":1298432,"database_storage_growth_bytes":1231880,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":9,"latency_ns":75498662,"cpu_ticks":5,"process_write_bytes":1298432,"database_storage_growth_bytes":1231880,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":10,"latency_ns":78368675,"cpu_ticks":5,"process_write_bytes":1298432,"database_storage_growth_bytes":1231880,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":11,"latency_ns":77664777,"cpu_ticks":5,"process_write_bytes":1298432,"database_storage_growth_bytes":1231880,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":12,"latency_ns":74504473,"cpu_ticks":5,"process_write_bytes":1298432,"database_storage_growth_bytes":1231880,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":13,"latency_ns":78989542,"cpu_ticks":5,"process_write_bytes":1298432,"database_storage_growth_bytes":1231880,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":14,"latency_ns":77598876,"cpu_ticks":6,"process_write_bytes":1298432,"database_storage_growth_bytes":1231880,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":15,"latency_ns":74790314,"cpu_ticks":5,"process_write_bytes":1298432,"database_storage_growth_bytes":1231880,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":16,"latency_ns":78286774,"cpu_ticks":4,"process_write_bytes":1298432,"database_storage_growth_bytes":1231880,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":17,"latency_ns":81117445,"cpu_ticks":6,"process_write_bytes":1298432,"database_storage_growth_bytes":1231880,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":18,"latency_ns":73073646,"cpu_ticks":5,"process_write_bytes":1298432,"database_storage_growth_bytes":1231880,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":19,"latency_ns":75289370,"cpu_ticks":5,"process_write_bytes":1298432,"database_storage_growth_bytes":1231880,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":20,"latency_ns":74188849,"cpu_ticks":5,"process_write_bytes":1298432,"database_storage_growth_bytes":1231880,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":21,"latency_ns":76359102,"cpu_ticks":5,"process_write_bytes":1298432,"database_storage_growth_bytes":1231880,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":22,"latency_ns":74343249,"cpu_ticks":6,"process_write_bytes":1298432,"database_storage_growth_bytes":1231880,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":23,"latency_ns":76556935,"cpu_ticks":5,"process_write_bytes":1298432,"database_storage_growth_bytes":1231880,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":24,"latency_ns":77258672,"cpu_ticks":5,"process_write_bytes":1298432,"database_storage_growth_bytes":1231880,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":25,"latency_ns":77203893,"cpu_ticks":5,"process_write_bytes":1298432,"database_storage_growth_bytes":1231880,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":26,"latency_ns":73609842,"cpu_ticks":5,"process_write_bytes":1298432,"database_storage_growth_bytes":1231880,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":27,"latency_ns":76991440,"cpu_ticks":6,"process_write_bytes":1298432,"database_storage_growth_bytes":1231880,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":28,"latency_ns":86245472,"cpu_ticks":6,"process_write_bytes":1298432,"database_storage_growth_bytes":1231880,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":29,"latency_ns":79708570,"cpu_ticks":5,"process_write_bytes":1298432,"database_storage_growth_bytes":1231880,"peak_rss_kib":61724,"replayed_observations":8}],"pipeline_latency":{"repetitions":30,"min_ns":71977184,"p50_ns":76011009,"p95_ns":82459431,"p99_ns":86245472,"max_ns":86245472,"mean_ns":76701275.93333334,"sample_stddev_ns":2989213.442971613},"pipeline_records_per_second":104.30074210177915,"pipeline_cpu_ticks":156,"pipeline_cpu_ms":1560.0,"pipeline_process_write_bytes":38952960,"pipeline_database_storage_growth_bytes":36956400,"peak_rss_kib":61724,"no_op_raw_samples":[{"repetition":0,"latency_ns":202182,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":59164,"replayed_observations":0},{"repetition":1,"latency_ns":191032,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":2,"latency_ns":191632,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":3,"latency_ns":260394,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":4,"latency_ns":231974,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":5,"latency_ns":209402,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":6,"latency_ns":195343,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":7,"latency_ns":195072,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":8,"latency_ns":195311,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":9,"latency_ns":195612,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":10,"latency_ns":190793,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":11,"latency_ns":219172,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":12,"latency_ns":208993,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":13,"latency_ns":209803,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":14,"latency_ns":194213,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":15,"latency_ns":216993,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":16,"latency_ns":215753,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":17,"latency_ns":220423,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":18,"latency_ns":191661,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":19,"latency_ns":197903,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":20,"latency_ns":190803,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":21,"latency_ns":216042,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":22,"latency_ns":243783,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":23,"latency_ns":242092,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":24,"latency_ns":261374,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":25,"latency_ns":226882,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":26,"latency_ns":232513,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":27,"latency_ns":212882,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":28,"latency_ns":227542,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":29,"latency_ns":193362,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0}],"no_op_latency":{"repetitions":30,"min_ns":190793,"p50_ns":209402,"p95_ns":260394,"p99_ns":261374,"max_ns":261374,"mean_ns":212697.86666666667,"sample_stddev_ns":20678.12725251647},"no_op_cpu_ticks":0,"no_op_cpu_ms":0.0,"no_op_process_write_bytes":0,"no_op_database_storage_growth_bytes":0,"no_op_observation_count_delta":0},{"provider":"codex","production_path":"codex_production_observation_pipeline_v1","pipeline_scope":"production_parse_normalize_sanitize_commit_project_and_replay","measured_repetitions":30,"observations_per_repetition":8,"replay_limit":9,"max_backlog_records":8,"parse":{"scope":"native_provider_format_decode","raw_samples":[{"repetition":0,"latency_ns":19540,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":59164,"record_count":8},{"repetition":1,"latency_ns":19129,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":2,"latency_ns":17360,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":3,"latency_ns":18500,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":4,"latency_ns":26220,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":5,"latency_ns":19070,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":6,"latency_ns":20430,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":7,"latency_ns":29960,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":8,"latency_ns":19820,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":9,"latency_ns":20781,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":10,"latency_ns":18191,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":11,"latency_ns":18800,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":12,"latency_ns":19750,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":13,"latency_ns":19000,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":14,"latency_ns":19861,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":15,"latency_ns":27071,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":16,"latency_ns":17840,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":17,"latency_ns":19329,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":18,"latency_ns":17170,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":19,"latency_ns":20311,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":20,"latency_ns":18930,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":21,"latency_ns":19130,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":22,"latency_ns":20380,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":23,"latency_ns":22160,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":24,"latency_ns":25080,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":25,"latency_ns":27179,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":26,"latency_ns":37080,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":27,"latency_ns":20381,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":28,"latency_ns":18680,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":29,"latency_ns":19530,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8}],"latency":{"repetitions":30,"min_ns":17170,"p50_ns":19540,"p95_ns":29960,"p99_ns":37080,"max_ns":37080,"mean_ns":21222.1,"sample_stddev_ns":4362.346950976006},"cpu_ticks":0,"cpu_ms":0.0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724},"commit":{"scope":"production_adapter_parse_normalize_sanitize_commit_and_project","raw_samples":[{"repetition":0,"latency_ns":75416161,"cpu_ticks":6,"process_write_bytes":1204224,"database_storage_growth_bytes":1137120,"peak_rss_kib":59804,"record_count":8},{"repetition":1,"latency_ns":75377982,"cpu_ticks":6,"process_write_bytes":1204224,"database_storage_growth_bytes":1137120,"peak_rss_kib":61724,"record_count":8},{"repetition":2,"latency_ns":75157479,"cpu_ticks":5,"process_write_bytes":1204224,"database_storage_growth_bytes":1137120,"peak_rss_kib":61724,"record_count":8},{"repetition":3,"latency_ns":72375378,"cpu_ticks":6,"process_write_bytes":1204224,"database_storage_growth_bytes":1137120,"peak_rss_kib":61724,"record_count":8},{"repetition":4,"latency_ns":79476927,"cpu_ticks":6,"process_write_bytes":1204224,"database_storage_growth_bytes":1137120,"peak_rss_kib":61724,"record_count":8},{"repetition":5,"latency_ns":74491022,"cpu_ticks":5,"process_write_bytes":1204224,"database_storage_growth_bytes":1137120,"peak_rss_kib":61724,"record_count":8},{"repetition":6,"latency_ns":72231207,"cpu_ticks":6,"process_write_bytes":1204224,"database_storage_growth_bytes":1137120,"peak_rss_kib":61724,"record_count":8},{"repetition":7,"latency_ns":71307026,"cpu_ticks":5,"process_write_bytes":1204224,"database_storage_growth_bytes":1137120,"peak_rss_kib":61724,"record_count":8},{"repetition":8,"latency_ns":80552089,"cpu_ticks":5,"process_write_bytes":1204224,"database_storage_growth_bytes":1137120,"peak_rss_kib":61724,"record_count":8},{"repetition":9,"latency_ns":83392731,"cpu_ticks":6,"process_write_bytes":1204224,"database_storage_growth_bytes":1137120,"peak_rss_kib":61724,"record_count":8},{"repetition":10,"latency_ns":77123761,"cpu_ticks":5,"process_write_bytes":1204224,"database_storage_growth_bytes":1137120,"peak_rss_kib":61724,"record_count":8},{"repetition":11,"latency_ns":76404893,"cpu_ticks":5,"process_write_bytes":1204224,"database_storage_growth_bytes":1137120,"peak_rss_kib":61724,"record_count":8},{"repetition":12,"latency_ns":74646364,"cpu_ticks":5,"process_write_bytes":1204224,"database_storage_growth_bytes":1137120,"peak_rss_kib":61724,"record_count":8},{"repetition":13,"latency_ns":71742941,"cpu_ticks":6,"process_write_bytes":1204224,"database_storage_growth_bytes":1137120,"peak_rss_kib":61724,"record_count":8},{"repetition":14,"latency_ns":74627344,"cpu_ticks":6,"process_write_bytes":1204224,"database_storage_growth_bytes":1137120,"peak_rss_kib":61724,"record_count":8},{"repetition":15,"latency_ns":74976107,"cpu_ticks":5,"process_write_bytes":1204224,"database_storage_growth_bytes":1137120,"peak_rss_kib":61724,"record_count":8},{"repetition":16,"latency_ns":75858228,"cpu_ticks":5,"process_write_bytes":1204224,"database_storage_growth_bytes":1137120,"peak_rss_kib":61724,"record_count":8},{"repetition":17,"latency_ns":76680446,"cpu_ticks":5,"process_write_bytes":1204224,"database_storage_growth_bytes":1137120,"peak_rss_kib":61724,"record_count":8},{"repetition":18,"latency_ns":75701825,"cpu_ticks":6,"process_write_bytes":1204224,"database_storage_growth_bytes":1137120,"peak_rss_kib":61724,"record_count":8},{"repetition":19,"latency_ns":73874975,"cpu_ticks":5,"process_write_bytes":1204224,"database_storage_growth_bytes":1137120,"peak_rss_kib":61724,"record_count":8},{"repetition":20,"latency_ns":74515513,"cpu_ticks":5,"process_write_bytes":1204224,"database_storage_growth_bytes":1137120,"peak_rss_kib":61724,"record_count":8},{"repetition":21,"latency_ns":77701767,"cpu_ticks":5,"process_write_bytes":1204224,"database_storage_growth_bytes":1137120,"peak_rss_kib":61724,"record_count":8},{"repetition":22,"latency_ns":75934718,"cpu_ticks":6,"process_write_bytes":1204224,"database_storage_growth_bytes":1137120,"peak_rss_kib":61724,"record_count":8},{"repetition":23,"latency_ns":75028438,"cpu_ticks":5,"process_write_bytes":1204224,"database_storage_growth_bytes":1137120,"peak_rss_kib":61724,"record_count":8},{"repetition":24,"latency_ns":76841557,"cpu_ticks":6,"process_write_bytes":1204224,"database_storage_growth_bytes":1137120,"peak_rss_kib":61724,"record_count":8},{"repetition":25,"latency_ns":79063584,"cpu_ticks":6,"process_write_bytes":1204224,"database_storage_growth_bytes":1137120,"peak_rss_kib":61724,"record_count":8},{"repetition":26,"latency_ns":74422841,"cpu_ticks":5,"process_write_bytes":1204224,"database_storage_growth_bytes":1137120,"peak_rss_kib":61724,"record_count":8},{"repetition":27,"latency_ns":75755226,"cpu_ticks":6,"process_write_bytes":1204224,"database_storage_growth_bytes":1137120,"peak_rss_kib":61724,"record_count":8},{"repetition":28,"latency_ns":78087103,"cpu_ticks":5,"process_write_bytes":1204224,"database_storage_growth_bytes":1137120,"peak_rss_kib":61724,"record_count":8},{"repetition":29,"latency_ns":73837184,"cpu_ticks":4,"process_write_bytes":1204224,"database_storage_growth_bytes":1137120,"peak_rss_kib":61724,"record_count":8}],"latency":{"repetitions":30,"min_ns":71307026,"p50_ns":75377982,"p95_ns":80552089,"p99_ns":83392731,"max_ns":83392731,"mean_ns":75753427.23333333,"sample_stddev_ns":2598700.7305228203},"cpu_ticks":162,"cpu_ms":1620.0,"process_write_bytes":36126720,"database_storage_growth_bytes":34113600,"peak_rss_kib":61724},"replay":{"scope":"authoritative_store_bounded_replay","raw_samples":[{"repetition":0,"latency_ns":248843,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":59804,"record_count":8},{"repetition":1,"latency_ns":242802,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":2,"latency_ns":275874,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":3,"latency_ns":258863,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":4,"latency_ns":249524,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":5,"latency_ns":245813,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":6,"latency_ns":245424,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":7,"latency_ns":246192,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":8,"latency_ns":246883,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":9,"latency_ns":249023,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":10,"latency_ns":267822,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":11,"latency_ns":268973,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":12,"latency_ns":245692,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":13,"latency_ns":244653,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":14,"latency_ns":275124,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":15,"latency_ns":247503,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":16,"latency_ns":250074,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":17,"latency_ns":242303,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":18,"latency_ns":246213,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":19,"latency_ns":270133,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":20,"latency_ns":266844,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":21,"latency_ns":249642,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":22,"latency_ns":271663,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":23,"latency_ns":269492,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":24,"latency_ns":250823,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":25,"latency_ns":251133,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":26,"latency_ns":245652,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":27,"latency_ns":245713,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":28,"latency_ns":265083,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":29,"latency_ns":245792,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8}],"latency":{"repetitions":30,"min_ns":242303,"p50_ns":249023,"p95_ns":275124,"p99_ns":275874,"max_ns":275874,"mean_ns":254318.93333333332,"sample_stddev_ns":11086.006304729659},"cpu_ticks":0,"cpu_ms":0.0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724},"pipeline_raw_samples":[{"repetition":0,"latency_ns":75864387,"cpu_ticks":6,"process_write_bytes":1204224,"database_storage_growth_bytes":1137120,"peak_rss_kib":59804,"replayed_observations":8},{"repetition":1,"latency_ns":75779616,"cpu_ticks":6,"process_write_bytes":1204224,"database_storage_growth_bytes":1137120,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":2,"latency_ns":75591283,"cpu_ticks":5,"process_write_bytes":1204224,"database_storage_growth_bytes":1137120,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":3,"latency_ns":72812251,"cpu_ticks":6,"process_write_bytes":1204224,"database_storage_growth_bytes":1137120,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":4,"latency_ns":79913902,"cpu_ticks":6,"process_write_bytes":1204224,"database_storage_growth_bytes":1137120,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":5,"latency_ns":74910806,"cpu_ticks":5,"process_write_bytes":1204224,"database_storage_growth_bytes":1137120,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":6,"latency_ns":72638480,"cpu_ticks":6,"process_write_bytes":1204224,"database_storage_growth_bytes":1137120,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":7,"latency_ns":71711151,"cpu_ticks":5,"process_write_bytes":1204224,"database_storage_growth_bytes":1137120,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":8,"latency_ns":80957113,"cpu_ticks":5,"process_write_bytes":1204224,"database_storage_growth_bytes":1137120,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":9,"latency_ns":83814695,"cpu_ticks":6,"process_write_bytes":1204224,"database_storage_growth_bytes":1137120,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":10,"latency_ns":77553255,"cpu_ticks":5,"process_write_bytes":1204224,"database_storage_growth_bytes":1137120,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":11,"latency_ns":76832417,"cpu_ticks":5,"process_write_bytes":1204224,"database_storage_growth_bytes":1137120,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":12,"latency_ns":75050238,"cpu_ticks":5,"process_write_bytes":1204224,"database_storage_growth_bytes":1137120,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":13,"latency_ns":72173196,"cpu_ticks":6,"process_write_bytes":1204224,"database_storage_growth_bytes":1137120,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":14,"latency_ns":75067908,"cpu_ticks":6,"process_write_bytes":1204224,"database_storage_growth_bytes":1137120,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":15,"latency_ns":75393933,"cpu_ticks":5,"process_write_bytes":1204224,"database_storage_growth_bytes":1137120,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":16,"latency_ns":76293372,"cpu_ticks":5,"process_write_bytes":1204224,"database_storage_growth_bytes":1137120,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":17,"latency_ns":77078930,"cpu_ticks":5,"process_write_bytes":1204224,"database_storage_growth_bytes":1137120,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":18,"latency_ns":76121140,"cpu_ticks":6,"process_write_bytes":1204224,"database_storage_growth_bytes":1137120,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":19,"latency_ns":74313339,"cpu_ticks":5,"process_write_bytes":1204224,"database_storage_growth_bytes":1137120,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":20,"latency_ns":74945456,"cpu_ticks":5,"process_write_bytes":1204224,"database_storage_growth_bytes":1137120,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":21,"latency_ns":78132023,"cpu_ticks":5,"process_write_bytes":1204224,"database_storage_growth_bytes":1137120,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":22,"latency_ns":76368053,"cpu_ticks":6,"process_write_bytes":1204224,"database_storage_growth_bytes":1137120,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":23,"latency_ns":75468413,"cpu_ticks":5,"process_write_bytes":1204224,"database_storage_growth_bytes":1137120,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":24,"latency_ns":77267833,"cpu_ticks":6,"process_write_bytes":1204224,"database_storage_growth_bytes":1137120,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":25,"latency_ns":79483137,"cpu_ticks":6,"process_write_bytes":1204224,"database_storage_growth_bytes":1137120,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":26,"latency_ns":74843206,"cpu_ticks":5,"process_write_bytes":1204224,"database_storage_growth_bytes":1137120,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":27,"latency_ns":76169121,"cpu_ticks":6,"process_write_bytes":1204224,"database_storage_growth_bytes":1137120,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":28,"latency_ns":78516467,"cpu_ticks":5,"process_write_bytes":1204224,"database_storage_growth_bytes":1137120,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":29,"latency_ns":74247820,"cpu_ticks":4,"process_write_bytes":1204224,"database_storage_growth_bytes":1137120,"peak_rss_kib":61724,"replayed_observations":8}],"pipeline_latency":{"repetitions":30,"min_ns":71711151,"p50_ns":75779616,"p95_ns":80957113,"p99_ns":83814695,"max_ns":83814695,"mean_ns":76177098.03333333,"sample_stddev_ns":2598931.0919540124},"pipeline_records_per_second":105.01844001066286,"pipeline_cpu_ticks":162,"pipeline_cpu_ms":1620.0,"pipeline_process_write_bytes":36126720,"pipeline_database_storage_growth_bytes":34113600,"peak_rss_kib":61724,"no_op_raw_samples":[{"repetition":0,"latency_ns":167953,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":59868,"replayed_observations":0},{"repetition":1,"latency_ns":142251,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":2,"latency_ns":116552,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":3,"latency_ns":123200,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":4,"latency_ns":131612,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":5,"latency_ns":127620,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":6,"latency_ns":144031,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":7,"latency_ns":141031,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":8,"latency_ns":119931,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":9,"latency_ns":139011,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":10,"latency_ns":119011,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":11,"latency_ns":116631,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":12,"latency_ns":116352,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":13,"latency_ns":123650,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":14,"latency_ns":117862,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":15,"latency_ns":154541,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":16,"latency_ns":116811,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":17,"latency_ns":115792,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":18,"latency_ns":119500,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":19,"latency_ns":122890,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":20,"latency_ns":116231,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":21,"latency_ns":116622,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":22,"latency_ns":118501,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":23,"latency_ns":149832,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":24,"latency_ns":125141,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":25,"latency_ns":129332,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":26,"latency_ns":122282,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":27,"latency_ns":119241,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":28,"latency_ns":119312,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":29,"latency_ns":137112,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0}],"no_op_latency":{"repetitions":30,"min_ns":115792,"p50_ns":122282,"p95_ns":154541,"p99_ns":167953,"max_ns":167953,"mean_ns":127661.26666666666,"sample_stddev_ns":13433.730087521031},"no_op_cpu_ticks":0,"no_op_cpu_ms":0.0,"no_op_process_write_bytes":0,"no_op_database_storage_growth_bytes":0,"no_op_observation_count_delta":0},{"provider":"cursor","production_path":"cursor_production_observation_pipeline_v1","pipeline_scope":"production_parse_normalize_sanitize_commit_project_and_replay","measured_repetitions":30,"observations_per_repetition":8,"replay_limit":9,"max_backlog_records":8,"parse":{"scope":"native_provider_format_decode","raw_samples":[{"repetition":0,"latency_ns":32400,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":59868,"record_count":8},{"repetition":1,"latency_ns":25941,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":2,"latency_ns":23001,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":3,"latency_ns":33520,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":4,"latency_ns":28270,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":5,"latency_ns":26090,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":6,"latency_ns":26639,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":7,"latency_ns":24490,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":8,"latency_ns":24790,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":9,"latency_ns":29862,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":10,"latency_ns":25660,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":11,"latency_ns":24950,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":12,"latency_ns":26649,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":13,"latency_ns":25861,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":14,"latency_ns":25900,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":15,"latency_ns":30841,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":16,"latency_ns":26550,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":17,"latency_ns":22340,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":18,"latency_ns":23571,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":19,"latency_ns":25970,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":20,"latency_ns":25551,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":21,"latency_ns":23899,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":22,"latency_ns":25951,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":23,"latency_ns":32330,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":24,"latency_ns":25170,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":25,"latency_ns":30730,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":26,"latency_ns":24650,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":27,"latency_ns":25630,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":28,"latency_ns":24710,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":29,"latency_ns":27441,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8}],"latency":{"repetitions":30,"min_ns":22340,"p50_ns":25900,"p95_ns":32400,"p99_ns":33520,"max_ns":33520,"mean_ns":26645.233333333334,"sample_stddev_ns":2855.113340142116},"cpu_ticks":0,"cpu_ms":0.0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724},"commit":{"scope":"production_adapter_parse_normalize_sanitize_commit_and_project","raw_samples":[{"repetition":0,"latency_ns":75915016,"cpu_ticks":5,"process_write_bytes":1331200,"database_storage_growth_bytes":1264840,"peak_rss_kib":60252,"record_count":8},{"repetition":1,"latency_ns":76747986,"cpu_ticks":6,"process_write_bytes":1331200,"database_storage_growth_bytes":1264840,"peak_rss_kib":61724,"record_count":8},{"repetition":2,"latency_ns":78077121,"cpu_ticks":5,"process_write_bytes":1331200,"database_storage_growth_bytes":1264840,"peak_rss_kib":61724,"record_count":8},{"repetition":3,"latency_ns":74723883,"cpu_ticks":6,"process_write_bytes":1331200,"database_storage_growth_bytes":1264840,"peak_rss_kib":61724,"record_count":8},{"repetition":4,"latency_ns":74046037,"cpu_ticks":5,"process_write_bytes":1331200,"database_storage_growth_bytes":1264840,"peak_rss_kib":61724,"record_count":8},{"repetition":5,"latency_ns":76751008,"cpu_ticks":5,"process_write_bytes":1331200,"database_storage_growth_bytes":1264840,"peak_rss_kib":61724,"record_count":8},{"repetition":6,"latency_ns":74013976,"cpu_ticks":6,"process_write_bytes":1331200,"database_storage_growth_bytes":1264840,"peak_rss_kib":61724,"record_count":8},{"repetition":7,"latency_ns":74093637,"cpu_ticks":6,"process_write_bytes":1331200,"database_storage_growth_bytes":1264840,"peak_rss_kib":61724,"record_count":8},{"repetition":8,"latency_ns":78122973,"cpu_ticks":6,"process_write_bytes":1331200,"database_storage_growth_bytes":1264840,"peak_rss_kib":61724,"record_count":8},{"repetition":9,"latency_ns":78130702,"cpu_ticks":5,"process_write_bytes":1331200,"database_storage_growth_bytes":1264840,"peak_rss_kib":61724,"record_count":8},{"repetition":10,"latency_ns":79606048,"cpu_ticks":5,"process_write_bytes":1331200,"database_storage_growth_bytes":1264840,"peak_rss_kib":61724,"record_count":8},{"repetition":11,"latency_ns":81030385,"cpu_ticks":5,"process_write_bytes":1331200,"database_storage_growth_bytes":1264840,"peak_rss_kib":61724,"record_count":8},{"repetition":12,"latency_ns":76121588,"cpu_ticks":5,"process_write_bytes":1331200,"database_storage_growth_bytes":1264840,"peak_rss_kib":61724,"record_count":8},{"repetition":13,"latency_ns":73410480,"cpu_ticks":5,"process_write_bytes":1331200,"database_storage_growth_bytes":1264840,"peak_rss_kib":61724,"record_count":8},{"repetition":14,"latency_ns":77633436,"cpu_ticks":4,"process_write_bytes":1331200,"database_storage_growth_bytes":1264840,"peak_rss_kib":61724,"record_count":8},{"repetition":15,"latency_ns":77829099,"cpu_ticks":5,"process_write_bytes":1331200,"database_storage_growth_bytes":1264840,"peak_rss_kib":61724,"record_count":8},{"repetition":16,"latency_ns":77224653,"cpu_ticks":6,"process_write_bytes":1331200,"database_storage_growth_bytes":1264840,"peak_rss_kib":61724,"record_count":8},{"repetition":17,"latency_ns":80602751,"cpu_ticks":5,"process_write_bytes":1331200,"database_storage_growth_bytes":1264840,"peak_rss_kib":61724,"record_count":8},{"repetition":18,"latency_ns":75707296,"cpu_ticks":5,"process_write_bytes":1331200,"database_storage_growth_bytes":1264840,"peak_rss_kib":61724,"record_count":8},{"repetition":19,"latency_ns":76459114,"cpu_ticks":6,"process_write_bytes":1331200,"database_storage_growth_bytes":1264840,"peak_rss_kib":61724,"record_count":8},{"repetition":20,"latency_ns":80554940,"cpu_ticks":6,"process_write_bytes":1331200,"database_storage_growth_bytes":1264840,"peak_rss_kib":61724,"record_count":8},{"repetition":21,"latency_ns":74890777,"cpu_ticks":5,"process_write_bytes":1331200,"database_storage_growth_bytes":1264840,"peak_rss_kib":61724,"record_count":8},{"repetition":22,"latency_ns":76526285,"cpu_ticks":5,"process_write_bytes":1331200,"database_storage_growth_bytes":1264840,"peak_rss_kib":61724,"record_count":8},{"repetition":23,"latency_ns":78343385,"cpu_ticks":5,"process_write_bytes":1331200,"database_storage_growth_bytes":1264840,"peak_rss_kib":61724,"record_count":8},{"repetition":24,"latency_ns":77002560,"cpu_ticks":5,"process_write_bytes":1331200,"database_storage_growth_bytes":1264840,"peak_rss_kib":61724,"record_count":8},{"repetition":25,"latency_ns":78462297,"cpu_ticks":6,"process_write_bytes":1331200,"database_storage_growth_bytes":1264840,"peak_rss_kib":61724,"record_count":8},{"repetition":26,"latency_ns":76472245,"cpu_ticks":6,"process_write_bytes":1331200,"database_storage_growth_bytes":1264840,"peak_rss_kib":61724,"record_count":8},{"repetition":27,"latency_ns":77468195,"cpu_ticks":6,"process_write_bytes":1331200,"database_storage_growth_bytes":1264840,"peak_rss_kib":61724,"record_count":8},{"repetition":28,"latency_ns":78319794,"cpu_ticks":6,"process_write_bytes":1331200,"database_storage_growth_bytes":1264840,"peak_rss_kib":61724,"record_count":8},{"repetition":29,"latency_ns":74724495,"cpu_ticks":5,"process_write_bytes":1331200,"database_storage_growth_bytes":1264840,"peak_rss_kib":61724,"record_count":8}],"latency":{"repetitions":30,"min_ns":73410480,"p50_ns":76751008,"p95_ns":80602751,"p99_ns":81030385,"max_ns":81030385,"mean_ns":76967072.06666666,"sample_stddev_ns":2014477.5037640857},"cpu_ticks":161,"cpu_ms":1610.0,"process_write_bytes":39936000,"database_storage_growth_bytes":37945200,"peak_rss_kib":61724},"replay":{"scope":"authoritative_store_bounded_replay","raw_samples":[{"repetition":0,"latency_ns":363543,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":60252,"record_count":8},{"repetition":1,"latency_ns":334744,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":2,"latency_ns":338095,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":3,"latency_ns":366914,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":4,"latency_ns":332373,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":5,"latency_ns":334884,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":6,"latency_ns":364973,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":7,"latency_ns":333674,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":8,"latency_ns":332044,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":9,"latency_ns":355915,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":10,"latency_ns":357104,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":11,"latency_ns":358184,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":12,"latency_ns":337795,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":13,"latency_ns":333803,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":14,"latency_ns":336363,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":15,"latency_ns":332193,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":16,"latency_ns":333973,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":17,"latency_ns":366364,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":18,"latency_ns":329864,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":19,"latency_ns":339214,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":20,"latency_ns":360924,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":21,"latency_ns":356874,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":22,"latency_ns":359854,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":23,"latency_ns":339954,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":24,"latency_ns":330465,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":25,"latency_ns":333484,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":26,"latency_ns":329153,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":27,"latency_ns":335852,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":28,"latency_ns":352664,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":29,"latency_ns":335764,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8}],"latency":{"repetitions":30,"min_ns":329153,"p50_ns":336363,"p95_ns":366364,"p99_ns":366914,"max_ns":366914,"mean_ns":343900.13333333336,"sample_stddev_ns":13205.058941056704},"cpu_ticks":0,"cpu_ms":0.0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724},"pipeline_raw_samples":[{"repetition":0,"latency_ns":76458133,"cpu_ticks":5,"process_write_bytes":1331200,"database_storage_growth_bytes":1264840,"peak_rss_kib":60252,"replayed_observations":8},{"repetition":1,"latency_ns":77243252,"cpu_ticks":6,"process_write_bytes":1331200,"database_storage_growth_bytes":1264840,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":2,"latency_ns":78598787,"cpu_ticks":5,"process_write_bytes":1331200,"database_storage_growth_bytes":1264840,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":3,"latency_ns":75255340,"cpu_ticks":6,"process_write_bytes":1331200,"database_storage_growth_bytes":1264840,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":4,"latency_ns":74568282,"cpu_ticks":5,"process_write_bytes":1331200,"database_storage_growth_bytes":1264840,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":5,"latency_ns":77251832,"cpu_ticks":5,"process_write_bytes":1331200,"database_storage_growth_bytes":1264840,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":6,"latency_ns":74548212,"cpu_ticks":6,"process_write_bytes":1331200,"database_storage_growth_bytes":1264840,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":7,"latency_ns":74590612,"cpu_ticks":6,"process_write_bytes":1331200,"database_storage_growth_bytes":1264840,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":8,"latency_ns":78617458,"cpu_ticks":6,"process_write_bytes":1331200,"database_storage_growth_bytes":1264840,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":9,"latency_ns":78657547,"cpu_ticks":5,"process_write_bytes":1331200,"database_storage_growth_bytes":1264840,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":10,"latency_ns":80128664,"cpu_ticks":5,"process_write_bytes":1331200,"database_storage_growth_bytes":1264840,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":11,"latency_ns":81548951,"cpu_ticks":5,"process_write_bytes":1331200,"database_storage_growth_bytes":1264840,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":12,"latency_ns":76644146,"cpu_ticks":5,"process_write_bytes":1331200,"database_storage_growth_bytes":1264840,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":13,"latency_ns":73906175,"cpu_ticks":5,"process_write_bytes":1331200,"database_storage_growth_bytes":1264840,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":14,"latency_ns":78135742,"cpu_ticks":4,"process_write_bytes":1331200,"database_storage_growth_bytes":1264840,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":15,"latency_ns":78348154,"cpu_ticks":5,"process_write_bytes":1331200,"database_storage_growth_bytes":1264840,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":16,"latency_ns":77722337,"cpu_ticks":6,"process_write_bytes":1331200,"database_storage_growth_bytes":1264840,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":17,"latency_ns":81139477,"cpu_ticks":5,"process_write_bytes":1331200,"database_storage_growth_bytes":1264840,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":18,"latency_ns":76197381,"cpu_ticks":5,"process_write_bytes":1331200,"database_storage_growth_bytes":1264840,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":19,"latency_ns":76983200,"cpu_ticks":6,"process_write_bytes":1331200,"database_storage_growth_bytes":1264840,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":20,"latency_ns":81079686,"cpu_ticks":6,"process_write_bytes":1331200,"database_storage_growth_bytes":1264840,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":21,"latency_ns":75410312,"cpu_ticks":5,"process_write_bytes":1331200,"database_storage_growth_bytes":1264840,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":22,"latency_ns":77050561,"cpu_ticks":5,"process_write_bytes":1331200,"database_storage_growth_bytes":1264840,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":23,"latency_ns":78870432,"cpu_ticks":5,"process_write_bytes":1331200,"database_storage_growth_bytes":1264840,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":24,"latency_ns":77494555,"cpu_ticks":5,"process_write_bytes":1331200,"database_storage_growth_bytes":1264840,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":25,"latency_ns":78987753,"cpu_ticks":6,"process_write_bytes":1331200,"database_storage_growth_bytes":1264840,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":26,"latency_ns":76971700,"cpu_ticks":6,"process_write_bytes":1331200,"database_storage_growth_bytes":1264840,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":27,"latency_ns":77978131,"cpu_ticks":6,"process_write_bytes":1331200,"database_storage_growth_bytes":1264840,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":28,"latency_ns":78838071,"cpu_ticks":6,"process_write_bytes":1331200,"database_storage_growth_bytes":1264840,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":29,"latency_ns":75219781,"cpu_ticks":5,"process_write_bytes":1331200,"database_storage_growth_bytes":1264840,"peak_rss_kib":61724,"replayed_observations":8}],"pipeline_latency":{"repetitions":30,"min_ns":73906175,"p50_ns":77251832,"p95_ns":81139477,"p99_ns":81548951,"max_ns":81548951,"mean_ns":77481488.8,"sample_stddev_ns":2018161.877370413},"pipeline_records_per_second":103.25046825894239,"pipeline_cpu_ticks":161,"pipeline_cpu_ms":1610.0,"pipeline_process_write_bytes":39936000,"pipeline_database_storage_growth_bytes":37945200,"peak_rss_kib":61724,"no_op_raw_samples":[{"repetition":0,"latency_ns":836049,"cpu_ticks":1,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":60252,"replayed_observations":0},{"repetition":1,"latency_ns":734387,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":2,"latency_ns":776229,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":3,"latency_ns":800990,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":4,"latency_ns":825398,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":5,"latency_ns":724657,"cpu_ticks":1,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":6,"latency_ns":721618,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":7,"latency_ns":776197,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":8,"latency_ns":719177,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":9,"latency_ns":812169,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":10,"latency_ns":737037,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":11,"latency_ns":728928,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":12,"latency_ns":794729,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":13,"latency_ns":744559,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":14,"latency_ns":735139,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":15,"latency_ns":715858,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":16,"latency_ns":734628,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":17,"latency_ns":742389,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":18,"latency_ns":737658,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":19,"latency_ns":748088,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":20,"latency_ns":737748,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":21,"latency_ns":738118,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":22,"latency_ns":746739,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":23,"latency_ns":866839,"cpu_ticks":1,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":24,"latency_ns":743559,"cpu_ticks":1,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":25,"latency_ns":844899,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":26,"latency_ns":775140,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":27,"latency_ns":776059,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":28,"latency_ns":733698,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":29,"latency_ns":730718,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0}],"no_op_latency":{"repetitions":30,"min_ns":715858,"p50_ns":742389,"p95_ns":844899,"p99_ns":866839,"max_ns":866839,"mean_ns":761313.3666666667,"sample_stddev_ns":41171.91617368134},"no_op_cpu_ticks":4,"no_op_cpu_ms":40.0,"no_op_process_write_bytes":0,"no_op_database_storage_growth_bytes":0,"no_op_observation_count_delta":0},{"provider":"hermes","production_path":"hermes_production_observation_pipeline_v1","pipeline_scope":"production_parse_normalize_sanitize_commit_project_and_replay","measured_repetitions":30,"observations_per_repetition":8,"replay_limit":9,"max_backlog_records":8,"parse":{"scope":"native_provider_format_decode","raw_samples":[{"repetition":0,"latency_ns":128271,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":60252,"record_count":8},{"repetition":1,"latency_ns":121682,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":2,"latency_ns":121541,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":3,"latency_ns":121921,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":4,"latency_ns":118941,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":5,"latency_ns":122252,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":6,"latency_ns":122731,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":7,"latency_ns":152461,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":8,"latency_ns":150861,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":9,"latency_ns":126252,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":10,"latency_ns":121432,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":11,"latency_ns":121711,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":12,"latency_ns":143842,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":13,"latency_ns":118412,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":14,"latency_ns":123571,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":15,"latency_ns":119731,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":16,"latency_ns":143342,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":17,"latency_ns":120912,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":18,"latency_ns":120202,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":19,"latency_ns":142442,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":20,"latency_ns":119822,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":21,"latency_ns":122790,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":22,"latency_ns":124231,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":23,"latency_ns":130932,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":24,"latency_ns":120740,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":25,"latency_ns":127701,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":26,"latency_ns":124671,"cpu_ticks":1,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":27,"latency_ns":125320,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":28,"latency_ns":142702,"cpu_ticks":1,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":29,"latency_ns":170801,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8}],"latency":{"repetitions":30,"min_ns":118412,"p50_ns":122790,"p95_ns":152461,"p99_ns":170801,"max_ns":170801,"mean_ns":129074.0,"sample_stddev_ns":12670.203773230027},"cpu_ticks":2,"cpu_ms":20.0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724},"commit":{"scope":"production_adapter_parse_normalize_sanitize_commit_and_project","raw_samples":[{"repetition":0,"latency_ns":105074122,"cpu_ticks":7,"process_write_bytes":1130496,"database_storage_growth_bytes":1067080,"peak_rss_kib":60636,"record_count":8},{"repetition":1,"latency_ns":98489259,"cpu_ticks":8,"process_write_bytes":1130496,"database_storage_growth_bytes":1067080,"peak_rss_kib":61724,"record_count":8},{"repetition":2,"latency_ns":100293120,"cpu_ticks":8,"process_write_bytes":1130496,"database_storage_growth_bytes":1067080,"peak_rss_kib":61724,"record_count":8},{"repetition":3,"latency_ns":99091855,"cpu_ticks":9,"process_write_bytes":1130496,"database_storage_growth_bytes":1067080,"peak_rss_kib":61724,"record_count":8},{"repetition":4,"latency_ns":98344048,"cpu_ticks":8,"process_write_bytes":1130496,"database_storage_growth_bytes":1067080,"peak_rss_kib":61724,"record_count":8},{"repetition":5,"latency_ns":98754592,"cpu_ticks":8,"process_write_bytes":1130496,"database_storage_growth_bytes":1067080,"peak_rss_kib":61724,"record_count":8},{"repetition":6,"latency_ns":99110576,"cpu_ticks":8,"process_write_bytes":1130496,"database_storage_growth_bytes":1067080,"peak_rss_kib":61724,"record_count":8},{"repetition":7,"latency_ns":97430227,"cpu_ticks":8,"process_write_bytes":1130496,"database_storage_growth_bytes":1067080,"peak_rss_kib":61724,"record_count":8},{"repetition":8,"latency_ns":101186759,"cpu_ticks":8,"process_write_bytes":1130496,"database_storage_growth_bytes":1067080,"peak_rss_kib":61724,"record_count":8},{"repetition":9,"latency_ns":102937059,"cpu_ticks":8,"process_write_bytes":1130496,"database_storage_growth_bytes":1067080,"peak_rss_kib":61724,"record_count":8},{"repetition":10,"latency_ns":104551687,"cpu_ticks":8,"process_write_bytes":1130496,"database_storage_growth_bytes":1067080,"peak_rss_kib":61724,"record_count":8},{"repetition":11,"latency_ns":101324230,"cpu_ticks":7,"process_write_bytes":1130496,"database_storage_growth_bytes":1067080,"peak_rss_kib":61724,"record_count":8},{"repetition":12,"latency_ns":100948397,"cpu_ticks":9,"process_write_bytes":1130496,"database_storage_growth_bytes":1067080,"peak_rss_kib":61724,"record_count":8},{"repetition":13,"latency_ns":101768057,"cpu_ticks":9,"process_write_bytes":1130496,"database_storage_growth_bytes":1067080,"peak_rss_kib":61724,"record_count":8},{"repetition":14,"latency_ns":99164707,"cpu_ticks":7,"process_write_bytes":1130496,"database_storage_growth_bytes":1067080,"peak_rss_kib":61724,"record_count":8},{"repetition":15,"latency_ns":99374990,"cpu_ticks":8,"process_write_bytes":1130496,"database_storage_growth_bytes":1067080,"peak_rss_kib":61724,"record_count":8},{"repetition":16,"latency_ns":102764768,"cpu_ticks":8,"process_write_bytes":1130496,"database_storage_growth_bytes":1067080,"peak_rss_kib":61724,"record_count":8},{"repetition":17,"latency_ns":102448944,"cpu_ticks":7,"process_write_bytes":1130496,"database_storage_growth_bytes":1067080,"peak_rss_kib":61724,"record_count":8},{"repetition":18,"latency_ns":99298068,"cpu_ticks":8,"process_write_bytes":1130496,"database_storage_growth_bytes":1067080,"peak_rss_kib":61724,"record_count":8},{"repetition":19,"latency_ns":98959585,"cpu_ticks":7,"process_write_bytes":1130496,"database_storage_growth_bytes":1067080,"peak_rss_kib":61724,"record_count":8},{"repetition":20,"latency_ns":101467963,"cpu_ticks":8,"process_write_bytes":1130496,"database_storage_growth_bytes":1067080,"peak_rss_kib":61724,"record_count":8},{"repetition":21,"latency_ns":102141160,"cpu_ticks":8,"process_write_bytes":1130496,"database_storage_growth_bytes":1067080,"peak_rss_kib":61724,"record_count":8},{"repetition":22,"latency_ns":101844568,"cpu_ticks":8,"process_write_bytes":1130496,"database_storage_growth_bytes":1067080,"peak_rss_kib":61724,"record_count":8},{"repetition":23,"latency_ns":103515126,"cpu_ticks":8,"process_write_bytes":1130496,"database_storage_growth_bytes":1067080,"peak_rss_kib":61724,"record_count":8},{"repetition":24,"latency_ns":99565962,"cpu_ticks":8,"process_write_bytes":1130496,"database_storage_growth_bytes":1067080,"peak_rss_kib":61724,"record_count":8},{"repetition":25,"latency_ns":102376194,"cpu_ticks":9,"process_write_bytes":1130496,"database_storage_growth_bytes":1067080,"peak_rss_kib":61724,"record_count":8},{"repetition":26,"latency_ns":107222848,"cpu_ticks":8,"process_write_bytes":1130496,"database_storage_growth_bytes":1067080,"peak_rss_kib":61724,"record_count":8},{"repetition":27,"latency_ns":102076640,"cpu_ticks":7,"process_write_bytes":1130496,"database_storage_growth_bytes":1067080,"peak_rss_kib":61724,"record_count":8},{"repetition":28,"latency_ns":102752048,"cpu_ticks":7,"process_write_bytes":1130496,"database_storage_growth_bytes":1067080,"peak_rss_kib":61724,"record_count":8},{"repetition":29,"latency_ns":99633374,"cpu_ticks":8,"process_write_bytes":1130496,"database_storage_growth_bytes":1067080,"peak_rss_kib":61724,"record_count":8}],"latency":{"repetitions":30,"min_ns":97430227,"p50_ns":101186759,"p95_ns":105074122,"p99_ns":107222848,"max_ns":107222848,"mean_ns":101130364.43333334,"sample_stddev_ns":2256448.9971206235},"cpu_ticks":237,"cpu_ms":2370.0,"process_write_bytes":33914880,"database_storage_growth_bytes":32012400,"peak_rss_kib":61724},"replay":{"scope":"authoritative_store_bounded_replay","raw_samples":[{"repetition":0,"latency_ns":333363,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":60636,"record_count":8},{"repetition":1,"latency_ns":330743,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":2,"latency_ns":350975,"cpu_ticks":1,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":3,"latency_ns":326214,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":4,"latency_ns":355924,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":5,"latency_ns":331583,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":6,"latency_ns":375344,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":7,"latency_ns":352034,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":8,"latency_ns":330493,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":9,"latency_ns":323664,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":10,"latency_ns":350784,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":11,"latency_ns":349264,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":12,"latency_ns":331563,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":13,"latency_ns":333333,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":14,"latency_ns":323824,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":15,"latency_ns":330054,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":16,"latency_ns":331514,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":17,"latency_ns":327963,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":18,"latency_ns":324184,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":19,"latency_ns":326262,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":20,"latency_ns":333013,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":21,"latency_ns":324893,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":22,"latency_ns":368094,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":23,"latency_ns":330104,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":24,"latency_ns":330564,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":25,"latency_ns":347794,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":26,"latency_ns":350062,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":27,"latency_ns":327733,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":28,"latency_ns":328354,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":29,"latency_ns":342573,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8}],"latency":{"repetitions":30,"min_ns":323664,"p50_ns":331514,"p95_ns":368094,"p99_ns":375344,"max_ns":375344,"mean_ns":337408.86666666664,"sample_stddev_ns":13590.850027292916},"cpu_ticks":1,"cpu_ms":10.0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724},"pipeline_raw_samples":[{"repetition":0,"latency_ns":105603868,"cpu_ticks":7,"process_write_bytes":1130496,"database_storage_growth_bytes":1067080,"peak_rss_kib":60636,"replayed_observations":8},{"repetition":1,"latency_ns":98979754,"cpu_ticks":8,"process_write_bytes":1130496,"database_storage_growth_bytes":1067080,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":2,"latency_ns":100805835,"cpu_ticks":9,"process_write_bytes":1130496,"database_storage_growth_bytes":1067080,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":3,"latency_ns":99584911,"cpu_ticks":9,"process_write_bytes":1130496,"database_storage_growth_bytes":1067080,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":4,"latency_ns":98870103,"cpu_ticks":8,"process_write_bytes":1130496,"database_storage_growth_bytes":1067080,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":5,"latency_ns":99255287,"cpu_ticks":8,"process_write_bytes":1130496,"database_storage_growth_bytes":1067080,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":6,"latency_ns":99687604,"cpu_ticks":8,"process_write_bytes":1130496,"database_storage_growth_bytes":1067080,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":7,"latency_ns":97951054,"cpu_ticks":8,"process_write_bytes":1130496,"database_storage_growth_bytes":1067080,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":8,"latency_ns":101681415,"cpu_ticks":8,"process_write_bytes":1130496,"database_storage_growth_bytes":1067080,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":9,"latency_ns":103422053,"cpu_ticks":8,"process_write_bytes":1130496,"database_storage_growth_bytes":1067080,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":10,"latency_ns":105066003,"cpu_ticks":8,"process_write_bytes":1130496,"database_storage_growth_bytes":1067080,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":11,"latency_ns":101837627,"cpu_ticks":7,"process_write_bytes":1130496,"database_storage_growth_bytes":1067080,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":12,"latency_ns":101446892,"cpu_ticks":9,"process_write_bytes":1130496,"database_storage_growth_bytes":1067080,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":13,"latency_ns":102301572,"cpu_ticks":9,"process_write_bytes":1130496,"database_storage_growth_bytes":1067080,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":14,"latency_ns":99655753,"cpu_ticks":7,"process_write_bytes":1130496,"database_storage_growth_bytes":1067080,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":15,"latency_ns":99893804,"cpu_ticks":8,"process_write_bytes":1130496,"database_storage_growth_bytes":1067080,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":16,"latency_ns":103288312,"cpu_ticks":8,"process_write_bytes":1130496,"database_storage_growth_bytes":1067080,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":17,"latency_ns":102943150,"cpu_ticks":7,"process_write_bytes":1130496,"database_storage_growth_bytes":1067080,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":18,"latency_ns":99788744,"cpu_ticks":8,"process_write_bytes":1130496,"database_storage_growth_bytes":1067080,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":19,"latency_ns":99456620,"cpu_ticks":7,"process_write_bytes":1130496,"database_storage_growth_bytes":1067080,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":20,"latency_ns":101986678,"cpu_ticks":8,"process_write_bytes":1130496,"database_storage_growth_bytes":1067080,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":21,"latency_ns":102629016,"cpu_ticks":8,"process_write_bytes":1130496,"database_storage_growth_bytes":1067080,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":22,"latency_ns":102405224,"cpu_ticks":8,"process_write_bytes":1130496,"database_storage_growth_bytes":1067080,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":23,"latency_ns":104057622,"cpu_ticks":8,"process_write_bytes":1130496,"database_storage_growth_bytes":1067080,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":24,"latency_ns":100084129,"cpu_ticks":8,"process_write_bytes":1130496,"database_storage_growth_bytes":1067080,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":25,"latency_ns":102905050,"cpu_ticks":9,"process_write_bytes":1130496,"database_storage_growth_bytes":1067080,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":26,"latency_ns":107761143,"cpu_ticks":8,"process_write_bytes":1130496,"database_storage_growth_bytes":1067080,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":27,"latency_ns":102582286,"cpu_ticks":7,"process_write_bytes":1130496,"database_storage_growth_bytes":1067080,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":28,"latency_ns":103269664,"cpu_ticks":7,"process_write_bytes":1130496,"database_storage_growth_bytes":1067080,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":29,"latency_ns":100145869,"cpu_ticks":8,"process_write_bytes":1130496,"database_storage_growth_bytes":1067080,"peak_rss_kib":61724,"replayed_observations":8}],"pipeline_latency":{"repetitions":30,"min_ns":97951054,"p50_ns":101681415,"p95_ns":105603868,"p99_ns":107761143,"max_ns":107761143,"mean_ns":101644901.4,"sample_stddev_ns":2261417.377761469},"pipeline_records_per_second":78.7053741979428,"pipeline_cpu_ticks":238,"pipeline_cpu_ms":2380.0,"pipeline_process_write_bytes":33914880,"pipeline_database_storage_growth_bytes":32012400,"peak_rss_kib":61724,"no_op_raw_samples":[{"repetition":0,"latency_ns":24117709,"cpu_ticks":3,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":60636,"replayed_observations":0},{"repetition":1,"latency_ns":23819737,"cpu_ticks":2,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":2,"latency_ns":23823986,"cpu_ticks":2,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":3,"latency_ns":24079069,"cpu_ticks":2,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":4,"latency_ns":23976118,"cpu_ticks":3,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":5,"latency_ns":24017078,"cpu_ticks":2,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":6,"latency_ns":23923837,"cpu_ticks":2,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":7,"latency_ns":23842306,"cpu_ticks":2,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":8,"latency_ns":24141109,"cpu_ticks":2,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":9,"latency_ns":23963729,"cpu_ticks":2,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":10,"latency_ns":24033909,"cpu_ticks":3,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":11,"latency_ns":23940368,"cpu_ticks":3,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":12,"latency_ns":24238930,"cpu_ticks":2,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":13,"latency_ns":23956628,"cpu_ticks":2,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":14,"latency_ns":24100119,"cpu_ticks":3,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":15,"latency_ns":23885007,"cpu_ticks":2,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":16,"latency_ns":23905716,"cpu_ticks":3,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":17,"latency_ns":23924507,"cpu_ticks":3,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":18,"latency_ns":24306172,"cpu_ticks":2,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":19,"latency_ns":23871367,"cpu_ticks":2,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":20,"latency_ns":24008408,"cpu_ticks":2,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":21,"latency_ns":24003058,"cpu_ticks":2,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":22,"latency_ns":23985168,"cpu_ticks":2,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":23,"latency_ns":24164489,"cpu_ticks":2,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":24,"latency_ns":23889216,"cpu_ticks":2,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":25,"latency_ns":24832657,"cpu_ticks":2,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":26,"latency_ns":23732455,"cpu_ticks":2,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":27,"latency_ns":24448524,"cpu_ticks":3,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":28,"latency_ns":24255371,"cpu_ticks":2,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":29,"latency_ns":23880367,"cpu_ticks":3,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0}],"no_op_latency":{"repetitions":30,"min_ns":23732455,"p50_ns":23976118,"p95_ns":24448524,"p99_ns":24832657,"max_ns":24832657,"mean_ns":24035570.466666665,"sample_stddev_ns":219357.1189951301},"no_op_cpu_ticks":69,"no_op_cpu_ms":690.0,"no_op_process_write_bytes":0,"no_op_database_storage_growth_bytes":0,"no_op_observation_count_delta":0},{"provider":"kiro","production_path":"kiro_production_observation_pipeline_v1","pipeline_scope":"production_parse_normalize_sanitize_commit_project_and_replay","measured_repetitions":30,"observations_per_repetition":8,"replay_limit":9,"max_backlog_records":8,"parse":{"scope":"native_provider_format_decode","raw_samples":[{"repetition":0,"latency_ns":21321,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":60636,"record_count":8},{"repetition":1,"latency_ns":19001,"cpu_ticks":1,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":2,"latency_ns":20330,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":3,"latency_ns":19720,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":4,"latency_ns":18450,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":5,"latency_ns":20599,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":6,"latency_ns":20450,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":7,"latency_ns":21550,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":8,"latency_ns":19450,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":9,"latency_ns":27101,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":10,"latency_ns":19751,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":11,"latency_ns":30651,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":12,"latency_ns":26110,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":13,"latency_ns":26211,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":14,"latency_ns":18311,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":15,"latency_ns":19251,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":16,"latency_ns":19729,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":17,"latency_ns":22451,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":18,"latency_ns":17969,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":19,"latency_ns":18810,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":20,"latency_ns":18990,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":21,"latency_ns":20300,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":22,"latency_ns":28440,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":23,"latency_ns":26961,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":24,"latency_ns":20490,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":25,"latency_ns":22180,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":26,"latency_ns":24400,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":27,"latency_ns":23421,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":28,"latency_ns":25650,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":29,"latency_ns":19900,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8}],"latency":{"repetitions":30,"min_ns":17969,"p50_ns":20450,"p95_ns":28440,"p99_ns":30651,"max_ns":30651,"mean_ns":21931.6,"sample_stddev_ns":3425.7065578781926},"cpu_ticks":1,"cpu_ms":10.0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724},"commit":{"scope":"production_adapter_parse_normalize_sanitize_commit_and_project","raw_samples":[{"repetition":0,"latency_ns":76999949,"cpu_ticks":6,"process_write_bytes":1286144,"database_storage_growth_bytes":1219520,"peak_rss_kib":61532,"record_count":8},{"repetition":1,"latency_ns":76202570,"cpu_ticks":5,"process_write_bytes":1286144,"database_storage_growth_bytes":1219520,"peak_rss_kib":61724,"record_count":8},{"repetition":2,"latency_ns":76193861,"cpu_ticks":5,"process_write_bytes":1286144,"database_storage_growth_bytes":1219520,"peak_rss_kib":61724,"record_count":8},{"repetition":3,"latency_ns":77388774,"cpu_ticks":5,"process_write_bytes":1286144,"database_storage_growth_bytes":1219520,"peak_rss_kib":61724,"record_count":8},{"repetition":4,"latency_ns":73129016,"cpu_ticks":6,"process_write_bytes":1286144,"database_storage_growth_bytes":1219520,"peak_rss_kib":61724,"record_count":8},{"repetition":5,"latency_ns":73919446,"cpu_ticks":6,"process_write_bytes":1286144,"database_storage_growth_bytes":1219520,"peak_rss_kib":61724,"record_count":8},{"repetition":6,"latency_ns":73622141,"cpu_ticks":6,"process_write_bytes":1286144,"database_storage_growth_bytes":1219520,"peak_rss_kib":61724,"record_count":8},{"repetition":7,"latency_ns":73156366,"cpu_ticks":5,"process_write_bytes":1286144,"database_storage_growth_bytes":1219520,"peak_rss_kib":61724,"record_count":8},{"repetition":8,"latency_ns":79868152,"cpu_ticks":5,"process_write_bytes":1286144,"database_storage_growth_bytes":1219520,"peak_rss_kib":61724,"record_count":8},{"repetition":9,"latency_ns":78309213,"cpu_ticks":5,"process_write_bytes":1286144,"database_storage_growth_bytes":1219520,"peak_rss_kib":61724,"record_count":8},{"repetition":10,"latency_ns":80132905,"cpu_ticks":6,"process_write_bytes":1286144,"database_storage_growth_bytes":1219520,"peak_rss_kib":61724,"record_count":8},{"repetition":11,"latency_ns":77405985,"cpu_ticks":6,"process_write_bytes":1286144,"database_storage_growth_bytes":1219520,"peak_rss_kib":61724,"record_count":8},{"repetition":12,"latency_ns":79408227,"cpu_ticks":5,"process_write_bytes":1286144,"database_storage_growth_bytes":1219520,"peak_rss_kib":61724,"record_count":8},{"repetition":13,"latency_ns":75747316,"cpu_ticks":4,"process_write_bytes":1286144,"database_storage_growth_bytes":1219520,"peak_rss_kib":61724,"record_count":8},{"repetition":14,"latency_ns":77531467,"cpu_ticks":5,"process_write_bytes":1286144,"database_storage_growth_bytes":1219520,"peak_rss_kib":61724,"record_count":8},{"repetition":15,"latency_ns":75757636,"cpu_ticks":5,"process_write_bytes":1286144,"database_storage_growth_bytes":1219520,"peak_rss_kib":61724,"record_count":8},{"repetition":16,"latency_ns":78110691,"cpu_ticks":6,"process_write_bytes":1286144,"database_storage_growth_bytes":1219520,"peak_rss_kib":61724,"record_count":8},{"repetition":17,"latency_ns":99228858,"cpu_ticks":5,"process_write_bytes":1286144,"database_storage_growth_bytes":1219520,"peak_rss_kib":61724,"record_count":8},{"repetition":18,"latency_ns":76893987,"cpu_ticks":5,"process_write_bytes":1286144,"database_storage_growth_bytes":1219520,"peak_rss_kib":61724,"record_count":8},{"repetition":19,"latency_ns":72488519,"cpu_ticks":5,"process_write_bytes":1286144,"database_storage_growth_bytes":1219520,"peak_rss_kib":61724,"record_count":8},{"repetition":20,"latency_ns":78562688,"cpu_ticks":5,"process_write_bytes":1286144,"database_storage_growth_bytes":1219520,"peak_rss_kib":61724,"record_count":8},{"repetition":21,"latency_ns":77334504,"cpu_ticks":4,"process_write_bytes":1286144,"database_storage_growth_bytes":1219520,"peak_rss_kib":61724,"record_count":8},{"repetition":22,"latency_ns":81151506,"cpu_ticks":5,"process_write_bytes":1286144,"database_storage_growth_bytes":1219520,"peak_rss_kib":61724,"record_count":8},{"repetition":23,"latency_ns":79080152,"cpu_ticks":5,"process_write_bytes":1286144,"database_storage_growth_bytes":1219520,"peak_rss_kib":61724,"record_count":8},{"repetition":24,"latency_ns":77986572,"cpu_ticks":5,"process_write_bytes":1286144,"database_storage_growth_bytes":1219520,"peak_rss_kib":61724,"record_count":8},{"repetition":25,"latency_ns":76589316,"cpu_ticks":5,"process_write_bytes":1286144,"database_storage_growth_bytes":1219520,"peak_rss_kib":61724,"record_count":8},{"repetition":26,"latency_ns":75033888,"cpu_ticks":5,"process_write_bytes":1286144,"database_storage_growth_bytes":1219520,"peak_rss_kib":61724,"record_count":8},{"repetition":27,"latency_ns":80303897,"cpu_ticks":6,"process_write_bytes":1286144,"database_storage_growth_bytes":1219520,"peak_rss_kib":61724,"record_count":8},{"repetition":28,"latency_ns":76984720,"cpu_ticks":5,"process_write_bytes":1286144,"database_storage_growth_bytes":1219520,"peak_rss_kib":61724,"record_count":8},{"repetition":29,"latency_ns":76175631,"cpu_ticks":5,"process_write_bytes":1286144,"database_storage_growth_bytes":1219520,"peak_rss_kib":61724,"record_count":8}],"latency":{"repetitions":30,"min_ns":72488519,"p50_ns":76999949,"p95_ns":81151506,"p99_ns":99228858,"max_ns":99228858,"mean_ns":77689931.76666667,"sample_stddev_ns":4636322.037055679},"cpu_ticks":156,"cpu_ms":1560.0,"process_write_bytes":38584320,"database_storage_growth_bytes":36585600,"peak_rss_kib":61724},"replay":{"scope":"authoritative_store_bounded_replay","raw_samples":[{"repetition":0,"latency_ns":283573,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61532,"record_count":8},{"repetition":1,"latency_ns":253202,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":2,"latency_ns":256633,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":3,"latency_ns":253873,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":4,"latency_ns":274613,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":5,"latency_ns":255421,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":6,"latency_ns":257222,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":7,"latency_ns":252894,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":8,"latency_ns":258392,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":9,"latency_ns":253894,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":10,"latency_ns":286083,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":11,"latency_ns":254402,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":12,"latency_ns":281203,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":13,"latency_ns":252452,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":14,"latency_ns":258473,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":15,"latency_ns":257563,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":16,"latency_ns":276813,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":17,"latency_ns":256293,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":18,"latency_ns":258113,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":19,"latency_ns":262453,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":20,"latency_ns":256833,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":21,"latency_ns":252623,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":22,"latency_ns":261933,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":23,"latency_ns":255012,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":24,"latency_ns":256301,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":25,"latency_ns":261233,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":26,"latency_ns":256303,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":27,"latency_ns":278274,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":28,"latency_ns":254604,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":29,"latency_ns":278564,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8}],"latency":{"repetitions":30,"min_ns":252452,"p50_ns":256833,"p95_ns":283573,"p99_ns":286083,"max_ns":286083,"mean_ns":261841.5,"sample_stddev_ns":10576.019640253817},"cpu_ticks":0,"cpu_ms":0.0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724},"pipeline_raw_samples":[{"repetition":0,"latency_ns":77480495,"cpu_ticks":6,"process_write_bytes":1286144,"database_storage_growth_bytes":1219520,"peak_rss_kib":61532,"replayed_observations":8},{"repetition":1,"latency_ns":76613744,"cpu_ticks":5,"process_write_bytes":1286144,"database_storage_growth_bytes":1219520,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":2,"latency_ns":76612934,"cpu_ticks":5,"process_write_bytes":1286144,"database_storage_growth_bytes":1219520,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":3,"latency_ns":77813009,"cpu_ticks":5,"process_write_bytes":1286144,"database_storage_growth_bytes":1219520,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":4,"latency_ns":73562381,"cpu_ticks":6,"process_write_bytes":1286144,"database_storage_growth_bytes":1219520,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":5,"latency_ns":74350740,"cpu_ticks":6,"process_write_bytes":1286144,"database_storage_growth_bytes":1219520,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":6,"latency_ns":74041846,"cpu_ticks":6,"process_write_bytes":1286144,"database_storage_growth_bytes":1219520,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":7,"latency_ns":73569631,"cpu_ticks":5,"process_write_bytes":1286144,"database_storage_growth_bytes":1219520,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":8,"latency_ns":80321096,"cpu_ticks":5,"process_write_bytes":1286144,"database_storage_growth_bytes":1219520,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":9,"latency_ns":78728108,"cpu_ticks":5,"process_write_bytes":1286144,"database_storage_growth_bytes":1219520,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":10,"latency_ns":80581090,"cpu_ticks":6,"process_write_bytes":1286144,"database_storage_growth_bytes":1219520,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":11,"latency_ns":77851028,"cpu_ticks":6,"process_write_bytes":1286144,"database_storage_growth_bytes":1219520,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":12,"latency_ns":79861552,"cpu_ticks":5,"process_write_bytes":1286144,"database_storage_growth_bytes":1219520,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":13,"latency_ns":76161820,"cpu_ticks":4,"process_write_bytes":1286144,"database_storage_growth_bytes":1219520,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":14,"latency_ns":77948350,"cpu_ticks":5,"process_write_bytes":1286144,"database_storage_growth_bytes":1219520,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":15,"latency_ns":76176040,"cpu_ticks":5,"process_write_bytes":1286144,"database_storage_growth_bytes":1219520,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":16,"latency_ns":78552968,"cpu_ticks":6,"process_write_bytes":1286144,"database_storage_growth_bytes":1219520,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":17,"latency_ns":99669354,"cpu_ticks":6,"process_write_bytes":1286144,"database_storage_growth_bytes":1219520,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":18,"latency_ns":77338124,"cpu_ticks":5,"process_write_bytes":1286144,"database_storage_growth_bytes":1219520,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":19,"latency_ns":72913864,"cpu_ticks":5,"process_write_bytes":1286144,"database_storage_growth_bytes":1219520,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":20,"latency_ns":78980421,"cpu_ticks":5,"process_write_bytes":1286144,"database_storage_growth_bytes":1219520,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":21,"latency_ns":77745978,"cpu_ticks":4,"process_write_bytes":1286144,"database_storage_growth_bytes":1219520,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":22,"latency_ns":81604521,"cpu_ticks":5,"process_write_bytes":1286144,"database_storage_growth_bytes":1219520,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":23,"latency_ns":79508148,"cpu_ticks":5,"process_write_bytes":1286144,"database_storage_growth_bytes":1219520,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":24,"latency_ns":78401707,"cpu_ticks":5,"process_write_bytes":1286144,"database_storage_growth_bytes":1219520,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":25,"latency_ns":77079971,"cpu_ticks":5,"process_write_bytes":1286144,"database_storage_growth_bytes":1219520,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":26,"latency_ns":75463003,"cpu_ticks":5,"process_write_bytes":1286144,"database_storage_growth_bytes":1219520,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":27,"latency_ns":80774022,"cpu_ticks":6,"process_write_bytes":1286144,"database_storage_growth_bytes":1219520,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":28,"latency_ns":77396525,"cpu_ticks":5,"process_write_bytes":1286144,"database_storage_growth_bytes":1219520,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":29,"latency_ns":76614686,"cpu_ticks":5,"process_write_bytes":1286144,"database_storage_growth_bytes":1219520,"peak_rss_kib":61724,"replayed_observations":8}],"pipeline_latency":{"repetitions":30,"min_ns":72913864,"p50_ns":77480495,"p95_ns":81604521,"p99_ns":99669354,"max_ns":99669354,"mean_ns":78123905.2,"sample_stddev_ns":4641117.930731177},"pipeline_records_per_second":102.40143499636524,"pipeline_cpu_ticks":157,"pipeline_cpu_ms":1570.0,"pipeline_process_write_bytes":38584320,"pipeline_database_storage_growth_bytes":36585600,"peak_rss_kib":61724,"no_op_raw_samples":[{"repetition":0,"latency_ns":2153805,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61532,"replayed_observations":0},{"repetition":1,"latency_ns":1998623,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":2,"latency_ns":2021042,"cpu_ticks":1,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":3,"latency_ns":2040232,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":4,"latency_ns":2002283,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":5,"latency_ns":1995323,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":6,"latency_ns":2023903,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":7,"latency_ns":2009013,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":8,"latency_ns":2062123,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":9,"latency_ns":2010252,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":10,"latency_ns":2032493,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":11,"latency_ns":2095914,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":12,"latency_ns":2021632,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":13,"latency_ns":2014633,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":14,"latency_ns":2040214,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":15,"latency_ns":2000683,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":16,"latency_ns":2003392,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":17,"latency_ns":2030413,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":18,"latency_ns":2015863,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":19,"latency_ns":2040682,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":20,"latency_ns":2011673,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":21,"latency_ns":2013753,"cpu_ticks":1,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":22,"latency_ns":2126684,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":23,"latency_ns":2045472,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":24,"latency_ns":1985342,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":25,"latency_ns":2131674,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":26,"latency_ns":2046784,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":27,"latency_ns":2115534,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":28,"latency_ns":2022042,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":29,"latency_ns":2008491,"cpu_ticks":1,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0}],"no_op_latency":{"repetitions":30,"min_ns":1985342,"p50_ns":2021632,"p95_ns":2131674,"p99_ns":2153805,"max_ns":2153805,"mean_ns":2037332.2333333334,"sample_stddev_ns":43959.296394453384},"no_op_cpu_ticks":3,"no_op_cpu_ms":30.0,"no_op_process_write_bytes":0,"no_op_database_storage_growth_bytes":0,"no_op_observation_count_delta":0},{"provider":"cline","production_path":"cline_production_observation_pipeline_v1","pipeline_scope":"production_parse_normalize_sanitize_commit_project_and_replay","measured_repetitions":30,"observations_per_repetition":8,"replay_limit":9,"max_backlog_records":8,"parse":{"scope":"native_provider_format_decode","raw_samples":[{"repetition":0,"latency_ns":33860,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61532,"record_count":8},{"repetition":1,"latency_ns":22989,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":2,"latency_ns":22950,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":3,"latency_ns":29631,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":4,"latency_ns":23310,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":5,"latency_ns":24000,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":6,"latency_ns":27481,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":7,"latency_ns":27550,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":8,"latency_ns":26931,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":9,"latency_ns":24351,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":10,"latency_ns":25579,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":11,"latency_ns":25771,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":12,"latency_ns":26849,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":13,"latency_ns":28311,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":14,"latency_ns":34151,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":15,"latency_ns":25481,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":16,"latency_ns":23641,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":17,"latency_ns":50680,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":18,"latency_ns":25219,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":19,"latency_ns":23661,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":20,"latency_ns":25721,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":21,"latency_ns":24740,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":22,"latency_ns":32770,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":23,"latency_ns":33160,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":24,"latency_ns":25621,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":25,"latency_ns":29780,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":26,"latency_ns":30820,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":27,"latency_ns":30340,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":28,"latency_ns":25059,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":29,"latency_ns":26071,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8}],"latency":{"repetitions":30,"min_ns":22950,"p50_ns":25771,"p95_ns":34151,"p99_ns":50680,"max_ns":50680,"mean_ns":27882.6,"sample_stddev_ns":5434.014376892636},"cpu_ticks":0,"cpu_ms":0.0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724},"commit":{"scope":"production_adapter_parse_normalize_sanitize_commit_and_project","raw_samples":[{"repetition":0,"latency_ns":77832748,"cpu_ticks":6,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"record_count":8},{"repetition":1,"latency_ns":76713006,"cpu_ticks":5,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"record_count":8},{"repetition":2,"latency_ns":77530875,"cpu_ticks":5,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"record_count":8},{"repetition":3,"latency_ns":77727187,"cpu_ticks":5,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"record_count":8},{"repetition":4,"latency_ns":74960357,"cpu_ticks":6,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"record_count":8},{"repetition":5,"latency_ns":73766183,"cpu_ticks":5,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"record_count":8},{"repetition":6,"latency_ns":74198278,"cpu_ticks":6,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"record_count":8},{"repetition":7,"latency_ns":74043407,"cpu_ticks":6,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"record_count":8},{"repetition":8,"latency_ns":79195434,"cpu_ticks":5,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"record_count":8},{"repetition":9,"latency_ns":78590868,"cpu_ticks":4,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"record_count":8},{"repetition":10,"latency_ns":78479216,"cpu_ticks":5,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"record_count":8},{"repetition":11,"latency_ns":79619020,"cpu_ticks":5,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"record_count":8},{"repetition":12,"latency_ns":78182053,"cpu_ticks":5,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"record_count":8},{"repetition":13,"latency_ns":77202372,"cpu_ticks":5,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"record_count":8},{"repetition":14,"latency_ns":75210319,"cpu_ticks":6,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"record_count":8},{"repetition":15,"latency_ns":80404528,"cpu_ticks":5,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"record_count":8},{"repetition":16,"latency_ns":81704602,"cpu_ticks":5,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"record_count":8},{"repetition":17,"latency_ns":91816275,"cpu_ticks":4,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"record_count":8},{"repetition":18,"latency_ns":79742480,"cpu_ticks":5,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"record_count":8},{"repetition":19,"latency_ns":77424874,"cpu_ticks":5,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"record_count":8},{"repetition":20,"latency_ns":79653890,"cpu_ticks":5,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"record_count":8},{"repetition":21,"latency_ns":76212851,"cpu_ticks":5,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"record_count":8},{"repetition":22,"latency_ns":78041291,"cpu_ticks":5,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"record_count":8},{"repetition":23,"latency_ns":80913063,"cpu_ticks":6,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"record_count":8},{"repetition":24,"latency_ns":84921318,"cpu_ticks":5,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"record_count":8},{"repetition":25,"latency_ns":79046444,"cpu_ticks":5,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"record_count":8},{"repetition":26,"latency_ns":80427108,"cpu_ticks":6,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"record_count":8},{"repetition":27,"latency_ns":81159906,"cpu_ticks":6,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"record_count":8},{"repetition":28,"latency_ns":81945026,"cpu_ticks":6,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"record_count":8},{"repetition":29,"latency_ns":76436623,"cpu_ticks":6,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"record_count":8}],"latency":{"repetitions":30,"min_ns":73766183,"p50_ns":78182053,"p95_ns":84921318,"p99_ns":91816275,"max_ns":91816275,"mean_ns":78770053.4,"sample_stddev_ns":3550641.3497488964},"cpu_ticks":158,"cpu_ms":1580.0,"process_write_bytes":42393600,"database_storage_growth_bytes":40417200,"peak_rss_kib":61724},"replay":{"scope":"authoritative_store_bounded_replay","raw_samples":[{"repetition":0,"latency_ns":269944,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":1,"latency_ns":264973,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":2,"latency_ns":288563,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":3,"latency_ns":265213,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":4,"latency_ns":266314,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":5,"latency_ns":295633,"cpu_ticks":1,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":6,"latency_ns":267282,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":7,"latency_ns":269563,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":8,"latency_ns":331453,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":9,"latency_ns":288603,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":10,"latency_ns":288573,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":11,"latency_ns":271021,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":12,"latency_ns":266183,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":13,"latency_ns":266223,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":14,"latency_ns":264602,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":15,"latency_ns":270383,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":16,"latency_ns":278322,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":17,"latency_ns":273894,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":18,"latency_ns":273334,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":19,"latency_ns":265003,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":20,"latency_ns":273264,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":21,"latency_ns":267474,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":22,"latency_ns":293943,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":23,"latency_ns":271373,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":24,"latency_ns":269364,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":25,"latency_ns":304115,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":26,"latency_ns":271923,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":27,"latency_ns":291164,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":28,"latency_ns":269514,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":29,"latency_ns":266322,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8}],"latency":{"repetitions":30,"min_ns":264602,"p50_ns":270383,"p95_ns":304115,"p99_ns":331453,"max_ns":331453,"mean_ns":276784.5,"sample_stddev_ns":15039.114901391018},"cpu_ticks":1,"cpu_ms":10.0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724},"pipeline_raw_samples":[{"repetition":0,"latency_ns":78287434,"cpu_ticks":6,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":1,"latency_ns":77138182,"cpu_ticks":5,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":2,"latency_ns":77986710,"cpu_ticks":5,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":3,"latency_ns":78176422,"cpu_ticks":5,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":4,"latency_ns":75385061,"cpu_ticks":6,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":5,"latency_ns":74228228,"cpu_ticks":6,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":6,"latency_ns":74635313,"cpu_ticks":6,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":7,"latency_ns":74497591,"cpu_ticks":6,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":8,"latency_ns":79692849,"cpu_ticks":5,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":9,"latency_ns":79041912,"cpu_ticks":4,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":10,"latency_ns":78941911,"cpu_ticks":5,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":11,"latency_ns":80061054,"cpu_ticks":5,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":12,"latency_ns":78610028,"cpu_ticks":5,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":13,"latency_ns":77629816,"cpu_ticks":5,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":14,"latency_ns":75632485,"cpu_ticks":6,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":15,"latency_ns":80841502,"cpu_ticks":5,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":16,"latency_ns":82160367,"cpu_ticks":5,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":17,"latency_ns":92276521,"cpu_ticks":4,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":18,"latency_ns":80190566,"cpu_ticks":5,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":19,"latency_ns":77847889,"cpu_ticks":5,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":20,"latency_ns":80091104,"cpu_ticks":5,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":21,"latency_ns":76644307,"cpu_ticks":5,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":22,"latency_ns":78529008,"cpu_ticks":5,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":23,"latency_ns":81368540,"cpu_ticks":6,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":24,"latency_ns":85364913,"cpu_ticks":5,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":25,"latency_ns":79559969,"cpu_ticks":5,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":26,"latency_ns":80909074,"cpu_ticks":6,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":27,"latency_ns":81631341,"cpu_ticks":6,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":28,"latency_ns":82374580,"cpu_ticks":6,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":29,"latency_ns":76859779,"cpu_ticks":6,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"replayed_observations":8}],"pipeline_latency":{"repetitions":30,"min_ns":74228228,"p50_ns":78610028,"p95_ns":85364913,"p99_ns":92276521,"max_ns":92276521,"mean_ns":79219815.2,"sample_stddev_ns":3555927.6703031636},"pipeline_records_per_second":100.98483542031792,"pipeline_cpu_ticks":159,"pipeline_cpu_ms":1590.0,"pipeline_process_write_bytes":42393600,"pipeline_database_storage_growth_bytes":40417200,"peak_rss_kib":61724,"no_op_raw_samples":[{"repetition":0,"latency_ns":2136883,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":1,"latency_ns":2028462,"cpu_ticks":1,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":2,"latency_ns":2030262,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":3,"latency_ns":2048202,"cpu_ticks":1,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":4,"latency_ns":2009371,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":5,"latency_ns":2044003,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":6,"latency_ns":2067774,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":7,"latency_ns":2054983,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":8,"latency_ns":2022552,"cpu_ticks":1,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":9,"latency_ns":2019833,"cpu_ticks":1,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":10,"latency_ns":2013812,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":11,"latency_ns":2124813,"cpu_ticks":1,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":12,"latency_ns":2013842,"cpu_ticks":1,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":13,"latency_ns":2005741,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":14,"latency_ns":1995582,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":15,"latency_ns":2046844,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":16,"latency_ns":2026603,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":17,"latency_ns":2014583,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":18,"latency_ns":2149995,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":19,"latency_ns":2056383,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":20,"latency_ns":2016012,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":21,"latency_ns":2027222,"cpu_ticks":1,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":22,"latency_ns":2185155,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":23,"latency_ns":2134284,"cpu_ticks":1,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":24,"latency_ns":2102454,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":25,"latency_ns":2244285,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":26,"latency_ns":2091863,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":27,"latency_ns":2064212,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":28,"latency_ns":1999593,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":29,"latency_ns":2007612,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0}],"no_op_latency":{"repetitions":30,"min_ns":1995582,"p50_ns":2030262,"p95_ns":2185155,"p99_ns":2244285,"max_ns":2244285,"mean_ns":2059440.5,"sample_stddev_ns":61094.339138265335},"no_op_cpu_ticks":8,"no_op_cpu_ms":80.0,"no_op_process_write_bytes":0,"no_op_database_storage_growth_bytes":0,"no_op_observation_count_delta":0},{"provider":"roo-code","production_path":"roo-code_production_observation_pipeline_v1","pipeline_scope":"production_parse_normalize_sanitize_commit_project_and_replay","measured_repetitions":30,"observations_per_repetition":8,"replay_limit":9,"max_backlog_records":8,"parse":{"scope":"native_provider_format_decode","raw_samples":[{"repetition":0,"latency_ns":32151,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":1,"latency_ns":24800,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":2,"latency_ns":23761,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":3,"latency_ns":33441,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":4,"latency_ns":25189,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":5,"latency_ns":27580,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":6,"latency_ns":28261,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":7,"latency_ns":28061,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":8,"latency_ns":22899,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":9,"latency_ns":25831,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":10,"latency_ns":37421,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":11,"latency_ns":33892,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":12,"latency_ns":25661,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":13,"latency_ns":25900,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":14,"latency_ns":24931,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":15,"latency_ns":24822,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":16,"latency_ns":24040,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":17,"latency_ns":25650,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":18,"latency_ns":41091,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":19,"latency_ns":25190,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":20,"latency_ns":24750,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":21,"latency_ns":23760,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":22,"latency_ns":34131,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":23,"latency_ns":35411,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":24,"latency_ns":33170,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":25,"latency_ns":63329,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":26,"latency_ns":38110,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":27,"latency_ns":27410,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":28,"latency_ns":28641,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":29,"latency_ns":25559,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8}],"latency":{"repetitions":30,"min_ns":22899,"p50_ns":25900,"p95_ns":41091,"p99_ns":63329,"max_ns":63329,"mean_ns":29828.1,"sample_stddev_ns":8034.096041033598},"cpu_ticks":0,"cpu_ms":0.0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724},"commit":{"scope":"production_adapter_parse_normalize_sanitize_commit_and_project","raw_samples":[{"repetition":0,"latency_ns":76938759,"cpu_ticks":5,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"record_count":8},{"repetition":1,"latency_ns":76480222,"cpu_ticks":6,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"record_count":8},{"repetition":2,"latency_ns":74088597,"cpu_ticks":5,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"record_count":8},{"repetition":3,"latency_ns":76673245,"cpu_ticks":6,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"record_count":8},{"repetition":4,"latency_ns":74523763,"cpu_ticks":6,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"record_count":8},{"repetition":5,"latency_ns":74252989,"cpu_ticks":6,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"record_count":8},{"repetition":6,"latency_ns":74028926,"cpu_ticks":5,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"record_count":8},{"repetition":7,"latency_ns":74183819,"cpu_ticks":6,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"record_count":8},{"repetition":8,"latency_ns":77590456,"cpu_ticks":6,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"record_count":8},{"repetition":9,"latency_ns":81671872,"cpu_ticks":6,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"record_count":8},{"repetition":10,"latency_ns":77110981,"cpu_ticks":5,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"record_count":8},{"repetition":11,"latency_ns":76005578,"cpu_ticks":5,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"record_count":8},{"repetition":12,"latency_ns":78708020,"cpu_ticks":6,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"record_count":8},{"repetition":13,"latency_ns":77587196,"cpu_ticks":5,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"record_count":8},{"repetition":14,"latency_ns":78419614,"cpu_ticks":5,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"record_count":8},{"repetition":15,"latency_ns":78527017,"cpu_ticks":5,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"record_count":8},{"repetition":16,"latency_ns":80603000,"cpu_ticks":5,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"record_count":8},{"repetition":17,"latency_ns":75942157,"cpu_ticks":6,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"record_count":8},{"repetition":18,"latency_ns":84932619,"cpu_ticks":6,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"record_count":8},{"repetition":19,"latency_ns":77634877,"cpu_ticks":6,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"record_count":8},{"repetition":20,"latency_ns":79156614,"cpu_ticks":5,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"record_count":8},{"repetition":21,"latency_ns":76497004,"cpu_ticks":5,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"record_count":8},{"repetition":22,"latency_ns":76890218,"cpu_ticks":6,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"record_count":8},{"repetition":23,"latency_ns":80198906,"cpu_ticks":6,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"record_count":8},{"repetition":24,"latency_ns":77296794,"cpu_ticks":5,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"record_count":8},{"repetition":25,"latency_ns":81250107,"cpu_ticks":5,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"record_count":8},{"repetition":26,"latency_ns":81781575,"cpu_ticks":5,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"record_count":8},{"repetition":27,"latency_ns":79696680,"cpu_ticks":6,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"record_count":8},{"repetition":28,"latency_ns":78302374,"cpu_ticks":6,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"record_count":8},{"repetition":29,"latency_ns":74576863,"cpu_ticks":6,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"record_count":8}],"latency":{"repetitions":30,"min_ns":74028926,"p50_ns":77296794,"p95_ns":81781575,"p99_ns":84932619,"max_ns":84932619,"mean_ns":77718361.4,"sample_stddev_ns":2645953.8182481644},"cpu_ticks":166,"cpu_ms":1660.0,"process_write_bytes":42393600,"database_storage_growth_bytes":40417200,"peak_rss_kib":61724},"replay":{"scope":"authoritative_store_bounded_replay","raw_samples":[{"repetition":0,"latency_ns":266894,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":1,"latency_ns":289374,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":2,"latency_ns":289913,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":3,"latency_ns":299653,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":4,"latency_ns":295114,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":5,"latency_ns":265923,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":6,"latency_ns":290693,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":7,"latency_ns":293423,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":8,"latency_ns":291383,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":9,"latency_ns":298363,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":10,"latency_ns":269043,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":11,"latency_ns":267944,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":12,"latency_ns":294144,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":13,"latency_ns":266503,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":14,"latency_ns":263684,"cpu_ticks":1,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":15,"latency_ns":264944,"cpu_ticks":1,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":16,"latency_ns":267774,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":17,"latency_ns":292554,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":18,"latency_ns":283473,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":19,"latency_ns":296294,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":20,"latency_ns":271933,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":21,"latency_ns":266522,"cpu_ticks":1,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":22,"latency_ns":273143,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":23,"latency_ns":293074,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":24,"latency_ns":279664,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":25,"latency_ns":295153,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":26,"latency_ns":285103,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":27,"latency_ns":270912,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":28,"latency_ns":270123,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":29,"latency_ns":289923,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8}],"latency":{"repetitions":30,"min_ns":263684,"p50_ns":283473,"p95_ns":298363,"p99_ns":299653,"max_ns":299653,"mean_ns":281421.3333333333,"sample_stddev_ns":12588.501171590146},"cpu_ticks":3,"cpu_ms":30.0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724},"pipeline_raw_samples":[{"repetition":0,"latency_ns":77364323,"cpu_ticks":5,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":1,"latency_ns":76930109,"cpu_ticks":6,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":2,"latency_ns":74537711,"cpu_ticks":5,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":3,"latency_ns":77162701,"cpu_ticks":6,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":4,"latency_ns":74984117,"cpu_ticks":6,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":5,"latency_ns":74681954,"cpu_ticks":6,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":6,"latency_ns":74483731,"cpu_ticks":5,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":7,"latency_ns":74640722,"cpu_ticks":6,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":8,"latency_ns":78040241,"cpu_ticks":6,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":9,"latency_ns":82129597,"cpu_ticks":6,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":10,"latency_ns":77546805,"cpu_ticks":5,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":11,"latency_ns":76430843,"cpu_ticks":5,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":12,"latency_ns":79165354,"cpu_ticks":6,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":13,"latency_ns":78038052,"cpu_ticks":5,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":14,"latency_ns":78842571,"cpu_ticks":6,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":15,"latency_ns":78950492,"cpu_ticks":6,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":16,"latency_ns":81032696,"cpu_ticks":5,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":17,"latency_ns":76397463,"cpu_ticks":6,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":18,"latency_ns":85421134,"cpu_ticks":6,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":19,"latency_ns":78108482,"cpu_ticks":6,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":20,"latency_ns":79589969,"cpu_ticks":5,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":21,"latency_ns":76923169,"cpu_ticks":6,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":22,"latency_ns":77349183,"cpu_ticks":6,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":23,"latency_ns":80683181,"cpu_ticks":6,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":24,"latency_ns":77772309,"cpu_ticks":5,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":25,"latency_ns":81735022,"cpu_ticks":5,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":26,"latency_ns":82264879,"cpu_ticks":5,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":27,"latency_ns":80148345,"cpu_ticks":6,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":28,"latency_ns":78732009,"cpu_ticks":6,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":29,"latency_ns":75024168,"cpu_ticks":6,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"replayed_observations":8}],"pipeline_latency":{"repetitions":30,"min_ns":74483731,"p50_ns":77772309,"p95_ns":82264879,"p99_ns":85421134,"max_ns":85421134,"mean_ns":78170377.73333333,"sample_stddev_ns":2653398.321113628},"pipeline_records_per_second":102.34055702392556,"pipeline_cpu_ticks":169,"pipeline_cpu_ms":1690.0,"pipeline_process_write_bytes":42393600,"pipeline_database_storage_growth_bytes":40417200,"peak_rss_kib":61724,"no_op_raw_samples":[{"repetition":0,"latency_ns":2036273,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":1,"latency_ns":2028922,"cpu_ticks":1,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":2,"latency_ns":1994363,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":3,"latency_ns":2102743,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":4,"latency_ns":2030493,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":5,"latency_ns":2017823,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":6,"latency_ns":2046943,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":7,"latency_ns":2018853,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":8,"latency_ns":2024303,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":9,"latency_ns":2012542,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":10,"latency_ns":2092834,"cpu_ticks":1,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":11,"latency_ns":2014623,"cpu_ticks":1,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":12,"latency_ns":2020373,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":13,"latency_ns":2008783,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":14,"latency_ns":2002113,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":15,"latency_ns":2045163,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":16,"latency_ns":2031972,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":17,"latency_ns":2027514,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":18,"latency_ns":2126085,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":19,"latency_ns":2016692,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":20,"latency_ns":2035693,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":21,"latency_ns":2048113,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":22,"latency_ns":2147423,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":23,"latency_ns":2158173,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":24,"latency_ns":2109964,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":25,"latency_ns":2213654,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":26,"latency_ns":2133384,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":27,"latency_ns":2134874,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":28,"latency_ns":2018143,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":29,"latency_ns":1984502,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0}],"no_op_latency":{"repetitions":30,"min_ns":1984502,"p50_ns":2030493,"p95_ns":2158173,"p99_ns":2213654,"max_ns":2213654,"mean_ns":2056111.1,"sample_stddev_ns":57774.059901242996},"no_op_cpu_ticks":3,"no_op_cpu_ms":30.0,"no_op_process_write_bytes":0,"no_op_database_storage_growth_bytes":0,"no_op_observation_count_delta":0},{"provider":"kilo","production_path":"kilo_production_observation_pipeline_v1","pipeline_scope":"production_parse_normalize_sanitize_commit_project_and_replay","measured_repetitions":30,"observations_per_repetition":8,"replay_limit":9,"max_backlog_records":8,"parse":{"scope":"native_provider_format_decode","raw_samples":[{"repetition":0,"latency_ns":24640,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":1,"latency_ns":24160,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":2,"latency_ns":24739,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":3,"latency_ns":35790,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":4,"latency_ns":49960,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":5,"latency_ns":26310,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":6,"latency_ns":26599,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":7,"latency_ns":26130,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":8,"latency_ns":26129,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":9,"latency_ns":25170,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":10,"latency_ns":24191,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":11,"latency_ns":24061,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":12,"latency_ns":29170,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":13,"latency_ns":27979,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":14,"latency_ns":24051,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":15,"latency_ns":23432,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":16,"latency_ns":23971,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":17,"latency_ns":25670,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":18,"latency_ns":46410,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":19,"latency_ns":25000,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":20,"latency_ns":23510,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":21,"latency_ns":35580,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":22,"latency_ns":33310,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":23,"latency_ns":35230,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":24,"latency_ns":32110,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":25,"latency_ns":30980,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":26,"latency_ns":30211,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":27,"latency_ns":32471,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":28,"latency_ns":24139,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":29,"latency_ns":25030,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8}],"latency":{"repetitions":30,"min_ns":23432,"p50_ns":26129,"p95_ns":46410,"p99_ns":49960,"max_ns":49960,"mean_ns":28871.1,"sample_stddev_ns":6556.294944818168},"cpu_ticks":0,"cpu_ms":0.0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724},"commit":{"scope":"production_adapter_parse_normalize_sanitize_commit_and_project","raw_samples":[{"repetition":0,"latency_ns":80228357,"cpu_ticks":6,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"record_count":8},{"repetition":1,"latency_ns":77294524,"cpu_ticks":5,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"record_count":8},{"repetition":2,"latency_ns":73927095,"cpu_ticks":6,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"record_count":8},{"repetition":3,"latency_ns":76966488,"cpu_ticks":6,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"record_count":8},{"repetition":4,"latency_ns":74823975,"cpu_ticks":6,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"record_count":8},{"repetition":5,"latency_ns":74187348,"cpu_ticks":6,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"record_count":8},{"repetition":6,"latency_ns":74115767,"cpu_ticks":5,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"record_count":8},{"repetition":7,"latency_ns":81475749,"cpu_ticks":5,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"record_count":8},{"repetition":8,"latency_ns":78481667,"cpu_ticks":5,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"record_count":8},{"repetition":9,"latency_ns":78682628,"cpu_ticks":6,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"record_count":8},{"repetition":10,"latency_ns":76945789,"cpu_ticks":6,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"record_count":8},{"repetition":11,"latency_ns":75851186,"cpu_ticks":5,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"record_count":8},{"repetition":12,"latency_ns":76522684,"cpu_ticks":5,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"record_count":8},{"repetition":13,"latency_ns":75275790,"cpu_ticks":6,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"record_count":8},{"repetition":14,"latency_ns":77215562,"cpu_ticks":5,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"record_count":8},{"repetition":15,"latency_ns":79221805,"cpu_ticks":6,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"record_count":8},{"repetition":16,"latency_ns":81452720,"cpu_ticks":5,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"record_count":8},{"repetition":17,"latency_ns":79442937,"cpu_ticks":5,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"record_count":8},{"repetition":18,"latency_ns":74626063,"cpu_ticks":5,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"record_count":8},{"repetition":19,"latency_ns":77772888,"cpu_ticks":6,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"record_count":8},{"repetition":20,"latency_ns":80023234,"cpu_ticks":5,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"record_count":8},{"repetition":21,"latency_ns":75288140,"cpu_ticks":6,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"record_count":8},{"repetition":22,"latency_ns":78390066,"cpu_ticks":5,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"record_count":8},{"repetition":23,"latency_ns":83174150,"cpu_ticks":5,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"record_count":8},{"repetition":24,"latency_ns":78332704,"cpu_ticks":5,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"record_count":8},{"repetition":25,"latency_ns":76568084,"cpu_ticks":6,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"record_count":8},{"repetition":26,"latency_ns":78677060,"cpu_ticks":6,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"record_count":8},{"repetition":27,"latency_ns":80599670,"cpu_ticks":4,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"record_count":8},{"repetition":28,"latency_ns":83374972,"cpu_ticks":6,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"record_count":8},{"repetition":29,"latency_ns":74440732,"cpu_ticks":6,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"record_count":8}],"latency":{"repetitions":30,"min_ns":73927095,"p50_ns":77294524,"p95_ns":83174150,"p99_ns":83374972,"max_ns":83374972,"mean_ns":77779327.8,"sample_stddev_ns":2667400.967199686},"cpu_ticks":164,"cpu_ms":1640.0,"process_write_bytes":42393600,"database_storage_growth_bytes":40417200,"peak_rss_kib":61724},"replay":{"scope":"authoritative_store_bounded_replay","raw_samples":[{"repetition":0,"latency_ns":266002,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":1,"latency_ns":269631,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":2,"latency_ns":294033,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":3,"latency_ns":267953,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":4,"latency_ns":269593,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":5,"latency_ns":266663,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":6,"latency_ns":296514,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":7,"latency_ns":268553,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":8,"latency_ns":266492,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":9,"latency_ns":267203,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":10,"latency_ns":289563,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":11,"latency_ns":263703,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":12,"latency_ns":295113,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":13,"latency_ns":272524,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":14,"latency_ns":294913,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":15,"latency_ns":265464,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":16,"latency_ns":265174,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":17,"latency_ns":274723,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":18,"latency_ns":290754,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":19,"latency_ns":264433,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":20,"latency_ns":271652,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":21,"latency_ns":277674,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":22,"latency_ns":270464,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":23,"latency_ns":293483,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":24,"latency_ns":292313,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":25,"latency_ns":270073,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":26,"latency_ns":278963,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":27,"latency_ns":377225,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":28,"latency_ns":285653,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8},{"repetition":29,"latency_ns":266063,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"record_count":8}],"latency":{"repetitions":30,"min_ns":263703,"p50_ns":270464,"p95_ns":296514,"p99_ns":377225,"max_ns":377225,"mean_ns":279752.13333333336,"sample_stddev_ns":21686.20160018066},"cpu_ticks":0,"cpu_ms":0.0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724},"pipeline_raw_samples":[{"repetition":0,"latency_ns":80654100,"cpu_ticks":6,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":1,"latency_ns":77721118,"cpu_ticks":5,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":2,"latency_ns":74380819,"cpu_ticks":6,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":3,"latency_ns":77421584,"cpu_ticks":6,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":4,"latency_ns":75285550,"cpu_ticks":6,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":5,"latency_ns":74618433,"cpu_ticks":6,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":6,"latency_ns":74576702,"cpu_ticks":5,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":7,"latency_ns":81902835,"cpu_ticks":5,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":8,"latency_ns":78909081,"cpu_ticks":5,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":9,"latency_ns":79111493,"cpu_ticks":6,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":10,"latency_ns":77396276,"cpu_ticks":6,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":11,"latency_ns":76275830,"cpu_ticks":5,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":12,"latency_ns":76990860,"cpu_ticks":5,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":13,"latency_ns":75737215,"cpu_ticks":6,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":14,"latency_ns":77671837,"cpu_ticks":5,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":15,"latency_ns":79644529,"cpu_ticks":6,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":16,"latency_ns":81876933,"cpu_ticks":5,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":17,"latency_ns":79902872,"cpu_ticks":5,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":18,"latency_ns":75085098,"cpu_ticks":5,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":19,"latency_ns":78196045,"cpu_ticks":6,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":20,"latency_ns":80459029,"cpu_ticks":5,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":21,"latency_ns":75727845,"cpu_ticks":6,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":22,"latency_ns":78843900,"cpu_ticks":5,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":23,"latency_ns":83660165,"cpu_ticks":5,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":24,"latency_ns":78822780,"cpu_ticks":5,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":25,"latency_ns":77022190,"cpu_ticks":6,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":26,"latency_ns":79138035,"cpu_ticks":6,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":27,"latency_ns":81231537,"cpu_ticks":4,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":28,"latency_ns":83818387,"cpu_ticks":6,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"replayed_observations":8},{"repetition":29,"latency_ns":74866166,"cpu_ticks":6,"process_write_bytes":1413120,"database_storage_growth_bytes":1347240,"peak_rss_kib":61724,"replayed_observations":8}],"pipeline_latency":{"repetitions":30,"min_ns":74380819,"p50_ns":77721118,"p95_ns":83660165,"p99_ns":83818387,"max_ns":83818387,"mean_ns":78231641.46666667,"sample_stddev_ns":2673244.2399884253},"pipeline_records_per_second":102.2604134339771,"pipeline_cpu_ticks":164,"pipeline_cpu_ms":1640.0,"pipeline_process_write_bytes":42393600,"pipeline_database_storage_growth_bytes":40417200,"peak_rss_kib":61724,"no_op_raw_samples":[{"repetition":0,"latency_ns":2020693,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":1,"latency_ns":2087224,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":2,"latency_ns":1993051,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":3,"latency_ns":2108973,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":4,"latency_ns":2063174,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":5,"latency_ns":2019513,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":6,"latency_ns":2032203,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":7,"latency_ns":2028212,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":8,"latency_ns":1998163,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":9,"latency_ns":2048023,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":10,"latency_ns":2053542,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":11,"latency_ns":1996853,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":12,"latency_ns":2078683,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":13,"latency_ns":2042862,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":14,"latency_ns":1999653,"cpu_ticks":1,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":15,"latency_ns":1992361,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":16,"latency_ns":2008822,"cpu_ticks":1,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":17,"latency_ns":2037602,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":18,"latency_ns":2058912,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":19,"latency_ns":2004073,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":20,"latency_ns":2057663,"cpu_ticks":1,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":21,"latency_ns":2016412,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":22,"latency_ns":2140965,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":23,"latency_ns":2151314,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":24,"latency_ns":2149384,"cpu_ticks":1,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":25,"latency_ns":2296366,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":26,"latency_ns":2108654,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":27,"latency_ns":2115793,"cpu_ticks":1,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":28,"latency_ns":1985091,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0},{"repetition":29,"latency_ns":2060413,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61724,"replayed_observations":0}],"no_op_latency":{"repetitions":30,"min_ns":1985091,"p50_ns":2042862,"p95_ns":2151314,"p99_ns":2296366,"max_ns":2296366,"mean_ns":2058488.2333333334,"sample_stddev_ns":66276.70575735584},"no_op_cpu_ticks":5,"no_op_cpu_ms":50.0,"no_op_process_write_bytes":0,"no_op_database_storage_growth_bytes":0,"no_op_observation_count_delta":0}]},"hook_telemetry_readiness":{"artifact_kind":"readiness_and_fixture_identity_not_runtime_contract","canonical_contract":{"aggregation_dimensions":{"disposition_class":["application","transport","timeout","cancellation","unknown"],"disposition_status":["supported","degraded","unavailable","unknown","backpressured","accepted_for_replay","committed","exact_duplicate"],"excluded_untrusted_dimensions":["hook_name","disposition.reason_code"],"host":["claude","codex","cursor","hermes","kiro","other"],"retryable":[true,false,null]},"latency_semantics":{"daemon_processing_duration":{"blocker":"hook_completed_does_not_emit_daemon_processing_duration","status":"unavailable"},"hook_wall_time":{"fields":["hook_wall_time_us","hook_wall_time_ms"],"role":"host_measured_hook_span"},"host_ipc_rtt":{"aliases":["daemon_rtt"],"event_field":"daemon_rtt_us","role":"true_host_ipc_rtt"}},"metrics":{"daemon_rtt":["daemon_rtt_us","daemon_call_count"],"disposition":["disposition.status","disposition.retryable","disposition.reason_code","disposition.class"],"hook_wall_time":["hook_wall_time_us","hook_wall_time_ms"],"payload_bytes":["payload_bytes","daemon_ipc_payload_bytes"],"timeout":["timeout.budget_ms","timeout.timed_out"]},"provider_coverage":[{"host":"claude","status":"instrumented"},{"host":"codex","status":"instrumented"},{"host":"cursor","status":"instrumented"},{"host":"hermes","status":"partial"},{"host":"kiro","status":"instrumented"}],"schema_version":1},"host_fixture_measurements":[{"host":"claude","fixture_path":"tests/fixtures/host_events/claude/baseline.json","fixture_sha256":"6bb06840fe1e2716f66c02a58220c2c1a122b387cdc97af987a0b4d4427124e7","canonical_request_payload_bytes":[142,142,142,142],"disposition_vocabulary":["supported","degraded","unavailable","unknown"]},{"host":"codex","fixture_path":"tests/fixtures/host_events/codex/baseline.json","fixture_sha256":"1095677d360835fcfbaa8da978aebe57fadaf49d257a85b0e0b8779f8a765ef7","canonical_request_payload_bytes":[104,104,104,104],"disposition_vocabulary":["supported","degraded","unavailable","unknown"]},{"host":"cursor","fixture_path":"tests/fixtures/host_events/cursor/baseline.json","fixture_sha256":"e80d6a498ccb300aaee76717f24bdd843722fda037156a980c44ebf43b67370f","canonical_request_payload_bytes":[104,104,104,104],"disposition_vocabulary":["supported","degraded","unavailable","unknown"]},{"host":"hermes","fixture_path":"tests/fixtures/host_events/hermes/baseline.json","fixture_sha256":"911c9ca516ccdb8320b137bececd38c0826eafdd3a369ac8939d5359241bb49c","canonical_request_payload_bytes":[236,236,236,236],"disposition_vocabulary":["supported","degraded","unavailable","unknown"]},{"host":"kiro","fixture_path":"tests/fixtures/host_events/kiro/baseline.json","fixture_sha256":"efaab57d6d9efc0bda7a7ed8a57d236599409d5abf9c2eed405cd7725b5882bc","canonical_request_payload_bytes":[118,118,118,118],"disposition_vocabulary":["supported","degraded","unavailable","unknown"]}],"cursor_catch_up_ingest_max_bytes":2097152,"readiness_distributions":{"schema_version":1,"source_event":"hook_completed","collection_status":"no_samples","input_rows_received":0,"input_rows_processed":0,"input_rows_dropped_at_cap":0,"events_considered":0,"events_skipped_non_completed":0,"hook_wall_time_distribution":[],"host_ipc_rtt_distribution":[],"payload_bytes_distribution":[],"timeout_outcomes_by_host":[],"disposition_counts_by_host":[],"unavailable_metrics":[{"metric":"daemon_processing_duration_distribution","status":"unavailable","blocker":"hook_completed_does_not_emit_daemon_processing_duration"}],"bounds":{"max_input_rows":10000,"host_buckets":6,"max_disposition_series":720,"latency_buckets":13,"bytes_buckets":8},"rows_folded_to_other_host":0,"disposition_values_folded_to_unknown":0},"unavailable_measurements":[{"metric":"daemon_processing_duration_distribution","status":"unavailable","required_collection_step":"hook_completed emits host-measured daemon_rtt_us (TRUE host IPC RTT) only; daemon-internal processing duration is not present on the event contract"}]},"stale_reason":"superseded after the checked-in workload identity changed","superseded_by_workload_schema_version":3} diff --git a/benchmark_data/claude-observation/result-2026-07-16-8d53b4a9.json b/benchmark_data/claude-observation/result-2026-07-16-8d53b4a9.json deleted file mode 100644 index a34e4d46a7..0000000000 --- a/benchmark_data/claude-observation/result-2026-07-16-8d53b4a9.json +++ /dev/null @@ -1 +0,0 @@ -{"schema_version":2,"workload_id":"pr5-observation-pipeline-v1","evidence_status":"historical_stale","stale_reason":"superseded by PR6 provider-ingestion correctness changes","superseded_by_workload_schema_version":3,"workload_identity":{"manifest_path":"benchmarks/pr5-observation/workload-v1.json","manifest_sha256":"5a5087d7520b76cc96a3e0d058adab9a1b45fac717659ade6f8ae14ec0453736","harness_paths":["src/sessions/claude_observation_benchmark.rs","src/sessions/claude_observation_benchmark/artifact.rs","src/sessions/claude_observation_benchmark/baseline.rs","src/sessions/claude_observation_benchmark/manifest.rs","src/sessions/claude_observation_benchmark/metrics.rs","src/sessions/claude_observation_benchmark/model.rs","src/sessions/claude_observation_benchmark/runner.rs","src/sessions/claude_observation_benchmark/tests.rs"],"harness_sha256":"f9746f779d18d13d58ffa2758be1513ca55da6fc15e76985eca7323c95b1c43b","native_fixture_paths":["tests/fixtures/provider_normalization/claude/assistant_tool_use.input.json","tests/fixtures/provider_normalization/codex/session_meta.input.json","tests/fixtures/provider_normalization/codex/agent_message.input.json","tests/fixtures/provider_normalization/cursor/tool_use.input.json","tests/fixtures/provider_normalization/hermes/assistant_tool_call.input.json","tests/fixtures/provider_normalization/kiro/workspace_session.input.json","tests/fixtures/transcript_golden/cline_like/input/api_conversation_history.json","tests/fixtures/transcript_golden/cline_like/input/task_metadata.json"],"native_fixtures_sha256":"a33854bc6c64bd964ee4665459296346fe522f0fe4f7bc9911bb3c5474de77d5"},"build_identity":{"commit":"8d53b4a93d67b3e4264e18f353b941ea4d3ea548","tree":"da6d3c6692518a2895f9dac4c708ea8e49f46ffb","profile":"release","source_mode":"git_archive_read_only_v1","source_manifest_sha256":"1aff9e9d31c1fa5790947f93dc20e37a588f419074a78d1489ab34a7250a4e80","source_file_count":1576,"target_triple":"x86_64-unknown-linux-gnu","rustc_version":"rustc 1.95.0 (59807616e 2026-04-14)\nbinary: rustc\ncommit-hash: 59807616e1fa2540724bfbac14d7976d7e4a3860\ncommit-date: 2026-04-14\nhost: x86_64-unknown-linux-gnu\nrelease: 1.95.0\nLLVM version: 22.1.2","cargo_version":"cargo 1.95.0 (f2d3ce0bd 2026-03-21)","rustflags":"normalized-empty","rustc_wrapper":"environment:none;cargo_config:36aad4637b36949700f277b0b6d18d647d507944","rustc_workspace_wrapper":"environment:none;cargo_config:36aad4637b36949700f277b0b6d18d647d507944","cargo_config_identity":"36aad4637b36949700f277b0b6d18d647d507944","data_root_basis":"current_executable_parent","executable_sha256":"0ff211c0ee7e0fa4a91fb05d3d9570d9c99f6ded76127bd7be1778d83fcf223d","executable_size_bytes":220454232},"git_before":{"commit":"8d53b4a93d67b3e4264e18f353b941ea4d3ea548","tree":"da6d3c6692518a2895f9dac4c708ea8e49f46ffb","dirty":false},"git_after":{"commit":"8d53b4a93d67b3e4264e18f353b941ea4d3ea548","tree":"da6d3c6692518a2895f9dac4c708ea8e49f46ffb","dirty":false},"command":"cargo test --quiet --release --lib sessions::claude_observation_benchmark::production_observation_pipeline_baseline -- --ignored --exact --nocapture --test-threads=1","rustc":"rustc 1.95.0 (59807616e 2026-04-14)\nbinary: rustc\ncommit-hash: 59807616e1fa2540724bfbac14d7976d7e4a3860\ncommit-date: 2026-04-14\nhost: x86_64-unknown-linux-gnu\nrelease: 1.95.0\nLLVM version: 22.1.2","cargo":"cargo 1.95.0 (f2d3ce0bd 2026-03-21)","kernel":"Linux 6.8.0-134-generic x86_64 GNU/Linux","cpu_identity":"AMD EPYC 7742 64-Core Processor","logical_cpu_count":64,"memory_total_kib":151845828,"clock_ticks_per_second":100,"warmup_repetitions":3,"measured_repetitions":30,"records_per_repetition":64,"measured_records":1920,"pipeline_raw_samples":[{"repetition":0,"latency_ns":622249249,"cpu_ticks":43,"process_write_bytes":11182080,"database_storage_growth_bytes":4659520,"peak_rss_kib":58092,"replayed_observations":64},{"repetition":1,"latency_ns":629636383,"cpu_ticks":41,"process_write_bytes":11182080,"database_storage_growth_bytes":4659520,"peak_rss_kib":58092,"replayed_observations":64},{"repetition":2,"latency_ns":619246222,"cpu_ticks":41,"process_write_bytes":11190272,"database_storage_growth_bytes":4663640,"peak_rss_kib":58092,"replayed_observations":64},{"repetition":3,"latency_ns":614696154,"cpu_ticks":42,"process_write_bytes":11182080,"database_storage_growth_bytes":4659520,"peak_rss_kib":58092,"replayed_observations":64},{"repetition":4,"latency_ns":613137214,"cpu_ticks":40,"process_write_bytes":11182080,"database_storage_growth_bytes":4659520,"peak_rss_kib":58092,"replayed_observations":64},{"repetition":5,"latency_ns":605160041,"cpu_ticks":42,"process_write_bytes":11177984,"database_storage_growth_bytes":4659520,"peak_rss_kib":58092,"replayed_observations":64},{"repetition":6,"latency_ns":601365765,"cpu_ticks":43,"process_write_bytes":11194368,"database_storage_growth_bytes":4618368,"peak_rss_kib":58092,"replayed_observations":64},{"repetition":7,"latency_ns":618451690,"cpu_ticks":42,"process_write_bytes":11173888,"database_storage_growth_bytes":4659520,"peak_rss_kib":58092,"replayed_observations":64},{"repetition":8,"latency_ns":618523129,"cpu_ticks":43,"process_write_bytes":11182080,"database_storage_growth_bytes":4659520,"peak_rss_kib":58092,"replayed_observations":64},{"repetition":9,"latency_ns":629519798,"cpu_ticks":42,"process_write_bytes":11182080,"database_storage_growth_bytes":4659520,"peak_rss_kib":58092,"replayed_observations":64},{"repetition":10,"latency_ns":641790844,"cpu_ticks":43,"process_write_bytes":11194368,"database_storage_growth_bytes":4663640,"peak_rss_kib":58092,"replayed_observations":64},{"repetition":11,"latency_ns":631578365,"cpu_ticks":41,"process_write_bytes":11177984,"database_storage_growth_bytes":4659520,"peak_rss_kib":58092,"replayed_observations":64},{"repetition":12,"latency_ns":600778834,"cpu_ticks":42,"process_write_bytes":11186176,"database_storage_growth_bytes":4659520,"peak_rss_kib":58092,"replayed_observations":64},{"repetition":13,"latency_ns":602431405,"cpu_ticks":42,"process_write_bytes":11182080,"database_storage_growth_bytes":4659520,"peak_rss_kib":58092,"replayed_observations":64},{"repetition":14,"latency_ns":605130808,"cpu_ticks":42,"process_write_bytes":11182080,"database_storage_growth_bytes":4659520,"peak_rss_kib":58092,"replayed_observations":64},{"repetition":15,"latency_ns":610325844,"cpu_ticks":42,"process_write_bytes":11177984,"database_storage_growth_bytes":4659520,"peak_rss_kib":58092,"replayed_observations":64},{"repetition":16,"latency_ns":621241672,"cpu_ticks":42,"process_write_bytes":11186176,"database_storage_growth_bytes":4663640,"peak_rss_kib":58092,"replayed_observations":64},{"repetition":17,"latency_ns":608928844,"cpu_ticks":42,"process_write_bytes":11182080,"database_storage_growth_bytes":4659520,"peak_rss_kib":58092,"replayed_observations":64},{"repetition":18,"latency_ns":599103221,"cpu_ticks":42,"process_write_bytes":11177984,"database_storage_growth_bytes":4659520,"peak_rss_kib":58092,"replayed_observations":64},{"repetition":19,"latency_ns":595867570,"cpu_ticks":41,"process_write_bytes":11182080,"database_storage_growth_bytes":4659520,"peak_rss_kib":58092,"replayed_observations":64},{"repetition":20,"latency_ns":605353130,"cpu_ticks":42,"process_write_bytes":11182080,"database_storage_growth_bytes":4659520,"peak_rss_kib":58092,"replayed_observations":64},{"repetition":21,"latency_ns":608384839,"cpu_ticks":42,"process_write_bytes":11177984,"database_storage_growth_bytes":4659520,"peak_rss_kib":58092,"replayed_observations":64},{"repetition":22,"latency_ns":591561044,"cpu_ticks":41,"process_write_bytes":11177984,"database_storage_growth_bytes":4659520,"peak_rss_kib":58092,"replayed_observations":64},{"repetition":23,"latency_ns":599264492,"cpu_ticks":41,"process_write_bytes":11190272,"database_storage_growth_bytes":4663640,"peak_rss_kib":58092,"replayed_observations":64},{"repetition":24,"latency_ns":617369351,"cpu_ticks":42,"process_write_bytes":11190272,"database_storage_growth_bytes":4663640,"peak_rss_kib":58092,"replayed_observations":64},{"repetition":25,"latency_ns":610344510,"cpu_ticks":42,"process_write_bytes":11182080,"database_storage_growth_bytes":4659520,"peak_rss_kib":58092,"replayed_observations":64},{"repetition":26,"latency_ns":602626972,"cpu_ticks":42,"process_write_bytes":11182080,"database_storage_growth_bytes":4659520,"peak_rss_kib":58092,"replayed_observations":64},{"repetition":27,"latency_ns":617046066,"cpu_ticks":43,"process_write_bytes":11182080,"database_storage_growth_bytes":4659520,"peak_rss_kib":58092,"replayed_observations":64},{"repetition":28,"latency_ns":634643768,"cpu_ticks":42,"process_write_bytes":11186176,"database_storage_growth_bytes":4663640,"peak_rss_kib":58092,"replayed_observations":64},{"repetition":29,"latency_ns":630670457,"cpu_ticks":41,"process_write_bytes":11177984,"database_storage_growth_bytes":4659520,"peak_rss_kib":58092,"replayed_observations":64}],"pipeline_batch_latency":{"repetitions":30,"min_ns":591561044,"p50_ns":610344510,"p95_ns":634643768,"p99_ns":641790844,"max_ns":641790844,"mean_ns":613547589.3666667,"sample_stddev_ns":12675522.702128785},"pipeline_records_per_second":104.3113869391352,"pipeline_cpu_ticks":1256,"pipeline_cpu_ms":12560.0,"pipeline_process_write_bytes":335486976,"database_storage_growth_bytes":139769168,"peak_rss_kib":58092,"no_op_replay_raw_samples":[{"repetition":0,"latency_ns":211602,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":58092,"replayed_observations":0},{"repetition":1,"latency_ns":212394,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":58092,"replayed_observations":0},{"repetition":2,"latency_ns":211083,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":58092,"replayed_observations":0},{"repetition":3,"latency_ns":209463,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":58092,"replayed_observations":0},{"repetition":4,"latency_ns":201403,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":58092,"replayed_observations":0},{"repetition":5,"latency_ns":231813,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":58092,"replayed_observations":0},{"repetition":6,"latency_ns":193221,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":58092,"replayed_observations":0},{"repetition":7,"latency_ns":194213,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":58092,"replayed_observations":0},{"repetition":8,"latency_ns":217613,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":58092,"replayed_observations":0},{"repetition":9,"latency_ns":221502,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":58092,"replayed_observations":0},{"repetition":10,"latency_ns":229293,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":58092,"replayed_observations":0},{"repetition":11,"latency_ns":217862,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":58092,"replayed_observations":0},{"repetition":12,"latency_ns":210532,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":58092,"replayed_observations":0},{"repetition":13,"latency_ns":246762,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":58092,"replayed_observations":0},{"repetition":14,"latency_ns":201303,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":58092,"replayed_observations":0},{"repetition":15,"latency_ns":211052,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":58092,"replayed_observations":0},{"repetition":16,"latency_ns":209552,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":58092,"replayed_observations":0},{"repetition":17,"latency_ns":216532,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":58092,"replayed_observations":0},{"repetition":18,"latency_ns":211494,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":58092,"replayed_observations":0},{"repetition":19,"latency_ns":194992,"cpu_ticks":1,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":58092,"replayed_observations":0},{"repetition":20,"latency_ns":211973,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":58092,"replayed_observations":0},{"repetition":21,"latency_ns":203043,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":58092,"replayed_observations":0},{"repetition":22,"latency_ns":202792,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":58092,"replayed_observations":0},{"repetition":23,"latency_ns":217083,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":58092,"replayed_observations":0},{"repetition":24,"latency_ns":218711,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":58092,"replayed_observations":0},{"repetition":25,"latency_ns":201153,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":58092,"replayed_observations":0},{"repetition":26,"latency_ns":215063,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":58092,"replayed_observations":0},{"repetition":27,"latency_ns":191173,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":58092,"replayed_observations":0},{"repetition":28,"latency_ns":205533,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":58092,"replayed_observations":0},{"repetition":29,"latency_ns":235212,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":58092,"replayed_observations":0}],"no_op_replay_latency":{"repetitions":30,"min_ns":191173,"p50_ns":211083,"p95_ns":235212,"p99_ns":246762,"max_ns":246762,"mean_ns":211847.23333333334,"sample_stddev_ns":12669.844218848353},"no_op_replay_cpu_ticks":1,"no_op_replay_cpu_ms":10.0,"no_op_replay_process_write_bytes":0,"no_op_replay_database_storage_growth_bytes":0,"no_op_replay_observation_count_delta":0,"no_op_replay_totals":{"source_bytes_scanned":0,"sessions_upserted":0,"messages_upserted":0,"observations_committed":0,"observation_duplicates":0,"cursor_advances":0,"cursor_duplicates":0,"records_rejected":0,"records_quarantined":0,"projections_completed":0,"projections_skipped":0,"projection_duplicates":0,"deferred_sources":0},"provider_observation_performance":{"schema_version":1,"workload_id":"pr5-observation-pipeline-v1","fairness":{"policy":"round_robin_v1","rounds":30,"providers_per_round":8,"max_provider_turn_distance":8,"turns":[{"round":0,"position":0,"provider":"claude"},{"round":0,"position":1,"provider":"codex"},{"round":0,"position":2,"provider":"cursor"},{"round":0,"position":3,"provider":"hermes"},{"round":0,"position":4,"provider":"kiro"},{"round":0,"position":5,"provider":"cline"},{"round":0,"position":6,"provider":"roo-code"},{"round":0,"position":7,"provider":"kilo"},{"round":1,"position":0,"provider":"claude"},{"round":1,"position":1,"provider":"codex"},{"round":1,"position":2,"provider":"cursor"},{"round":1,"position":3,"provider":"hermes"},{"round":1,"position":4,"provider":"kiro"},{"round":1,"position":5,"provider":"cline"},{"round":1,"position":6,"provider":"roo-code"},{"round":1,"position":7,"provider":"kilo"},{"round":2,"position":0,"provider":"claude"},{"round":2,"position":1,"provider":"codex"},{"round":2,"position":2,"provider":"cursor"},{"round":2,"position":3,"provider":"hermes"},{"round":2,"position":4,"provider":"kiro"},{"round":2,"position":5,"provider":"cline"},{"round":2,"position":6,"provider":"roo-code"},{"round":2,"position":7,"provider":"kilo"},{"round":3,"position":0,"provider":"claude"},{"round":3,"position":1,"provider":"codex"},{"round":3,"position":2,"provider":"cursor"},{"round":3,"position":3,"provider":"hermes"},{"round":3,"position":4,"provider":"kiro"},{"round":3,"position":5,"provider":"cline"},{"round":3,"position":6,"provider":"roo-code"},{"round":3,"position":7,"provider":"kilo"},{"round":4,"position":0,"provider":"claude"},{"round":4,"position":1,"provider":"codex"},{"round":4,"position":2,"provider":"cursor"},{"round":4,"position":3,"provider":"hermes"},{"round":4,"position":4,"provider":"kiro"},{"round":4,"position":5,"provider":"cline"},{"round":4,"position":6,"provider":"roo-code"},{"round":4,"position":7,"provider":"kilo"},{"round":5,"position":0,"provider":"claude"},{"round":5,"position":1,"provider":"codex"},{"round":5,"position":2,"provider":"cursor"},{"round":5,"position":3,"provider":"hermes"},{"round":5,"position":4,"provider":"kiro"},{"round":5,"position":5,"provider":"cline"},{"round":5,"position":6,"provider":"roo-code"},{"round":5,"position":7,"provider":"kilo"},{"round":6,"position":0,"provider":"claude"},{"round":6,"position":1,"provider":"codex"},{"round":6,"position":2,"provider":"cursor"},{"round":6,"position":3,"provider":"hermes"},{"round":6,"position":4,"provider":"kiro"},{"round":6,"position":5,"provider":"cline"},{"round":6,"position":6,"provider":"roo-code"},{"round":6,"position":7,"provider":"kilo"},{"round":7,"position":0,"provider":"claude"},{"round":7,"position":1,"provider":"codex"},{"round":7,"position":2,"provider":"cursor"},{"round":7,"position":3,"provider":"hermes"},{"round":7,"position":4,"provider":"kiro"},{"round":7,"position":5,"provider":"cline"},{"round":7,"position":6,"provider":"roo-code"},{"round":7,"position":7,"provider":"kilo"},{"round":8,"position":0,"provider":"claude"},{"round":8,"position":1,"provider":"codex"},{"round":8,"position":2,"provider":"cursor"},{"round":8,"position":3,"provider":"hermes"},{"round":8,"position":4,"provider":"kiro"},{"round":8,"position":5,"provider":"cline"},{"round":8,"position":6,"provider":"roo-code"},{"round":8,"position":7,"provider":"kilo"},{"round":9,"position":0,"provider":"claude"},{"round":9,"position":1,"provider":"codex"},{"round":9,"position":2,"provider":"cursor"},{"round":9,"position":3,"provider":"hermes"},{"round":9,"position":4,"provider":"kiro"},{"round":9,"position":5,"provider":"cline"},{"round":9,"position":6,"provider":"roo-code"},{"round":9,"position":7,"provider":"kilo"},{"round":10,"position":0,"provider":"claude"},{"round":10,"position":1,"provider":"codex"},{"round":10,"position":2,"provider":"cursor"},{"round":10,"position":3,"provider":"hermes"},{"round":10,"position":4,"provider":"kiro"},{"round":10,"position":5,"provider":"cline"},{"round":10,"position":6,"provider":"roo-code"},{"round":10,"position":7,"provider":"kilo"},{"round":11,"position":0,"provider":"claude"},{"round":11,"position":1,"provider":"codex"},{"round":11,"position":2,"provider":"cursor"},{"round":11,"position":3,"provider":"hermes"},{"round":11,"position":4,"provider":"kiro"},{"round":11,"position":5,"provider":"cline"},{"round":11,"position":6,"provider":"roo-code"},{"round":11,"position":7,"provider":"kilo"},{"round":12,"position":0,"provider":"claude"},{"round":12,"position":1,"provider":"codex"},{"round":12,"position":2,"provider":"cursor"},{"round":12,"position":3,"provider":"hermes"},{"round":12,"position":4,"provider":"kiro"},{"round":12,"position":5,"provider":"cline"},{"round":12,"position":6,"provider":"roo-code"},{"round":12,"position":7,"provider":"kilo"},{"round":13,"position":0,"provider":"claude"},{"round":13,"position":1,"provider":"codex"},{"round":13,"position":2,"provider":"cursor"},{"round":13,"position":3,"provider":"hermes"},{"round":13,"position":4,"provider":"kiro"},{"round":13,"position":5,"provider":"cline"},{"round":13,"position":6,"provider":"roo-code"},{"round":13,"position":7,"provider":"kilo"},{"round":14,"position":0,"provider":"claude"},{"round":14,"position":1,"provider":"codex"},{"round":14,"position":2,"provider":"cursor"},{"round":14,"position":3,"provider":"hermes"},{"round":14,"position":4,"provider":"kiro"},{"round":14,"position":5,"provider":"cline"},{"round":14,"position":6,"provider":"roo-code"},{"round":14,"position":7,"provider":"kilo"},{"round":15,"position":0,"provider":"claude"},{"round":15,"position":1,"provider":"codex"},{"round":15,"position":2,"provider":"cursor"},{"round":15,"position":3,"provider":"hermes"},{"round":15,"position":4,"provider":"kiro"},{"round":15,"position":5,"provider":"cline"},{"round":15,"position":6,"provider":"roo-code"},{"round":15,"position":7,"provider":"kilo"},{"round":16,"position":0,"provider":"claude"},{"round":16,"position":1,"provider":"codex"},{"round":16,"position":2,"provider":"cursor"},{"round":16,"position":3,"provider":"hermes"},{"round":16,"position":4,"provider":"kiro"},{"round":16,"position":5,"provider":"cline"},{"round":16,"position":6,"provider":"roo-code"},{"round":16,"position":7,"provider":"kilo"},{"round":17,"position":0,"provider":"claude"},{"round":17,"position":1,"provider":"codex"},{"round":17,"position":2,"provider":"cursor"},{"round":17,"position":3,"provider":"hermes"},{"round":17,"position":4,"provider":"kiro"},{"round":17,"position":5,"provider":"cline"},{"round":17,"position":6,"provider":"roo-code"},{"round":17,"position":7,"provider":"kilo"},{"round":18,"position":0,"provider":"claude"},{"round":18,"position":1,"provider":"codex"},{"round":18,"position":2,"provider":"cursor"},{"round":18,"position":3,"provider":"hermes"},{"round":18,"position":4,"provider":"kiro"},{"round":18,"position":5,"provider":"cline"},{"round":18,"position":6,"provider":"roo-code"},{"round":18,"position":7,"provider":"kilo"},{"round":19,"position":0,"provider":"claude"},{"round":19,"position":1,"provider":"codex"},{"round":19,"position":2,"provider":"cursor"},{"round":19,"position":3,"provider":"hermes"},{"round":19,"position":4,"provider":"kiro"},{"round":19,"position":5,"provider":"cline"},{"round":19,"position":6,"provider":"roo-code"},{"round":19,"position":7,"provider":"kilo"},{"round":20,"position":0,"provider":"claude"},{"round":20,"position":1,"provider":"codex"},{"round":20,"position":2,"provider":"cursor"},{"round":20,"position":3,"provider":"hermes"},{"round":20,"position":4,"provider":"kiro"},{"round":20,"position":5,"provider":"cline"},{"round":20,"position":6,"provider":"roo-code"},{"round":20,"position":7,"provider":"kilo"},{"round":21,"position":0,"provider":"claude"},{"round":21,"position":1,"provider":"codex"},{"round":21,"position":2,"provider":"cursor"},{"round":21,"position":3,"provider":"hermes"},{"round":21,"position":4,"provider":"kiro"},{"round":21,"position":5,"provider":"cline"},{"round":21,"position":6,"provider":"roo-code"},{"round":21,"position":7,"provider":"kilo"},{"round":22,"position":0,"provider":"claude"},{"round":22,"position":1,"provider":"codex"},{"round":22,"position":2,"provider":"cursor"},{"round":22,"position":3,"provider":"hermes"},{"round":22,"position":4,"provider":"kiro"},{"round":22,"position":5,"provider":"cline"},{"round":22,"position":6,"provider":"roo-code"},{"round":22,"position":7,"provider":"kilo"},{"round":23,"position":0,"provider":"claude"},{"round":23,"position":1,"provider":"codex"},{"round":23,"position":2,"provider":"cursor"},{"round":23,"position":3,"provider":"hermes"},{"round":23,"position":4,"provider":"kiro"},{"round":23,"position":5,"provider":"cline"},{"round":23,"position":6,"provider":"roo-code"},{"round":23,"position":7,"provider":"kilo"},{"round":24,"position":0,"provider":"claude"},{"round":24,"position":1,"provider":"codex"},{"round":24,"position":2,"provider":"cursor"},{"round":24,"position":3,"provider":"hermes"},{"round":24,"position":4,"provider":"kiro"},{"round":24,"position":5,"provider":"cline"},{"round":24,"position":6,"provider":"roo-code"},{"round":24,"position":7,"provider":"kilo"},{"round":25,"position":0,"provider":"claude"},{"round":25,"position":1,"provider":"codex"},{"round":25,"position":2,"provider":"cursor"},{"round":25,"position":3,"provider":"hermes"},{"round":25,"position":4,"provider":"kiro"},{"round":25,"position":5,"provider":"cline"},{"round":25,"position":6,"provider":"roo-code"},{"round":25,"position":7,"provider":"kilo"},{"round":26,"position":0,"provider":"claude"},{"round":26,"position":1,"provider":"codex"},{"round":26,"position":2,"provider":"cursor"},{"round":26,"position":3,"provider":"hermes"},{"round":26,"position":4,"provider":"kiro"},{"round":26,"position":5,"provider":"cline"},{"round":26,"position":6,"provider":"roo-code"},{"round":26,"position":7,"provider":"kilo"},{"round":27,"position":0,"provider":"claude"},{"round":27,"position":1,"provider":"codex"},{"round":27,"position":2,"provider":"cursor"},{"round":27,"position":3,"provider":"hermes"},{"round":27,"position":4,"provider":"kiro"},{"round":27,"position":5,"provider":"cline"},{"round":27,"position":6,"provider":"roo-code"},{"round":27,"position":7,"provider":"kilo"},{"round":28,"position":0,"provider":"claude"},{"round":28,"position":1,"provider":"codex"},{"round":28,"position":2,"provider":"cursor"},{"round":28,"position":3,"provider":"hermes"},{"round":28,"position":4,"provider":"kiro"},{"round":28,"position":5,"provider":"cline"},{"round":28,"position":6,"provider":"roo-code"},{"round":28,"position":7,"provider":"kilo"},{"round":29,"position":0,"provider":"claude"},{"round":29,"position":1,"provider":"codex"},{"round":29,"position":2,"provider":"cursor"},{"round":29,"position":3,"provider":"hermes"},{"round":29,"position":4,"provider":"kiro"},{"round":29,"position":5,"provider":"cline"},{"round":29,"position":6,"provider":"roo-code"},{"round":29,"position":7,"provider":"kilo"}]},"providers":[{"provider":"claude","production_path":"claude_production_observation_pipeline_v1","pipeline_scope":"production_parse_normalize_sanitize_commit_project_and_replay","measured_repetitions":30,"observations_per_repetition":8,"replay_limit":9,"max_backlog_records":8,"parse":{"scope":"native_provider_format_decode","raw_samples":[{"repetition":0,"latency_ns":65330,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":60076,"record_count":8},{"repetition":1,"latency_ns":40761,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":2,"latency_ns":39611,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":3,"latency_ns":38880,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":4,"latency_ns":39921,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":5,"latency_ns":48530,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":6,"latency_ns":44551,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":7,"latency_ns":38401,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":8,"latency_ns":39651,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":9,"latency_ns":47341,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":10,"latency_ns":40451,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":11,"latency_ns":42040,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":12,"latency_ns":37420,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":13,"latency_ns":55191,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":14,"latency_ns":49121,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":15,"latency_ns":48481,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":16,"latency_ns":36560,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":17,"latency_ns":43051,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":18,"latency_ns":40110,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":19,"latency_ns":36961,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":20,"latency_ns":39012,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":21,"latency_ns":38371,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":22,"latency_ns":39770,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":23,"latency_ns":38581,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":24,"latency_ns":52740,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":25,"latency_ns":46700,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":26,"latency_ns":39200,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":27,"latency_ns":49219,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":28,"latency_ns":75221,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":29,"latency_ns":37880,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8}],"latency":{"repetitions":30,"min_ns":36560,"p50_ns":40110,"p95_ns":65330,"p99_ns":75221,"max_ns":75221,"mean_ns":44301.9,"sample_stddev_ns":8728.245493995244},"cpu_ticks":0,"cpu_ms":0.0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732},"commit":{"scope":"production_adapter_parse_normalize_sanitize_commit_and_project","raw_samples":[{"repetition":0,"latency_ns":77057695,"cpu_ticks":5,"process_write_bytes":1298432,"database_storage_growth_bytes":1231880,"peak_rss_kib":60268,"record_count":8},{"repetition":1,"latency_ns":74654534,"cpu_ticks":6,"process_write_bytes":1298432,"database_storage_growth_bytes":1231880,"peak_rss_kib":61732,"record_count":8},{"repetition":2,"latency_ns":75587326,"cpu_ticks":5,"process_write_bytes":1298432,"database_storage_growth_bytes":1231880,"peak_rss_kib":61732,"record_count":8},{"repetition":3,"latency_ns":77173987,"cpu_ticks":6,"process_write_bytes":1298432,"database_storage_growth_bytes":1231880,"peak_rss_kib":61732,"record_count":8},{"repetition":4,"latency_ns":76422556,"cpu_ticks":6,"process_write_bytes":1298432,"database_storage_growth_bytes":1231880,"peak_rss_kib":61732,"record_count":8},{"repetition":5,"latency_ns":78664345,"cpu_ticks":5,"process_write_bytes":1298432,"database_storage_growth_bytes":1231880,"peak_rss_kib":61732,"record_count":8},{"repetition":6,"latency_ns":73815323,"cpu_ticks":6,"process_write_bytes":1298432,"database_storage_growth_bytes":1231880,"peak_rss_kib":61732,"record_count":8},{"repetition":7,"latency_ns":79409585,"cpu_ticks":6,"process_write_bytes":1298432,"database_storage_growth_bytes":1231880,"peak_rss_kib":61732,"record_count":8},{"repetition":8,"latency_ns":74626774,"cpu_ticks":5,"process_write_bytes":1298432,"database_storage_growth_bytes":1231880,"peak_rss_kib":61732,"record_count":8},{"repetition":9,"latency_ns":77298897,"cpu_ticks":6,"process_write_bytes":1298432,"database_storage_growth_bytes":1231880,"peak_rss_kib":61732,"record_count":8},{"repetition":10,"latency_ns":80021221,"cpu_ticks":5,"process_write_bytes":1298432,"database_storage_growth_bytes":1231880,"peak_rss_kib":61732,"record_count":8},{"repetition":11,"latency_ns":76176713,"cpu_ticks":5,"process_write_bytes":1298432,"database_storage_growth_bytes":1231880,"peak_rss_kib":61732,"record_count":8},{"repetition":12,"latency_ns":77460688,"cpu_ticks":5,"process_write_bytes":1298432,"database_storage_growth_bytes":1231880,"peak_rss_kib":61732,"record_count":8},{"repetition":13,"latency_ns":76331256,"cpu_ticks":5,"process_write_bytes":1298432,"database_storage_growth_bytes":1231880,"peak_rss_kib":61732,"record_count":8},{"repetition":14,"latency_ns":78708234,"cpu_ticks":5,"process_write_bytes":1298432,"database_storage_growth_bytes":1231880,"peak_rss_kib":61732,"record_count":8},{"repetition":15,"latency_ns":80707380,"cpu_ticks":6,"process_write_bytes":1298432,"database_storage_growth_bytes":1231880,"peak_rss_kib":61732,"record_count":8},{"repetition":16,"latency_ns":77017282,"cpu_ticks":5,"process_write_bytes":1298432,"database_storage_growth_bytes":1231880,"peak_rss_kib":61732,"record_count":8},{"repetition":17,"latency_ns":75251240,"cpu_ticks":5,"process_write_bytes":1298432,"database_storage_growth_bytes":1231880,"peak_rss_kib":61732,"record_count":8},{"repetition":18,"latency_ns":76662287,"cpu_ticks":5,"process_write_bytes":1298432,"database_storage_growth_bytes":1231880,"peak_rss_kib":61732,"record_count":8},{"repetition":19,"latency_ns":77046954,"cpu_ticks":6,"process_write_bytes":1298432,"database_storage_growth_bytes":1231880,"peak_rss_kib":61732,"record_count":8},{"repetition":20,"latency_ns":76092970,"cpu_ticks":5,"process_write_bytes":1298432,"database_storage_growth_bytes":1231880,"peak_rss_kib":61732,"record_count":8},{"repetition":21,"latency_ns":77274126,"cpu_ticks":5,"process_write_bytes":1298432,"database_storage_growth_bytes":1231880,"peak_rss_kib":61732,"record_count":8},{"repetition":22,"latency_ns":75196200,"cpu_ticks":6,"process_write_bytes":1298432,"database_storage_growth_bytes":1231880,"peak_rss_kib":61732,"record_count":8},{"repetition":23,"latency_ns":76264313,"cpu_ticks":5,"process_write_bytes":1298432,"database_storage_growth_bytes":1231880,"peak_rss_kib":61732,"record_count":8},{"repetition":24,"latency_ns":76878651,"cpu_ticks":6,"process_write_bytes":1298432,"database_storage_growth_bytes":1231880,"peak_rss_kib":61732,"record_count":8},{"repetition":25,"latency_ns":79555735,"cpu_ticks":5,"process_write_bytes":1298432,"database_storage_growth_bytes":1231880,"peak_rss_kib":61732,"record_count":8},{"repetition":26,"latency_ns":74662371,"cpu_ticks":6,"process_write_bytes":1298432,"database_storage_growth_bytes":1231880,"peak_rss_kib":61732,"record_count":8},{"repetition":27,"latency_ns":81144994,"cpu_ticks":6,"process_write_bytes":1298432,"database_storage_growth_bytes":1231880,"peak_rss_kib":61732,"record_count":8},{"repetition":28,"latency_ns":81402388,"cpu_ticks":5,"process_write_bytes":1298432,"database_storage_growth_bytes":1231880,"peak_rss_kib":61732,"record_count":8},{"repetition":29,"latency_ns":77731240,"cpu_ticks":6,"process_write_bytes":1298432,"database_storage_growth_bytes":1231880,"peak_rss_kib":61732,"record_count":8}],"latency":{"repetitions":30,"min_ns":73815323,"p50_ns":77017282,"p95_ns":81144994,"p99_ns":81402388,"max_ns":81402388,"mean_ns":77209908.83333333,"sample_stddev_ns":1992095.397514301},"cpu_ticks":163,"cpu_ms":1630.0,"process_write_bytes":38952960,"database_storage_growth_bytes":36956400,"peak_rss_kib":61732},"replay":{"scope":"authoritative_store_bounded_replay","raw_samples":[{"repetition":0,"latency_ns":300093,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":60268,"record_count":8},{"repetition":1,"latency_ns":298213,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":2,"latency_ns":328114,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":3,"latency_ns":325084,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":4,"latency_ns":324914,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":5,"latency_ns":320683,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":6,"latency_ns":302724,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":7,"latency_ns":301235,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":8,"latency_ns":298933,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":9,"latency_ns":306804,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":10,"latency_ns":324694,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":11,"latency_ns":328804,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":12,"latency_ns":301914,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":13,"latency_ns":304165,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":14,"latency_ns":308753,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":15,"latency_ns":310125,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":16,"latency_ns":300283,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":17,"latency_ns":300974,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":18,"latency_ns":320425,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":19,"latency_ns":299944,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":20,"latency_ns":338314,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":21,"latency_ns":299734,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":22,"latency_ns":321775,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":23,"latency_ns":321364,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":24,"latency_ns":324694,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":25,"latency_ns":323684,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":26,"latency_ns":317584,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":27,"latency_ns":310854,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":28,"latency_ns":371634,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":29,"latency_ns":324084,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8}],"latency":{"repetitions":30,"min_ns":298213,"p50_ns":310854,"p95_ns":338314,"p99_ns":371634,"max_ns":371634,"mean_ns":315353.3,"sample_stddev_ns":15780.374996964667},"cpu_ticks":0,"cpu_ms":0.0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732},"pipeline_raw_samples":[{"repetition":0,"latency_ns":77522341,"cpu_ticks":5,"process_write_bytes":1298432,"database_storage_growth_bytes":1231880,"peak_rss_kib":60268,"replayed_observations":8},{"repetition":1,"latency_ns":75128979,"cpu_ticks":6,"process_write_bytes":1298432,"database_storage_growth_bytes":1231880,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":2,"latency_ns":76080953,"cpu_ticks":5,"process_write_bytes":1298432,"database_storage_growth_bytes":1231880,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":3,"latency_ns":77667823,"cpu_ticks":6,"process_write_bytes":1298432,"database_storage_growth_bytes":1231880,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":4,"latency_ns":76911741,"cpu_ticks":6,"process_write_bytes":1298432,"database_storage_growth_bytes":1231880,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":5,"latency_ns":79150231,"cpu_ticks":5,"process_write_bytes":1298432,"database_storage_growth_bytes":1231880,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":6,"latency_ns":74307119,"cpu_ticks":6,"process_write_bytes":1298432,"database_storage_growth_bytes":1231880,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":7,"latency_ns":79872769,"cpu_ticks":6,"process_write_bytes":1298432,"database_storage_growth_bytes":1231880,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":8,"latency_ns":75087518,"cpu_ticks":5,"process_write_bytes":1298432,"database_storage_growth_bytes":1231880,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":9,"latency_ns":77802253,"cpu_ticks":6,"process_write_bytes":1298432,"database_storage_growth_bytes":1231880,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":10,"latency_ns":80514667,"cpu_ticks":5,"process_write_bytes":1298432,"database_storage_growth_bytes":1231880,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":11,"latency_ns":76666799,"cpu_ticks":5,"process_write_bytes":1298432,"database_storage_growth_bytes":1231880,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":12,"latency_ns":77950975,"cpu_ticks":5,"process_write_bytes":1298432,"database_storage_growth_bytes":1231880,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":13,"latency_ns":76810010,"cpu_ticks":5,"process_write_bytes":1298432,"database_storage_growth_bytes":1231880,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":14,"latency_ns":79208331,"cpu_ticks":5,"process_write_bytes":1298432,"database_storage_growth_bytes":1231880,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":15,"latency_ns":81201226,"cpu_ticks":6,"process_write_bytes":1298432,"database_storage_growth_bytes":1231880,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":16,"latency_ns":77478660,"cpu_ticks":5,"process_write_bytes":1298432,"database_storage_growth_bytes":1231880,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":17,"latency_ns":75742727,"cpu_ticks":5,"process_write_bytes":1298432,"database_storage_growth_bytes":1231880,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":18,"latency_ns":77153255,"cpu_ticks":5,"process_write_bytes":1298432,"database_storage_growth_bytes":1231880,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":19,"latency_ns":77522429,"cpu_ticks":6,"process_write_bytes":1298432,"database_storage_growth_bytes":1231880,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":20,"latency_ns":76604798,"cpu_ticks":5,"process_write_bytes":1298432,"database_storage_growth_bytes":1231880,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":21,"latency_ns":77734642,"cpu_ticks":5,"process_write_bytes":1298432,"database_storage_growth_bytes":1231880,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":22,"latency_ns":75681536,"cpu_ticks":6,"process_write_bytes":1298432,"database_storage_growth_bytes":1231880,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":23,"latency_ns":76751000,"cpu_ticks":5,"process_write_bytes":1298432,"database_storage_growth_bytes":1231880,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":24,"latency_ns":77376317,"cpu_ticks":6,"process_write_bytes":1298432,"database_storage_growth_bytes":1231880,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":25,"latency_ns":80039000,"cpu_ticks":5,"process_write_bytes":1298432,"database_storage_growth_bytes":1231880,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":26,"latency_ns":75155050,"cpu_ticks":6,"process_write_bytes":1298432,"database_storage_growth_bytes":1231880,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":27,"latency_ns":81675859,"cpu_ticks":6,"process_write_bytes":1298432,"database_storage_growth_bytes":1231880,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":28,"latency_ns":81983195,"cpu_ticks":5,"process_write_bytes":1298432,"database_storage_growth_bytes":1231880,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":29,"latency_ns":78216418,"cpu_ticks":6,"process_write_bytes":1298432,"database_storage_growth_bytes":1231880,"peak_rss_kib":61732,"replayed_observations":8}],"pipeline_latency":{"repetitions":30,"min_ns":74307119,"p50_ns":77478660,"p95_ns":81675859,"p99_ns":81983195,"max_ns":81983195,"mean_ns":77699954.03333333,"sample_stddev_ns":2002528.039761491},"pipeline_records_per_second":102.96016387047017,"pipeline_cpu_ticks":163,"pipeline_cpu_ms":1630.0,"pipeline_process_write_bytes":38952960,"pipeline_database_storage_growth_bytes":36956400,"peak_rss_kib":61732,"no_op_raw_samples":[{"repetition":0,"latency_ns":183463,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":60268,"replayed_observations":0},{"repetition":1,"latency_ns":209183,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":2,"latency_ns":187633,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":3,"latency_ns":196573,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":4,"latency_ns":192373,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":5,"latency_ns":191233,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":6,"latency_ns":249644,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":7,"latency_ns":196083,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":8,"latency_ns":212523,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":9,"latency_ns":259272,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":10,"latency_ns":193362,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":11,"latency_ns":193053,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":12,"latency_ns":192602,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":13,"latency_ns":214443,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":14,"latency_ns":255264,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":15,"latency_ns":199993,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":16,"latency_ns":222223,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":17,"latency_ns":238682,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":18,"latency_ns":190033,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":19,"latency_ns":190203,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":20,"latency_ns":196733,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":21,"latency_ns":191452,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":22,"latency_ns":188823,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":23,"latency_ns":189803,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":24,"latency_ns":191561,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":25,"latency_ns":185622,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":26,"latency_ns":187832,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":27,"latency_ns":248352,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":28,"latency_ns":233092,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":29,"latency_ns":184363,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0}],"no_op_latency":{"repetitions":30,"min_ns":183463,"p50_ns":193053,"p95_ns":255264,"p99_ns":259272,"max_ns":259272,"mean_ns":205515.7,"sample_stddev_ns":23419.78395634915},"no_op_cpu_ticks":0,"no_op_cpu_ms":0.0,"no_op_process_write_bytes":0,"no_op_database_storage_growth_bytes":0,"no_op_observation_count_delta":0},{"provider":"codex","production_path":"codex_production_observation_pipeline_v1","pipeline_scope":"production_parse_normalize_sanitize_commit_project_and_replay","measured_repetitions":30,"observations_per_repetition":8,"replay_limit":9,"max_backlog_records":8,"parse":{"scope":"native_provider_format_decode","raw_samples":[{"repetition":0,"latency_ns":16140,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":60268,"record_count":8},{"repetition":1,"latency_ns":17571,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":2,"latency_ns":18801,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":3,"latency_ns":18051,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":4,"latency_ns":26511,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":5,"latency_ns":16600,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":6,"latency_ns":25361,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":7,"latency_ns":18261,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":8,"latency_ns":16909,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":9,"latency_ns":24509,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":10,"latency_ns":18760,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":11,"latency_ns":16541,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":12,"latency_ns":24690,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":13,"latency_ns":19710,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":14,"latency_ns":25390,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":15,"latency_ns":16050,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":16,"latency_ns":18789,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":17,"latency_ns":21701,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":18,"latency_ns":16170,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":19,"latency_ns":16170,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":20,"latency_ns":26960,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":21,"latency_ns":17541,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":22,"latency_ns":18290,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":23,"latency_ns":16800,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":24,"latency_ns":16630,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":25,"latency_ns":16870,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":26,"latency_ns":15960,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":27,"latency_ns":34151,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":28,"latency_ns":24651,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":29,"latency_ns":17511,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8}],"latency":{"repetitions":30,"min_ns":15960,"p50_ns":18051,"p95_ns":26960,"p99_ns":34151,"max_ns":34151,"mean_ns":19934.966666666667,"sample_stddev_ns":4505.36919137319},"cpu_ticks":0,"cpu_ms":0.0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732},"commit":{"scope":"production_adapter_parse_normalize_sanitize_commit_and_project","raw_samples":[{"repetition":0,"latency_ns":76033663,"cpu_ticks":5,"process_write_bytes":1204224,"database_storage_growth_bytes":1137120,"peak_rss_kib":60652,"record_count":8},{"repetition":1,"latency_ns":76020752,"cpu_ticks":5,"process_write_bytes":1204224,"database_storage_growth_bytes":1137120,"peak_rss_kib":61732,"record_count":8},{"repetition":2,"latency_ns":74499642,"cpu_ticks":5,"process_write_bytes":1204224,"database_storage_growth_bytes":1137120,"peak_rss_kib":61732,"record_count":8},{"repetition":3,"latency_ns":79170651,"cpu_ticks":6,"process_write_bytes":1204224,"database_storage_growth_bytes":1137120,"peak_rss_kib":61732,"record_count":8},{"repetition":4,"latency_ns":74804796,"cpu_ticks":5,"process_write_bytes":1204224,"database_storage_growth_bytes":1137120,"peak_rss_kib":61732,"record_count":8},{"repetition":5,"latency_ns":77544181,"cpu_ticks":4,"process_write_bytes":1204224,"database_storage_growth_bytes":1137120,"peak_rss_kib":61732,"record_count":8},{"repetition":6,"latency_ns":75679258,"cpu_ticks":5,"process_write_bytes":1204224,"database_storage_growth_bytes":1137120,"peak_rss_kib":61732,"record_count":8},{"repetition":7,"latency_ns":79960140,"cpu_ticks":6,"process_write_bytes":1204224,"database_storage_growth_bytes":1137120,"peak_rss_kib":61732,"record_count":8},{"repetition":8,"latency_ns":77153996,"cpu_ticks":5,"process_write_bytes":1204224,"database_storage_growth_bytes":1137120,"peak_rss_kib":61732,"record_count":8},{"repetition":9,"latency_ns":77163124,"cpu_ticks":5,"process_write_bytes":1204224,"database_storage_growth_bytes":1137120,"peak_rss_kib":61732,"record_count":8},{"repetition":10,"latency_ns":74477982,"cpu_ticks":5,"process_write_bytes":1204224,"database_storage_growth_bytes":1137120,"peak_rss_kib":61732,"record_count":8},{"repetition":11,"latency_ns":76816661,"cpu_ticks":5,"process_write_bytes":1204224,"database_storage_growth_bytes":1137120,"peak_rss_kib":61732,"record_count":8},{"repetition":12,"latency_ns":79066889,"cpu_ticks":6,"process_write_bytes":1204224,"database_storage_growth_bytes":1137120,"peak_rss_kib":61732,"record_count":8},{"repetition":13,"latency_ns":77334117,"cpu_ticks":6,"process_write_bytes":1204224,"database_storage_growth_bytes":1137120,"peak_rss_kib":61732,"record_count":8},{"repetition":14,"latency_ns":76218433,"cpu_ticks":5,"process_write_bytes":1204224,"database_storage_growth_bytes":1137120,"peak_rss_kib":61732,"record_count":8},{"repetition":15,"latency_ns":76566317,"cpu_ticks":5,"process_write_bytes":1204224,"database_storage_growth_bytes":1137120,"peak_rss_kib":61732,"record_count":8},{"repetition":16,"latency_ns":77137163,"cpu_ticks":4,"process_write_bytes":1204224,"database_storage_growth_bytes":1137120,"peak_rss_kib":61732,"record_count":8},{"repetition":17,"latency_ns":75667856,"cpu_ticks":6,"process_write_bytes":1204224,"database_storage_growth_bytes":1137120,"peak_rss_kib":61732,"record_count":8},{"repetition":18,"latency_ns":78278388,"cpu_ticks":5,"process_write_bytes":1204224,"database_storage_growth_bytes":1137120,"peak_rss_kib":61732,"record_count":8},{"repetition":19,"latency_ns":76398266,"cpu_ticks":5,"process_write_bytes":1204224,"database_storage_growth_bytes":1137120,"peak_rss_kib":61732,"record_count":8},{"repetition":20,"latency_ns":76327783,"cpu_ticks":6,"process_write_bytes":1204224,"database_storage_growth_bytes":1137120,"peak_rss_kib":61732,"record_count":8},{"repetition":21,"latency_ns":76635437,"cpu_ticks":4,"process_write_bytes":1204224,"database_storage_growth_bytes":1137120,"peak_rss_kib":61732,"record_count":8},{"repetition":22,"latency_ns":73067202,"cpu_ticks":6,"process_write_bytes":1204224,"database_storage_growth_bytes":1137120,"peak_rss_kib":61732,"record_count":8},{"repetition":23,"latency_ns":75781606,"cpu_ticks":5,"process_write_bytes":1204224,"database_storage_growth_bytes":1137120,"peak_rss_kib":61732,"record_count":8},{"repetition":24,"latency_ns":74387500,"cpu_ticks":5,"process_write_bytes":1204224,"database_storage_growth_bytes":1137120,"peak_rss_kib":61732,"record_count":8},{"repetition":25,"latency_ns":76115051,"cpu_ticks":5,"process_write_bytes":1204224,"database_storage_growth_bytes":1137120,"peak_rss_kib":61732,"record_count":8},{"repetition":26,"latency_ns":78062556,"cpu_ticks":5,"process_write_bytes":1204224,"database_storage_growth_bytes":1137120,"peak_rss_kib":61732,"record_count":8},{"repetition":27,"latency_ns":78625033,"cpu_ticks":6,"process_write_bytes":1204224,"database_storage_growth_bytes":1137120,"peak_rss_kib":61732,"record_count":8},{"repetition":28,"latency_ns":77010312,"cpu_ticks":6,"process_write_bytes":1204224,"database_storage_growth_bytes":1137120,"peak_rss_kib":61732,"record_count":8},{"repetition":29,"latency_ns":75409931,"cpu_ticks":6,"process_write_bytes":1204224,"database_storage_growth_bytes":1137120,"peak_rss_kib":61732,"record_count":8}],"latency":{"repetitions":30,"min_ns":73067202,"p50_ns":76398266,"p95_ns":79170651,"p99_ns":79960140,"max_ns":79960140,"mean_ns":76580489.53333333,"sample_stddev_ns":1554281.585886519},"cpu_ticks":157,"cpu_ms":1570.0,"process_write_bytes":36126720,"database_storage_growth_bytes":34113600,"peak_rss_kib":61732},"replay":{"scope":"authoritative_store_bounded_replay","raw_samples":[{"repetition":0,"latency_ns":240563,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":60652,"record_count":8},{"repetition":1,"latency_ns":245723,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":2,"latency_ns":266553,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":3,"latency_ns":268204,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":4,"latency_ns":247913,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":5,"latency_ns":245214,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":6,"latency_ns":270084,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":7,"latency_ns":265573,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":8,"latency_ns":242893,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":9,"latency_ns":277493,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":10,"latency_ns":243792,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":11,"latency_ns":262564,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":12,"latency_ns":246784,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":13,"latency_ns":243582,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":14,"latency_ns":247363,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":15,"latency_ns":241723,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":16,"latency_ns":247624,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":17,"latency_ns":243193,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":18,"latency_ns":242472,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":19,"latency_ns":244352,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":20,"latency_ns":242174,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":21,"latency_ns":290764,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":22,"latency_ns":254023,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":23,"latency_ns":271763,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":24,"latency_ns":246473,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":25,"latency_ns":238414,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":26,"latency_ns":248893,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":27,"latency_ns":283622,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":28,"latency_ns":249662,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":29,"latency_ns":268924,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8}],"latency":{"repetitions":30,"min_ns":238414,"p50_ns":247363,"p95_ns":283622,"p99_ns":290764,"max_ns":290764,"mean_ns":254279.13333333333,"sample_stddev_ns":14331.305986962738},"cpu_ticks":0,"cpu_ms":0.0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732},"pipeline_raw_samples":[{"repetition":0,"latency_ns":76434866,"cpu_ticks":5,"process_write_bytes":1204224,"database_storage_growth_bytes":1137120,"peak_rss_kib":60652,"replayed_observations":8},{"repetition":1,"latency_ns":76433336,"cpu_ticks":5,"process_write_bytes":1204224,"database_storage_growth_bytes":1137120,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":2,"latency_ns":74933197,"cpu_ticks":5,"process_write_bytes":1204224,"database_storage_growth_bytes":1137120,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":3,"latency_ns":79602017,"cpu_ticks":6,"process_write_bytes":1204224,"database_storage_growth_bytes":1137120,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":4,"latency_ns":75244252,"cpu_ticks":5,"process_write_bytes":1204224,"database_storage_growth_bytes":1137120,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":5,"latency_ns":77955055,"cpu_ticks":4,"process_write_bytes":1204224,"database_storage_growth_bytes":1137120,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":6,"latency_ns":76144704,"cpu_ticks":5,"process_write_bytes":1204224,"database_storage_growth_bytes":1137120,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":7,"latency_ns":80405696,"cpu_ticks":6,"process_write_bytes":1204224,"database_storage_growth_bytes":1137120,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":8,"latency_ns":77564160,"cpu_ticks":5,"process_write_bytes":1204224,"database_storage_growth_bytes":1137120,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":9,"latency_ns":77633111,"cpu_ticks":5,"process_write_bytes":1204224,"database_storage_growth_bytes":1137120,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":10,"latency_ns":74891837,"cpu_ticks":6,"process_write_bytes":1204224,"database_storage_growth_bytes":1137120,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":11,"latency_ns":77237847,"cpu_ticks":5,"process_write_bytes":1204224,"database_storage_growth_bytes":1137120,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":12,"latency_ns":79478304,"cpu_ticks":6,"process_write_bytes":1204224,"database_storage_growth_bytes":1137120,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":13,"latency_ns":77773882,"cpu_ticks":6,"process_write_bytes":1204224,"database_storage_growth_bytes":1137120,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":14,"latency_ns":76681388,"cpu_ticks":5,"process_write_bytes":1204224,"database_storage_growth_bytes":1137120,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":15,"latency_ns":76994992,"cpu_ticks":5,"process_write_bytes":1204224,"database_storage_growth_bytes":1137120,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":16,"latency_ns":77573208,"cpu_ticks":4,"process_write_bytes":1204224,"database_storage_growth_bytes":1137120,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":17,"latency_ns":76080931,"cpu_ticks":6,"process_write_bytes":1204224,"database_storage_growth_bytes":1137120,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":18,"latency_ns":78680844,"cpu_ticks":5,"process_write_bytes":1204224,"database_storage_growth_bytes":1137120,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":19,"latency_ns":76801711,"cpu_ticks":5,"process_write_bytes":1204224,"database_storage_growth_bytes":1137120,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":20,"latency_ns":76736670,"cpu_ticks":6,"process_write_bytes":1204224,"database_storage_growth_bytes":1137120,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":21,"latency_ns":77113985,"cpu_ticks":4,"process_write_bytes":1204224,"database_storage_growth_bytes":1137120,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":22,"latency_ns":73483258,"cpu_ticks":6,"process_write_bytes":1204224,"database_storage_growth_bytes":1137120,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":23,"latency_ns":76250372,"cpu_ticks":5,"process_write_bytes":1204224,"database_storage_growth_bytes":1137120,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":24,"latency_ns":74810596,"cpu_ticks":5,"process_write_bytes":1204224,"database_storage_growth_bytes":1137120,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":25,"latency_ns":76518615,"cpu_ticks":5,"process_write_bytes":1204224,"database_storage_growth_bytes":1137120,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":26,"latency_ns":78502981,"cpu_ticks":5,"process_write_bytes":1204224,"database_storage_growth_bytes":1137120,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":27,"latency_ns":79104239,"cpu_ticks":6,"process_write_bytes":1204224,"database_storage_growth_bytes":1137120,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":28,"latency_ns":77457109,"cpu_ticks":6,"process_write_bytes":1204224,"database_storage_growth_bytes":1137120,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":29,"latency_ns":75871178,"cpu_ticks":6,"process_write_bytes":1204224,"database_storage_growth_bytes":1137120,"peak_rss_kib":61732,"replayed_observations":8}],"pipeline_latency":{"repetitions":30,"min_ns":73483258,"p50_ns":76801711,"p95_ns":79602017,"p99_ns":80405696,"max_ns":80405696,"mean_ns":77013144.7,"sample_stddev_ns":1557072.2057943179},"pipeline_records_per_second":103.87837077895612,"pipeline_cpu_ticks":158,"pipeline_cpu_ms":1580.0,"pipeline_process_write_bytes":36126720,"pipeline_database_storage_growth_bytes":34113600,"peak_rss_kib":61732,"no_op_raw_samples":[{"repetition":0,"latency_ns":140252,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":60652,"replayed_observations":0},{"repetition":1,"latency_ns":114161,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":2,"latency_ns":114952,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":3,"latency_ns":116881,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":4,"latency_ns":131482,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":5,"latency_ns":112521,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":6,"latency_ns":134862,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":7,"latency_ns":128441,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":8,"latency_ns":113721,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":9,"latency_ns":135981,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":10,"latency_ns":112112,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":11,"latency_ns":112372,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":12,"latency_ns":112690,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":13,"latency_ns":124281,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":14,"latency_ns":129212,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":15,"latency_ns":116022,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":16,"latency_ns":126462,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":17,"latency_ns":116112,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":18,"latency_ns":123091,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":19,"latency_ns":123652,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":20,"latency_ns":139302,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":21,"latency_ns":139092,"cpu_ticks":1,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":22,"latency_ns":114940,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":23,"latency_ns":131601,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":24,"latency_ns":115122,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":25,"latency_ns":115152,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":26,"latency_ns":164511,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":27,"latency_ns":135322,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":28,"latency_ns":149973,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":29,"latency_ns":118852,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0}],"no_op_latency":{"repetitions":30,"min_ns":112112,"p50_ns":123091,"p95_ns":149973,"p99_ns":164511,"max_ns":164511,"mean_ns":125437.56666666667,"sample_stddev_ns":12865.380074483597},"no_op_cpu_ticks":1,"no_op_cpu_ms":10.0,"no_op_process_write_bytes":0,"no_op_database_storage_growth_bytes":0,"no_op_observation_count_delta":0},{"provider":"cursor","production_path":"cursor_production_observation_pipeline_v1","pipeline_scope":"production_parse_normalize_sanitize_commit_project_and_replay","measured_repetitions":30,"observations_per_repetition":8,"replay_limit":9,"max_backlog_records":8,"parse":{"scope":"native_provider_format_decode","raw_samples":[{"repetition":0,"latency_ns":31181,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":60652,"record_count":8},{"repetition":1,"latency_ns":24881,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":2,"latency_ns":25330,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":3,"latency_ns":22501,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":4,"latency_ns":32179,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":5,"latency_ns":22741,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":6,"latency_ns":26570,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":7,"latency_ns":25280,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":8,"latency_ns":22901,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":9,"latency_ns":31550,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":10,"latency_ns":25539,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":11,"latency_ns":23190,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":12,"latency_ns":24201,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":13,"latency_ns":28520,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":14,"latency_ns":25781,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":15,"latency_ns":27620,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":16,"latency_ns":25912,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":17,"latency_ns":25081,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":18,"latency_ns":24900,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":19,"latency_ns":24491,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":20,"latency_ns":24630,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":21,"latency_ns":24841,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":22,"latency_ns":22291,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":23,"latency_ns":22921,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":24,"latency_ns":23560,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":25,"latency_ns":27820,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":26,"latency_ns":34781,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":27,"latency_ns":43370,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":28,"latency_ns":30570,"cpu_ticks":1,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":29,"latency_ns":24520,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8}],"latency":{"repetitions":30,"min_ns":22291,"p50_ns":25081,"p95_ns":34781,"p99_ns":43370,"max_ns":43370,"mean_ns":26655.1,"sample_stddev_ns":4473.258854879586},"cpu_ticks":1,"cpu_ms":10.0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732},"commit":{"scope":"production_adapter_parse_normalize_sanitize_commit_and_project","raw_samples":[{"repetition":0,"latency_ns":79458326,"cpu_ticks":6,"process_write_bytes":1331200,"database_storage_growth_bytes":1264840,"peak_rss_kib":61036,"record_count":8},{"repetition":1,"latency_ns":77374089,"cpu_ticks":5,"process_write_bytes":1331200,"database_storage_growth_bytes":1264840,"peak_rss_kib":61732,"record_count":8},{"repetition":2,"latency_ns":75798429,"cpu_ticks":5,"process_write_bytes":1331200,"database_storage_growth_bytes":1264840,"peak_rss_kib":61732,"record_count":8},{"repetition":3,"latency_ns":76849860,"cpu_ticks":5,"process_write_bytes":1331200,"database_storage_growth_bytes":1264840,"peak_rss_kib":61732,"record_count":8},{"repetition":4,"latency_ns":81089965,"cpu_ticks":5,"process_write_bytes":1331200,"database_storage_growth_bytes":1264840,"peak_rss_kib":61732,"record_count":8},{"repetition":5,"latency_ns":78944388,"cpu_ticks":5,"process_write_bytes":1331200,"database_storage_growth_bytes":1264840,"peak_rss_kib":61732,"record_count":8},{"repetition":6,"latency_ns":77224086,"cpu_ticks":6,"process_write_bytes":1331200,"database_storage_growth_bytes":1264840,"peak_rss_kib":61732,"record_count":8},{"repetition":7,"latency_ns":79878090,"cpu_ticks":5,"process_write_bytes":1331200,"database_storage_growth_bytes":1264840,"peak_rss_kib":61732,"record_count":8},{"repetition":8,"latency_ns":78342919,"cpu_ticks":5,"process_write_bytes":1331200,"database_storage_growth_bytes":1264840,"peak_rss_kib":61732,"record_count":8},{"repetition":9,"latency_ns":81278707,"cpu_ticks":6,"process_write_bytes":1331200,"database_storage_growth_bytes":1264840,"peak_rss_kib":61732,"record_count":8},{"repetition":10,"latency_ns":89296698,"cpu_ticks":5,"process_write_bytes":1331200,"database_storage_growth_bytes":1264840,"peak_rss_kib":61732,"record_count":8},{"repetition":11,"latency_ns":82154017,"cpu_ticks":4,"process_write_bytes":1331200,"database_storage_growth_bytes":1264840,"peak_rss_kib":61732,"record_count":8},{"repetition":12,"latency_ns":80121812,"cpu_ticks":5,"process_write_bytes":1331200,"database_storage_growth_bytes":1264840,"peak_rss_kib":61732,"record_count":8},{"repetition":13,"latency_ns":86689975,"cpu_ticks":5,"process_write_bytes":1331200,"database_storage_growth_bytes":1264840,"peak_rss_kib":61732,"record_count":8},{"repetition":14,"latency_ns":74912676,"cpu_ticks":6,"process_write_bytes":1331200,"database_storage_growth_bytes":1264840,"peak_rss_kib":61732,"record_count":8},{"repetition":15,"latency_ns":81364889,"cpu_ticks":6,"process_write_bytes":1331200,"database_storage_growth_bytes":1264840,"peak_rss_kib":61732,"record_count":8},{"repetition":16,"latency_ns":80018480,"cpu_ticks":6,"process_write_bytes":1331200,"database_storage_growth_bytes":1264840,"peak_rss_kib":61732,"record_count":8},{"repetition":17,"latency_ns":80330685,"cpu_ticks":6,"process_write_bytes":1331200,"database_storage_growth_bytes":1264840,"peak_rss_kib":61732,"record_count":8},{"repetition":18,"latency_ns":79994850,"cpu_ticks":6,"process_write_bytes":1331200,"database_storage_growth_bytes":1264840,"peak_rss_kib":61732,"record_count":8},{"repetition":19,"latency_ns":77602270,"cpu_ticks":6,"process_write_bytes":1331200,"database_storage_growth_bytes":1264840,"peak_rss_kib":61732,"record_count":8},{"repetition":20,"latency_ns":78763185,"cpu_ticks":5,"process_write_bytes":1331200,"database_storage_growth_bytes":1264840,"peak_rss_kib":61732,"record_count":8},{"repetition":21,"latency_ns":78763265,"cpu_ticks":6,"process_write_bytes":1331200,"database_storage_growth_bytes":1264840,"peak_rss_kib":61732,"record_count":8},{"repetition":22,"latency_ns":75898929,"cpu_ticks":6,"process_write_bytes":1331200,"database_storage_growth_bytes":1264840,"peak_rss_kib":61732,"record_count":8},{"repetition":23,"latency_ns":77968604,"cpu_ticks":6,"process_write_bytes":1331200,"database_storage_growth_bytes":1264840,"peak_rss_kib":61732,"record_count":8},{"repetition":24,"latency_ns":81198874,"cpu_ticks":6,"process_write_bytes":1331200,"database_storage_growth_bytes":1264840,"peak_rss_kib":61732,"record_count":8},{"repetition":25,"latency_ns":76301883,"cpu_ticks":5,"process_write_bytes":1331200,"database_storage_growth_bytes":1264840,"peak_rss_kib":61732,"record_count":8},{"repetition":26,"latency_ns":90518293,"cpu_ticks":7,"process_write_bytes":1331200,"database_storage_growth_bytes":1264840,"peak_rss_kib":61732,"record_count":8},{"repetition":27,"latency_ns":77185644,"cpu_ticks":6,"process_write_bytes":1331200,"database_storage_growth_bytes":1264840,"peak_rss_kib":61732,"record_count":8},{"repetition":28,"latency_ns":78265238,"cpu_ticks":6,"process_write_bytes":1331200,"database_storage_growth_bytes":1264840,"peak_rss_kib":61732,"record_count":8},{"repetition":29,"latency_ns":80209094,"cpu_ticks":5,"process_write_bytes":1331200,"database_storage_growth_bytes":1264840,"peak_rss_kib":61732,"record_count":8}],"latency":{"repetitions":30,"min_ns":74912676,"p50_ns":78944388,"p95_ns":89296698,"p99_ns":90518293,"max_ns":90518293,"mean_ns":79793274.0,"sample_stddev_ns":3610592.6428761687},"cpu_ticks":166,"cpu_ms":1660.0,"process_write_bytes":39936000,"database_storage_growth_bytes":37945200,"peak_rss_kib":61732},"replay":{"scope":"authoritative_store_bounded_replay","raw_samples":[{"repetition":0,"latency_ns":340956,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61036,"record_count":8},{"repetition":1,"latency_ns":335764,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":2,"latency_ns":374925,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":3,"latency_ns":358154,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":4,"latency_ns":332583,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":5,"latency_ns":327505,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":6,"latency_ns":335094,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":7,"latency_ns":350816,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":8,"latency_ns":332754,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":9,"latency_ns":339455,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":10,"latency_ns":328705,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":11,"latency_ns":350463,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":12,"latency_ns":337594,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":13,"latency_ns":329724,"cpu_ticks":1,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":14,"latency_ns":332985,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":15,"latency_ns":335684,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":16,"latency_ns":334154,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":17,"latency_ns":350465,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":18,"latency_ns":326505,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":19,"latency_ns":326743,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":20,"latency_ns":350964,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":21,"latency_ns":331984,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":22,"latency_ns":331235,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":23,"latency_ns":346873,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":24,"latency_ns":350944,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":25,"latency_ns":342464,"cpu_ticks":1,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":26,"latency_ns":339864,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":27,"latency_ns":330594,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":28,"latency_ns":334285,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":29,"latency_ns":369624,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8}],"latency":{"repetitions":30,"min_ns":326505,"p50_ns":335684,"p95_ns":369624,"p99_ns":374925,"max_ns":374925,"mean_ns":340328.63333333336,"sample_stddev_ns":12206.370435381154},"cpu_ticks":2,"cpu_ms":20.0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732},"pipeline_raw_samples":[{"repetition":0,"latency_ns":80002301,"cpu_ticks":6,"process_write_bytes":1331200,"database_storage_growth_bytes":1264840,"peak_rss_kib":61036,"replayed_observations":8},{"repetition":1,"latency_ns":77895215,"cpu_ticks":5,"process_write_bytes":1331200,"database_storage_growth_bytes":1264840,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":2,"latency_ns":76342736,"cpu_ticks":5,"process_write_bytes":1331200,"database_storage_growth_bytes":1264840,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":3,"latency_ns":77374148,"cpu_ticks":5,"process_write_bytes":1331200,"database_storage_growth_bytes":1264840,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":4,"latency_ns":81586671,"cpu_ticks":6,"process_write_bytes":1331200,"database_storage_growth_bytes":1264840,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":5,"latency_ns":79438965,"cpu_ticks":5,"process_write_bytes":1331200,"database_storage_growth_bytes":1264840,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":6,"latency_ns":77746352,"cpu_ticks":6,"process_write_bytes":1331200,"database_storage_growth_bytes":1264840,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":7,"latency_ns":80395396,"cpu_ticks":5,"process_write_bytes":1331200,"database_storage_growth_bytes":1264840,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":8,"latency_ns":78843696,"cpu_ticks":5,"process_write_bytes":1331200,"database_storage_growth_bytes":1264840,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":9,"latency_ns":81802674,"cpu_ticks":7,"process_write_bytes":1331200,"database_storage_growth_bytes":1264840,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":10,"latency_ns":89802836,"cpu_ticks":5,"process_write_bytes":1331200,"database_storage_growth_bytes":1264840,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":11,"latency_ns":82670044,"cpu_ticks":4,"process_write_bytes":1331200,"database_storage_growth_bytes":1264840,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":12,"latency_ns":80637289,"cpu_ticks":5,"process_write_bytes":1331200,"database_storage_growth_bytes":1264840,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":13,"latency_ns":87195532,"cpu_ticks":6,"process_write_bytes":1331200,"database_storage_growth_bytes":1264840,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":14,"latency_ns":75433402,"cpu_ticks":6,"process_write_bytes":1331200,"database_storage_growth_bytes":1264840,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":15,"latency_ns":81880964,"cpu_ticks":6,"process_write_bytes":1331200,"database_storage_growth_bytes":1264840,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":16,"latency_ns":80522097,"cpu_ticks":6,"process_write_bytes":1331200,"database_storage_growth_bytes":1264840,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":17,"latency_ns":80888701,"cpu_ticks":6,"process_write_bytes":1331200,"database_storage_growth_bytes":1264840,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":18,"latency_ns":80482466,"cpu_ticks":6,"process_write_bytes":1331200,"database_storage_growth_bytes":1264840,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":19,"latency_ns":78095845,"cpu_ticks":6,"process_write_bytes":1331200,"database_storage_growth_bytes":1264840,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":20,"latency_ns":79284932,"cpu_ticks":5,"process_write_bytes":1331200,"database_storage_growth_bytes":1264840,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":21,"latency_ns":79269990,"cpu_ticks":6,"process_write_bytes":1331200,"database_storage_growth_bytes":1264840,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":22,"latency_ns":76391745,"cpu_ticks":6,"process_write_bytes":1331200,"database_storage_growth_bytes":1264840,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":23,"latency_ns":78495301,"cpu_ticks":6,"process_write_bytes":1331200,"database_storage_growth_bytes":1264840,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":24,"latency_ns":81715972,"cpu_ticks":6,"process_write_bytes":1331200,"database_storage_growth_bytes":1264840,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":25,"latency_ns":76820630,"cpu_ticks":6,"process_write_bytes":1331200,"database_storage_growth_bytes":1264840,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":26,"latency_ns":91054409,"cpu_ticks":7,"process_write_bytes":1331200,"database_storage_growth_bytes":1264840,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":27,"latency_ns":77697291,"cpu_ticks":6,"process_write_bytes":1331200,"database_storage_growth_bytes":1264840,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":28,"latency_ns":78797384,"cpu_ticks":6,"process_write_bytes":1331200,"database_storage_growth_bytes":1264840,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":29,"latency_ns":80781650,"cpu_ticks":5,"process_write_bytes":1331200,"database_storage_growth_bytes":1264840,"peak_rss_kib":61732,"replayed_observations":8}],"pipeline_latency":{"repetitions":30,"min_ns":75433402,"p50_ns":79438965,"p95_ns":89802836,"p99_ns":91054409,"max_ns":91054409,"mean_ns":80311554.46666667,"sample_stddev_ns":3610821.330803234},"pipeline_records_per_second":99.61206769220738,"pipeline_cpu_ticks":170,"pipeline_cpu_ms":1700.0,"pipeline_process_write_bytes":39936000,"pipeline_database_storage_growth_bytes":37945200,"peak_rss_kib":61732,"no_op_raw_samples":[{"repetition":0,"latency_ns":896111,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61036,"replayed_observations":0},{"repetition":1,"latency_ns":727980,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":2,"latency_ns":744619,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":3,"latency_ns":738210,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":4,"latency_ns":733220,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":5,"latency_ns":732529,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":6,"latency_ns":723479,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":7,"latency_ns":730930,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":8,"latency_ns":746929,"cpu_ticks":1,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":9,"latency_ns":840870,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":10,"latency_ns":718289,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":11,"latency_ns":776700,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":12,"latency_ns":713259,"cpu_ticks":1,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":13,"latency_ns":796100,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":14,"latency_ns":797060,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":15,"latency_ns":772620,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":16,"latency_ns":751850,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":17,"latency_ns":859371,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":18,"latency_ns":722009,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":19,"latency_ns":736998,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":20,"latency_ns":740801,"cpu_ticks":1,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":21,"latency_ns":733108,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":22,"latency_ns":729920,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":23,"latency_ns":739530,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":24,"latency_ns":736530,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":25,"latency_ns":710299,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":26,"latency_ns":845851,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":27,"latency_ns":844921,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":28,"latency_ns":845851,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":29,"latency_ns":890850,"cpu_ticks":1,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0}],"no_op_latency":{"repetitions":30,"min_ns":710299,"p50_ns":739530,"p95_ns":890850,"p99_ns":896111,"max_ns":896111,"mean_ns":769226.4666666667,"sample_stddev_ns":56181.35742073861},"no_op_cpu_ticks":4,"no_op_cpu_ms":40.0,"no_op_process_write_bytes":0,"no_op_database_storage_growth_bytes":0,"no_op_observation_count_delta":0},{"provider":"hermes","production_path":"hermes_production_observation_pipeline_v1","pipeline_scope":"production_parse_normalize_sanitize_commit_project_and_replay","measured_repetitions":30,"observations_per_repetition":8,"replay_limit":9,"max_backlog_records":8,"parse":{"scope":"native_provider_format_decode","raw_samples":[{"repetition":0,"latency_ns":134421,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61036,"record_count":8},{"repetition":1,"latency_ns":131482,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":2,"latency_ns":134391,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":3,"latency_ns":152712,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":4,"latency_ns":121692,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":5,"latency_ns":122121,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":6,"latency_ns":123782,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":7,"latency_ns":121951,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":8,"latency_ns":125051,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":9,"latency_ns":131422,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":10,"latency_ns":129812,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":11,"latency_ns":128062,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":12,"latency_ns":126842,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":13,"latency_ns":138351,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":14,"latency_ns":126802,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":15,"latency_ns":122952,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":16,"latency_ns":141472,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":17,"latency_ns":125182,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":18,"latency_ns":148701,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":19,"latency_ns":121281,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":20,"latency_ns":122031,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":21,"latency_ns":123892,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":22,"latency_ns":120902,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":23,"latency_ns":122640,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":24,"latency_ns":122502,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":25,"latency_ns":146901,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":26,"latency_ns":131872,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":27,"latency_ns":126952,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":28,"latency_ns":146411,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":29,"latency_ns":138591,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8}],"latency":{"repetitions":30,"min_ns":120902,"p50_ns":126842,"p95_ns":148701,"p99_ns":152712,"max_ns":152712,"mean_ns":130372.53333333334,"sample_stddev_ns":9235.004111917136},"cpu_ticks":0,"cpu_ms":0.0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732},"commit":{"scope":"production_adapter_parse_normalize_sanitize_commit_and_project","raw_samples":[{"repetition":0,"latency_ns":101798027,"cpu_ticks":8,"process_write_bytes":1130496,"database_storage_growth_bytes":1067080,"peak_rss_kib":61284,"record_count":8},{"repetition":1,"latency_ns":102298763,"cpu_ticks":8,"process_write_bytes":1130496,"database_storage_growth_bytes":1067080,"peak_rss_kib":61732,"record_count":8},{"repetition":2,"latency_ns":101963358,"cpu_ticks":8,"process_write_bytes":1130496,"database_storage_growth_bytes":1067080,"peak_rss_kib":61732,"record_count":8},{"repetition":3,"latency_ns":101275380,"cpu_ticks":9,"process_write_bytes":1130496,"database_storage_growth_bytes":1067080,"peak_rss_kib":61732,"record_count":8},{"repetition":4,"latency_ns":101764606,"cpu_ticks":8,"process_write_bytes":1130496,"database_storage_growth_bytes":1067080,"peak_rss_kib":61732,"record_count":8},{"repetition":5,"latency_ns":103913723,"cpu_ticks":8,"process_write_bytes":1130496,"database_storage_growth_bytes":1067080,"peak_rss_kib":61732,"record_count":8},{"repetition":6,"latency_ns":104365480,"cpu_ticks":7,"process_write_bytes":1130496,"database_storage_growth_bytes":1067080,"peak_rss_kib":61732,"record_count":8},{"repetition":7,"latency_ns":102361183,"cpu_ticks":8,"process_write_bytes":1130496,"database_storage_growth_bytes":1067080,"peak_rss_kib":61732,"record_count":8},{"repetition":8,"latency_ns":101378912,"cpu_ticks":8,"process_write_bytes":1130496,"database_storage_growth_bytes":1067080,"peak_rss_kib":61732,"record_count":8},{"repetition":9,"latency_ns":105179570,"cpu_ticks":8,"process_write_bytes":1130496,"database_storage_growth_bytes":1067080,"peak_rss_kib":61732,"record_count":8},{"repetition":10,"latency_ns":102527726,"cpu_ticks":8,"process_write_bytes":1130496,"database_storage_growth_bytes":1067080,"peak_rss_kib":61732,"record_count":8},{"repetition":11,"latency_ns":104475881,"cpu_ticks":8,"process_write_bytes":1130496,"database_storage_growth_bytes":1067080,"peak_rss_kib":61732,"record_count":8},{"repetition":12,"latency_ns":103396916,"cpu_ticks":7,"process_write_bytes":1130496,"database_storage_growth_bytes":1067080,"peak_rss_kib":61732,"record_count":8},{"repetition":13,"latency_ns":102880600,"cpu_ticks":7,"process_write_bytes":1130496,"database_storage_growth_bytes":1067080,"peak_rss_kib":61732,"record_count":8},{"repetition":14,"latency_ns":100882846,"cpu_ticks":7,"process_write_bytes":1130496,"database_storage_growth_bytes":1067080,"peak_rss_kib":61732,"record_count":8},{"repetition":15,"latency_ns":100984865,"cpu_ticks":8,"process_write_bytes":1130496,"database_storage_growth_bytes":1067080,"peak_rss_kib":61732,"record_count":8},{"repetition":16,"latency_ns":104086716,"cpu_ticks":8,"process_write_bytes":1130496,"database_storage_growth_bytes":1067080,"peak_rss_kib":61732,"record_count":8},{"repetition":17,"latency_ns":100067082,"cpu_ticks":8,"process_write_bytes":1130496,"database_storage_growth_bytes":1067080,"peak_rss_kib":61732,"record_count":8},{"repetition":18,"latency_ns":102958780,"cpu_ticks":8,"process_write_bytes":1130496,"database_storage_growth_bytes":1067080,"peak_rss_kib":61732,"record_count":8},{"repetition":19,"latency_ns":106914760,"cpu_ticks":7,"process_write_bytes":1130496,"database_storage_growth_bytes":1067080,"peak_rss_kib":61732,"record_count":8},{"repetition":20,"latency_ns":101563413,"cpu_ticks":9,"process_write_bytes":1130496,"database_storage_growth_bytes":1067080,"peak_rss_kib":61732,"record_count":8},{"repetition":21,"latency_ns":99994513,"cpu_ticks":8,"process_write_bytes":1130496,"database_storage_growth_bytes":1067080,"peak_rss_kib":61732,"record_count":8},{"repetition":22,"latency_ns":100858594,"cpu_ticks":8,"process_write_bytes":1130496,"database_storage_growth_bytes":1067080,"peak_rss_kib":61732,"record_count":8},{"repetition":23,"latency_ns":99815730,"cpu_ticks":7,"process_write_bytes":1130496,"database_storage_growth_bytes":1067080,"peak_rss_kib":61732,"record_count":8},{"repetition":24,"latency_ns":103960002,"cpu_ticks":8,"process_write_bytes":1130496,"database_storage_growth_bytes":1067080,"peak_rss_kib":61732,"record_count":8},{"repetition":25,"latency_ns":101028236,"cpu_ticks":7,"process_write_bytes":1130496,"database_storage_growth_bytes":1067080,"peak_rss_kib":61732,"record_count":8},{"repetition":26,"latency_ns":99775639,"cpu_ticks":8,"process_write_bytes":1130496,"database_storage_growth_bytes":1067080,"peak_rss_kib":61732,"record_count":8},{"repetition":27,"latency_ns":103737169,"cpu_ticks":8,"process_write_bytes":1130496,"database_storage_growth_bytes":1067080,"peak_rss_kib":61732,"record_count":8},{"repetition":28,"latency_ns":100904444,"cpu_ticks":8,"process_write_bytes":1130496,"database_storage_growth_bytes":1067080,"peak_rss_kib":61732,"record_count":8},{"repetition":29,"latency_ns":101877415,"cpu_ticks":9,"process_write_bytes":1130496,"database_storage_growth_bytes":1067080,"peak_rss_kib":61732,"record_count":8}],"latency":{"repetitions":30,"min_ns":99775639,"p50_ns":101877415,"p95_ns":105179570,"p99_ns":106914760,"max_ns":106914760,"mean_ns":102299677.63333334,"sample_stddev_ns":1729391.7071237438},"cpu_ticks":236,"cpu_ms":2360.0,"process_write_bytes":33914880,"database_storage_growth_bytes":32012400,"peak_rss_kib":61732},"replay":{"scope":"authoritative_store_bounded_replay","raw_samples":[{"repetition":0,"latency_ns":346684,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61284,"record_count":8},{"repetition":1,"latency_ns":323265,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":2,"latency_ns":322964,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":3,"latency_ns":321184,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":4,"latency_ns":366195,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":5,"latency_ns":318194,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":6,"latency_ns":326334,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":7,"latency_ns":330753,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":8,"latency_ns":344045,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":9,"latency_ns":356344,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":10,"latency_ns":325854,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":11,"latency_ns":327345,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":12,"latency_ns":340764,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":13,"latency_ns":323554,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":14,"latency_ns":325744,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":15,"latency_ns":321704,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":16,"latency_ns":324884,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":17,"latency_ns":317985,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":18,"latency_ns":330214,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":19,"latency_ns":519636,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":20,"latency_ns":344073,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":21,"latency_ns":332035,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":22,"latency_ns":343835,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":23,"latency_ns":342574,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":24,"latency_ns":337345,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":25,"latency_ns":321864,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":26,"latency_ns":349054,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":27,"latency_ns":345146,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":28,"latency_ns":319035,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":29,"latency_ns":326654,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8}],"latency":{"repetitions":30,"min_ns":317985,"p50_ns":327345,"p95_ns":366195,"p99_ns":519636,"max_ns":519636,"mean_ns":339175.36666666664,"sample_stddev_ns":36235.23206577984},"cpu_ticks":0,"cpu_ms":0.0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732},"pipeline_raw_samples":[{"repetition":0,"latency_ns":102314164,"cpu_ticks":8,"process_write_bytes":1130496,"database_storage_growth_bytes":1067080,"peak_rss_kib":61284,"replayed_observations":8},{"repetition":1,"latency_ns":102801200,"cpu_ticks":8,"process_write_bytes":1130496,"database_storage_growth_bytes":1067080,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":2,"latency_ns":102450556,"cpu_ticks":8,"process_write_bytes":1130496,"database_storage_growth_bytes":1067080,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":3,"latency_ns":101763766,"cpu_ticks":9,"process_write_bytes":1130496,"database_storage_growth_bytes":1067080,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":4,"latency_ns":102308744,"cpu_ticks":8,"process_write_bytes":1130496,"database_storage_growth_bytes":1067080,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":5,"latency_ns":104397109,"cpu_ticks":8,"process_write_bytes":1130496,"database_storage_growth_bytes":1067080,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":6,"latency_ns":104861225,"cpu_ticks":7,"process_write_bytes":1130496,"database_storage_growth_bytes":1067080,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":7,"latency_ns":102887470,"cpu_ticks":8,"process_write_bytes":1130496,"database_storage_growth_bytes":1067080,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":8,"latency_ns":101893968,"cpu_ticks":8,"process_write_bytes":1130496,"database_storage_growth_bytes":1067080,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":9,"latency_ns":105733518,"cpu_ticks":8,"process_write_bytes":1130496,"database_storage_growth_bytes":1067080,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":10,"latency_ns":103019482,"cpu_ticks":8,"process_write_bytes":1130496,"database_storage_growth_bytes":1067080,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":11,"latency_ns":104991156,"cpu_ticks":8,"process_write_bytes":1130496,"database_storage_growth_bytes":1067080,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":12,"latency_ns":103913633,"cpu_ticks":7,"process_write_bytes":1130496,"database_storage_growth_bytes":1067080,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":13,"latency_ns":103394845,"cpu_ticks":7,"process_write_bytes":1130496,"database_storage_growth_bytes":1067080,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":14,"latency_ns":101401772,"cpu_ticks":7,"process_write_bytes":1130496,"database_storage_growth_bytes":1067080,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":15,"latency_ns":101476902,"cpu_ticks":8,"process_write_bytes":1130496,"database_storage_growth_bytes":1067080,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":16,"latency_ns":104598231,"cpu_ticks":8,"process_write_bytes":1130496,"database_storage_growth_bytes":1067080,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":17,"latency_ns":100564031,"cpu_ticks":8,"process_write_bytes":1130496,"database_storage_growth_bytes":1067080,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":18,"latency_ns":103498427,"cpu_ticks":8,"process_write_bytes":1130496,"database_storage_growth_bytes":1067080,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":19,"latency_ns":107690110,"cpu_ticks":7,"process_write_bytes":1130496,"database_storage_growth_bytes":1067080,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":20,"latency_ns":102075460,"cpu_ticks":9,"process_write_bytes":1130496,"database_storage_growth_bytes":1067080,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":21,"latency_ns":100494838,"cpu_ticks":8,"process_write_bytes":1130496,"database_storage_growth_bytes":1067080,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":22,"latency_ns":101367330,"cpu_ticks":8,"process_write_bytes":1130496,"database_storage_growth_bytes":1067080,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":23,"latency_ns":100332856,"cpu_ticks":7,"process_write_bytes":1130496,"database_storage_growth_bytes":1067080,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":24,"latency_ns":104479868,"cpu_ticks":8,"process_write_bytes":1130496,"database_storage_growth_bytes":1067080,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":25,"latency_ns":101523642,"cpu_ticks":7,"process_write_bytes":1130496,"database_storage_growth_bytes":1067080,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":26,"latency_ns":100328406,"cpu_ticks":8,"process_write_bytes":1130496,"database_storage_growth_bytes":1067080,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":27,"latency_ns":104311357,"cpu_ticks":8,"process_write_bytes":1130496,"database_storage_growth_bytes":1067080,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":28,"latency_ns":101389179,"cpu_ticks":8,"process_write_bytes":1130496,"database_storage_growth_bytes":1067080,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":29,"latency_ns":102398933,"cpu_ticks":9,"process_write_bytes":1130496,"database_storage_growth_bytes":1067080,"peak_rss_kib":61732,"replayed_observations":8}],"pipeline_latency":{"repetitions":30,"min_ns":100328406,"p50_ns":102398933,"p95_ns":105733518,"p99_ns":107690110,"max_ns":107690110,"mean_ns":102822072.6,"sample_stddev_ns":1758218.5904130857},"pipeline_records_per_second":77.80430599878805,"pipeline_cpu_ticks":236,"pipeline_cpu_ms":2360.0,"pipeline_process_write_bytes":33914880,"pipeline_database_storage_growth_bytes":32012400,"peak_rss_kib":61732,"no_op_raw_samples":[{"repetition":0,"latency_ns":23907433,"cpu_ticks":2,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61284,"replayed_observations":0},{"repetition":1,"latency_ns":23958303,"cpu_ticks":2,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":2,"latency_ns":24326188,"cpu_ticks":2,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":3,"latency_ns":24007523,"cpu_ticks":2,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":4,"latency_ns":23716160,"cpu_ticks":2,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":5,"latency_ns":23805721,"cpu_ticks":2,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":6,"latency_ns":23995944,"cpu_ticks":4,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":7,"latency_ns":24122515,"cpu_ticks":2,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":8,"latency_ns":23794940,"cpu_ticks":3,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":9,"latency_ns":25665985,"cpu_ticks":2,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":10,"latency_ns":24133305,"cpu_ticks":2,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":11,"latency_ns":23811760,"cpu_ticks":3,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":12,"latency_ns":23777240,"cpu_ticks":3,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":13,"latency_ns":23776401,"cpu_ticks":3,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":14,"latency_ns":23883512,"cpu_ticks":3,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":15,"latency_ns":23722240,"cpu_ticks":2,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":16,"latency_ns":23950552,"cpu_ticks":2,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":17,"latency_ns":23945742,"cpu_ticks":2,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":18,"latency_ns":24617371,"cpu_ticks":3,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":19,"latency_ns":33878158,"cpu_ticks":4,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":20,"latency_ns":23718940,"cpu_ticks":2,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":21,"latency_ns":23891431,"cpu_ticks":3,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":22,"latency_ns":23849520,"cpu_ticks":2,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":23,"latency_ns":23842780,"cpu_ticks":2,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":24,"latency_ns":24066804,"cpu_ticks":2,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":25,"latency_ns":24165746,"cpu_ticks":2,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":26,"latency_ns":24244606,"cpu_ticks":3,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":27,"latency_ns":23973204,"cpu_ticks":3,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":28,"latency_ns":24399898,"cpu_ticks":2,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":29,"latency_ns":23895853,"cpu_ticks":2,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0}],"no_op_latency":{"repetitions":30,"min_ns":23716160,"p50_ns":23945742,"p95_ns":25665985,"p99_ns":33878158,"max_ns":33878158,"mean_ns":24361525.833333332,"sample_stddev_ns":1836001.133079229},"no_op_cpu_ticks":73,"no_op_cpu_ms":730.0,"no_op_process_write_bytes":0,"no_op_database_storage_growth_bytes":0,"no_op_observation_count_delta":0},{"provider":"kiro","production_path":"kiro_production_observation_pipeline_v1","pipeline_scope":"production_parse_normalize_sanitize_commit_project_and_replay","measured_repetitions":30,"observations_per_repetition":8,"replay_limit":9,"max_backlog_records":8,"parse":{"scope":"native_provider_format_decode","raw_samples":[{"repetition":0,"latency_ns":17960,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61284,"record_count":8},{"repetition":1,"latency_ns":20471,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":2,"latency_ns":20750,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":3,"latency_ns":19241,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":4,"latency_ns":19780,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":5,"latency_ns":31090,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":6,"latency_ns":19709,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":7,"latency_ns":30220,"cpu_ticks":1,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":8,"latency_ns":18652,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":9,"latency_ns":20330,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":10,"latency_ns":17560,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":11,"latency_ns":22779,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":12,"latency_ns":23550,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":13,"latency_ns":23099,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":14,"latency_ns":22100,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":15,"latency_ns":18471,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":16,"latency_ns":24040,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":17,"latency_ns":21841,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":18,"latency_ns":22620,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":19,"latency_ns":36921,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":20,"latency_ns":17121,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":21,"latency_ns":18241,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":22,"latency_ns":19030,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":23,"latency_ns":34102,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":24,"latency_ns":20510,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":25,"latency_ns":19701,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":26,"latency_ns":25050,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":27,"latency_ns":26999,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":28,"latency_ns":19950,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":29,"latency_ns":27420,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8}],"latency":{"repetitions":30,"min_ns":17121,"p50_ns":20510,"p95_ns":34102,"p99_ns":36921,"max_ns":36921,"mean_ns":22643.6,"sample_stddev_ns":4989.54773432457},"cpu_ticks":1,"cpu_ms":10.0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732},"commit":{"scope":"production_adapter_parse_normalize_sanitize_commit_and_project","raw_samples":[{"repetition":0,"latency_ns":77614262,"cpu_ticks":6,"process_write_bytes":1257472,"database_storage_growth_bytes":1190680,"peak_rss_kib":61540,"record_count":8},{"repetition":1,"latency_ns":77027194,"cpu_ticks":5,"process_write_bytes":1257472,"database_storage_growth_bytes":1190680,"peak_rss_kib":61732,"record_count":8},{"repetition":2,"latency_ns":78153369,"cpu_ticks":5,"process_write_bytes":1257472,"database_storage_growth_bytes":1190680,"peak_rss_kib":61732,"record_count":8},{"repetition":3,"latency_ns":76484797,"cpu_ticks":5,"process_write_bytes":1257472,"database_storage_growth_bytes":1190680,"peak_rss_kib":61732,"record_count":8},{"repetition":4,"latency_ns":79295913,"cpu_ticks":5,"process_write_bytes":1257472,"database_storage_growth_bytes":1190680,"peak_rss_kib":61732,"record_count":8},{"repetition":5,"latency_ns":80283095,"cpu_ticks":5,"process_write_bytes":1257472,"database_storage_growth_bytes":1190680,"peak_rss_kib":61732,"record_count":8},{"repetition":6,"latency_ns":79551395,"cpu_ticks":6,"process_write_bytes":1257472,"database_storage_growth_bytes":1190680,"peak_rss_kib":61732,"record_count":8},{"repetition":7,"latency_ns":78610373,"cpu_ticks":4,"process_write_bytes":1257472,"database_storage_growth_bytes":1190680,"peak_rss_kib":61732,"record_count":8},{"repetition":8,"latency_ns":78532422,"cpu_ticks":6,"process_write_bytes":1257472,"database_storage_growth_bytes":1190680,"peak_rss_kib":61732,"record_count":8},{"repetition":9,"latency_ns":76698670,"cpu_ticks":6,"process_write_bytes":1257472,"database_storage_growth_bytes":1190680,"peak_rss_kib":61732,"record_count":8},{"repetition":10,"latency_ns":78478093,"cpu_ticks":5,"process_write_bytes":1257472,"database_storage_growth_bytes":1190680,"peak_rss_kib":61732,"record_count":8},{"repetition":11,"latency_ns":80331035,"cpu_ticks":6,"process_write_bytes":1257472,"database_storage_growth_bytes":1190680,"peak_rss_kib":61732,"record_count":8},{"repetition":12,"latency_ns":77943245,"cpu_ticks":6,"process_write_bytes":1257472,"database_storage_growth_bytes":1190680,"peak_rss_kib":61732,"record_count":8},{"repetition":13,"latency_ns":77571900,"cpu_ticks":5,"process_write_bytes":1257472,"database_storage_growth_bytes":1190680,"peak_rss_kib":61732,"record_count":8},{"repetition":14,"latency_ns":77613960,"cpu_ticks":4,"process_write_bytes":1257472,"database_storage_growth_bytes":1190680,"peak_rss_kib":61732,"record_count":8},{"repetition":15,"latency_ns":78103877,"cpu_ticks":5,"process_write_bytes":1257472,"database_storage_growth_bytes":1190680,"peak_rss_kib":61732,"record_count":8},{"repetition":16,"latency_ns":79842517,"cpu_ticks":6,"process_write_bytes":1257472,"database_storage_growth_bytes":1190680,"peak_rss_kib":61732,"record_count":8},{"repetition":17,"latency_ns":75791628,"cpu_ticks":6,"process_write_bytes":1257472,"database_storage_growth_bytes":1190680,"peak_rss_kib":61732,"record_count":8},{"repetition":18,"latency_ns":73738561,"cpu_ticks":4,"process_write_bytes":1257472,"database_storage_growth_bytes":1190680,"peak_rss_kib":61732,"record_count":8},{"repetition":19,"latency_ns":88071252,"cpu_ticks":6,"process_write_bytes":1257472,"database_storage_growth_bytes":1190680,"peak_rss_kib":61732,"record_count":8},{"repetition":20,"latency_ns":78500472,"cpu_ticks":6,"process_write_bytes":1257472,"database_storage_growth_bytes":1190680,"peak_rss_kib":61732,"record_count":8},{"repetition":21,"latency_ns":77787962,"cpu_ticks":5,"process_write_bytes":1257472,"database_storage_growth_bytes":1190680,"peak_rss_kib":61732,"record_count":8},{"repetition":22,"latency_ns":76012309,"cpu_ticks":5,"process_write_bytes":1257472,"database_storage_growth_bytes":1190680,"peak_rss_kib":61732,"record_count":8},{"repetition":23,"latency_ns":75592103,"cpu_ticks":6,"process_write_bytes":1257472,"database_storage_growth_bytes":1190680,"peak_rss_kib":61732,"record_count":8},{"repetition":24,"latency_ns":80607359,"cpu_ticks":5,"process_write_bytes":1257472,"database_storage_growth_bytes":1190680,"peak_rss_kib":61732,"record_count":8},{"repetition":25,"latency_ns":87190502,"cpu_ticks":6,"process_write_bytes":1257472,"database_storage_growth_bytes":1190680,"peak_rss_kib":61732,"record_count":8},{"repetition":26,"latency_ns":74198836,"cpu_ticks":6,"process_write_bytes":1257472,"database_storage_growth_bytes":1190680,"peak_rss_kib":61732,"record_count":8},{"repetition":27,"latency_ns":81302266,"cpu_ticks":5,"process_write_bytes":1257472,"database_storage_growth_bytes":1190680,"peak_rss_kib":61732,"record_count":8},{"repetition":28,"latency_ns":74457260,"cpu_ticks":5,"process_write_bytes":1257472,"database_storage_growth_bytes":1190680,"peak_rss_kib":61732,"record_count":8},{"repetition":29,"latency_ns":75005147,"cpu_ticks":4,"process_write_bytes":1257472,"database_storage_growth_bytes":1190680,"peak_rss_kib":61732,"record_count":8}],"latency":{"repetitions":30,"min_ns":73738561,"p50_ns":77943245,"p95_ns":87190502,"p99_ns":88071252,"max_ns":88071252,"mean_ns":78346392.46666667,"sample_stddev_ns":3181386.526744922},"cpu_ticks":159,"cpu_ms":1590.0,"process_write_bytes":37724160,"database_storage_growth_bytes":35720400,"peak_rss_kib":61732},"replay":{"scope":"authoritative_store_bounded_replay","raw_samples":[{"repetition":0,"latency_ns":254452,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61540,"record_count":8},{"repetition":1,"latency_ns":251023,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":2,"latency_ns":256353,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":3,"latency_ns":242033,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":4,"latency_ns":241752,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":5,"latency_ns":248393,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":6,"latency_ns":241484,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":7,"latency_ns":248084,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":8,"latency_ns":267983,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":9,"latency_ns":246124,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":10,"latency_ns":257953,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":11,"latency_ns":245504,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":12,"latency_ns":245302,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":13,"latency_ns":264033,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":14,"latency_ns":243503,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":15,"latency_ns":242953,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":16,"latency_ns":244643,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":17,"latency_ns":265144,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":18,"latency_ns":244253,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":19,"latency_ns":264163,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":20,"latency_ns":246674,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":21,"latency_ns":266893,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":22,"latency_ns":247063,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":23,"latency_ns":255253,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":24,"latency_ns":243194,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":25,"latency_ns":251293,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":26,"latency_ns":249463,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":27,"latency_ns":245412,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":28,"latency_ns":241074,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":29,"latency_ns":243504,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8}],"latency":{"repetitions":30,"min_ns":241074,"p50_ns":246674,"p95_ns":266893,"p99_ns":267983,"max_ns":267983,"mean_ns":250165.16666666666,"sample_stddev_ns":8343.790489333074},"cpu_ticks":0,"cpu_ms":0.0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732},"pipeline_raw_samples":[{"repetition":0,"latency_ns":78048618,"cpu_ticks":6,"process_write_bytes":1257472,"database_storage_growth_bytes":1190680,"peak_rss_kib":61540,"replayed_observations":8},{"repetition":1,"latency_ns":77459408,"cpu_ticks":5,"process_write_bytes":1257472,"database_storage_growth_bytes":1190680,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":2,"latency_ns":78587805,"cpu_ticks":5,"process_write_bytes":1257472,"database_storage_growth_bytes":1190680,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":3,"latency_ns":76889102,"cpu_ticks":5,"process_write_bytes":1257472,"database_storage_growth_bytes":1190680,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":4,"latency_ns":79700627,"cpu_ticks":5,"process_write_bytes":1257472,"database_storage_growth_bytes":1190680,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":5,"latency_ns":80725280,"cpu_ticks":5,"process_write_bytes":1257472,"database_storage_growth_bytes":1190680,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":6,"latency_ns":79973171,"cpu_ticks":6,"process_write_bytes":1257472,"database_storage_growth_bytes":1190680,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":7,"latency_ns":79026299,"cpu_ticks":4,"process_write_bytes":1257472,"database_storage_growth_bytes":1190680,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":8,"latency_ns":78969247,"cpu_ticks":6,"process_write_bytes":1257472,"database_storage_growth_bytes":1190680,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":9,"latency_ns":77111335,"cpu_ticks":6,"process_write_bytes":1257472,"database_storage_growth_bytes":1190680,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":10,"latency_ns":78909838,"cpu_ticks":5,"process_write_bytes":1257472,"database_storage_growth_bytes":1190680,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":11,"latency_ns":80757130,"cpu_ticks":6,"process_write_bytes":1257472,"database_storage_growth_bytes":1190680,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":12,"latency_ns":78377851,"cpu_ticks":6,"process_write_bytes":1257472,"database_storage_growth_bytes":1190680,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":13,"latency_ns":78042447,"cpu_ticks":5,"process_write_bytes":1257472,"database_storage_growth_bytes":1190680,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":14,"latency_ns":78023205,"cpu_ticks":4,"process_write_bytes":1257472,"database_storage_growth_bytes":1190680,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":15,"latency_ns":78524612,"cpu_ticks":5,"process_write_bytes":1257472,"database_storage_growth_bytes":1190680,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":16,"latency_ns":80266823,"cpu_ticks":6,"process_write_bytes":1257472,"database_storage_growth_bytes":1190680,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":17,"latency_ns":76220332,"cpu_ticks":6,"process_write_bytes":1257472,"database_storage_growth_bytes":1190680,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":18,"latency_ns":74149096,"cpu_ticks":4,"process_write_bytes":1257472,"database_storage_growth_bytes":1190680,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":19,"latency_ns":88533539,"cpu_ticks":6,"process_write_bytes":1257472,"database_storage_growth_bytes":1190680,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":20,"latency_ns":78910417,"cpu_ticks":6,"process_write_bytes":1257472,"database_storage_growth_bytes":1190680,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":21,"latency_ns":78235268,"cpu_ticks":5,"process_write_bytes":1257472,"database_storage_growth_bytes":1190680,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":22,"latency_ns":76433665,"cpu_ticks":5,"process_write_bytes":1257472,"database_storage_growth_bytes":1190680,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":23,"latency_ns":76030750,"cpu_ticks":6,"process_write_bytes":1257472,"database_storage_growth_bytes":1190680,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":24,"latency_ns":81013352,"cpu_ticks":5,"process_write_bytes":1257472,"database_storage_growth_bytes":1190680,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":25,"latency_ns":87630936,"cpu_ticks":6,"process_write_bytes":1257472,"database_storage_growth_bytes":1190680,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":26,"latency_ns":74657213,"cpu_ticks":6,"process_write_bytes":1257472,"database_storage_growth_bytes":1190680,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":27,"latency_ns":81722681,"cpu_ticks":5,"process_write_bytes":1257472,"database_storage_growth_bytes":1190680,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":28,"latency_ns":74856896,"cpu_ticks":5,"process_write_bytes":1257472,"database_storage_growth_bytes":1190680,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":29,"latency_ns":75424483,"cpu_ticks":4,"process_write_bytes":1257472,"database_storage_growth_bytes":1190680,"peak_rss_kib":61732,"replayed_observations":8}],"pipeline_latency":{"repetitions":30,"min_ns":74149096,"p50_ns":78377851,"p95_ns":87630936,"p99_ns":88533539,"max_ns":88533539,"mean_ns":78773714.2,"sample_stddev_ns":3186429.219612767},"pipeline_records_per_second":101.55671953830507,"pipeline_cpu_ticks":159,"pipeline_cpu_ms":1590.0,"pipeline_process_write_bytes":37724160,"pipeline_database_storage_growth_bytes":35720400,"peak_rss_kib":61732,"no_op_raw_samples":[{"repetition":0,"latency_ns":2003715,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61540,"replayed_observations":0},{"repetition":1,"latency_ns":2075186,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":2,"latency_ns":1990926,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":3,"latency_ns":1990456,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":4,"latency_ns":1971435,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":5,"latency_ns":2132637,"cpu_ticks":1,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":6,"latency_ns":1982226,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":7,"latency_ns":2039346,"cpu_ticks":1,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":8,"latency_ns":2057555,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":9,"latency_ns":2021465,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":10,"latency_ns":1991725,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":11,"latency_ns":2162527,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":12,"latency_ns":2117918,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":13,"latency_ns":2091056,"cpu_ticks":1,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":14,"latency_ns":2023475,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":15,"latency_ns":2004866,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":16,"latency_ns":2029536,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":17,"latency_ns":1980735,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":18,"latency_ns":1989274,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":19,"latency_ns":2120836,"cpu_ticks":1,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":20,"latency_ns":2019656,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":21,"latency_ns":1992434,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":22,"latency_ns":1991824,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":23,"latency_ns":1984576,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":24,"latency_ns":1972105,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":25,"latency_ns":2086466,"cpu_ticks":1,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":26,"latency_ns":2105896,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":27,"latency_ns":2044157,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":28,"latency_ns":1932396,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":29,"latency_ns":2018486,"cpu_ticks":1,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0}],"no_op_latency":{"repetitions":30,"min_ns":1932396,"p50_ns":2018486,"p95_ns":2132637,"p99_ns":2162527,"max_ns":2162527,"mean_ns":2030829.7,"sample_stddev_ns":56831.457290865306},"no_op_cpu_ticks":6,"no_op_cpu_ms":60.0,"no_op_process_write_bytes":0,"no_op_database_storage_growth_bytes":0,"no_op_observation_count_delta":0},{"provider":"cline","production_path":"cline_production_observation_pipeline_v1","pipeline_scope":"production_parse_normalize_sanitize_commit_project_and_replay","measured_repetitions":30,"observations_per_repetition":8,"replay_limit":9,"max_backlog_records":8,"parse":{"scope":"native_provider_format_decode","raw_samples":[{"repetition":0,"latency_ns":22971,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61540,"record_count":8},{"repetition":1,"latency_ns":31651,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":2,"latency_ns":24320,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":3,"latency_ns":25131,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":4,"latency_ns":33859,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":5,"latency_ns":33721,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":6,"latency_ns":25809,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":7,"latency_ns":31341,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":8,"latency_ns":28951,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":9,"latency_ns":26620,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":10,"latency_ns":23481,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":11,"latency_ns":24529,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":12,"latency_ns":28801,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":13,"latency_ns":28189,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":14,"latency_ns":27041,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":15,"latency_ns":23480,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":16,"latency_ns":29339,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":17,"latency_ns":26870,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":18,"latency_ns":26041,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":19,"latency_ns":26650,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":20,"latency_ns":26851,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":21,"latency_ns":35011,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":22,"latency_ns":25270,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":23,"latency_ns":27090,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":24,"latency_ns":22761,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":25,"latency_ns":25951,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":26,"latency_ns":31010,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":27,"latency_ns":29900,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":28,"latency_ns":23660,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":29,"latency_ns":24100,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8}],"latency":{"repetitions":30,"min_ns":22761,"p50_ns":26650,"p95_ns":33859,"p99_ns":35011,"max_ns":35011,"mean_ns":27346.633333333335,"sample_stddev_ns":3392.486622170999},"cpu_ticks":0,"cpu_ms":0.0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732},"commit":{"scope":"production_adapter_parse_normalize_sanitize_commit_and_project","raw_samples":[{"repetition":0,"latency_ns":80149734,"cpu_ticks":6,"process_write_bytes":1400832,"database_storage_growth_bytes":1334880,"peak_rss_kib":61732,"record_count":8},{"repetition":1,"latency_ns":79593237,"cpu_ticks":5,"process_write_bytes":1400832,"database_storage_growth_bytes":1334880,"peak_rss_kib":61732,"record_count":8},{"repetition":2,"latency_ns":78559433,"cpu_ticks":5,"process_write_bytes":1400832,"database_storage_growth_bytes":1334880,"peak_rss_kib":61732,"record_count":8},{"repetition":3,"latency_ns":78536984,"cpu_ticks":5,"process_write_bytes":1400832,"database_storage_growth_bytes":1334880,"peak_rss_kib":61732,"record_count":8},{"repetition":4,"latency_ns":83217582,"cpu_ticks":6,"process_write_bytes":1400832,"database_storage_growth_bytes":1334880,"peak_rss_kib":61732,"record_count":8},{"repetition":5,"latency_ns":80971993,"cpu_ticks":5,"process_write_bytes":1400832,"database_storage_growth_bytes":1334880,"peak_rss_kib":61732,"record_count":8},{"repetition":6,"latency_ns":81775354,"cpu_ticks":6,"process_write_bytes":1400832,"database_storage_growth_bytes":1334880,"peak_rss_kib":61732,"record_count":8},{"repetition":7,"latency_ns":77999476,"cpu_ticks":6,"process_write_bytes":1400832,"database_storage_growth_bytes":1334880,"peak_rss_kib":61732,"record_count":8},{"repetition":8,"latency_ns":80323046,"cpu_ticks":6,"process_write_bytes":1400832,"database_storage_growth_bytes":1334880,"peak_rss_kib":61732,"record_count":8},{"repetition":9,"latency_ns":77072604,"cpu_ticks":5,"process_write_bytes":1400832,"database_storage_growth_bytes":1334880,"peak_rss_kib":61732,"record_count":8},{"repetition":10,"latency_ns":81332528,"cpu_ticks":5,"process_write_bytes":1400832,"database_storage_growth_bytes":1334880,"peak_rss_kib":61732,"record_count":8},{"repetition":11,"latency_ns":84962433,"cpu_ticks":6,"process_write_bytes":1400832,"database_storage_growth_bytes":1334880,"peak_rss_kib":61732,"record_count":8},{"repetition":12,"latency_ns":79369523,"cpu_ticks":5,"process_write_bytes":1400832,"database_storage_growth_bytes":1334880,"peak_rss_kib":61732,"record_count":8},{"repetition":13,"latency_ns":80308026,"cpu_ticks":6,"process_write_bytes":1400832,"database_storage_growth_bytes":1334880,"peak_rss_kib":61732,"record_count":8},{"repetition":14,"latency_ns":76731539,"cpu_ticks":6,"process_write_bytes":1400832,"database_storage_growth_bytes":1334880,"peak_rss_kib":61732,"record_count":8},{"repetition":15,"latency_ns":80153803,"cpu_ticks":6,"process_write_bytes":1400832,"database_storage_growth_bytes":1334880,"peak_rss_kib":61732,"record_count":8},{"repetition":16,"latency_ns":81608601,"cpu_ticks":5,"process_write_bytes":1400832,"database_storage_growth_bytes":1334880,"peak_rss_kib":61732,"record_count":8},{"repetition":17,"latency_ns":79823298,"cpu_ticks":6,"process_write_bytes":1400832,"database_storage_growth_bytes":1334880,"peak_rss_kib":61732,"record_count":8},{"repetition":18,"latency_ns":78224758,"cpu_ticks":5,"process_write_bytes":1400832,"database_storage_growth_bytes":1334880,"peak_rss_kib":61732,"record_count":8},{"repetition":19,"latency_ns":94396142,"cpu_ticks":7,"process_write_bytes":1400832,"database_storage_growth_bytes":1334880,"peak_rss_kib":61732,"record_count":8},{"repetition":20,"latency_ns":78951648,"cpu_ticks":6,"process_write_bytes":1400832,"database_storage_growth_bytes":1334880,"peak_rss_kib":61732,"record_count":8},{"repetition":21,"latency_ns":78262348,"cpu_ticks":5,"process_write_bytes":1400832,"database_storage_growth_bytes":1334880,"peak_rss_kib":61732,"record_count":8},{"repetition":22,"latency_ns":78478712,"cpu_ticks":5,"process_write_bytes":1400832,"database_storage_growth_bytes":1334880,"peak_rss_kib":61732,"record_count":8},{"repetition":23,"latency_ns":78690993,"cpu_ticks":5,"process_write_bytes":1400832,"database_storage_growth_bytes":1334880,"peak_rss_kib":61732,"record_count":8},{"repetition":24,"latency_ns":81500079,"cpu_ticks":5,"process_write_bytes":1400832,"database_storage_growth_bytes":1334880,"peak_rss_kib":61732,"record_count":8},{"repetition":25,"latency_ns":79725047,"cpu_ticks":6,"process_write_bytes":1400832,"database_storage_growth_bytes":1334880,"peak_rss_kib":61732,"record_count":8},{"repetition":26,"latency_ns":81140603,"cpu_ticks":6,"process_write_bytes":1400832,"database_storage_growth_bytes":1334880,"peak_rss_kib":61732,"record_count":8},{"repetition":27,"latency_ns":77867563,"cpu_ticks":6,"process_write_bytes":1400832,"database_storage_growth_bytes":1334880,"peak_rss_kib":61732,"record_count":8},{"repetition":28,"latency_ns":79940329,"cpu_ticks":4,"process_write_bytes":1400832,"database_storage_growth_bytes":1334880,"peak_rss_kib":61732,"record_count":8},{"repetition":29,"latency_ns":75282871,"cpu_ticks":6,"process_write_bytes":1400832,"database_storage_growth_bytes":1334880,"peak_rss_kib":61732,"record_count":8}],"latency":{"repetitions":30,"min_ns":75282871,"p50_ns":79725047,"p95_ns":84962433,"p99_ns":94396142,"max_ns":94396142,"mean_ns":80165009.56666666,"sample_stddev_ns":3321336.3701148},"cpu_ticks":166,"cpu_ms":1660.0,"process_write_bytes":42024960,"database_storage_growth_bytes":40046400,"peak_rss_kib":61732},"replay":{"scope":"authoritative_store_bounded_replay","raw_samples":[{"repetition":0,"latency_ns":273674,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":1,"latency_ns":272163,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":2,"latency_ns":290814,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":3,"latency_ns":284064,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":4,"latency_ns":262073,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":5,"latency_ns":278563,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":6,"latency_ns":285174,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":7,"latency_ns":287764,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":8,"latency_ns":275424,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":9,"latency_ns":265283,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":10,"latency_ns":276883,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":11,"latency_ns":263313,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":12,"latency_ns":261993,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":13,"latency_ns":287803,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":14,"latency_ns":284123,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":15,"latency_ns":261643,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":16,"latency_ns":275585,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":17,"latency_ns":261413,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":18,"latency_ns":283653,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":19,"latency_ns":267474,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":20,"latency_ns":265953,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":21,"latency_ns":263593,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":22,"latency_ns":281863,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":23,"latency_ns":266903,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":24,"latency_ns":281394,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":25,"latency_ns":283644,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":26,"latency_ns":347746,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":27,"latency_ns":268193,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":28,"latency_ns":283924,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":29,"latency_ns":260643,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8}],"latency":{"repetitions":30,"min_ns":260643,"p50_ns":275424,"p95_ns":290814,"p99_ns":347746,"max_ns":347746,"mean_ns":276757.8333333333,"sample_stddev_ns":16511.0415534018},"cpu_ticks":0,"cpu_ms":0.0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732},"pipeline_raw_samples":[{"repetition":0,"latency_ns":80628089,"cpu_ticks":6,"process_write_bytes":1400832,"database_storage_growth_bytes":1334880,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":1,"latency_ns":80055722,"cpu_ticks":5,"process_write_bytes":1400832,"database_storage_growth_bytes":1334880,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":2,"latency_ns":79011838,"cpu_ticks":5,"process_write_bytes":1400832,"database_storage_growth_bytes":1334880,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":3,"latency_ns":78992788,"cpu_ticks":5,"process_write_bytes":1400832,"database_storage_growth_bytes":1334880,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":4,"latency_ns":83638558,"cpu_ticks":6,"process_write_bytes":1400832,"database_storage_growth_bytes":1334880,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":5,"latency_ns":81454369,"cpu_ticks":5,"process_write_bytes":1400832,"database_storage_growth_bytes":1334880,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":6,"latency_ns":82261060,"cpu_ticks":6,"process_write_bytes":1400832,"database_storage_growth_bytes":1334880,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":7,"latency_ns":78462962,"cpu_ticks":6,"process_write_bytes":1400832,"database_storage_growth_bytes":1334880,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":8,"latency_ns":80778031,"cpu_ticks":6,"process_write_bytes":1400832,"database_storage_growth_bytes":1334880,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":9,"latency_ns":77521400,"cpu_ticks":5,"process_write_bytes":1400832,"database_storage_growth_bytes":1334880,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":10,"latency_ns":81789644,"cpu_ticks":5,"process_write_bytes":1400832,"database_storage_growth_bytes":1334880,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":11,"latency_ns":85390960,"cpu_ticks":6,"process_write_bytes":1400832,"database_storage_growth_bytes":1334880,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":12,"latency_ns":79810488,"cpu_ticks":5,"process_write_bytes":1400832,"database_storage_growth_bytes":1334880,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":13,"latency_ns":80772120,"cpu_ticks":6,"process_write_bytes":1400832,"database_storage_growth_bytes":1334880,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":14,"latency_ns":77179874,"cpu_ticks":6,"process_write_bytes":1400832,"database_storage_growth_bytes":1334880,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":15,"latency_ns":80576579,"cpu_ticks":6,"process_write_bytes":1400832,"database_storage_growth_bytes":1334880,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":16,"latency_ns":82078636,"cpu_ticks":5,"process_write_bytes":1400832,"database_storage_growth_bytes":1334880,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":17,"latency_ns":80250353,"cpu_ticks":6,"process_write_bytes":1400832,"database_storage_growth_bytes":1334880,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":18,"latency_ns":78673673,"cpu_ticks":5,"process_write_bytes":1400832,"database_storage_growth_bytes":1334880,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":19,"latency_ns":94864039,"cpu_ticks":7,"process_write_bytes":1400832,"database_storage_growth_bytes":1334880,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":20,"latency_ns":79384942,"cpu_ticks":6,"process_write_bytes":1400832,"database_storage_growth_bytes":1334880,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":21,"latency_ns":78688084,"cpu_ticks":5,"process_write_bytes":1400832,"database_storage_growth_bytes":1334880,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":22,"latency_ns":78933396,"cpu_ticks":5,"process_write_bytes":1400832,"database_storage_growth_bytes":1334880,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":23,"latency_ns":79118529,"cpu_ticks":5,"process_write_bytes":1400832,"database_storage_growth_bytes":1334880,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":24,"latency_ns":81944665,"cpu_ticks":5,"process_write_bytes":1400832,"database_storage_growth_bytes":1334880,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":25,"latency_ns":80171603,"cpu_ticks":6,"process_write_bytes":1400832,"database_storage_growth_bytes":1334880,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":26,"latency_ns":81732142,"cpu_ticks":6,"process_write_bytes":1400832,"database_storage_growth_bytes":1334880,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":27,"latency_ns":78321389,"cpu_ticks":6,"process_write_bytes":1400832,"database_storage_growth_bytes":1334880,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":28,"latency_ns":80383135,"cpu_ticks":4,"process_write_bytes":1400832,"database_storage_growth_bytes":1334880,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":29,"latency_ns":75713775,"cpu_ticks":6,"process_write_bytes":1400832,"database_storage_growth_bytes":1334880,"peak_rss_kib":61732,"replayed_observations":8}],"pipeline_latency":{"repetitions":30,"min_ns":75713775,"p50_ns":80171603,"p95_ns":85390960,"p99_ns":94864039,"max_ns":94864039,"mean_ns":80619428.1,"sample_stddev_ns":3326397.4335018992},"pipeline_records_per_second":99.23166398646283,"pipeline_cpu_ticks":166,"pipeline_cpu_ms":1660.0,"pipeline_process_write_bytes":42024960,"pipeline_database_storage_growth_bytes":40046400,"peak_rss_kib":61732,"no_op_raw_samples":[{"repetition":0,"latency_ns":2221818,"cpu_ticks":1,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":1,"latency_ns":2031545,"cpu_ticks":1,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":2,"latency_ns":1991574,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":3,"latency_ns":2027187,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":4,"latency_ns":1992145,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":5,"latency_ns":2118458,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":6,"latency_ns":2101296,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":7,"latency_ns":2075027,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":8,"latency_ns":2040265,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":9,"latency_ns":2103427,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":10,"latency_ns":2028105,"cpu_ticks":1,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":11,"latency_ns":2048577,"cpu_ticks":1,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":12,"latency_ns":2053025,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":13,"latency_ns":2061246,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":14,"latency_ns":2002486,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":15,"latency_ns":2024504,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":16,"latency_ns":2051565,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":17,"latency_ns":2020084,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":18,"latency_ns":1997565,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":19,"latency_ns":2173378,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":20,"latency_ns":2003574,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":21,"latency_ns":2021296,"cpu_ticks":1,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":22,"latency_ns":1987484,"cpu_ticks":1,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":23,"latency_ns":1997436,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":24,"latency_ns":2026406,"cpu_ticks":1,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":25,"latency_ns":1994876,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":26,"latency_ns":2784865,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":27,"latency_ns":2090156,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":28,"latency_ns":1961485,"cpu_ticks":2,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":29,"latency_ns":2072755,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0}],"no_op_latency":{"repetitions":30,"min_ns":1961485,"p50_ns":2028105,"p95_ns":2221818,"p99_ns":2784865,"max_ns":2784865,"mean_ns":2070120.3333333333,"sample_stddev_ns":146396.13371598482},"no_op_cpu_ticks":9,"no_op_cpu_ms":90.0,"no_op_process_write_bytes":0,"no_op_database_storage_growth_bytes":0,"no_op_observation_count_delta":0},{"provider":"roo-code","production_path":"roo-code_production_observation_pipeline_v1","pipeline_scope":"production_parse_normalize_sanitize_commit_project_and_replay","measured_repetitions":30,"observations_per_repetition":8,"replay_limit":9,"max_backlog_records":8,"parse":{"scope":"native_provider_format_decode","raw_samples":[{"repetition":0,"latency_ns":24760,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":1,"latency_ns":27241,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":2,"latency_ns":24150,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":3,"latency_ns":27070,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":4,"latency_ns":24740,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":5,"latency_ns":31511,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":6,"latency_ns":26290,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":7,"latency_ns":26051,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":8,"latency_ns":25341,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":9,"latency_ns":26231,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":10,"latency_ns":35900,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":11,"latency_ns":23389,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":12,"latency_ns":29571,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":13,"latency_ns":32140,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":14,"latency_ns":24420,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":15,"latency_ns":26179,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":16,"latency_ns":27281,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":17,"latency_ns":23960,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":18,"latency_ns":24881,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":19,"latency_ns":26590,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":20,"latency_ns":22820,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":21,"latency_ns":23031,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":22,"latency_ns":27801,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":23,"latency_ns":31010,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":24,"latency_ns":23452,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":25,"latency_ns":35481,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":26,"latency_ns":38681,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":27,"latency_ns":29932,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":28,"latency_ns":29570,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":29,"latency_ns":28090,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8}],"latency":{"repetitions":30,"min_ns":22820,"p50_ns":26290,"p95_ns":35900,"p99_ns":38681,"max_ns":38681,"mean_ns":27585.466666666667,"sample_stddev_ns":4012.9589455725277},"cpu_ticks":0,"cpu_ms":0.0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732},"commit":{"scope":"production_adapter_parse_normalize_sanitize_commit_and_project","raw_samples":[{"repetition":0,"latency_ns":78198498,"cpu_ticks":6,"process_write_bytes":1409024,"database_storage_growth_bytes":1343120,"peak_rss_kib":61732,"record_count":8},{"repetition":1,"latency_ns":78080677,"cpu_ticks":6,"process_write_bytes":1409024,"database_storage_growth_bytes":1343120,"peak_rss_kib":61732,"record_count":8},{"repetition":2,"latency_ns":78365721,"cpu_ticks":6,"process_write_bytes":1409024,"database_storage_growth_bytes":1343120,"peak_rss_kib":61732,"record_count":8},{"repetition":3,"latency_ns":80495207,"cpu_ticks":5,"process_write_bytes":1409024,"database_storage_growth_bytes":1343120,"peak_rss_kib":61732,"record_count":8},{"repetition":4,"latency_ns":79023999,"cpu_ticks":6,"process_write_bytes":1409024,"database_storage_growth_bytes":1343120,"peak_rss_kib":61732,"record_count":8},{"repetition":5,"latency_ns":80980694,"cpu_ticks":5,"process_write_bytes":1409024,"database_storage_growth_bytes":1343120,"peak_rss_kib":61732,"record_count":8},{"repetition":6,"latency_ns":82667086,"cpu_ticks":6,"process_write_bytes":1409024,"database_storage_growth_bytes":1343120,"peak_rss_kib":61732,"record_count":8},{"repetition":7,"latency_ns":76623529,"cpu_ticks":5,"process_write_bytes":1409024,"database_storage_growth_bytes":1343120,"peak_rss_kib":61732,"record_count":8},{"repetition":8,"latency_ns":78289120,"cpu_ticks":6,"process_write_bytes":1409024,"database_storage_growth_bytes":1343120,"peak_rss_kib":61732,"record_count":8},{"repetition":9,"latency_ns":79719258,"cpu_ticks":5,"process_write_bytes":1409024,"database_storage_growth_bytes":1343120,"peak_rss_kib":61732,"record_count":8},{"repetition":10,"latency_ns":78691943,"cpu_ticks":6,"process_write_bytes":1409024,"database_storage_growth_bytes":1343120,"peak_rss_kib":61732,"record_count":8},{"repetition":11,"latency_ns":79406804,"cpu_ticks":6,"process_write_bytes":1409024,"database_storage_growth_bytes":1343120,"peak_rss_kib":61732,"record_count":8},{"repetition":12,"latency_ns":79071359,"cpu_ticks":5,"process_write_bytes":1409024,"database_storage_growth_bytes":1343120,"peak_rss_kib":61732,"record_count":8},{"repetition":13,"latency_ns":78247068,"cpu_ticks":5,"process_write_bytes":1409024,"database_storage_growth_bytes":1343120,"peak_rss_kib":61732,"record_count":8},{"repetition":14,"latency_ns":77889425,"cpu_ticks":6,"process_write_bytes":1409024,"database_storage_growth_bytes":1343120,"peak_rss_kib":61732,"record_count":8},{"repetition":15,"latency_ns":82102037,"cpu_ticks":5,"process_write_bytes":1409024,"database_storage_growth_bytes":1343120,"peak_rss_kib":61732,"record_count":8},{"repetition":16,"latency_ns":79832759,"cpu_ticks":5,"process_write_bytes":1409024,"database_storage_growth_bytes":1343120,"peak_rss_kib":61732,"record_count":8},{"repetition":17,"latency_ns":79191489,"cpu_ticks":6,"process_write_bytes":1409024,"database_storage_growth_bytes":1343120,"peak_rss_kib":61732,"record_count":8},{"repetition":18,"latency_ns":78736256,"cpu_ticks":6,"process_write_bytes":1409024,"database_storage_growth_bytes":1343120,"peak_rss_kib":61732,"record_count":8},{"repetition":19,"latency_ns":82627004,"cpu_ticks":5,"process_write_bytes":1409024,"database_storage_growth_bytes":1343120,"peak_rss_kib":61732,"record_count":8},{"repetition":20,"latency_ns":79057859,"cpu_ticks":5,"process_write_bytes":1409024,"database_storage_growth_bytes":1343120,"peak_rss_kib":61732,"record_count":8},{"repetition":21,"latency_ns":75309402,"cpu_ticks":6,"process_write_bytes":1409024,"database_storage_growth_bytes":1343120,"peak_rss_kib":61732,"record_count":8},{"repetition":22,"latency_ns":79402023,"cpu_ticks":5,"process_write_bytes":1409024,"database_storage_growth_bytes":1343120,"peak_rss_kib":61732,"record_count":8},{"repetition":23,"latency_ns":80374865,"cpu_ticks":5,"process_write_bytes":1409024,"database_storage_growth_bytes":1343120,"peak_rss_kib":61732,"record_count":8},{"repetition":24,"latency_ns":82234559,"cpu_ticks":6,"process_write_bytes":1409024,"database_storage_growth_bytes":1343120,"peak_rss_kib":61732,"record_count":8},{"repetition":25,"latency_ns":79160910,"cpu_ticks":5,"process_write_bytes":1409024,"database_storage_growth_bytes":1343120,"peak_rss_kib":61732,"record_count":8},{"repetition":26,"latency_ns":86902328,"cpu_ticks":7,"process_write_bytes":1409024,"database_storage_growth_bytes":1343120,"peak_rss_kib":61732,"record_count":8},{"repetition":27,"latency_ns":75933648,"cpu_ticks":5,"process_write_bytes":1409024,"database_storage_growth_bytes":1343120,"peak_rss_kib":61732,"record_count":8},{"repetition":28,"latency_ns":78525421,"cpu_ticks":6,"process_write_bytes":1409024,"database_storage_growth_bytes":1343120,"peak_rss_kib":61732,"record_count":8},{"repetition":29,"latency_ns":76925022,"cpu_ticks":5,"process_write_bytes":1409024,"database_storage_growth_bytes":1343120,"peak_rss_kib":61732,"record_count":8}],"latency":{"repetitions":30,"min_ns":75309402,"p50_ns":79057859,"p95_ns":82667086,"p99_ns":86902328,"max_ns":86902328,"mean_ns":79402199.0,"sample_stddev_ns":2285648.3970922595},"cpu_ticks":166,"cpu_ms":1660.0,"process_write_bytes":42270720,"database_storage_growth_bytes":40293600,"peak_rss_kib":61732},"replay":{"scope":"authoritative_store_bounded_replay","raw_samples":[{"repetition":0,"latency_ns":311395,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":1,"latency_ns":278103,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":2,"latency_ns":262933,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":3,"latency_ns":287593,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":4,"latency_ns":263944,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":5,"latency_ns":283733,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":6,"latency_ns":270543,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":7,"latency_ns":264983,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":8,"latency_ns":265814,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":9,"latency_ns":264963,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":10,"latency_ns":285123,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":11,"latency_ns":285884,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":12,"latency_ns":266573,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":13,"latency_ns":263843,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":14,"latency_ns":263823,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":15,"latency_ns":266684,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":16,"latency_ns":288924,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":17,"latency_ns":261763,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":18,"latency_ns":270142,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":19,"latency_ns":268974,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":20,"latency_ns":285605,"cpu_ticks":1,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":21,"latency_ns":308704,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":22,"latency_ns":282674,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":23,"latency_ns":269203,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":24,"latency_ns":267854,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":25,"latency_ns":412346,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":26,"latency_ns":272834,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":27,"latency_ns":266163,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":28,"latency_ns":262582,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":29,"latency_ns":286064,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8}],"latency":{"repetitions":30,"min_ns":261763,"p50_ns":269203,"p95_ns":311395,"p99_ns":412346,"max_ns":412346,"mean_ns":279658.86666666664,"sample_stddev_ns":28251.293395760367},"cpu_ticks":1,"cpu_ms":10.0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732},"pipeline_raw_samples":[{"repetition":0,"latency_ns":78668755,"cpu_ticks":6,"process_write_bytes":1409024,"database_storage_growth_bytes":1343120,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":1,"latency_ns":78530103,"cpu_ticks":6,"process_write_bytes":1409024,"database_storage_growth_bytes":1343120,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":2,"latency_ns":78791657,"cpu_ticks":6,"process_write_bytes":1409024,"database_storage_growth_bytes":1343120,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":3,"latency_ns":80949193,"cpu_ticks":5,"process_write_bytes":1409024,"database_storage_growth_bytes":1343120,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":4,"latency_ns":79449715,"cpu_ticks":6,"process_write_bytes":1409024,"database_storage_growth_bytes":1343120,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":5,"latency_ns":81479169,"cpu_ticks":5,"process_write_bytes":1409024,"database_storage_growth_bytes":1343120,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":6,"latency_ns":83110641,"cpu_ticks":6,"process_write_bytes":1409024,"database_storage_growth_bytes":1343120,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":7,"latency_ns":77053882,"cpu_ticks":5,"process_write_bytes":1409024,"database_storage_growth_bytes":1343120,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":8,"latency_ns":78735965,"cpu_ticks":6,"process_write_bytes":1409024,"database_storage_growth_bytes":1343120,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":9,"latency_ns":80155514,"cpu_ticks":5,"process_write_bytes":1409024,"database_storage_growth_bytes":1343120,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":10,"latency_ns":79139291,"cpu_ticks":6,"process_write_bytes":1409024,"database_storage_growth_bytes":1343120,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":11,"latency_ns":79859279,"cpu_ticks":6,"process_write_bytes":1409024,"database_storage_growth_bytes":1343120,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":12,"latency_ns":79535005,"cpu_ticks":5,"process_write_bytes":1409024,"database_storage_growth_bytes":1343120,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":13,"latency_ns":78693965,"cpu_ticks":5,"process_write_bytes":1409024,"database_storage_growth_bytes":1343120,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":14,"latency_ns":78316900,"cpu_ticks":6,"process_write_bytes":1409024,"database_storage_growth_bytes":1343120,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":15,"latency_ns":82544033,"cpu_ticks":5,"process_write_bytes":1409024,"database_storage_growth_bytes":1343120,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":16,"latency_ns":80307104,"cpu_ticks":5,"process_write_bytes":1409024,"database_storage_growth_bytes":1343120,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":17,"latency_ns":79615735,"cpu_ticks":6,"process_write_bytes":1409024,"database_storage_growth_bytes":1343120,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":18,"latency_ns":79167749,"cpu_ticks":6,"process_write_bytes":1409024,"database_storage_growth_bytes":1343120,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":19,"latency_ns":83100230,"cpu_ticks":5,"process_write_bytes":1409024,"database_storage_growth_bytes":1343120,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":20,"latency_ns":79517103,"cpu_ticks":6,"process_write_bytes":1409024,"database_storage_growth_bytes":1343120,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":21,"latency_ns":75798418,"cpu_ticks":6,"process_write_bytes":1409024,"database_storage_growth_bytes":1343120,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":22,"latency_ns":79850528,"cpu_ticks":5,"process_write_bytes":1409024,"database_storage_growth_bytes":1343120,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":23,"latency_ns":80821780,"cpu_ticks":5,"process_write_bytes":1409024,"database_storage_growth_bytes":1343120,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":24,"latency_ns":82677194,"cpu_ticks":6,"process_write_bytes":1409024,"database_storage_growth_bytes":1343120,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":25,"latency_ns":79775908,"cpu_ticks":5,"process_write_bytes":1409024,"database_storage_growth_bytes":1343120,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":26,"latency_ns":87424654,"cpu_ticks":7,"process_write_bytes":1409024,"database_storage_growth_bytes":1343120,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":27,"latency_ns":76376385,"cpu_ticks":5,"process_write_bytes":1409024,"database_storage_growth_bytes":1343120,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":28,"latency_ns":78966167,"cpu_ticks":6,"process_write_bytes":1409024,"database_storage_growth_bytes":1343120,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":29,"latency_ns":77386967,"cpu_ticks":5,"process_write_bytes":1409024,"database_storage_growth_bytes":1343120,"peak_rss_kib":61732,"replayed_observations":8}],"pipeline_latency":{"repetitions":30,"min_ns":75798418,"p50_ns":79517103,"p95_ns":83110641,"p99_ns":87424654,"max_ns":87424654,"mean_ns":79859966.3,"sample_stddev_ns":2294386.7372862203},"pipeline_records_per_second":100.1753490597203,"pipeline_cpu_ticks":167,"pipeline_cpu_ms":1670.0,"pipeline_process_write_bytes":42270720,"pipeline_database_storage_growth_bytes":40293600,"peak_rss_kib":61732,"no_op_raw_samples":[{"repetition":0,"latency_ns":1991766,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":1,"latency_ns":2037146,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":2,"latency_ns":2010456,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":3,"latency_ns":1993495,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":4,"latency_ns":1972355,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":5,"latency_ns":2101226,"cpu_ticks":1,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":6,"latency_ns":2035857,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":7,"latency_ns":2014945,"cpu_ticks":1,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":8,"latency_ns":2021975,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":9,"latency_ns":2010625,"cpu_ticks":1,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":10,"latency_ns":2048596,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":11,"latency_ns":2002425,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":12,"latency_ns":2062547,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":13,"latency_ns":2096406,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":14,"latency_ns":2003345,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":15,"latency_ns":2009836,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":16,"latency_ns":2073956,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":17,"latency_ns":2046696,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":18,"latency_ns":2013265,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":19,"latency_ns":2106916,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":20,"latency_ns":2084227,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":21,"latency_ns":1990364,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":22,"latency_ns":2000905,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":23,"latency_ns":2121807,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":24,"latency_ns":2056206,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":25,"latency_ns":2189657,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":26,"latency_ns":2145628,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":27,"latency_ns":2026385,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":28,"latency_ns":2047125,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":29,"latency_ns":2042645,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0}],"no_op_latency":{"repetitions":30,"min_ns":1972355,"p50_ns":2035857,"p95_ns":2145628,"p99_ns":2189657,"max_ns":2189657,"mean_ns":2045292.7666666666,"sample_stddev_ns":50925.03400752734},"no_op_cpu_ticks":3,"no_op_cpu_ms":30.0,"no_op_process_write_bytes":0,"no_op_database_storage_growth_bytes":0,"no_op_observation_count_delta":0},{"provider":"kilo","production_path":"kilo_production_observation_pipeline_v1","pipeline_scope":"production_parse_normalize_sanitize_commit_project_and_replay","measured_repetitions":30,"observations_per_repetition":8,"replay_limit":9,"max_backlog_records":8,"parse":{"scope":"native_provider_format_decode","raw_samples":[{"repetition":0,"latency_ns":25261,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":1,"latency_ns":25760,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":2,"latency_ns":23960,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":3,"latency_ns":24800,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":4,"latency_ns":23360,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":5,"latency_ns":33100,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":6,"latency_ns":29741,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":7,"latency_ns":34452,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":8,"latency_ns":35781,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":9,"latency_ns":23951,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":10,"latency_ns":21930,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":11,"latency_ns":24580,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":12,"latency_ns":29381,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":13,"latency_ns":28361,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":14,"latency_ns":23300,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":15,"latency_ns":23880,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":16,"latency_ns":28100,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":17,"latency_ns":23700,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":18,"latency_ns":26970,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":19,"latency_ns":32280,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":20,"latency_ns":22659,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":21,"latency_ns":24190,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":22,"latency_ns":23680,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":23,"latency_ns":33319,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":24,"latency_ns":26041,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":25,"latency_ns":24909,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":26,"latency_ns":27581,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":27,"latency_ns":69212,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":28,"latency_ns":24699,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":29,"latency_ns":32150,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8}],"latency":{"repetitions":30,"min_ns":21930,"p50_ns":25261,"p95_ns":35781,"p99_ns":69212,"max_ns":69212,"mean_ns":28369.6,"sample_stddev_ns":8633.845060234631},"cpu_ticks":0,"cpu_ms":0.0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732},"commit":{"scope":"production_adapter_parse_normalize_sanitize_commit_and_project","raw_samples":[{"repetition":0,"latency_ns":77970236,"cpu_ticks":6,"process_write_bytes":1400832,"database_storage_growth_bytes":1334880,"peak_rss_kib":61732,"record_count":8},{"repetition":1,"latency_ns":76995383,"cpu_ticks":6,"process_write_bytes":1400832,"database_storage_growth_bytes":1334880,"peak_rss_kib":61732,"record_count":8},{"repetition":2,"latency_ns":78859008,"cpu_ticks":6,"process_write_bytes":1400832,"database_storage_growth_bytes":1334880,"peak_rss_kib":61732,"record_count":8},{"repetition":3,"latency_ns":78902609,"cpu_ticks":6,"process_write_bytes":1400832,"database_storage_growth_bytes":1334880,"peak_rss_kib":61732,"record_count":8},{"repetition":4,"latency_ns":79967241,"cpu_ticks":5,"process_write_bytes":1400832,"database_storage_growth_bytes":1334880,"peak_rss_kib":61732,"record_count":8},{"repetition":5,"latency_ns":341275915,"cpu_ticks":6,"process_write_bytes":1400832,"database_storage_growth_bytes":1334880,"peak_rss_kib":61732,"record_count":8},{"repetition":6,"latency_ns":82535623,"cpu_ticks":5,"process_write_bytes":1400832,"database_storage_growth_bytes":1334880,"peak_rss_kib":61732,"record_count":8},{"repetition":7,"latency_ns":75894090,"cpu_ticks":5,"process_write_bytes":1400832,"database_storage_growth_bytes":1334880,"peak_rss_kib":61732,"record_count":8},{"repetition":8,"latency_ns":79339391,"cpu_ticks":6,"process_write_bytes":1400832,"database_storage_growth_bytes":1334880,"peak_rss_kib":61732,"record_count":8},{"repetition":9,"latency_ns":80147663,"cpu_ticks":5,"process_write_bytes":1400832,"database_storage_growth_bytes":1334880,"peak_rss_kib":61732,"record_count":8},{"repetition":10,"latency_ns":78671114,"cpu_ticks":5,"process_write_bytes":1400832,"database_storage_growth_bytes":1334880,"peak_rss_kib":61732,"record_count":8},{"repetition":11,"latency_ns":83111021,"cpu_ticks":6,"process_write_bytes":1400832,"database_storage_growth_bytes":1334880,"peak_rss_kib":61732,"record_count":8},{"repetition":12,"latency_ns":80004671,"cpu_ticks":4,"process_write_bytes":1400832,"database_storage_growth_bytes":1334880,"peak_rss_kib":61732,"record_count":8},{"repetition":13,"latency_ns":82107168,"cpu_ticks":6,"process_write_bytes":1400832,"database_storage_growth_bytes":1334880,"peak_rss_kib":61732,"record_count":8},{"repetition":14,"latency_ns":81550400,"cpu_ticks":5,"process_write_bytes":1400832,"database_storage_growth_bytes":1334880,"peak_rss_kib":61732,"record_count":8},{"repetition":15,"latency_ns":79424653,"cpu_ticks":5,"process_write_bytes":1400832,"database_storage_growth_bytes":1334880,"peak_rss_kib":61732,"record_count":8},{"repetition":16,"latency_ns":78791195,"cpu_ticks":6,"process_write_bytes":1400832,"database_storage_growth_bytes":1334880,"peak_rss_kib":61732,"record_count":8},{"repetition":17,"latency_ns":80122562,"cpu_ticks":5,"process_write_bytes":1400832,"database_storage_growth_bytes":1334880,"peak_rss_kib":61732,"record_count":8},{"repetition":18,"latency_ns":86376351,"cpu_ticks":5,"process_write_bytes":1400832,"database_storage_growth_bytes":1334880,"peak_rss_kib":61732,"record_count":8},{"repetition":19,"latency_ns":79472213,"cpu_ticks":5,"process_write_bytes":1400832,"database_storage_growth_bytes":1334880,"peak_rss_kib":61732,"record_count":8},{"repetition":20,"latency_ns":77784991,"cpu_ticks":6,"process_write_bytes":1400832,"database_storage_growth_bytes":1334880,"peak_rss_kib":61732,"record_count":8},{"repetition":21,"latency_ns":75465473,"cpu_ticks":5,"process_write_bytes":1400832,"database_storage_growth_bytes":1334880,"peak_rss_kib":61732,"record_count":8},{"repetition":22,"latency_ns":78331980,"cpu_ticks":5,"process_write_bytes":1400832,"database_storage_growth_bytes":1334880,"peak_rss_kib":61732,"record_count":8},{"repetition":23,"latency_ns":77517488,"cpu_ticks":6,"process_write_bytes":1400832,"database_storage_growth_bytes":1334880,"peak_rss_kib":61732,"record_count":8},{"repetition":24,"latency_ns":78696464,"cpu_ticks":5,"process_write_bytes":1400832,"database_storage_growth_bytes":1334880,"peak_rss_kib":61732,"record_count":8},{"repetition":25,"latency_ns":79412692,"cpu_ticks":5,"process_write_bytes":1400832,"database_storage_growth_bytes":1334880,"peak_rss_kib":61732,"record_count":8},{"repetition":26,"latency_ns":77207144,"cpu_ticks":5,"process_write_bytes":1400832,"database_storage_growth_bytes":1334880,"peak_rss_kib":61732,"record_count":8},{"repetition":27,"latency_ns":84265255,"cpu_ticks":6,"process_write_bytes":1400832,"database_storage_growth_bytes":1334880,"peak_rss_kib":61732,"record_count":8},{"repetition":28,"latency_ns":79800347,"cpu_ticks":5,"process_write_bytes":1400832,"database_storage_growth_bytes":1334880,"peak_rss_kib":61732,"record_count":8},{"repetition":29,"latency_ns":80160951,"cpu_ticks":6,"process_write_bytes":1400832,"database_storage_growth_bytes":1334880,"peak_rss_kib":61732,"record_count":8}],"latency":{"repetitions":30,"min_ns":75465473,"p50_ns":79412692,"p95_ns":86376351,"p99_ns":341275915,"max_ns":341275915,"mean_ns":88338709.73333333,"sample_stddev_ns":47829449.15797909},"cpu_ticks":162,"cpu_ms":1620.0,"process_write_bytes":42024960,"database_storage_growth_bytes":40046400,"peak_rss_kib":61732},"replay":{"scope":"authoritative_store_bounded_replay","raw_samples":[{"repetition":0,"latency_ns":263493,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":1,"latency_ns":277224,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":2,"latency_ns":285244,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":3,"latency_ns":262293,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":4,"latency_ns":277653,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":5,"latency_ns":291323,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":6,"latency_ns":274854,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":7,"latency_ns":264893,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":8,"latency_ns":425365,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":9,"latency_ns":286374,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":10,"latency_ns":296115,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":11,"latency_ns":260683,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":12,"latency_ns":291613,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":13,"latency_ns":266243,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":14,"latency_ns":263323,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":15,"latency_ns":262993,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":16,"latency_ns":265173,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":17,"latency_ns":262963,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":18,"latency_ns":264243,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":19,"latency_ns":288293,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":20,"latency_ns":265363,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":21,"latency_ns":279744,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":22,"latency_ns":284344,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":23,"latency_ns":261273,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":24,"latency_ns":292723,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":25,"latency_ns":276953,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":26,"latency_ns":271754,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":27,"latency_ns":268703,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":28,"latency_ns":382175,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8},{"repetition":29,"latency_ns":292833,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"record_count":8}],"latency":{"repetitions":30,"min_ns":260683,"p50_ns":274854,"p95_ns":382175,"p99_ns":425365,"max_ns":425365,"mean_ns":283540.76666666666,"sample_stddev_ns":35091.84589899555},"cpu_ticks":0,"cpu_ms":0.0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732},"pipeline_raw_samples":[{"repetition":0,"latency_ns":78396722,"cpu_ticks":6,"process_write_bytes":1400832,"database_storage_growth_bytes":1334880,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":1,"latency_ns":77452519,"cpu_ticks":6,"process_write_bytes":1400832,"database_storage_growth_bytes":1334880,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":2,"latency_ns":79307594,"cpu_ticks":6,"process_write_bytes":1400832,"database_storage_growth_bytes":1334880,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":3,"latency_ns":79328783,"cpu_ticks":6,"process_write_bytes":1400832,"database_storage_growth_bytes":1334880,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":4,"latency_ns":80420747,"cpu_ticks":5,"process_write_bytes":1400832,"database_storage_growth_bytes":1334880,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":5,"latency_ns":341762951,"cpu_ticks":6,"process_write_bytes":1400832,"database_storage_growth_bytes":1334880,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":6,"latency_ns":82995609,"cpu_ticks":5,"process_write_bytes":1400832,"database_storage_growth_bytes":1334880,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":7,"latency_ns":76335555,"cpu_ticks":5,"process_write_bytes":1400832,"database_storage_growth_bytes":1334880,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":8,"latency_ns":80019120,"cpu_ticks":6,"process_write_bytes":1400832,"database_storage_growth_bytes":1334880,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":9,"latency_ns":80597919,"cpu_ticks":5,"process_write_bytes":1400832,"database_storage_growth_bytes":1334880,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":10,"latency_ns":79147400,"cpu_ticks":5,"process_write_bytes":1400832,"database_storage_growth_bytes":1334880,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":11,"latency_ns":83548877,"cpu_ticks":6,"process_write_bytes":1400832,"database_storage_growth_bytes":1334880,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":12,"latency_ns":80487836,"cpu_ticks":4,"process_write_bytes":1400832,"database_storage_growth_bytes":1334880,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":13,"latency_ns":82569533,"cpu_ticks":6,"process_write_bytes":1400832,"database_storage_growth_bytes":1334880,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":14,"latency_ns":81996786,"cpu_ticks":5,"process_write_bytes":1400832,"database_storage_growth_bytes":1334880,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":15,"latency_ns":79870009,"cpu_ticks":5,"process_write_bytes":1400832,"database_storage_growth_bytes":1334880,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":16,"latency_ns":79240350,"cpu_ticks":6,"process_write_bytes":1400832,"database_storage_growth_bytes":1334880,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":17,"latency_ns":80568747,"cpu_ticks":5,"process_write_bytes":1400832,"database_storage_growth_bytes":1334880,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":18,"latency_ns":86811506,"cpu_ticks":6,"process_write_bytes":1400832,"database_storage_growth_bytes":1334880,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":19,"latency_ns":79931259,"cpu_ticks":5,"process_write_bytes":1400832,"database_storage_growth_bytes":1334880,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":20,"latency_ns":78213048,"cpu_ticks":6,"process_write_bytes":1400832,"database_storage_growth_bytes":1334880,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":21,"latency_ns":75921869,"cpu_ticks":5,"process_write_bytes":1400832,"database_storage_growth_bytes":1334880,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":22,"latency_ns":78786096,"cpu_ticks":5,"process_write_bytes":1400832,"database_storage_growth_bytes":1334880,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":23,"latency_ns":77942795,"cpu_ticks":6,"process_write_bytes":1400832,"database_storage_growth_bytes":1334880,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":24,"latency_ns":79171369,"cpu_ticks":5,"process_write_bytes":1400832,"database_storage_growth_bytes":1334880,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":25,"latency_ns":79886369,"cpu_ticks":6,"process_write_bytes":1400832,"database_storage_growth_bytes":1334880,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":26,"latency_ns":77694821,"cpu_ticks":5,"process_write_bytes":1400832,"database_storage_growth_bytes":1334880,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":27,"latency_ns":84733949,"cpu_ticks":6,"process_write_bytes":1400832,"database_storage_growth_bytes":1334880,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":28,"latency_ns":80392044,"cpu_ticks":5,"process_write_bytes":1400832,"database_storage_growth_bytes":1334880,"peak_rss_kib":61732,"replayed_observations":8},{"repetition":29,"latency_ns":80642958,"cpu_ticks":6,"process_write_bytes":1400832,"database_storage_growth_bytes":1334880,"peak_rss_kib":61732,"replayed_observations":8}],"pipeline_latency":{"repetitions":30,"min_ns":75921869,"p50_ns":79886369,"p95_ns":86811506,"p99_ns":341762951,"max_ns":341762951,"mean_ns":88805838.0,"sample_stddev_ns":47833214.01011288},"pipeline_records_per_second":90.08416766474294,"pipeline_cpu_ticks":164,"pipeline_cpu_ms":1640.0,"pipeline_process_write_bytes":42024960,"pipeline_database_storage_growth_bytes":40046400,"peak_rss_kib":61732,"no_op_raw_samples":[{"repetition":0,"latency_ns":2027127,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":1,"latency_ns":2049946,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":2,"latency_ns":2031285,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":3,"latency_ns":2045146,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":4,"latency_ns":1991036,"cpu_ticks":1,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":5,"latency_ns":2134817,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":6,"latency_ns":2002996,"cpu_ticks":2,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":7,"latency_ns":2048466,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":8,"latency_ns":3175390,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":9,"latency_ns":1994275,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":10,"latency_ns":2066835,"cpu_ticks":1,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":11,"latency_ns":2095346,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":12,"latency_ns":2125317,"cpu_ticks":1,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":13,"latency_ns":2126428,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":14,"latency_ns":1984636,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":15,"latency_ns":2022655,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":16,"latency_ns":2072437,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":17,"latency_ns":1986605,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":18,"latency_ns":2062337,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":19,"latency_ns":2034326,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":20,"latency_ns":2089717,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":21,"latency_ns":1997565,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":22,"latency_ns":2000216,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":23,"latency_ns":2010926,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":24,"latency_ns":2072726,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":25,"latency_ns":2495183,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":26,"latency_ns":2128986,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":27,"latency_ns":2115196,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":28,"latency_ns":2164978,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0},{"repetition":29,"latency_ns":2077507,"cpu_ticks":0,"process_write_bytes":0,"database_storage_growth_bytes":0,"peak_rss_kib":61732,"replayed_observations":0}],"no_op_latency":{"repetitions":30,"min_ns":1984636,"p50_ns":2049946,"p95_ns":2495183,"p99_ns":3175390,"max_ns":3175390,"mean_ns":2107680.2,"sample_stddev_ns":222747.22787367497},"no_op_cpu_ticks":5,"no_op_cpu_ms":50.0,"no_op_process_write_bytes":0,"no_op_database_storage_growth_bytes":0,"no_op_observation_count_delta":0}]},"hook_telemetry_readiness":{"artifact_kind":"readiness_and_fixture_identity_not_runtime_contract","canonical_contract":{"aggregation_dimensions":{"disposition_class":["application","transport","timeout","cancellation","unknown"],"disposition_status":["supported","degraded","unavailable","unknown","backpressured","accepted_for_replay","committed","exact_duplicate"],"excluded_untrusted_dimensions":["hook_name","disposition.reason_code"],"host":["claude","codex","cursor","hermes","kiro","other"],"retryable":[true,false,null]},"latency_semantics":{"daemon_processing_duration":{"blocker":"hook_completed_does_not_emit_daemon_processing_duration","status":"unavailable"},"hook_wall_time":{"fields":["hook_wall_time_us","hook_wall_time_ms"],"role":"host_measured_hook_span"},"host_ipc_rtt":{"aliases":["daemon_rtt"],"event_field":"daemon_rtt_us","role":"true_host_ipc_rtt"}},"metrics":{"daemon_rtt":["daemon_rtt_us","daemon_call_count"],"disposition":["disposition.status","disposition.retryable","disposition.reason_code","disposition.class"],"hook_wall_time":["hook_wall_time_us","hook_wall_time_ms"],"payload_bytes":["payload_bytes","daemon_ipc_payload_bytes"],"timeout":["timeout.budget_ms","timeout.timed_out"]},"provider_coverage":[{"host":"claude","status":"instrumented"},{"host":"codex","status":"instrumented"},{"host":"cursor","status":"instrumented"},{"host":"hermes","status":"partial"},{"host":"kiro","status":"instrumented"}],"schema_version":1},"host_fixture_measurements":[{"host":"claude","fixture_path":"tests/fixtures/host_events/claude/baseline.json","fixture_sha256":"6bb06840fe1e2716f66c02a58220c2c1a122b387cdc97af987a0b4d4427124e7","canonical_request_payload_bytes":[142,142,142,142],"disposition_vocabulary":["supported","degraded","unavailable","unknown"]},{"host":"codex","fixture_path":"tests/fixtures/host_events/codex/baseline.json","fixture_sha256":"1095677d360835fcfbaa8da978aebe57fadaf49d257a85b0e0b8779f8a765ef7","canonical_request_payload_bytes":[104,104,104,104],"disposition_vocabulary":["supported","degraded","unavailable","unknown"]},{"host":"cursor","fixture_path":"tests/fixtures/host_events/cursor/baseline.json","fixture_sha256":"e80d6a498ccb300aaee76717f24bdd843722fda037156a980c44ebf43b67370f","canonical_request_payload_bytes":[104,104,104,104],"disposition_vocabulary":["supported","degraded","unavailable","unknown"]},{"host":"hermes","fixture_path":"tests/fixtures/host_events/hermes/baseline.json","fixture_sha256":"911c9ca516ccdb8320b137bececd38c0826eafdd3a369ac8939d5359241bb49c","canonical_request_payload_bytes":[236,236,236,236],"disposition_vocabulary":["supported","degraded","unavailable","unknown"]},{"host":"kiro","fixture_path":"tests/fixtures/host_events/kiro/baseline.json","fixture_sha256":"efaab57d6d9efc0bda7a7ed8a57d236599409d5abf9c2eed405cd7725b5882bc","canonical_request_payload_bytes":[118,118,118,118],"disposition_vocabulary":["supported","degraded","unavailable","unknown"]}],"cursor_catch_up_ingest_max_bytes":2097152,"readiness_distributions":{"schema_version":1,"source_event":"hook_completed","collection_status":"no_samples","input_rows_received":0,"input_rows_processed":0,"input_rows_dropped_at_cap":0,"events_considered":0,"events_skipped_non_completed":0,"hook_wall_time_distribution":[],"host_ipc_rtt_distribution":[],"payload_bytes_distribution":[],"timeout_outcomes_by_host":[],"disposition_counts_by_host":[],"unavailable_metrics":[{"metric":"daemon_processing_duration_distribution","status":"unavailable","blocker":"hook_completed_does_not_emit_daemon_processing_duration"}],"bounds":{"max_input_rows":10000,"host_buckets":6,"max_disposition_series":720,"latency_buckets":13,"bytes_buckets":8},"rows_folded_to_other_host":0,"disposition_values_folded_to_unknown":0},"unavailable_measurements":[{"metric":"daemon_processing_duration_distribution","status":"unavailable","required_collection_step":"hook_completed emits host-measured daemon_rtt_us (TRUE host IPC RTT) only; daemon-internal processing duration is not present on the event contract"}]}} diff --git a/benchmark_data/claude-observation/result-2026-07-26-dc17dd73.json b/benchmark_data/claude-observation/result-2026-07-26-dc17dd73.json deleted file mode 100644 index 0504c539a8..0000000000 --- a/benchmark_data/claude-observation/result-2026-07-26-dc17dd73.json +++ /dev/null @@ -1,13743 +0,0 @@ -{ - "schema_version": 2, - "workload_id": "pr5-observation-pipeline-v1", - "evidence_status": "historical_stale", - "workload_identity": { - "manifest_path": "benchmarks/pr5-observation/workload-v1.json", - "manifest_sha256": "5a5087d7520b76cc96a3e0d058adab9a1b45fac717659ade6f8ae14ec0453736", - "harness_paths": [ - "src/sessions/claude_observation_benchmark.rs", - "src/sessions/claude_observation_benchmark/artifact.rs", - "src/sessions/claude_observation_benchmark/baseline.rs", - "src/sessions/claude_observation_benchmark/manifest.rs", - "src/sessions/claude_observation_benchmark/metrics.rs", - "src/sessions/claude_observation_benchmark/model.rs", - "src/sessions/claude_observation_benchmark/runner.rs", - "src/sessions/claude_observation_benchmark/tests.rs" - ], - "harness_sha256": "84e3ed7e4023dd55884bd364398d14aa7dad100bcc59bcca5d29b987df270fdb", - "native_fixture_paths": [ - "tests/fixtures/provider_normalization/claude/assistant_tool_use.input.json", - "tests/fixtures/provider_normalization/codex/session_meta.input.json", - "tests/fixtures/provider_normalization/codex/agent_message.input.json", - "tests/fixtures/provider_normalization/cursor/tool_use.input.json", - "tests/fixtures/provider_normalization/hermes/assistant_tool_call.input.json", - "tests/fixtures/provider_normalization/kiro/workspace_session.input.json", - "tests/fixtures/transcript_golden/cline_like/input/api_conversation_history.json", - "tests/fixtures/transcript_golden/cline_like/input/task_metadata.json" - ], - "native_fixtures_sha256": "a33854bc6c64bd964ee4665459296346fe522f0fe4f7bc9911bb3c5474de77d5" - }, - "build_identity": { - "commit": "dc17dd731e97f9262e570afd9e7ec1602d8af99e", - "tree": "82fcd6b95c7b11c147780ba343350fd99af79784", - "profile": "release", - "source_mode": "git_archive_read_only_v1", - "source_manifest_sha256": "ab5faf64e122badc11494d90d30556807e29d818bc5af9a58679938844c5c217", - "source_file_count": 2886, - "target_triple": "x86_64-unknown-linux-gnu", - "rustc_version": "rustc 1.97.1 (8bab26f4f 2026-07-14)\nbinary: rustc\ncommit-hash: 8bab26f4f68e0e26f0bb7960be334d5b520ea452\ncommit-date: 2026-07-14\nhost: x86_64-unknown-linux-gnu\nrelease: 1.97.1\nLLVM version: 22.1.6", - "cargo_version": "cargo 1.97.1 (c980f4866 2026-06-30)", - "rustflags": "normalized-empty", - "rustc_wrapper": "environment:none;cargo_config:b83e1616c64c314f9b998334950be4ea9f2d5a15", - "rustc_workspace_wrapper": "environment:none;cargo_config:b83e1616c64c314f9b998334950be4ea9f2d5a15", - "cargo_config_identity": "b83e1616c64c314f9b998334950be4ea9f2d5a15", - "data_root_basis": "current_executable_parent", - "executable_sha256": "56c9ab4e871bd4cfb8c509fb4001b6e413d60c062b7d3121e40a5adf986bb1c3", - "executable_size_bytes": 385872496 - }, - "git_before": { - "commit": "dc17dd731e97f9262e570afd9e7ec1602d8af99e", - "tree": "82fcd6b95c7b11c147780ba343350fd99af79784", - "dirty": false - }, - "git_after": { - "commit": "dc17dd731e97f9262e570afd9e7ec1602d8af99e", - "tree": "82fcd6b95c7b11c147780ba343350fd99af79784", - "dirty": false - }, - "command": "cargo test --quiet --release --lib sessions::claude_observation_benchmark::production_observation_pipeline_baseline -- --ignored --exact --nocapture --test-threads=1", - "rustc": "rustc 1.97.1 (8bab26f4f 2026-07-14)\nbinary: rustc\ncommit-hash: 8bab26f4f68e0e26f0bb7960be334d5b520ea452\ncommit-date: 2026-07-14\nhost: x86_64-unknown-linux-gnu\nrelease: 1.97.1\nLLVM version: 22.1.6", - "cargo": "cargo 1.97.1 (c980f4866 2026-06-30)", - "kernel": "Linux 6.8.0-136-generic x86_64 GNU/Linux", - "cpu_identity": "AMD EPYC 7742 64-Core Processor", - "logical_cpu_count": 96, - "memory_total_kib": 164210348, - "clock_ticks_per_second": 100, - "warmup_repetitions": 3, - "measured_repetitions": 30, - "records_per_repetition": 64, - "measured_records": 1920, - "pipeline_raw_samples": [ - { - "repetition": 0, - "latency_ns": 2370976493, - "cpu_ticks": 231, - "process_write_bytes": 51654656, - "database_storage_growth_bytes": 37405096, - "peak_rss_kib": 137580, - "replayed_observations": 64 - }, - { - "repetition": 1, - "latency_ns": 2336749715, - "cpu_ticks": 228, - "process_write_bytes": 51642368, - "database_storage_growth_bytes": 37409216, - "peak_rss_kib": 141460, - "replayed_observations": 64 - }, - { - "repetition": 2, - "latency_ns": 2291642083, - "cpu_ticks": 223, - "process_write_bytes": 51757056, - "database_storage_growth_bytes": 37483376, - "peak_rss_kib": 145352, - "replayed_observations": 64 - }, - { - "repetition": 3, - "latency_ns": 2346652219, - "cpu_ticks": 229, - "process_write_bytes": 51675136, - "database_storage_growth_bytes": 37438056, - "peak_rss_kib": 145364, - "replayed_observations": 64 - }, - { - "repetition": 4, - "latency_ns": 2343599191, - "cpu_ticks": 228, - "process_write_bytes": 51699712, - "database_storage_growth_bytes": 37462776, - "peak_rss_kib": 149228, - "replayed_observations": 64 - }, - { - "repetition": 5, - "latency_ns": 2309643459, - "cpu_ticks": 226, - "process_write_bytes": 51601408, - "database_storage_growth_bytes": 37421576, - "peak_rss_kib": 153096, - "replayed_observations": 64 - }, - { - "repetition": 6, - "latency_ns": 2377133700, - "cpu_ticks": 232, - "process_write_bytes": 51564544, - "database_storage_growth_bytes": 37376256, - "peak_rss_kib": 153096, - "replayed_observations": 64 - }, - { - "repetition": 7, - "latency_ns": 2337966883, - "cpu_ticks": 228, - "process_write_bytes": 51552256, - "database_storage_growth_bytes": 37359776, - "peak_rss_kib": 153100, - "replayed_observations": 64 - }, - { - "repetition": 8, - "latency_ns": 2339161167, - "cpu_ticks": 228, - "process_write_bytes": 51793920, - "database_storage_growth_bytes": 37471016, - "peak_rss_kib": 153108, - "replayed_observations": 64 - }, - { - "repetition": 9, - "latency_ns": 2355548765, - "cpu_ticks": 229, - "process_write_bytes": 51646464, - "database_storage_growth_bytes": 37372136, - "peak_rss_kib": 153108, - "replayed_observations": 64 - }, - { - "repetition": 10, - "latency_ns": 2708492865, - "cpu_ticks": 265, - "process_write_bytes": 51724288, - "database_storage_growth_bytes": 37442176, - "peak_rss_kib": 153192, - "replayed_observations": 64 - }, - { - "repetition": 11, - "latency_ns": 2430426216, - "cpu_ticks": 237, - "process_write_bytes": 51494912, - "database_storage_growth_bytes": 37347416, - "peak_rss_kib": 153192, - "replayed_observations": 64 - }, - { - "repetition": 12, - "latency_ns": 2293125583, - "cpu_ticks": 225, - "process_write_bytes": 51699712, - "database_storage_growth_bytes": 37421576, - "peak_rss_kib": 153196, - "replayed_observations": 64 - }, - { - "repetition": 13, - "latency_ns": 2308698491, - "cpu_ticks": 226, - "process_write_bytes": 51535872, - "database_storage_growth_bytes": 37351536, - "peak_rss_kib": 153196, - "replayed_observations": 64 - }, - { - "repetition": 14, - "latency_ns": 2328096091, - "cpu_ticks": 227, - "process_write_bytes": 51593216, - "database_storage_growth_bytes": 37421576, - "peak_rss_kib": 153200, - "replayed_observations": 64 - }, - { - "repetition": 15, - "latency_ns": 2310504793, - "cpu_ticks": 226, - "process_write_bytes": 51683328, - "database_storage_growth_bytes": 37454536, - "peak_rss_kib": 153264, - "replayed_observations": 64 - }, - { - "repetition": 16, - "latency_ns": 2359504182, - "cpu_ticks": 230, - "process_write_bytes": 51404800, - "database_storage_growth_bytes": 37297976, - "peak_rss_kib": 153264, - "replayed_observations": 64 - }, - { - "repetition": 17, - "latency_ns": 2364338026, - "cpu_ticks": 231, - "process_write_bytes": 51671040, - "database_storage_growth_bytes": 37376256, - "peak_rss_kib": 153264, - "replayed_observations": 64 - }, - { - "repetition": 18, - "latency_ns": 2373655106, - "cpu_ticks": 233, - "process_write_bytes": 51560448, - "database_storage_growth_bytes": 37351536, - "peak_rss_kib": 153264, - "replayed_observations": 64 - }, - { - "repetition": 19, - "latency_ns": 2341276568, - "cpu_ticks": 228, - "process_write_bytes": 51687424, - "database_storage_growth_bytes": 37417456, - "peak_rss_kib": 153264, - "replayed_observations": 64 - }, - { - "repetition": 20, - "latency_ns": 2331647130, - "cpu_ticks": 228, - "process_write_bytes": 51695616, - "database_storage_growth_bytes": 37442176, - "peak_rss_kib": 153264, - "replayed_observations": 64 - }, - { - "repetition": 21, - "latency_ns": 2363454405, - "cpu_ticks": 231, - "process_write_bytes": 51748864, - "database_storage_growth_bytes": 37442176, - "peak_rss_kib": 153264, - "replayed_observations": 64 - }, - { - "repetition": 22, - "latency_ns": 2304069357, - "cpu_ticks": 224, - "process_write_bytes": 51802112, - "database_storage_growth_bytes": 37499856, - "peak_rss_kib": 153264, - "replayed_observations": 64 - }, - { - "repetition": 23, - "latency_ns": 2290364283, - "cpu_ticks": 223, - "process_write_bytes": 51752960, - "database_storage_growth_bytes": 37462776, - "peak_rss_kib": 153264, - "replayed_observations": 64 - }, - { - "repetition": 24, - "latency_ns": 2354708856, - "cpu_ticks": 229, - "process_write_bytes": 51695616, - "database_storage_growth_bytes": 37442176, - "peak_rss_kib": 153264, - "replayed_observations": 64 - }, - { - "repetition": 25, - "latency_ns": 2408580361, - "cpu_ticks": 235, - "process_write_bytes": 51826688, - "database_storage_growth_bytes": 37409216, - "peak_rss_kib": 153264, - "replayed_observations": 64 - }, - { - "repetition": 26, - "latency_ns": 2527159267, - "cpu_ticks": 246, - "process_write_bytes": 52973568, - "database_storage_growth_bytes": 37417456, - "peak_rss_kib": 153272, - "replayed_observations": 64 - }, - { - "repetition": 27, - "latency_ns": 2328789356, - "cpu_ticks": 228, - "process_write_bytes": 51781632, - "database_storage_growth_bytes": 37503976, - "peak_rss_kib": 153276, - "replayed_observations": 64 - }, - { - "repetition": 28, - "latency_ns": 2347487547, - "cpu_ticks": 229, - "process_write_bytes": 51531776, - "database_storage_growth_bytes": 37388616, - "peak_rss_kib": 153276, - "replayed_observations": 64 - }, - { - "repetition": 29, - "latency_ns": 2333259956, - "cpu_ticks": 228, - "process_write_bytes": 51769344, - "database_storage_growth_bytes": 37466896, - "peak_rss_kib": 153276, - "replayed_observations": 64 - } - ], - "pipeline_batch_latency": { - "repetitions": 30, - "min_ns": 2290364283, - "p50_ns": 2341276568, - "p95_ns": 2527159267, - "p99_ns": 2708492865, - "max_ns": 2708492865, - "mean_ns": 2360557070.4666667, - "sample_stddev_ns": 80525133.99323851 - }, - "pipeline_records_per_second": 27.11224430907219, - "pipeline_cpu_ticks": 6911, - "pipeline_cpu_ms": 69110.0, - "pipeline_process_write_bytes": 1551220736, - "database_storage_growth_bytes": 1122556640, - "peak_rss_kib": 153276, - "no_op_replay_raw_samples": [ - { - "repetition": 0, - "latency_ns": 1504741, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 137580, - "replayed_observations": 0 - }, - { - "repetition": 1, - "latency_ns": 1185536, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 141460, - "replayed_observations": 0 - }, - { - "repetition": 2, - "latency_ns": 1095596, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 145352, - "replayed_observations": 0 - }, - { - "repetition": 3, - "latency_ns": 1140596, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 145364, - "replayed_observations": 0 - }, - { - "repetition": 4, - "latency_ns": 1129256, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 149228, - "replayed_observations": 0 - }, - { - "repetition": 5, - "latency_ns": 1166468, - "cpu_ticks": 1, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 153096, - "replayed_observations": 0 - }, - { - "repetition": 6, - "latency_ns": 1558623, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 153096, - "replayed_observations": 0 - }, - { - "repetition": 7, - "latency_ns": 1253938, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 153100, - "replayed_observations": 0 - }, - { - "repetition": 8, - "latency_ns": 1201166, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 153108, - "replayed_observations": 0 - }, - { - "repetition": 9, - "latency_ns": 1229426, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 153108, - "replayed_observations": 0 - }, - { - "repetition": 10, - "latency_ns": 1161727, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 153192, - "replayed_observations": 0 - }, - { - "repetition": 11, - "latency_ns": 1469661, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 153192, - "replayed_observations": 0 - }, - { - "repetition": 12, - "latency_ns": 1270457, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 153196, - "replayed_observations": 0 - }, - { - "repetition": 13, - "latency_ns": 1160426, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 153196, - "replayed_observations": 0 - }, - { - "repetition": 14, - "latency_ns": 1122007, - "cpu_ticks": 1, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 153200, - "replayed_observations": 0 - }, - { - "repetition": 15, - "latency_ns": 1110035, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 153264, - "replayed_observations": 0 - }, - { - "repetition": 16, - "latency_ns": 1429030, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 153264, - "replayed_observations": 0 - }, - { - "repetition": 17, - "latency_ns": 1200348, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 153264, - "replayed_observations": 0 - }, - { - "repetition": 18, - "latency_ns": 1199987, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 153264, - "replayed_observations": 0 - }, - { - "repetition": 19, - "latency_ns": 1380469, - "cpu_ticks": 1, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 153264, - "replayed_observations": 0 - }, - { - "repetition": 20, - "latency_ns": 1110086, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 153264, - "replayed_observations": 0 - }, - { - "repetition": 21, - "latency_ns": 1357149, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 153264, - "replayed_observations": 0 - }, - { - "repetition": 22, - "latency_ns": 1113095, - "cpu_ticks": 1, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 153264, - "replayed_observations": 0 - }, - { - "repetition": 23, - "latency_ns": 979643, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 153264, - "replayed_observations": 0 - }, - { - "repetition": 24, - "latency_ns": 1138336, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 153264, - "replayed_observations": 0 - }, - { - "repetition": 25, - "latency_ns": 1225846, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 153264, - "replayed_observations": 0 - }, - { - "repetition": 26, - "latency_ns": 1378400, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 153272, - "replayed_observations": 0 - }, - { - "repetition": 27, - "latency_ns": 1128816, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 153276, - "replayed_observations": 0 - }, - { - "repetition": 28, - "latency_ns": 1133797, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 153276, - "replayed_observations": 0 - }, - { - "repetition": 29, - "latency_ns": 1291209, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 153276, - "replayed_observations": 0 - } - ], - "no_op_replay_latency": { - "repetitions": 30, - "min_ns": 979643, - "p50_ns": 1185536, - "p95_ns": 1504741, - "p99_ns": 1558623, - "max_ns": 1558623, - "mean_ns": 1227529.0, - "sample_stddev_ns": 137233.11249111855 - }, - "no_op_replay_cpu_ticks": 4, - "no_op_replay_cpu_ms": 40.0, - "no_op_replay_process_write_bytes": 0, - "no_op_replay_database_storage_growth_bytes": 0, - "no_op_replay_observation_count_delta": 0, - "no_op_replay_totals": { - "source_bytes_scanned": 0, - "sessions_upserted": 0, - "messages_upserted": 0, - "observations_committed": 0, - "observation_duplicates": 0, - "cursor_advances": 0, - "cursor_duplicates": 0, - "records_rejected": 0, - "records_quarantined": 0, - "projections_completed": 0, - "projections_skipped": 0, - "projection_duplicates": 0, - "deferred_sources": 0 - }, - "provider_observation_performance": { - "schema_version": 1, - "workload_id": "pr5-observation-pipeline-v1", - "fairness": { - "policy": "round_robin_v1", - "rounds": 30, - "providers_per_round": 8, - "max_provider_turn_distance": 8, - "turns": [ - { - "round": 0, - "position": 0, - "provider": "claude" - }, - { - "round": 0, - "position": 1, - "provider": "codex" - }, - { - "round": 0, - "position": 2, - "provider": "cursor" - }, - { - "round": 0, - "position": 3, - "provider": "hermes" - }, - { - "round": 0, - "position": 4, - "provider": "kiro" - }, - { - "round": 0, - "position": 5, - "provider": "cline" - }, - { - "round": 0, - "position": 6, - "provider": "roo-code" - }, - { - "round": 0, - "position": 7, - "provider": "kilo" - }, - { - "round": 1, - "position": 0, - "provider": "claude" - }, - { - "round": 1, - "position": 1, - "provider": "codex" - }, - { - "round": 1, - "position": 2, - "provider": "cursor" - }, - { - "round": 1, - "position": 3, - "provider": "hermes" - }, - { - "round": 1, - "position": 4, - "provider": "kiro" - }, - { - "round": 1, - "position": 5, - "provider": "cline" - }, - { - "round": 1, - "position": 6, - "provider": "roo-code" - }, - { - "round": 1, - "position": 7, - "provider": "kilo" - }, - { - "round": 2, - "position": 0, - "provider": "claude" - }, - { - "round": 2, - "position": 1, - "provider": "codex" - }, - { - "round": 2, - "position": 2, - "provider": "cursor" - }, - { - "round": 2, - "position": 3, - "provider": "hermes" - }, - { - "round": 2, - "position": 4, - "provider": "kiro" - }, - { - "round": 2, - "position": 5, - "provider": "cline" - }, - { - "round": 2, - "position": 6, - "provider": "roo-code" - }, - { - "round": 2, - "position": 7, - "provider": "kilo" - }, - { - "round": 3, - "position": 0, - "provider": "claude" - }, - { - "round": 3, - "position": 1, - "provider": "codex" - }, - { - "round": 3, - "position": 2, - "provider": "cursor" - }, - { - "round": 3, - "position": 3, - "provider": "hermes" - }, - { - "round": 3, - "position": 4, - "provider": "kiro" - }, - { - "round": 3, - "position": 5, - "provider": "cline" - }, - { - "round": 3, - "position": 6, - "provider": "roo-code" - }, - { - "round": 3, - "position": 7, - "provider": "kilo" - }, - { - "round": 4, - "position": 0, - "provider": "claude" - }, - { - "round": 4, - "position": 1, - "provider": "codex" - }, - { - "round": 4, - "position": 2, - "provider": "cursor" - }, - { - "round": 4, - "position": 3, - "provider": "hermes" - }, - { - "round": 4, - "position": 4, - "provider": "kiro" - }, - { - "round": 4, - "position": 5, - "provider": "cline" - }, - { - "round": 4, - "position": 6, - "provider": "roo-code" - }, - { - "round": 4, - "position": 7, - "provider": "kilo" - }, - { - "round": 5, - "position": 0, - "provider": "claude" - }, - { - "round": 5, - "position": 1, - "provider": "codex" - }, - { - "round": 5, - "position": 2, - "provider": "cursor" - }, - { - "round": 5, - "position": 3, - "provider": "hermes" - }, - { - "round": 5, - "position": 4, - "provider": "kiro" - }, - { - "round": 5, - "position": 5, - "provider": "cline" - }, - { - "round": 5, - "position": 6, - "provider": "roo-code" - }, - { - "round": 5, - "position": 7, - "provider": "kilo" - }, - { - "round": 6, - "position": 0, - "provider": "claude" - }, - { - "round": 6, - "position": 1, - "provider": "codex" - }, - { - "round": 6, - "position": 2, - "provider": "cursor" - }, - { - "round": 6, - "position": 3, - "provider": "hermes" - }, - { - "round": 6, - "position": 4, - "provider": "kiro" - }, - { - "round": 6, - "position": 5, - "provider": "cline" - }, - { - "round": 6, - "position": 6, - "provider": "roo-code" - }, - { - "round": 6, - "position": 7, - "provider": "kilo" - }, - { - "round": 7, - "position": 0, - "provider": "claude" - }, - { - "round": 7, - "position": 1, - "provider": "codex" - }, - { - "round": 7, - "position": 2, - "provider": "cursor" - }, - { - "round": 7, - "position": 3, - "provider": "hermes" - }, - { - "round": 7, - "position": 4, - "provider": "kiro" - }, - { - "round": 7, - "position": 5, - "provider": "cline" - }, - { - "round": 7, - "position": 6, - "provider": "roo-code" - }, - { - "round": 7, - "position": 7, - "provider": "kilo" - }, - { - "round": 8, - "position": 0, - "provider": "claude" - }, - { - "round": 8, - "position": 1, - "provider": "codex" - }, - { - "round": 8, - "position": 2, - "provider": "cursor" - }, - { - "round": 8, - "position": 3, - "provider": "hermes" - }, - { - "round": 8, - "position": 4, - "provider": "kiro" - }, - { - "round": 8, - "position": 5, - "provider": "cline" - }, - { - "round": 8, - "position": 6, - "provider": "roo-code" - }, - { - "round": 8, - "position": 7, - "provider": "kilo" - }, - { - "round": 9, - "position": 0, - "provider": "claude" - }, - { - "round": 9, - "position": 1, - "provider": "codex" - }, - { - "round": 9, - "position": 2, - "provider": "cursor" - }, - { - "round": 9, - "position": 3, - "provider": "hermes" - }, - { - "round": 9, - "position": 4, - "provider": "kiro" - }, - { - "round": 9, - "position": 5, - "provider": "cline" - }, - { - "round": 9, - "position": 6, - "provider": "roo-code" - }, - { - "round": 9, - "position": 7, - "provider": "kilo" - }, - { - "round": 10, - "position": 0, - "provider": "claude" - }, - { - "round": 10, - "position": 1, - "provider": "codex" - }, - { - "round": 10, - "position": 2, - "provider": "cursor" - }, - { - "round": 10, - "position": 3, - "provider": "hermes" - }, - { - "round": 10, - "position": 4, - "provider": "kiro" - }, - { - "round": 10, - "position": 5, - "provider": "cline" - }, - { - "round": 10, - "position": 6, - "provider": "roo-code" - }, - { - "round": 10, - "position": 7, - "provider": "kilo" - }, - { - "round": 11, - "position": 0, - "provider": "claude" - }, - { - "round": 11, - "position": 1, - "provider": "codex" - }, - { - "round": 11, - "position": 2, - "provider": "cursor" - }, - { - "round": 11, - "position": 3, - "provider": "hermes" - }, - { - "round": 11, - "position": 4, - "provider": "kiro" - }, - { - "round": 11, - "position": 5, - "provider": "cline" - }, - { - "round": 11, - "position": 6, - "provider": "roo-code" - }, - { - "round": 11, - "position": 7, - "provider": "kilo" - }, - { - "round": 12, - "position": 0, - "provider": "claude" - }, - { - "round": 12, - "position": 1, - "provider": "codex" - }, - { - "round": 12, - "position": 2, - "provider": "cursor" - }, - { - "round": 12, - "position": 3, - "provider": "hermes" - }, - { - "round": 12, - "position": 4, - "provider": "kiro" - }, - { - "round": 12, - "position": 5, - "provider": "cline" - }, - { - "round": 12, - "position": 6, - "provider": "roo-code" - }, - { - "round": 12, - "position": 7, - "provider": "kilo" - }, - { - "round": 13, - "position": 0, - "provider": "claude" - }, - { - "round": 13, - "position": 1, - "provider": "codex" - }, - { - "round": 13, - "position": 2, - "provider": "cursor" - }, - { - "round": 13, - "position": 3, - "provider": "hermes" - }, - { - "round": 13, - "position": 4, - "provider": "kiro" - }, - { - "round": 13, - "position": 5, - "provider": "cline" - }, - { - "round": 13, - "position": 6, - "provider": "roo-code" - }, - { - "round": 13, - "position": 7, - "provider": "kilo" - }, - { - "round": 14, - "position": 0, - "provider": "claude" - }, - { - "round": 14, - "position": 1, - "provider": "codex" - }, - { - "round": 14, - "position": 2, - "provider": "cursor" - }, - { - "round": 14, - "position": 3, - "provider": "hermes" - }, - { - "round": 14, - "position": 4, - "provider": "kiro" - }, - { - "round": 14, - "position": 5, - "provider": "cline" - }, - { - "round": 14, - "position": 6, - "provider": "roo-code" - }, - { - "round": 14, - "position": 7, - "provider": "kilo" - }, - { - "round": 15, - "position": 0, - "provider": "claude" - }, - { - "round": 15, - "position": 1, - "provider": "codex" - }, - { - "round": 15, - "position": 2, - "provider": "cursor" - }, - { - "round": 15, - "position": 3, - "provider": "hermes" - }, - { - "round": 15, - "position": 4, - "provider": "kiro" - }, - { - "round": 15, - "position": 5, - "provider": "cline" - }, - { - "round": 15, - "position": 6, - "provider": "roo-code" - }, - { - "round": 15, - "position": 7, - "provider": "kilo" - }, - { - "round": 16, - "position": 0, - "provider": "claude" - }, - { - "round": 16, - "position": 1, - "provider": "codex" - }, - { - "round": 16, - "position": 2, - "provider": "cursor" - }, - { - "round": 16, - "position": 3, - "provider": "hermes" - }, - { - "round": 16, - "position": 4, - "provider": "kiro" - }, - { - "round": 16, - "position": 5, - "provider": "cline" - }, - { - "round": 16, - "position": 6, - "provider": "roo-code" - }, - { - "round": 16, - "position": 7, - "provider": "kilo" - }, - { - "round": 17, - "position": 0, - "provider": "claude" - }, - { - "round": 17, - "position": 1, - "provider": "codex" - }, - { - "round": 17, - "position": 2, - "provider": "cursor" - }, - { - "round": 17, - "position": 3, - "provider": "hermes" - }, - { - "round": 17, - "position": 4, - "provider": "kiro" - }, - { - "round": 17, - "position": 5, - "provider": "cline" - }, - { - "round": 17, - "position": 6, - "provider": "roo-code" - }, - { - "round": 17, - "position": 7, - "provider": "kilo" - }, - { - "round": 18, - "position": 0, - "provider": "claude" - }, - { - "round": 18, - "position": 1, - "provider": "codex" - }, - { - "round": 18, - "position": 2, - "provider": "cursor" - }, - { - "round": 18, - "position": 3, - "provider": "hermes" - }, - { - "round": 18, - "position": 4, - "provider": "kiro" - }, - { - "round": 18, - "position": 5, - "provider": "cline" - }, - { - "round": 18, - "position": 6, - "provider": "roo-code" - }, - { - "round": 18, - "position": 7, - "provider": "kilo" - }, - { - "round": 19, - "position": 0, - "provider": "claude" - }, - { - "round": 19, - "position": 1, - "provider": "codex" - }, - { - "round": 19, - "position": 2, - "provider": "cursor" - }, - { - "round": 19, - "position": 3, - "provider": "hermes" - }, - { - "round": 19, - "position": 4, - "provider": "kiro" - }, - { - "round": 19, - "position": 5, - "provider": "cline" - }, - { - "round": 19, - "position": 6, - "provider": "roo-code" - }, - { - "round": 19, - "position": 7, - "provider": "kilo" - }, - { - "round": 20, - "position": 0, - "provider": "claude" - }, - { - "round": 20, - "position": 1, - "provider": "codex" - }, - { - "round": 20, - "position": 2, - "provider": "cursor" - }, - { - "round": 20, - "position": 3, - "provider": "hermes" - }, - { - "round": 20, - "position": 4, - "provider": "kiro" - }, - { - "round": 20, - "position": 5, - "provider": "cline" - }, - { - "round": 20, - "position": 6, - "provider": "roo-code" - }, - { - "round": 20, - "position": 7, - "provider": "kilo" - }, - { - "round": 21, - "position": 0, - "provider": "claude" - }, - { - "round": 21, - "position": 1, - "provider": "codex" - }, - { - "round": 21, - "position": 2, - "provider": "cursor" - }, - { - "round": 21, - "position": 3, - "provider": "hermes" - }, - { - "round": 21, - "position": 4, - "provider": "kiro" - }, - { - "round": 21, - "position": 5, - "provider": "cline" - }, - { - "round": 21, - "position": 6, - "provider": "roo-code" - }, - { - "round": 21, - "position": 7, - "provider": "kilo" - }, - { - "round": 22, - "position": 0, - "provider": "claude" - }, - { - "round": 22, - "position": 1, - "provider": "codex" - }, - { - "round": 22, - "position": 2, - "provider": "cursor" - }, - { - "round": 22, - "position": 3, - "provider": "hermes" - }, - { - "round": 22, - "position": 4, - "provider": "kiro" - }, - { - "round": 22, - "position": 5, - "provider": "cline" - }, - { - "round": 22, - "position": 6, - "provider": "roo-code" - }, - { - "round": 22, - "position": 7, - "provider": "kilo" - }, - { - "round": 23, - "position": 0, - "provider": "claude" - }, - { - "round": 23, - "position": 1, - "provider": "codex" - }, - { - "round": 23, - "position": 2, - "provider": "cursor" - }, - { - "round": 23, - "position": 3, - "provider": "hermes" - }, - { - "round": 23, - "position": 4, - "provider": "kiro" - }, - { - "round": 23, - "position": 5, - "provider": "cline" - }, - { - "round": 23, - "position": 6, - "provider": "roo-code" - }, - { - "round": 23, - "position": 7, - "provider": "kilo" - }, - { - "round": 24, - "position": 0, - "provider": "claude" - }, - { - "round": 24, - "position": 1, - "provider": "codex" - }, - { - "round": 24, - "position": 2, - "provider": "cursor" - }, - { - "round": 24, - "position": 3, - "provider": "hermes" - }, - { - "round": 24, - "position": 4, - "provider": "kiro" - }, - { - "round": 24, - "position": 5, - "provider": "cline" - }, - { - "round": 24, - "position": 6, - "provider": "roo-code" - }, - { - "round": 24, - "position": 7, - "provider": "kilo" - }, - { - "round": 25, - "position": 0, - "provider": "claude" - }, - { - "round": 25, - "position": 1, - "provider": "codex" - }, - { - "round": 25, - "position": 2, - "provider": "cursor" - }, - { - "round": 25, - "position": 3, - "provider": "hermes" - }, - { - "round": 25, - "position": 4, - "provider": "kiro" - }, - { - "round": 25, - "position": 5, - "provider": "cline" - }, - { - "round": 25, - "position": 6, - "provider": "roo-code" - }, - { - "round": 25, - "position": 7, - "provider": "kilo" - }, - { - "round": 26, - "position": 0, - "provider": "claude" - }, - { - "round": 26, - "position": 1, - "provider": "codex" - }, - { - "round": 26, - "position": 2, - "provider": "cursor" - }, - { - "round": 26, - "position": 3, - "provider": "hermes" - }, - { - "round": 26, - "position": 4, - "provider": "kiro" - }, - { - "round": 26, - "position": 5, - "provider": "cline" - }, - { - "round": 26, - "position": 6, - "provider": "roo-code" - }, - { - "round": 26, - "position": 7, - "provider": "kilo" - }, - { - "round": 27, - "position": 0, - "provider": "claude" - }, - { - "round": 27, - "position": 1, - "provider": "codex" - }, - { - "round": 27, - "position": 2, - "provider": "cursor" - }, - { - "round": 27, - "position": 3, - "provider": "hermes" - }, - { - "round": 27, - "position": 4, - "provider": "kiro" - }, - { - "round": 27, - "position": 5, - "provider": "cline" - }, - { - "round": 27, - "position": 6, - "provider": "roo-code" - }, - { - "round": 27, - "position": 7, - "provider": "kilo" - }, - { - "round": 28, - "position": 0, - "provider": "claude" - }, - { - "round": 28, - "position": 1, - "provider": "codex" - }, - { - "round": 28, - "position": 2, - "provider": "cursor" - }, - { - "round": 28, - "position": 3, - "provider": "hermes" - }, - { - "round": 28, - "position": 4, - "provider": "kiro" - }, - { - "round": 28, - "position": 5, - "provider": "cline" - }, - { - "round": 28, - "position": 6, - "provider": "roo-code" - }, - { - "round": 28, - "position": 7, - "provider": "kilo" - }, - { - "round": 29, - "position": 0, - "provider": "claude" - }, - { - "round": 29, - "position": 1, - "provider": "codex" - }, - { - "round": 29, - "position": 2, - "provider": "cursor" - }, - { - "round": 29, - "position": 3, - "provider": "hermes" - }, - { - "round": 29, - "position": 4, - "provider": "kiro" - }, - { - "round": 29, - "position": 5, - "provider": "cline" - }, - { - "round": 29, - "position": 6, - "provider": "roo-code" - }, - { - "round": 29, - "position": 7, - "provider": "kilo" - } - ] - }, - "providers": [ - { - "provider": "claude", - "production_path": "claude_production_observation_pipeline_v1", - "pipeline_scope": "production_parse_normalize_sanitize_commit_project_and_replay", - "measured_repetitions": 30, - "observations_per_repetition": 8, - "replay_limit": 9, - "max_backlog_records": 8, - "parse": { - "scope": "native_provider_format_decode", - "raw_samples": [ - { - "repetition": 0, - "latency_ns": 58742, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 155740, - "record_count": 8 - }, - { - "repetition": 1, - "latency_ns": 61511, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 175008, - "record_count": 8 - }, - { - "repetition": 2, - "latency_ns": 58950, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 175080, - "record_count": 8 - }, - { - "repetition": 3, - "latency_ns": 93341, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 175976, - "record_count": 8 - }, - { - "repetition": 4, - "latency_ns": 47871, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177332, - "record_count": 8 - }, - { - "repetition": 5, - "latency_ns": 68571, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177340, - "record_count": 8 - }, - { - "repetition": 6, - "latency_ns": 91271, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177372, - "record_count": 8 - }, - { - "repetition": 7, - "latency_ns": 61321, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177400, - "record_count": 8 - }, - { - "repetition": 8, - "latency_ns": 62281, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177404, - "record_count": 8 - }, - { - "repetition": 9, - "latency_ns": 71652, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177444, - "record_count": 8 - }, - { - "repetition": 10, - "latency_ns": 59661, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177448, - "record_count": 8 - }, - { - "repetition": 11, - "latency_ns": 81670, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177448, - "record_count": 8 - }, - { - "repetition": 12, - "latency_ns": 74501, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177448, - "record_count": 8 - }, - { - "repetition": 13, - "latency_ns": 62861, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177456, - "record_count": 8 - }, - { - "repetition": 14, - "latency_ns": 102412, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177456, - "record_count": 8 - }, - { - "repetition": 15, - "latency_ns": 59911, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177460, - "record_count": 8 - }, - { - "repetition": 16, - "latency_ns": 62132, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177472, - "record_count": 8 - }, - { - "repetition": 17, - "latency_ns": 81531, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177476, - "record_count": 8 - }, - { - "repetition": 18, - "latency_ns": 61030, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177476, - "record_count": 8 - }, - { - "repetition": 19, - "latency_ns": 64441, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177476, - "record_count": 8 - }, - { - "repetition": 20, - "latency_ns": 69412, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177476, - "record_count": 8 - }, - { - "repetition": 21, - "latency_ns": 65410, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177476, - "record_count": 8 - }, - { - "repetition": 22, - "latency_ns": 66531, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177476, - "record_count": 8 - }, - { - "repetition": 23, - "latency_ns": 59721, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177500, - "record_count": 8 - }, - { - "repetition": 24, - "latency_ns": 60451, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177500, - "record_count": 8 - }, - { - "repetition": 25, - "latency_ns": 64381, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177500, - "record_count": 8 - }, - { - "repetition": 26, - "latency_ns": 61081, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177500, - "record_count": 8 - }, - { - "repetition": 27, - "latency_ns": 61092, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177500, - "record_count": 8 - }, - { - "repetition": 28, - "latency_ns": 66132, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177500, - "record_count": 8 - }, - { - "repetition": 29, - "latency_ns": 87591, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177500, - "record_count": 8 - } - ], - "latency": { - "repetitions": 30, - "min_ns": 47871, - "p50_ns": 62861, - "p95_ns": 93341, - "p99_ns": 102412, - "max_ns": 102412, - "mean_ns": 68248.76666666666, - "sample_stddev_ns": 12280.58133714202 - }, - "cpu_ticks": 0, - "cpu_ms": 0.0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177500 - }, - "commit": { - "scope": "production_adapter_parse_normalize_sanitize_commit_and_project", - "raw_samples": [ - { - "repetition": 0, - "latency_ns": 121915278, - "cpu_ticks": 12, - "process_write_bytes": 4599808, - "database_storage_growth_bytes": 2846920, - "peak_rss_kib": 155900, - "record_count": 8 - }, - { - "repetition": 1, - "latency_ns": 170115621, - "cpu_ticks": 17, - "process_write_bytes": 4591616, - "database_storage_growth_bytes": 2838680, - "peak_rss_kib": 175104, - "record_count": 8 - }, - { - "repetition": 2, - "latency_ns": 116366498, - "cpu_ticks": 11, - "process_write_bytes": 4608000, - "database_storage_growth_bytes": 2846920, - "peak_rss_kib": 175972, - "record_count": 8 - }, - { - "repetition": 3, - "latency_ns": 122645994, - "cpu_ticks": 12, - "process_write_bytes": 4591616, - "database_storage_growth_bytes": 2838680, - "peak_rss_kib": 176072, - "record_count": 8 - }, - { - "repetition": 4, - "latency_ns": 120546213, - "cpu_ticks": 11, - "process_write_bytes": 4591616, - "database_storage_growth_bytes": 2838680, - "peak_rss_kib": 177428, - "record_count": 8 - }, - { - "repetition": 5, - "latency_ns": 117893745, - "cpu_ticks": 11, - "process_write_bytes": 4591616, - "database_storage_growth_bytes": 2838680, - "peak_rss_kib": 177436, - "record_count": 8 - }, - { - "repetition": 6, - "latency_ns": 166634594, - "cpu_ticks": 16, - "process_write_bytes": 4591616, - "database_storage_growth_bytes": 2838680, - "peak_rss_kib": 177468, - "record_count": 8 - }, - { - "repetition": 7, - "latency_ns": 118120985, - "cpu_ticks": 11, - "process_write_bytes": 4648960, - "database_storage_growth_bytes": 2838680, - "peak_rss_kib": 177496, - "record_count": 8 - }, - { - "repetition": 8, - "latency_ns": 118126135, - "cpu_ticks": 11, - "process_write_bytes": 4591616, - "database_storage_growth_bytes": 2838680, - "peak_rss_kib": 177516, - "record_count": 8 - }, - { - "repetition": 9, - "latency_ns": 118459368, - "cpu_ticks": 11, - "process_write_bytes": 4599808, - "database_storage_growth_bytes": 2846920, - "peak_rss_kib": 177540, - "record_count": 8 - }, - { - "repetition": 10, - "latency_ns": 119953257, - "cpu_ticks": 11, - "process_write_bytes": 4591616, - "database_storage_growth_bytes": 2838680, - "peak_rss_kib": 177544, - "record_count": 8 - }, - { - "repetition": 11, - "latency_ns": 122832206, - "cpu_ticks": 11, - "process_write_bytes": 4591616, - "database_storage_growth_bytes": 2838680, - "peak_rss_kib": 177544, - "record_count": 8 - }, - { - "repetition": 12, - "latency_ns": 117895836, - "cpu_ticks": 11, - "process_write_bytes": 4591616, - "database_storage_growth_bytes": 2838680, - "peak_rss_kib": 177544, - "record_count": 8 - }, - { - "repetition": 13, - "latency_ns": 112413210, - "cpu_ticks": 11, - "process_write_bytes": 4591616, - "database_storage_growth_bytes": 2838680, - "peak_rss_kib": 177552, - "record_count": 8 - }, - { - "repetition": 14, - "latency_ns": 118973008, - "cpu_ticks": 11, - "process_write_bytes": 4591616, - "database_storage_growth_bytes": 2838680, - "peak_rss_kib": 177552, - "record_count": 8 - }, - { - "repetition": 15, - "latency_ns": 126274740, - "cpu_ticks": 11, - "process_write_bytes": 4591616, - "database_storage_growth_bytes": 2838680, - "peak_rss_kib": 177556, - "record_count": 8 - }, - { - "repetition": 16, - "latency_ns": 117555799, - "cpu_ticks": 12, - "process_write_bytes": 4599808, - "database_storage_growth_bytes": 2846920, - "peak_rss_kib": 177568, - "record_count": 8 - }, - { - "repetition": 17, - "latency_ns": 132724316, - "cpu_ticks": 13, - "process_write_bytes": 4620288, - "database_storage_growth_bytes": 2838680, - "peak_rss_kib": 177572, - "record_count": 8 - }, - { - "repetition": 18, - "latency_ns": 117404243, - "cpu_ticks": 11, - "process_write_bytes": 4591616, - "database_storage_growth_bytes": 2838680, - "peak_rss_kib": 177572, - "record_count": 8 - }, - { - "repetition": 19, - "latency_ns": 135704585, - "cpu_ticks": 12, - "process_write_bytes": 4591616, - "database_storage_growth_bytes": 2838680, - "peak_rss_kib": 177572, - "record_count": 8 - }, - { - "repetition": 20, - "latency_ns": 161626272, - "cpu_ticks": 16, - "process_write_bytes": 4591616, - "database_storage_growth_bytes": 2838680, - "peak_rss_kib": 177572, - "record_count": 8 - }, - { - "repetition": 21, - "latency_ns": 122606161, - "cpu_ticks": 12, - "process_write_bytes": 4591616, - "database_storage_growth_bytes": 2838680, - "peak_rss_kib": 177572, - "record_count": 8 - }, - { - "repetition": 22, - "latency_ns": 125213256, - "cpu_ticks": 12, - "process_write_bytes": 4599808, - "database_storage_growth_bytes": 2846920, - "peak_rss_kib": 177572, - "record_count": 8 - }, - { - "repetition": 23, - "latency_ns": 123568952, - "cpu_ticks": 12, - "process_write_bytes": 4685824, - "database_storage_growth_bytes": 2846920, - "peak_rss_kib": 177596, - "record_count": 8 - }, - { - "repetition": 24, - "latency_ns": 114464726, - "cpu_ticks": 11, - "process_write_bytes": 4591616, - "database_storage_growth_bytes": 2838680, - "peak_rss_kib": 177596, - "record_count": 8 - }, - { - "repetition": 25, - "latency_ns": 117585368, - "cpu_ticks": 11, - "process_write_bytes": 4591616, - "database_storage_growth_bytes": 2838680, - "peak_rss_kib": 177596, - "record_count": 8 - }, - { - "repetition": 26, - "latency_ns": 118335437, - "cpu_ticks": 11, - "process_write_bytes": 4591616, - "database_storage_growth_bytes": 2838680, - "peak_rss_kib": 177596, - "record_count": 8 - }, - { - "repetition": 27, - "latency_ns": 115587279, - "cpu_ticks": 10, - "process_write_bytes": 4591616, - "database_storage_growth_bytes": 2838680, - "peak_rss_kib": 177596, - "record_count": 8 - }, - { - "repetition": 28, - "latency_ns": 115176602, - "cpu_ticks": 11, - "process_write_bytes": 4608000, - "database_storage_growth_bytes": 2846920, - "peak_rss_kib": 177596, - "record_count": 8 - }, - { - "repetition": 29, - "latency_ns": 163328362, - "cpu_ticks": 15, - "process_write_bytes": 4599808, - "database_storage_growth_bytes": 2846920, - "peak_rss_kib": 177596, - "record_count": 8 - } - ], - "latency": { - "repetitions": 30, - "min_ns": 112413210, - "p50_ns": 118973008, - "p95_ns": 166634594, - "p99_ns": 170115621, - "max_ns": 170115621, - "mean_ns": 126334934.86666666, - "sample_stddev_ns": 16390610.84588072 - }, - "cpu_ticks": 358, - "cpu_ms": 3580.0, - "process_write_bytes": 138002432, - "database_storage_growth_bytes": 85226320, - "peak_rss_kib": 177596 - }, - "replay": { - "scope": "authoritative_store_bounded_replay", - "raw_samples": [ - { - "repetition": 0, - "latency_ns": 1107725, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 155900, - "record_count": 8 - }, - { - "repetition": 1, - "latency_ns": 1490711, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 175104, - "record_count": 8 - }, - { - "repetition": 2, - "latency_ns": 1098106, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 175972, - "record_count": 8 - }, - { - "repetition": 3, - "latency_ns": 967985, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 176072, - "record_count": 8 - }, - { - "repetition": 4, - "latency_ns": 1121326, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177428, - "record_count": 8 - }, - { - "repetition": 5, - "latency_ns": 996934, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177436, - "record_count": 8 - }, - { - "repetition": 6, - "latency_ns": 1576561, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177468, - "record_count": 8 - }, - { - "repetition": 7, - "latency_ns": 962283, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177496, - "record_count": 8 - }, - { - "repetition": 8, - "latency_ns": 921852, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177516, - "record_count": 8 - }, - { - "repetition": 9, - "latency_ns": 967503, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177540, - "record_count": 8 - }, - { - "repetition": 10, - "latency_ns": 996264, - "cpu_ticks": 1, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177544, - "record_count": 8 - }, - { - "repetition": 11, - "latency_ns": 980443, - "cpu_ticks": 1, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177544, - "record_count": 8 - }, - { - "repetition": 12, - "latency_ns": 952353, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177544, - "record_count": 8 - }, - { - "repetition": 13, - "latency_ns": 932233, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177552, - "record_count": 8 - }, - { - "repetition": 14, - "latency_ns": 949543, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177552, - "record_count": 8 - }, - { - "repetition": 15, - "latency_ns": 1061075, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177556, - "record_count": 8 - }, - { - "repetition": 16, - "latency_ns": 988873, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177568, - "record_count": 8 - }, - { - "repetition": 17, - "latency_ns": 1080065, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177572, - "record_count": 8 - }, - { - "repetition": 18, - "latency_ns": 946363, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177572, - "record_count": 8 - }, - { - "repetition": 19, - "latency_ns": 1098925, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177572, - "record_count": 8 - }, - { - "repetition": 20, - "latency_ns": 1506861, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177572, - "record_count": 8 - }, - { - "repetition": 21, - "latency_ns": 1121166, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177572, - "record_count": 8 - }, - { - "repetition": 22, - "latency_ns": 988633, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177572, - "record_count": 8 - }, - { - "repetition": 23, - "latency_ns": 1159136, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177596, - "record_count": 8 - }, - { - "repetition": 24, - "latency_ns": 917773, - "cpu_ticks": 1, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177596, - "record_count": 8 - }, - { - "repetition": 25, - "latency_ns": 967994, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177596, - "record_count": 8 - }, - { - "repetition": 26, - "latency_ns": 1054105, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177596, - "record_count": 8 - }, - { - "repetition": 27, - "latency_ns": 1008904, - "cpu_ticks": 1, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177596, - "record_count": 8 - }, - { - "repetition": 28, - "latency_ns": 938002, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177596, - "record_count": 8 - }, - { - "repetition": 29, - "latency_ns": 1267338, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177596, - "record_count": 8 - } - ], - "latency": { - "repetitions": 30, - "min_ns": 917773, - "p50_ns": 996264, - "p95_ns": 1506861, - "p99_ns": 1576561, - "max_ns": 1576561, - "mean_ns": 1070901.1666666667, - "sample_stddev_ns": 174579.39297580012 - }, - "cpu_ticks": 4, - "cpu_ms": 40.0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177596 - }, - "pipeline_raw_samples": [ - { - "repetition": 0, - "latency_ns": 123264187, - "cpu_ticks": 12, - "process_write_bytes": 4599808, - "database_storage_growth_bytes": 2846920, - "peak_rss_kib": 155900, - "replayed_observations": 8 - }, - { - "repetition": 1, - "latency_ns": 171962887, - "cpu_ticks": 17, - "process_write_bytes": 4591616, - "database_storage_growth_bytes": 2838680, - "peak_rss_kib": 175104, - "replayed_observations": 8 - }, - { - "repetition": 2, - "latency_ns": 117684086, - "cpu_ticks": 11, - "process_write_bytes": 4608000, - "database_storage_growth_bytes": 2846920, - "peak_rss_kib": 175972, - "replayed_observations": 8 - }, - { - "repetition": 3, - "latency_ns": 123858002, - "cpu_ticks": 12, - "process_write_bytes": 4591616, - "database_storage_growth_bytes": 2838680, - "peak_rss_kib": 176072, - "replayed_observations": 8 - }, - { - "repetition": 4, - "latency_ns": 121847482, - "cpu_ticks": 11, - "process_write_bytes": 4591616, - "database_storage_growth_bytes": 2838680, - "peak_rss_kib": 177428, - "replayed_observations": 8 - }, - { - "repetition": 5, - "latency_ns": 119079682, - "cpu_ticks": 11, - "process_write_bytes": 4591616, - "database_storage_growth_bytes": 2838680, - "peak_rss_kib": 177436, - "replayed_observations": 8 - }, - { - "repetition": 6, - "latency_ns": 168537380, - "cpu_ticks": 16, - "process_write_bytes": 4591616, - "database_storage_growth_bytes": 2838680, - "peak_rss_kib": 177468, - "replayed_observations": 8 - }, - { - "repetition": 7, - "latency_ns": 119292963, - "cpu_ticks": 11, - "process_write_bytes": 4648960, - "database_storage_growth_bytes": 2838680, - "peak_rss_kib": 177496, - "replayed_observations": 8 - }, - { - "repetition": 8, - "latency_ns": 119251180, - "cpu_ticks": 11, - "process_write_bytes": 4591616, - "database_storage_growth_bytes": 2838680, - "peak_rss_kib": 177516, - "replayed_observations": 8 - }, - { - "repetition": 9, - "latency_ns": 119643504, - "cpu_ticks": 11, - "process_write_bytes": 4599808, - "database_storage_growth_bytes": 2846920, - "peak_rss_kib": 177540, - "replayed_observations": 8 - }, - { - "repetition": 10, - "latency_ns": 121156395, - "cpu_ticks": 12, - "process_write_bytes": 4591616, - "database_storage_growth_bytes": 2838680, - "peak_rss_kib": 177544, - "replayed_observations": 8 - }, - { - "repetition": 11, - "latency_ns": 124013102, - "cpu_ticks": 12, - "process_write_bytes": 4591616, - "database_storage_growth_bytes": 2838680, - "peak_rss_kib": 177544, - "replayed_observations": 8 - }, - { - "repetition": 12, - "latency_ns": 119031412, - "cpu_ticks": 11, - "process_write_bytes": 4591616, - "database_storage_growth_bytes": 2838680, - "peak_rss_kib": 177544, - "replayed_observations": 8 - }, - { - "repetition": 13, - "latency_ns": 113550874, - "cpu_ticks": 11, - "process_write_bytes": 4591616, - "database_storage_growth_bytes": 2838680, - "peak_rss_kib": 177552, - "replayed_observations": 8 - }, - { - "repetition": 14, - "latency_ns": 120133245, - "cpu_ticks": 11, - "process_write_bytes": 4591616, - "database_storage_growth_bytes": 2838680, - "peak_rss_kib": 177552, - "replayed_observations": 8 - }, - { - "repetition": 15, - "latency_ns": 127560348, - "cpu_ticks": 12, - "process_write_bytes": 4591616, - "database_storage_growth_bytes": 2838680, - "peak_rss_kib": 177556, - "replayed_observations": 8 - }, - { - "repetition": 16, - "latency_ns": 118731574, - "cpu_ticks": 12, - "process_write_bytes": 4599808, - "database_storage_growth_bytes": 2846920, - "peak_rss_kib": 177568, - "replayed_observations": 8 - }, - { - "repetition": 17, - "latency_ns": 134027495, - "cpu_ticks": 13, - "process_write_bytes": 4620288, - "database_storage_growth_bytes": 2838680, - "peak_rss_kib": 177572, - "replayed_observations": 8 - }, - { - "repetition": 18, - "latency_ns": 118563949, - "cpu_ticks": 11, - "process_write_bytes": 4591616, - "database_storage_growth_bytes": 2838680, - "peak_rss_kib": 177572, - "replayed_observations": 8 - }, - { - "repetition": 19, - "latency_ns": 137053485, - "cpu_ticks": 12, - "process_write_bytes": 4591616, - "database_storage_growth_bytes": 2838680, - "peak_rss_kib": 177572, - "replayed_observations": 8 - }, - { - "repetition": 20, - "latency_ns": 163385795, - "cpu_ticks": 16, - "process_write_bytes": 4591616, - "database_storage_growth_bytes": 2838680, - "peak_rss_kib": 177572, - "replayed_observations": 8 - }, - { - "repetition": 21, - "latency_ns": 123938660, - "cpu_ticks": 12, - "process_write_bytes": 4591616, - "database_storage_growth_bytes": 2838680, - "peak_rss_kib": 177572, - "replayed_observations": 8 - }, - { - "repetition": 22, - "latency_ns": 126403203, - "cpu_ticks": 12, - "process_write_bytes": 4599808, - "database_storage_growth_bytes": 2846920, - "peak_rss_kib": 177572, - "replayed_observations": 8 - }, - { - "repetition": 23, - "latency_ns": 124957402, - "cpu_ticks": 12, - "process_write_bytes": 4685824, - "database_storage_growth_bytes": 2846920, - "peak_rss_kib": 177596, - "replayed_observations": 8 - }, - { - "repetition": 24, - "latency_ns": 115627982, - "cpu_ticks": 12, - "process_write_bytes": 4591616, - "database_storage_growth_bytes": 2838680, - "peak_rss_kib": 177596, - "replayed_observations": 8 - }, - { - "repetition": 25, - "latency_ns": 118790275, - "cpu_ticks": 11, - "process_write_bytes": 4591616, - "database_storage_growth_bytes": 2838680, - "peak_rss_kib": 177596, - "replayed_observations": 8 - }, - { - "repetition": 26, - "latency_ns": 119611476, - "cpu_ticks": 11, - "process_write_bytes": 4591616, - "database_storage_growth_bytes": 2838680, - "peak_rss_kib": 177596, - "replayed_observations": 8 - }, - { - "repetition": 27, - "latency_ns": 116833954, - "cpu_ticks": 11, - "process_write_bytes": 4591616, - "database_storage_growth_bytes": 2838680, - "peak_rss_kib": 177596, - "replayed_observations": 8 - }, - { - "repetition": 28, - "latency_ns": 116330177, - "cpu_ticks": 12, - "process_write_bytes": 4608000, - "database_storage_growth_bytes": 2846920, - "peak_rss_kib": 177596, - "replayed_observations": 8 - }, - { - "repetition": 29, - "latency_ns": 164887244, - "cpu_ticks": 15, - "process_write_bytes": 4599808, - "database_storage_growth_bytes": 2846920, - "peak_rss_kib": 177596, - "replayed_observations": 8 - } - ], - "pipeline_latency": { - "repetitions": 30, - "min_ns": 113550874, - "p50_ns": 120133245, - "p95_ns": 168537380, - "p99_ns": 171962887, - "max_ns": 171962887, - "mean_ns": 127633646.66666667, - "sample_stddev_ns": 16583234.147378767 - }, - "pipeline_records_per_second": 62.679396921825266, - "pipeline_cpu_ticks": 364, - "pipeline_cpu_ms": 3640.0, - "pipeline_process_write_bytes": 138002432, - "pipeline_database_storage_growth_bytes": 85226320, - "peak_rss_kib": 177596, - "no_op_raw_samples": [ - { - "repetition": 0, - "latency_ns": 1653993, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 155900, - "replayed_observations": 0 - }, - { - "repetition": 1, - "latency_ns": 2461515, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 175104, - "replayed_observations": 0 - }, - { - "repetition": 2, - "latency_ns": 1581733, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 175972, - "replayed_observations": 0 - }, - { - "repetition": 3, - "latency_ns": 1517102, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 176072, - "replayed_observations": 0 - }, - { - "repetition": 4, - "latency_ns": 1575492, - "cpu_ticks": 1, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177428, - "replayed_observations": 0 - }, - { - "repetition": 5, - "latency_ns": 1577113, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177436, - "replayed_observations": 0 - }, - { - "repetition": 6, - "latency_ns": 1997908, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177468, - "replayed_observations": 0 - }, - { - "repetition": 7, - "latency_ns": 1477731, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177496, - "replayed_observations": 0 - }, - { - "repetition": 8, - "latency_ns": 1394829, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177516, - "replayed_observations": 0 - }, - { - "repetition": 9, - "latency_ns": 1582661, - "cpu_ticks": 1, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177540, - "replayed_observations": 0 - }, - { - "repetition": 10, - "latency_ns": 1544961, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177544, - "replayed_observations": 0 - }, - { - "repetition": 11, - "latency_ns": 1542691, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177544, - "replayed_observations": 0 - }, - { - "repetition": 12, - "latency_ns": 1544622, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177544, - "replayed_observations": 0 - }, - { - "repetition": 13, - "latency_ns": 1517651, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177552, - "replayed_observations": 0 - }, - { - "repetition": 14, - "latency_ns": 1591852, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177552, - "replayed_observations": 0 - }, - { - "repetition": 15, - "latency_ns": 1680213, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177556, - "replayed_observations": 0 - }, - { - "repetition": 16, - "latency_ns": 1531371, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177568, - "replayed_observations": 0 - }, - { - "repetition": 17, - "latency_ns": 1485841, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177572, - "replayed_observations": 0 - }, - { - "repetition": 18, - "latency_ns": 1650363, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177572, - "replayed_observations": 0 - }, - { - "repetition": 19, - "latency_ns": 1873415, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177572, - "replayed_observations": 0 - }, - { - "repetition": 20, - "latency_ns": 2011348, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177572, - "replayed_observations": 0 - }, - { - "repetition": 21, - "latency_ns": 1702993, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177572, - "replayed_observations": 0 - }, - { - "repetition": 22, - "latency_ns": 1728703, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177572, - "replayed_observations": 0 - }, - { - "repetition": 23, - "latency_ns": 1724623, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177596, - "replayed_observations": 0 - }, - { - "repetition": 24, - "latency_ns": 1576432, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177596, - "replayed_observations": 0 - }, - { - "repetition": 25, - "latency_ns": 1519691, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177596, - "replayed_observations": 0 - }, - { - "repetition": 26, - "latency_ns": 1577753, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177596, - "replayed_observations": 0 - }, - { - "repetition": 27, - "latency_ns": 1556222, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177596, - "replayed_observations": 0 - }, - { - "repetition": 28, - "latency_ns": 1436141, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177596, - "replayed_observations": 0 - }, - { - "repetition": 29, - "latency_ns": 2000086, - "cpu_ticks": 1, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177596, - "replayed_observations": 0 - } - ], - "no_op_latency": { - "repetitions": 30, - "min_ns": 1394829, - "p50_ns": 1577113, - "p95_ns": 2011348, - "p99_ns": 2461515, - "max_ns": 2461515, - "mean_ns": 1653901.6333333333, - "sample_stddev_ns": 220337.51207142745 - }, - "no_op_cpu_ticks": 3, - "no_op_cpu_ms": 30.0, - "no_op_process_write_bytes": 0, - "no_op_database_storage_growth_bytes": 0, - "no_op_observation_count_delta": 0 - }, - { - "provider": "codex", - "production_path": "codex_production_observation_pipeline_v1", - "pipeline_scope": "production_parse_normalize_sanitize_commit_project_and_replay", - "measured_repetitions": 30, - "observations_per_repetition": 8, - "replay_limit": 9, - "max_backlog_records": 8, - "parse": { - "scope": "native_provider_format_decode", - "raw_samples": [ - { - "repetition": 0, - "latency_ns": 36622, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 160892, - "record_count": 8 - }, - { - "repetition": 1, - "latency_ns": 37361, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 175044, - "record_count": 8 - }, - { - "repetition": 2, - "latency_ns": 37951, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 175912, - "record_count": 8 - }, - { - "repetition": 3, - "latency_ns": 40942, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 176012, - "record_count": 8 - }, - { - "repetition": 4, - "latency_ns": 32472, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177368, - "record_count": 8 - }, - { - "repetition": 5, - "latency_ns": 35982, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177376, - "record_count": 8 - }, - { - "repetition": 6, - "latency_ns": 36459, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177408, - "record_count": 8 - }, - { - "repetition": 7, - "latency_ns": 35689, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177436, - "record_count": 8 - }, - { - "repetition": 8, - "latency_ns": 30942, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177456, - "record_count": 8 - }, - { - "repetition": 9, - "latency_ns": 35931, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177480, - "record_count": 8 - }, - { - "repetition": 10, - "latency_ns": 37390, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177484, - "record_count": 8 - }, - { - "repetition": 11, - "latency_ns": 37339, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177484, - "record_count": 8 - }, - { - "repetition": 12, - "latency_ns": 34900, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177484, - "record_count": 8 - }, - { - "repetition": 13, - "latency_ns": 38632, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177492, - "record_count": 8 - }, - { - "repetition": 14, - "latency_ns": 48251, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177492, - "record_count": 8 - }, - { - "repetition": 15, - "latency_ns": 38720, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177496, - "record_count": 8 - }, - { - "repetition": 16, - "latency_ns": 37761, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177508, - "record_count": 8 - }, - { - "repetition": 17, - "latency_ns": 34720, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177512, - "record_count": 8 - }, - { - "repetition": 18, - "latency_ns": 39360, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177512, - "record_count": 8 - }, - { - "repetition": 19, - "latency_ns": 36980, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177512, - "record_count": 8 - }, - { - "repetition": 20, - "latency_ns": 35910, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177512, - "record_count": 8 - }, - { - "repetition": 21, - "latency_ns": 34900, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177512, - "record_count": 8 - }, - { - "repetition": 22, - "latency_ns": 60811, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177512, - "record_count": 8 - }, - { - "repetition": 23, - "latency_ns": 31540, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177536, - "record_count": 8 - }, - { - "repetition": 24, - "latency_ns": 36652, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177536, - "record_count": 8 - }, - { - "repetition": 25, - "latency_ns": 53380, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177536, - "record_count": 8 - }, - { - "repetition": 26, - "latency_ns": 37710, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177536, - "record_count": 8 - }, - { - "repetition": 27, - "latency_ns": 42240, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177536, - "record_count": 8 - }, - { - "repetition": 28, - "latency_ns": 34020, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177536, - "record_count": 8 - }, - { - "repetition": 29, - "latency_ns": 36771, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177536, - "record_count": 8 - } - ], - "latency": { - "repetitions": 30, - "min_ns": 30942, - "p50_ns": 36771, - "p95_ns": 53380, - "p99_ns": 60811, - "max_ns": 60811, - "mean_ns": 38277.933333333334, - "sample_stddev_ns": 6116.797195137074 - }, - "cpu_ticks": 0, - "cpu_ms": 0.0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177536 - }, - "commit": { - "scope": "production_adapter_parse_normalize_sanitize_commit_and_project", - "raw_samples": [ - { - "repetition": 0, - "latency_ns": 121920878, - "cpu_ticks": 12, - "process_write_bytes": 4374528, - "database_storage_growth_bytes": 2719200, - "peak_rss_kib": 162720, - "record_count": 8 - }, - { - "repetition": 1, - "latency_ns": 126200387, - "cpu_ticks": 11, - "process_write_bytes": 4374528, - "database_storage_growth_bytes": 2719200, - "peak_rss_kib": 175140, - "record_count": 8 - }, - { - "repetition": 2, - "latency_ns": 120805360, - "cpu_ticks": 11, - "process_write_bytes": 4382720, - "database_storage_growth_bytes": 2727440, - "peak_rss_kib": 176008, - "record_count": 8 - }, - { - "repetition": 3, - "latency_ns": 122097916, - "cpu_ticks": 11, - "process_write_bytes": 4374528, - "database_storage_growth_bytes": 2719200, - "peak_rss_kib": 176108, - "record_count": 8 - }, - { - "repetition": 4, - "latency_ns": 126041511, - "cpu_ticks": 12, - "process_write_bytes": 4382720, - "database_storage_growth_bytes": 2727440, - "peak_rss_kib": 177464, - "record_count": 8 - }, - { - "repetition": 5, - "latency_ns": 116662528, - "cpu_ticks": 11, - "process_write_bytes": 4382720, - "database_storage_growth_bytes": 2727440, - "peak_rss_kib": 177472, - "record_count": 8 - }, - { - "repetition": 6, - "latency_ns": 121839419, - "cpu_ticks": 12, - "process_write_bytes": 4382720, - "database_storage_growth_bytes": 2727440, - "peak_rss_kib": 177504, - "record_count": 8 - }, - { - "repetition": 7, - "latency_ns": 130255315, - "cpu_ticks": 12, - "process_write_bytes": 4374528, - "database_storage_growth_bytes": 2719200, - "peak_rss_kib": 177532, - "record_count": 8 - }, - { - "repetition": 8, - "latency_ns": 128974096, - "cpu_ticks": 12, - "process_write_bytes": 4382720, - "database_storage_growth_bytes": 2727440, - "peak_rss_kib": 177552, - "record_count": 8 - }, - { - "repetition": 9, - "latency_ns": 121817295, - "cpu_ticks": 11, - "process_write_bytes": 4382720, - "database_storage_growth_bytes": 2727440, - "peak_rss_kib": 177576, - "record_count": 8 - }, - { - "repetition": 10, - "latency_ns": 123913462, - "cpu_ticks": 10, - "process_write_bytes": 4382720, - "database_storage_growth_bytes": 2727440, - "peak_rss_kib": 177580, - "record_count": 8 - }, - { - "repetition": 11, - "latency_ns": 128694347, - "cpu_ticks": 12, - "process_write_bytes": 4390912, - "database_storage_growth_bytes": 2727440, - "peak_rss_kib": 177580, - "record_count": 8 - }, - { - "repetition": 12, - "latency_ns": 121953642, - "cpu_ticks": 11, - "process_write_bytes": 4399104, - "database_storage_growth_bytes": 2719200, - "peak_rss_kib": 177580, - "record_count": 8 - }, - { - "repetition": 13, - "latency_ns": 119237534, - "cpu_ticks": 12, - "process_write_bytes": 4374528, - "database_storage_growth_bytes": 2719200, - "peak_rss_kib": 177588, - "record_count": 8 - }, - { - "repetition": 14, - "latency_ns": 123486832, - "cpu_ticks": 12, - "process_write_bytes": 4390912, - "database_storage_growth_bytes": 2727440, - "peak_rss_kib": 177588, - "record_count": 8 - }, - { - "repetition": 15, - "latency_ns": 117910283, - "cpu_ticks": 12, - "process_write_bytes": 4382720, - "database_storage_growth_bytes": 2727440, - "peak_rss_kib": 177592, - "record_count": 8 - }, - { - "repetition": 16, - "latency_ns": 121318509, - "cpu_ticks": 11, - "process_write_bytes": 4382720, - "database_storage_growth_bytes": 2727440, - "peak_rss_kib": 177604, - "record_count": 8 - }, - { - "repetition": 17, - "latency_ns": 124166098, - "cpu_ticks": 11, - "process_write_bytes": 4382720, - "database_storage_growth_bytes": 2727440, - "peak_rss_kib": 177608, - "record_count": 8 - }, - { - "repetition": 18, - "latency_ns": 128047310, - "cpu_ticks": 12, - "process_write_bytes": 4374528, - "database_storage_growth_bytes": 2719200, - "peak_rss_kib": 177608, - "record_count": 8 - }, - { - "repetition": 19, - "latency_ns": 116547630, - "cpu_ticks": 11, - "process_write_bytes": 4374528, - "database_storage_growth_bytes": 2719200, - "peak_rss_kib": 177608, - "record_count": 8 - }, - { - "repetition": 20, - "latency_ns": 116578699, - "cpu_ticks": 11, - "process_write_bytes": 4374528, - "database_storage_growth_bytes": 2719200, - "peak_rss_kib": 177608, - "record_count": 8 - }, - { - "repetition": 21, - "latency_ns": 116551718, - "cpu_ticks": 11, - "process_write_bytes": 4374528, - "database_storage_growth_bytes": 2719200, - "peak_rss_kib": 177608, - "record_count": 8 - }, - { - "repetition": 22, - "latency_ns": 126908559, - "cpu_ticks": 12, - "process_write_bytes": 4382720, - "database_storage_growth_bytes": 2727440, - "peak_rss_kib": 177608, - "record_count": 8 - }, - { - "repetition": 23, - "latency_ns": 119504986, - "cpu_ticks": 12, - "process_write_bytes": 4374528, - "database_storage_growth_bytes": 2719200, - "peak_rss_kib": 177632, - "record_count": 8 - }, - { - "repetition": 24, - "latency_ns": 117113793, - "cpu_ticks": 11, - "process_write_bytes": 4382720, - "database_storage_growth_bytes": 2727440, - "peak_rss_kib": 177632, - "record_count": 8 - }, - { - "repetition": 25, - "latency_ns": 128454187, - "cpu_ticks": 12, - "process_write_bytes": 4374528, - "database_storage_growth_bytes": 2719200, - "peak_rss_kib": 177632, - "record_count": 8 - }, - { - "repetition": 26, - "latency_ns": 119478312, - "cpu_ticks": 11, - "process_write_bytes": 4374528, - "database_storage_growth_bytes": 2719200, - "peak_rss_kib": 177632, - "record_count": 8 - }, - { - "repetition": 27, - "latency_ns": 117325962, - "cpu_ticks": 11, - "process_write_bytes": 4390912, - "database_storage_growth_bytes": 2727440, - "peak_rss_kib": 177632, - "record_count": 8 - }, - { - "repetition": 28, - "latency_ns": 120928901, - "cpu_ticks": 12, - "process_write_bytes": 4374528, - "database_storage_growth_bytes": 2719200, - "peak_rss_kib": 177632, - "record_count": 8 - }, - { - "repetition": 29, - "latency_ns": 158414565, - "cpu_ticks": 16, - "process_write_bytes": 4390912, - "database_storage_growth_bytes": 2727440, - "peak_rss_kib": 177632, - "record_count": 8 - } - ], - "latency": { - "repetitions": 30, - "min_ns": 116547630, - "p50_ns": 121839419, - "p95_ns": 130255315, - "p99_ns": 158414565, - "max_ns": 158414565, - "mean_ns": 123438334.46666667, - "sample_stddev_ns": 7824564.044424692 - }, - "cpu_ticks": 348, - "cpu_ms": 3480.0, - "process_write_bytes": 131424256, - "database_storage_growth_bytes": 81707840, - "peak_rss_kib": 177632 - }, - "replay": { - "scope": "authoritative_store_bounded_replay", - "raw_samples": [ - { - "repetition": 0, - "latency_ns": 899253, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 162720, - "record_count": 8 - }, - { - "repetition": 1, - "latency_ns": 898053, - "cpu_ticks": 1, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 175140, - "record_count": 8 - }, - { - "repetition": 2, - "latency_ns": 860861, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 176008, - "record_count": 8 - }, - { - "repetition": 3, - "latency_ns": 1000165, - "cpu_ticks": 1, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 176108, - "record_count": 8 - }, - { - "repetition": 4, - "latency_ns": 915532, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177464, - "record_count": 8 - }, - { - "repetition": 5, - "latency_ns": 884243, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177472, - "record_count": 8 - }, - { - "repetition": 6, - "latency_ns": 941434, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177504, - "record_count": 8 - }, - { - "repetition": 7, - "latency_ns": 886453, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177532, - "record_count": 8 - }, - { - "repetition": 8, - "latency_ns": 964953, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177552, - "record_count": 8 - }, - { - "repetition": 9, - "latency_ns": 913962, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177576, - "record_count": 8 - }, - { - "repetition": 10, - "latency_ns": 1197587, - "cpu_ticks": 1, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177580, - "record_count": 8 - }, - { - "repetition": 11, - "latency_ns": 893443, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177580, - "record_count": 8 - }, - { - "repetition": 12, - "latency_ns": 1235787, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177580, - "record_count": 8 - }, - { - "repetition": 13, - "latency_ns": 886743, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177588, - "record_count": 8 - }, - { - "repetition": 14, - "latency_ns": 860141, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177588, - "record_count": 8 - }, - { - "repetition": 15, - "latency_ns": 880542, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177592, - "record_count": 8 - }, - { - "repetition": 16, - "latency_ns": 878942, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177604, - "record_count": 8 - }, - { - "repetition": 17, - "latency_ns": 895793, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177608, - "record_count": 8 - }, - { - "repetition": 18, - "latency_ns": 866802, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177608, - "record_count": 8 - }, - { - "repetition": 19, - "latency_ns": 746320, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177608, - "record_count": 8 - }, - { - "repetition": 20, - "latency_ns": 870292, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177608, - "record_count": 8 - }, - { - "repetition": 21, - "latency_ns": 905293, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177608, - "record_count": 8 - }, - { - "repetition": 22, - "latency_ns": 949164, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177608, - "record_count": 8 - }, - { - "repetition": 23, - "latency_ns": 1033515, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177632, - "record_count": 8 - }, - { - "repetition": 24, - "latency_ns": 912492, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177632, - "record_count": 8 - }, - { - "repetition": 25, - "latency_ns": 898553, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177632, - "record_count": 8 - }, - { - "repetition": 26, - "latency_ns": 869323, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177632, - "record_count": 8 - }, - { - "repetition": 27, - "latency_ns": 877612, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177632, - "record_count": 8 - }, - { - "repetition": 28, - "latency_ns": 854701, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177632, - "record_count": 8 - }, - { - "repetition": 29, - "latency_ns": 1096845, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177632, - "record_count": 8 - } - ], - "latency": { - "repetitions": 30, - "min_ns": 746320, - "p50_ns": 895793, - "p95_ns": 1197587, - "p99_ns": 1235787, - "max_ns": 1235787, - "mean_ns": 925826.6333333333, - "sample_stddev_ns": 100102.46303748607 - }, - "cpu_ticks": 3, - "cpu_ms": 30.0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177632 - }, - "pipeline_raw_samples": [ - { - "repetition": 0, - "latency_ns": 122999393, - "cpu_ticks": 12, - "process_write_bytes": 4374528, - "database_storage_growth_bytes": 2719200, - "peak_rss_kib": 162720, - "replayed_observations": 8 - }, - { - "repetition": 1, - "latency_ns": 127321052, - "cpu_ticks": 12, - "process_write_bytes": 4374528, - "database_storage_growth_bytes": 2719200, - "peak_rss_kib": 175140, - "replayed_observations": 8 - }, - { - "repetition": 2, - "latency_ns": 121861585, - "cpu_ticks": 11, - "process_write_bytes": 4382720, - "database_storage_growth_bytes": 2727440, - "peak_rss_kib": 176008, - "replayed_observations": 8 - }, - { - "repetition": 3, - "latency_ns": 123339323, - "cpu_ticks": 12, - "process_write_bytes": 4374528, - "database_storage_growth_bytes": 2719200, - "peak_rss_kib": 176108, - "replayed_observations": 8 - }, - { - "repetition": 4, - "latency_ns": 127170256, - "cpu_ticks": 12, - "process_write_bytes": 4382720, - "database_storage_growth_bytes": 2727440, - "peak_rss_kib": 177464, - "replayed_observations": 8 - }, - { - "repetition": 5, - "latency_ns": 117729014, - "cpu_ticks": 11, - "process_write_bytes": 4382720, - "database_storage_growth_bytes": 2727440, - "peak_rss_kib": 177472, - "replayed_observations": 8 - }, - { - "repetition": 6, - "latency_ns": 122968244, - "cpu_ticks": 12, - "process_write_bytes": 4382720, - "database_storage_growth_bytes": 2727440, - "peak_rss_kib": 177504, - "replayed_observations": 8 - }, - { - "repetition": 7, - "latency_ns": 131404960, - "cpu_ticks": 12, - "process_write_bytes": 4374528, - "database_storage_growth_bytes": 2719200, - "peak_rss_kib": 177532, - "replayed_observations": 8 - }, - { - "repetition": 8, - "latency_ns": 130165612, - "cpu_ticks": 12, - "process_write_bytes": 4382720, - "database_storage_growth_bytes": 2727440, - "peak_rss_kib": 177552, - "replayed_observations": 8 - }, - { - "repetition": 9, - "latency_ns": 122923931, - "cpu_ticks": 12, - "process_write_bytes": 4382720, - "database_storage_growth_bytes": 2727440, - "peak_rss_kib": 177576, - "replayed_observations": 8 - }, - { - "repetition": 10, - "latency_ns": 125352273, - "cpu_ticks": 11, - "process_write_bytes": 4382720, - "database_storage_growth_bytes": 2727440, - "peak_rss_kib": 177580, - "replayed_observations": 8 - }, - { - "repetition": 11, - "latency_ns": 129795073, - "cpu_ticks": 12, - "process_write_bytes": 4390912, - "database_storage_growth_bytes": 2727440, - "peak_rss_kib": 177580, - "replayed_observations": 8 - }, - { - "repetition": 12, - "latency_ns": 123413924, - "cpu_ticks": 11, - "process_write_bytes": 4399104, - "database_storage_growth_bytes": 2719200, - "peak_rss_kib": 177580, - "replayed_observations": 8 - }, - { - "repetition": 13, - "latency_ns": 120322198, - "cpu_ticks": 12, - "process_write_bytes": 4374528, - "database_storage_growth_bytes": 2719200, - "peak_rss_kib": 177588, - "replayed_observations": 8 - }, - { - "repetition": 14, - "latency_ns": 124586097, - "cpu_ticks": 12, - "process_write_bytes": 4390912, - "database_storage_growth_bytes": 2727440, - "peak_rss_kib": 177588, - "replayed_observations": 8 - }, - { - "repetition": 15, - "latency_ns": 119023459, - "cpu_ticks": 12, - "process_write_bytes": 4382720, - "database_storage_growth_bytes": 2727440, - "peak_rss_kib": 177592, - "replayed_observations": 8 - }, - { - "repetition": 16, - "latency_ns": 122410874, - "cpu_ticks": 11, - "process_write_bytes": 4382720, - "database_storage_growth_bytes": 2727440, - "peak_rss_kib": 177604, - "replayed_observations": 8 - }, - { - "repetition": 17, - "latency_ns": 125286853, - "cpu_ticks": 11, - "process_write_bytes": 4382720, - "database_storage_growth_bytes": 2727440, - "peak_rss_kib": 177608, - "replayed_observations": 8 - }, - { - "repetition": 18, - "latency_ns": 129128955, - "cpu_ticks": 12, - "process_write_bytes": 4374528, - "database_storage_growth_bytes": 2719200, - "peak_rss_kib": 177608, - "replayed_observations": 8 - }, - { - "repetition": 19, - "latency_ns": 117507464, - "cpu_ticks": 11, - "process_write_bytes": 4374528, - "database_storage_growth_bytes": 2719200, - "peak_rss_kib": 177608, - "replayed_observations": 8 - }, - { - "repetition": 20, - "latency_ns": 117628343, - "cpu_ticks": 11, - "process_write_bytes": 4374528, - "database_storage_growth_bytes": 2719200, - "peak_rss_kib": 177608, - "replayed_observations": 8 - }, - { - "repetition": 21, - "latency_ns": 117629412, - "cpu_ticks": 11, - "process_write_bytes": 4374528, - "database_storage_growth_bytes": 2719200, - "peak_rss_kib": 177608, - "replayed_observations": 8 - }, - { - "repetition": 22, - "latency_ns": 128075847, - "cpu_ticks": 12, - "process_write_bytes": 4382720, - "database_storage_growth_bytes": 2727440, - "peak_rss_kib": 177608, - "replayed_observations": 8 - }, - { - "repetition": 23, - "latency_ns": 120777084, - "cpu_ticks": 12, - "process_write_bytes": 4374528, - "database_storage_growth_bytes": 2719200, - "peak_rss_kib": 177632, - "replayed_observations": 8 - }, - { - "repetition": 24, - "latency_ns": 118230377, - "cpu_ticks": 11, - "process_write_bytes": 4382720, - "database_storage_growth_bytes": 2727440, - "peak_rss_kib": 177632, - "replayed_observations": 8 - }, - { - "repetition": 25, - "latency_ns": 129570723, - "cpu_ticks": 12, - "process_write_bytes": 4374528, - "database_storage_growth_bytes": 2719200, - "peak_rss_kib": 177632, - "replayed_observations": 8 - }, - { - "repetition": 26, - "latency_ns": 120568037, - "cpu_ticks": 11, - "process_write_bytes": 4374528, - "database_storage_growth_bytes": 2719200, - "peak_rss_kib": 177632, - "replayed_observations": 8 - }, - { - "repetition": 27, - "latency_ns": 118440778, - "cpu_ticks": 11, - "process_write_bytes": 4390912, - "database_storage_growth_bytes": 2727440, - "peak_rss_kib": 177632, - "replayed_observations": 8 - }, - { - "repetition": 28, - "latency_ns": 121954854, - "cpu_ticks": 12, - "process_write_bytes": 4374528, - "database_storage_growth_bytes": 2719200, - "peak_rss_kib": 177632, - "replayed_observations": 8 - }, - { - "repetition": 29, - "latency_ns": 159763443, - "cpu_ticks": 16, - "process_write_bytes": 4390912, - "database_storage_growth_bytes": 2727440, - "peak_rss_kib": 177632, - "replayed_observations": 8 - } - ], - "pipeline_latency": { - "repetitions": 30, - "min_ns": 117507464, - "p50_ns": 122968244, - "p95_ns": 131404960, - "p99_ns": 159763443, - "max_ns": 159763443, - "mean_ns": 124578314.6, - "sample_stddev_ns": 7871549.710495722 - }, - "pipeline_records_per_second": 64.2166337350658, - "pipeline_cpu_ticks": 352, - "pipeline_cpu_ms": 3520.0, - "pipeline_process_write_bytes": 131424256, - "pipeline_database_storage_growth_bytes": 81707840, - "peak_rss_kib": 177632, - "no_op_raw_samples": [ - { - "repetition": 0, - "latency_ns": 646309, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 162912, - "replayed_observations": 0 - }, - { - "repetition": 1, - "latency_ns": 637578, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 175140, - "replayed_observations": 0 - }, - { - "repetition": 2, - "latency_ns": 620688, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 176008, - "replayed_observations": 0 - }, - { - "repetition": 3, - "latency_ns": 723940, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 176108, - "replayed_observations": 0 - }, - { - "repetition": 4, - "latency_ns": 700220, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177464, - "replayed_observations": 0 - }, - { - "repetition": 5, - "latency_ns": 548768, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177472, - "replayed_observations": 0 - }, - { - "repetition": 6, - "latency_ns": 647899, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177504, - "replayed_observations": 0 - }, - { - "repetition": 7, - "latency_ns": 904413, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177532, - "replayed_observations": 0 - }, - { - "repetition": 8, - "latency_ns": 648929, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177552, - "replayed_observations": 0 - }, - { - "repetition": 9, - "latency_ns": 633938, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177576, - "replayed_observations": 0 - }, - { - "repetition": 10, - "latency_ns": 757281, - "cpu_ticks": 1, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177580, - "replayed_observations": 0 - }, - { - "repetition": 11, - "latency_ns": 709020, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177580, - "replayed_observations": 0 - }, - { - "repetition": 12, - "latency_ns": 670460, - "cpu_ticks": 1, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177580, - "replayed_observations": 0 - }, - { - "repetition": 13, - "latency_ns": 686201, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177588, - "replayed_observations": 0 - }, - { - "repetition": 14, - "latency_ns": 726279, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177588, - "replayed_observations": 0 - }, - { - "repetition": 15, - "latency_ns": 659299, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177592, - "replayed_observations": 0 - }, - { - "repetition": 16, - "latency_ns": 583708, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177604, - "replayed_observations": 0 - }, - { - "repetition": 17, - "latency_ns": 624749, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177608, - "replayed_observations": 0 - }, - { - "repetition": 18, - "latency_ns": 661030, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177608, - "replayed_observations": 0 - }, - { - "repetition": 19, - "latency_ns": 490727, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177608, - "replayed_observations": 0 - }, - { - "repetition": 20, - "latency_ns": 605549, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177608, - "replayed_observations": 0 - }, - { - "repetition": 21, - "latency_ns": 604139, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177608, - "replayed_observations": 0 - }, - { - "repetition": 22, - "latency_ns": 710410, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177608, - "replayed_observations": 0 - }, - { - "repetition": 23, - "latency_ns": 766571, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177632, - "replayed_observations": 0 - }, - { - "repetition": 24, - "latency_ns": 603688, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177632, - "replayed_observations": 0 - }, - { - "repetition": 25, - "latency_ns": 758702, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177632, - "replayed_observations": 0 - }, - { - "repetition": 26, - "latency_ns": 617398, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177632, - "replayed_observations": 0 - }, - { - "repetition": 27, - "latency_ns": 630429, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177632, - "replayed_observations": 0 - }, - { - "repetition": 28, - "latency_ns": 618128, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177632, - "replayed_observations": 0 - }, - { - "repetition": 29, - "latency_ns": 804671, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177632, - "replayed_observations": 0 - } - ], - "no_op_latency": { - "repetitions": 30, - "min_ns": 490727, - "p50_ns": 647899, - "p95_ns": 804671, - "p99_ns": 904413, - "max_ns": 904413, - "mean_ns": 666704.0333333333, - "sample_stddev_ns": 81090.52261451643 - }, - "no_op_cpu_ticks": 2, - "no_op_cpu_ms": 20.0, - "no_op_process_write_bytes": 0, - "no_op_database_storage_growth_bytes": 0, - "no_op_observation_count_delta": 0 - }, - { - "provider": "cursor", - "production_path": "cursor_production_observation_pipeline_v1", - "pipeline_scope": "production_parse_normalize_sanitize_commit_project_and_replay", - "measured_repetitions": 30, - "observations_per_repetition": 8, - "replay_limit": 9, - "max_backlog_records": 8, - "parse": { - "scope": "native_provider_format_decode", - "raw_samples": [ - { - "repetition": 0, - "latency_ns": 45030, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 165448, - "record_count": 8 - }, - { - "repetition": 1, - "latency_ns": 38261, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 175044, - "record_count": 8 - }, - { - "repetition": 2, - "latency_ns": 45490, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 175912, - "record_count": 8 - }, - { - "repetition": 3, - "latency_ns": 48631, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 176012, - "record_count": 8 - }, - { - "repetition": 4, - "latency_ns": 44041, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177368, - "record_count": 8 - }, - { - "repetition": 5, - "latency_ns": 39780, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177376, - "record_count": 8 - }, - { - "repetition": 6, - "latency_ns": 43701, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177408, - "record_count": 8 - }, - { - "repetition": 7, - "latency_ns": 42301, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177436, - "record_count": 8 - }, - { - "repetition": 8, - "latency_ns": 44180, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177456, - "record_count": 8 - }, - { - "repetition": 9, - "latency_ns": 43610, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177480, - "record_count": 8 - }, - { - "repetition": 10, - "latency_ns": 43662, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177484, - "record_count": 8 - }, - { - "repetition": 11, - "latency_ns": 41550, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177484, - "record_count": 8 - }, - { - "repetition": 12, - "latency_ns": 73571, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177484, - "record_count": 8 - }, - { - "repetition": 13, - "latency_ns": 41191, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177492, - "record_count": 8 - }, - { - "repetition": 14, - "latency_ns": 48141, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177492, - "record_count": 8 - }, - { - "repetition": 15, - "latency_ns": 45881, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177496, - "record_count": 8 - }, - { - "repetition": 16, - "latency_ns": 57302, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177508, - "record_count": 8 - }, - { - "repetition": 17, - "latency_ns": 44221, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177512, - "record_count": 8 - }, - { - "repetition": 18, - "latency_ns": 48111, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177512, - "record_count": 8 - }, - { - "repetition": 19, - "latency_ns": 46151, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177512, - "record_count": 8 - }, - { - "repetition": 20, - "latency_ns": 54731, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177512, - "record_count": 8 - }, - { - "repetition": 21, - "latency_ns": 42391, - "cpu_ticks": 1, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177512, - "record_count": 8 - }, - { - "repetition": 22, - "latency_ns": 64252, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177512, - "record_count": 8 - }, - { - "repetition": 23, - "latency_ns": 46411, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177536, - "record_count": 8 - }, - { - "repetition": 24, - "latency_ns": 40050, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177536, - "record_count": 8 - }, - { - "repetition": 25, - "latency_ns": 47321, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177536, - "record_count": 8 - }, - { - "repetition": 26, - "latency_ns": 56510, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177536, - "record_count": 8 - }, - { - "repetition": 27, - "latency_ns": 49540, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177536, - "record_count": 8 - }, - { - "repetition": 28, - "latency_ns": 60181, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177536, - "record_count": 8 - }, - { - "repetition": 29, - "latency_ns": 58141, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177536, - "record_count": 8 - } - ], - "latency": { - "repetitions": 30, - "min_ns": 38261, - "p50_ns": 45490, - "p95_ns": 64252, - "p99_ns": 73571, - "max_ns": 73571, - "mean_ns": 48144.46666666667, - "sample_stddev_ns": 8052.217024900158 - }, - "cpu_ticks": 1, - "cpu_ms": 10.0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177536 - }, - "commit": { - "scope": "production_adapter_parse_normalize_sanitize_commit_and_project", - "raw_samples": [ - { - "repetition": 0, - "latency_ns": 122554556, - "cpu_ticks": 12, - "process_write_bytes": 4628480, - "database_storage_growth_bytes": 2830440, - "peak_rss_kib": 165876, - "record_count": 8 - }, - { - "repetition": 1, - "latency_ns": 122762848, - "cpu_ticks": 12, - "process_write_bytes": 4620288, - "database_storage_growth_bytes": 2822200, - "peak_rss_kib": 175140, - "record_count": 8 - }, - { - "repetition": 2, - "latency_ns": 122723716, - "cpu_ticks": 12, - "process_write_bytes": 4628480, - "database_storage_growth_bytes": 2830440, - "peak_rss_kib": 176020, - "record_count": 8 - }, - { - "repetition": 3, - "latency_ns": 124204194, - "cpu_ticks": 12, - "process_write_bytes": 4628480, - "database_storage_growth_bytes": 2830440, - "peak_rss_kib": 176108, - "record_count": 8 - }, - { - "repetition": 4, - "latency_ns": 118457874, - "cpu_ticks": 11, - "process_write_bytes": 4620288, - "database_storage_growth_bytes": 2822200, - "peak_rss_kib": 177464, - "record_count": 8 - }, - { - "repetition": 5, - "latency_ns": 122753083, - "cpu_ticks": 13, - "process_write_bytes": 4620288, - "database_storage_growth_bytes": 2822200, - "peak_rss_kib": 177480, - "record_count": 8 - }, - { - "repetition": 6, - "latency_ns": 116572925, - "cpu_ticks": 12, - "process_write_bytes": 4620288, - "database_storage_growth_bytes": 2822200, - "peak_rss_kib": 177504, - "record_count": 8 - }, - { - "repetition": 7, - "latency_ns": 114685878, - "cpu_ticks": 11, - "process_write_bytes": 4661248, - "database_storage_growth_bytes": 2822200, - "peak_rss_kib": 177532, - "record_count": 8 - }, - { - "repetition": 8, - "latency_ns": 119386863, - "cpu_ticks": 11, - "process_write_bytes": 4628480, - "database_storage_growth_bytes": 2830440, - "peak_rss_kib": 177552, - "record_count": 8 - }, - { - "repetition": 9, - "latency_ns": 122445144, - "cpu_ticks": 10, - "process_write_bytes": 4620288, - "database_storage_growth_bytes": 2822200, - "peak_rss_kib": 177576, - "record_count": 8 - }, - { - "repetition": 10, - "latency_ns": 134942426, - "cpu_ticks": 12, - "process_write_bytes": 4620288, - "database_storage_growth_bytes": 2822200, - "peak_rss_kib": 177580, - "record_count": 8 - }, - { - "repetition": 11, - "latency_ns": 125998211, - "cpu_ticks": 12, - "process_write_bytes": 4620288, - "database_storage_growth_bytes": 2822200, - "peak_rss_kib": 177580, - "record_count": 8 - }, - { - "repetition": 12, - "latency_ns": 127132765, - "cpu_ticks": 12, - "process_write_bytes": 4632576, - "database_storage_growth_bytes": 2830440, - "peak_rss_kib": 177580, - "record_count": 8 - }, - { - "repetition": 13, - "latency_ns": 115988619, - "cpu_ticks": 11, - "process_write_bytes": 4620288, - "database_storage_growth_bytes": 2822200, - "peak_rss_kib": 177588, - "record_count": 8 - }, - { - "repetition": 14, - "latency_ns": 128631903, - "cpu_ticks": 13, - "process_write_bytes": 4628480, - "database_storage_growth_bytes": 2830440, - "peak_rss_kib": 177588, - "record_count": 8 - }, - { - "repetition": 15, - "latency_ns": 124732267, - "cpu_ticks": 12, - "process_write_bytes": 4620288, - "database_storage_growth_bytes": 2822200, - "peak_rss_kib": 177592, - "record_count": 8 - }, - { - "repetition": 16, - "latency_ns": 124750948, - "cpu_ticks": 11, - "process_write_bytes": 4628480, - "database_storage_growth_bytes": 2830440, - "peak_rss_kib": 177604, - "record_count": 8 - }, - { - "repetition": 17, - "latency_ns": 123839563, - "cpu_ticks": 12, - "process_write_bytes": 4620288, - "database_storage_growth_bytes": 2822200, - "peak_rss_kib": 177608, - "record_count": 8 - }, - { - "repetition": 18, - "latency_ns": 119078196, - "cpu_ticks": 11, - "process_write_bytes": 4628480, - "database_storage_growth_bytes": 2830440, - "peak_rss_kib": 177608, - "record_count": 8 - }, - { - "repetition": 19, - "latency_ns": 126630229, - "cpu_ticks": 12, - "process_write_bytes": 4628480, - "database_storage_growth_bytes": 2830440, - "peak_rss_kib": 177608, - "record_count": 8 - }, - { - "repetition": 20, - "latency_ns": 147708439, - "cpu_ticks": 15, - "process_write_bytes": 4620288, - "database_storage_growth_bytes": 2822200, - "peak_rss_kib": 177608, - "record_count": 8 - }, - { - "repetition": 21, - "latency_ns": 125878267, - "cpu_ticks": 12, - "process_write_bytes": 4636672, - "database_storage_growth_bytes": 2830440, - "peak_rss_kib": 177608, - "record_count": 8 - }, - { - "repetition": 22, - "latency_ns": 131280430, - "cpu_ticks": 13, - "process_write_bytes": 4620288, - "database_storage_growth_bytes": 2822200, - "peak_rss_kib": 177608, - "record_count": 8 - }, - { - "repetition": 23, - "latency_ns": 120072994, - "cpu_ticks": 11, - "process_write_bytes": 4620288, - "database_storage_growth_bytes": 2822200, - "peak_rss_kib": 177632, - "record_count": 8 - }, - { - "repetition": 24, - "latency_ns": 139898225, - "cpu_ticks": 13, - "process_write_bytes": 4620288, - "database_storage_growth_bytes": 2822200, - "peak_rss_kib": 177632, - "record_count": 8 - }, - { - "repetition": 25, - "latency_ns": 127723767, - "cpu_ticks": 13, - "process_write_bytes": 4620288, - "database_storage_growth_bytes": 2822200, - "peak_rss_kib": 177632, - "record_count": 8 - }, - { - "repetition": 26, - "latency_ns": 125070560, - "cpu_ticks": 12, - "process_write_bytes": 4628480, - "database_storage_growth_bytes": 2830440, - "peak_rss_kib": 177632, - "record_count": 8 - }, - { - "repetition": 27, - "latency_ns": 124459379, - "cpu_ticks": 12, - "process_write_bytes": 4620288, - "database_storage_growth_bytes": 2822200, - "peak_rss_kib": 177632, - "record_count": 8 - }, - { - "repetition": 28, - "latency_ns": 118108552, - "cpu_ticks": 11, - "process_write_bytes": 4632576, - "database_storage_growth_bytes": 2830440, - "peak_rss_kib": 177632, - "record_count": 8 - }, - { - "repetition": 29, - "latency_ns": 162962067, - "cpu_ticks": 15, - "process_write_bytes": 4628480, - "database_storage_growth_bytes": 2830440, - "peak_rss_kib": 177632, - "record_count": 8 - } - ], - "latency": { - "repetitions": 30, - "min_ns": 114685878, - "p50_ns": 124204194, - "p95_ns": 147708439, - "p99_ns": 162962067, - "max_ns": 162962067, - "mean_ns": 126047829.6, - "sample_stddev_ns": 9797231.743490592 - }, - "cpu_ticks": 361, - "cpu_ms": 3610.0, - "process_write_bytes": 138772480, - "database_storage_growth_bytes": 84773120, - "peak_rss_kib": 177632 - }, - "replay": { - "scope": "authoritative_store_bounded_replay", - "raw_samples": [ - { - "repetition": 0, - "latency_ns": 1036966, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 165876, - "record_count": 8 - }, - { - "repetition": 1, - "latency_ns": 1062675, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 175140, - "record_count": 8 - }, - { - "repetition": 2, - "latency_ns": 1022734, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 176020, - "record_count": 8 - }, - { - "repetition": 3, - "latency_ns": 1104925, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 176108, - "record_count": 8 - }, - { - "repetition": 4, - "latency_ns": 1061165, - "cpu_ticks": 1, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177464, - "record_count": 8 - }, - { - "repetition": 5, - "latency_ns": 1058045, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177480, - "record_count": 8 - }, - { - "repetition": 6, - "latency_ns": 1049895, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177504, - "record_count": 8 - }, - { - "repetition": 7, - "latency_ns": 863042, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177532, - "record_count": 8 - }, - { - "repetition": 8, - "latency_ns": 1025774, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177552, - "record_count": 8 - }, - { - "repetition": 9, - "latency_ns": 1040124, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177576, - "record_count": 8 - }, - { - "repetition": 10, - "latency_ns": 1213717, - "cpu_ticks": 1, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177580, - "record_count": 8 - }, - { - "repetition": 11, - "latency_ns": 1043644, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177580, - "record_count": 8 - }, - { - "repetition": 12, - "latency_ns": 1008153, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177580, - "record_count": 8 - }, - { - "repetition": 13, - "latency_ns": 1002774, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177588, - "record_count": 8 - }, - { - "repetition": 14, - "latency_ns": 1024844, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177588, - "record_count": 8 - }, - { - "repetition": 15, - "latency_ns": 1051734, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177592, - "record_count": 8 - }, - { - "repetition": 16, - "latency_ns": 1318268, - "cpu_ticks": 1, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177604, - "record_count": 8 - }, - { - "repetition": 17, - "latency_ns": 1201285, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177608, - "record_count": 8 - }, - { - "repetition": 18, - "latency_ns": 1078084, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177608, - "record_count": 8 - }, - { - "repetition": 19, - "latency_ns": 1034614, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177608, - "record_count": 8 - }, - { - "repetition": 20, - "latency_ns": 2544264, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177608, - "record_count": 8 - }, - { - "repetition": 21, - "latency_ns": 1240488, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177608, - "record_count": 8 - }, - { - "repetition": 22, - "latency_ns": 1102164, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177608, - "record_count": 8 - }, - { - "repetition": 23, - "latency_ns": 1219546, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177632, - "record_count": 8 - }, - { - "repetition": 24, - "latency_ns": 1139596, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177632, - "record_count": 8 - }, - { - "repetition": 25, - "latency_ns": 1188027, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177632, - "record_count": 8 - }, - { - "repetition": 26, - "latency_ns": 1152256, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177632, - "record_count": 8 - }, - { - "repetition": 27, - "latency_ns": 1100565, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177632, - "record_count": 8 - }, - { - "repetition": 28, - "latency_ns": 1033315, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177632, - "record_count": 8 - }, - { - "repetition": 29, - "latency_ns": 1500202, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177632, - "record_count": 8 - } - ], - "latency": { - "repetitions": 30, - "min_ns": 863042, - "p50_ns": 1061165, - "p95_ns": 1500202, - "p99_ns": 2544264, - "max_ns": 2544264, - "mean_ns": 1150762.8333333333, - "sample_stddev_ns": 288054.9755540668 - }, - "cpu_ticks": 3, - "cpu_ms": 30.0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177632 - }, - "pipeline_raw_samples": [ - { - "repetition": 0, - "latency_ns": 123815784, - "cpu_ticks": 12, - "process_write_bytes": 4628480, - "database_storage_growth_bytes": 2830440, - "peak_rss_kib": 165876, - "replayed_observations": 8 - }, - { - "repetition": 1, - "latency_ns": 124033417, - "cpu_ticks": 12, - "process_write_bytes": 4620288, - "database_storage_growth_bytes": 2822200, - "peak_rss_kib": 175140, - "replayed_observations": 8 - }, - { - "repetition": 2, - "latency_ns": 123951513, - "cpu_ticks": 12, - "process_write_bytes": 4628480, - "database_storage_growth_bytes": 2830440, - "peak_rss_kib": 176020, - "replayed_observations": 8 - }, - { - "repetition": 3, - "latency_ns": 125556365, - "cpu_ticks": 12, - "process_write_bytes": 4628480, - "database_storage_growth_bytes": 2830440, - "peak_rss_kib": 176108, - "replayed_observations": 8 - }, - { - "repetition": 4, - "latency_ns": 119752532, - "cpu_ticks": 12, - "process_write_bytes": 4620288, - "database_storage_growth_bytes": 2822200, - "peak_rss_kib": 177464, - "replayed_observations": 8 - }, - { - "repetition": 5, - "latency_ns": 124015751, - "cpu_ticks": 13, - "process_write_bytes": 4620288, - "database_storage_growth_bytes": 2822200, - "peak_rss_kib": 177480, - "replayed_observations": 8 - }, - { - "repetition": 6, - "latency_ns": 117822682, - "cpu_ticks": 12, - "process_write_bytes": 4620288, - "database_storage_growth_bytes": 2822200, - "peak_rss_kib": 177504, - "replayed_observations": 8 - }, - { - "repetition": 7, - "latency_ns": 115752182, - "cpu_ticks": 11, - "process_write_bytes": 4661248, - "database_storage_growth_bytes": 2822200, - "peak_rss_kib": 177532, - "replayed_observations": 8 - }, - { - "repetition": 8, - "latency_ns": 120602648, - "cpu_ticks": 11, - "process_write_bytes": 4628480, - "database_storage_growth_bytes": 2830440, - "peak_rss_kib": 177552, - "replayed_observations": 8 - }, - { - "repetition": 9, - "latency_ns": 123678981, - "cpu_ticks": 10, - "process_write_bytes": 4620288, - "database_storage_growth_bytes": 2822200, - "peak_rss_kib": 177576, - "replayed_observations": 8 - }, - { - "repetition": 10, - "latency_ns": 136386835, - "cpu_ticks": 13, - "process_write_bytes": 4620288, - "database_storage_growth_bytes": 2822200, - "peak_rss_kib": 177580, - "replayed_observations": 8 - }, - { - "repetition": 11, - "latency_ns": 127273527, - "cpu_ticks": 12, - "process_write_bytes": 4620288, - "database_storage_growth_bytes": 2822200, - "peak_rss_kib": 177580, - "replayed_observations": 8 - }, - { - "repetition": 12, - "latency_ns": 128371063, - "cpu_ticks": 12, - "process_write_bytes": 4632576, - "database_storage_growth_bytes": 2830440, - "peak_rss_kib": 177580, - "replayed_observations": 8 - }, - { - "repetition": 13, - "latency_ns": 117185835, - "cpu_ticks": 11, - "process_write_bytes": 4620288, - "database_storage_growth_bytes": 2822200, - "peak_rss_kib": 177588, - "replayed_observations": 8 - }, - { - "repetition": 14, - "latency_ns": 129890750, - "cpu_ticks": 13, - "process_write_bytes": 4628480, - "database_storage_growth_bytes": 2830440, - "peak_rss_kib": 177588, - "replayed_observations": 8 - }, - { - "repetition": 15, - "latency_ns": 126013686, - "cpu_ticks": 12, - "process_write_bytes": 4620288, - "database_storage_growth_bytes": 2822200, - "peak_rss_kib": 177592, - "replayed_observations": 8 - }, - { - "repetition": 16, - "latency_ns": 126329138, - "cpu_ticks": 12, - "process_write_bytes": 4628480, - "database_storage_growth_bytes": 2830440, - "peak_rss_kib": 177604, - "replayed_observations": 8 - }, - { - "repetition": 17, - "latency_ns": 125264913, - "cpu_ticks": 12, - "process_write_bytes": 4620288, - "database_storage_growth_bytes": 2822200, - "peak_rss_kib": 177608, - "replayed_observations": 8 - }, - { - "repetition": 18, - "latency_ns": 120335444, - "cpu_ticks": 11, - "process_write_bytes": 4628480, - "database_storage_growth_bytes": 2830440, - "peak_rss_kib": 177608, - "replayed_observations": 8 - }, - { - "repetition": 19, - "latency_ns": 127893647, - "cpu_ticks": 12, - "process_write_bytes": 4628480, - "database_storage_growth_bytes": 2830440, - "peak_rss_kib": 177608, - "replayed_observations": 8 - }, - { - "repetition": 20, - "latency_ns": 150547579, - "cpu_ticks": 15, - "process_write_bytes": 4620288, - "database_storage_growth_bytes": 2822200, - "peak_rss_kib": 177608, - "replayed_observations": 8 - }, - { - "repetition": 21, - "latency_ns": 127473587, - "cpu_ticks": 12, - "process_write_bytes": 4636672, - "database_storage_growth_bytes": 2830440, - "peak_rss_kib": 177608, - "replayed_observations": 8 - }, - { - "repetition": 22, - "latency_ns": 132617548, - "cpu_ticks": 13, - "process_write_bytes": 4620288, - "database_storage_growth_bytes": 2822200, - "peak_rss_kib": 177608, - "replayed_observations": 8 - }, - { - "repetition": 23, - "latency_ns": 121518954, - "cpu_ticks": 11, - "process_write_bytes": 4620288, - "database_storage_growth_bytes": 2822200, - "peak_rss_kib": 177632, - "replayed_observations": 8 - }, - { - "repetition": 24, - "latency_ns": 141245864, - "cpu_ticks": 13, - "process_write_bytes": 4620288, - "database_storage_growth_bytes": 2822200, - "peak_rss_kib": 177632, - "replayed_observations": 8 - }, - { - "repetition": 25, - "latency_ns": 129113837, - "cpu_ticks": 13, - "process_write_bytes": 4620288, - "database_storage_growth_bytes": 2822200, - "peak_rss_kib": 177632, - "replayed_observations": 8 - }, - { - "repetition": 26, - "latency_ns": 126470639, - "cpu_ticks": 12, - "process_write_bytes": 4628480, - "database_storage_growth_bytes": 2830440, - "peak_rss_kib": 177632, - "replayed_observations": 8 - }, - { - "repetition": 27, - "latency_ns": 125797059, - "cpu_ticks": 12, - "process_write_bytes": 4620288, - "database_storage_growth_bytes": 2822200, - "peak_rss_kib": 177632, - "replayed_observations": 8 - }, - { - "repetition": 28, - "latency_ns": 119337520, - "cpu_ticks": 11, - "process_write_bytes": 4632576, - "database_storage_growth_bytes": 2830440, - "peak_rss_kib": 177632, - "replayed_observations": 8 - }, - { - "repetition": 29, - "latency_ns": 164756271, - "cpu_ticks": 15, - "process_write_bytes": 4628480, - "database_storage_growth_bytes": 2830440, - "peak_rss_kib": 177632, - "replayed_observations": 8 - } - ], - "pipeline_latency": { - "repetitions": 30, - "min_ns": 115752182, - "p50_ns": 125556365, - "p95_ns": 150547579, - "p99_ns": 164756271, - "max_ns": 164756271, - "mean_ns": 127426851.7, - "sample_stddev_ns": 10005284.313434731 - }, - "pipeline_records_per_second": 62.78111632887497, - "pipeline_cpu_ticks": 364, - "pipeline_cpu_ms": 3640.0, - "pipeline_process_write_bytes": 138772480, - "pipeline_database_storage_growth_bytes": 84773120, - "peak_rss_kib": 177632, - "no_op_raw_samples": [ - { - "repetition": 0, - "latency_ns": 1247848, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 165876, - "replayed_observations": 0 - }, - { - "repetition": 1, - "latency_ns": 1303387, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 175140, - "replayed_observations": 0 - }, - { - "repetition": 2, - "latency_ns": 1229347, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 176020, - "replayed_observations": 0 - }, - { - "repetition": 3, - "latency_ns": 1331050, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 176108, - "replayed_observations": 0 - }, - { - "repetition": 4, - "latency_ns": 1281389, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177464, - "replayed_observations": 0 - }, - { - "repetition": 5, - "latency_ns": 1232577, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177480, - "replayed_observations": 0 - }, - { - "repetition": 6, - "latency_ns": 1110025, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177504, - "replayed_observations": 0 - }, - { - "repetition": 7, - "latency_ns": 1138685, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177532, - "replayed_observations": 0 - }, - { - "repetition": 8, - "latency_ns": 1115846, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177552, - "replayed_observations": 0 - }, - { - "repetition": 9, - "latency_ns": 1136176, - "cpu_ticks": 1, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177576, - "replayed_observations": 0 - }, - { - "repetition": 10, - "latency_ns": 1311557, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177580, - "replayed_observations": 0 - }, - { - "repetition": 11, - "latency_ns": 1363999, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177580, - "replayed_observations": 0 - }, - { - "repetition": 12, - "latency_ns": 1208937, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177580, - "replayed_observations": 0 - }, - { - "repetition": 13, - "latency_ns": 1216086, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177588, - "replayed_observations": 0 - }, - { - "repetition": 14, - "latency_ns": 1342078, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177588, - "replayed_observations": 0 - }, - { - "repetition": 15, - "latency_ns": 1219636, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177592, - "replayed_observations": 0 - }, - { - "repetition": 16, - "latency_ns": 1359590, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177604, - "replayed_observations": 0 - }, - { - "repetition": 17, - "latency_ns": 1248756, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177608, - "replayed_observations": 0 - }, - { - "repetition": 18, - "latency_ns": 1151946, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177608, - "replayed_observations": 0 - }, - { - "repetition": 19, - "latency_ns": 1227517, - "cpu_ticks": 1, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177608, - "replayed_observations": 0 - }, - { - "repetition": 20, - "latency_ns": 1820185, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177608, - "replayed_observations": 0 - }, - { - "repetition": 21, - "latency_ns": 1739564, - "cpu_ticks": 1, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177608, - "replayed_observations": 0 - }, - { - "repetition": 22, - "latency_ns": 1291528, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177608, - "replayed_observations": 0 - }, - { - "repetition": 23, - "latency_ns": 1549773, - "cpu_ticks": 1, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177632, - "replayed_observations": 0 - }, - { - "repetition": 24, - "latency_ns": 1377310, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177632, - "replayed_observations": 0 - }, - { - "repetition": 25, - "latency_ns": 1441930, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177632, - "replayed_observations": 0 - }, - { - "repetition": 26, - "latency_ns": 1335019, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177632, - "replayed_observations": 0 - }, - { - "repetition": 27, - "latency_ns": 1425910, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177632, - "replayed_observations": 0 - }, - { - "repetition": 28, - "latency_ns": 1143607, - "cpu_ticks": 1, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177632, - "replayed_observations": 0 - }, - { - "repetition": 29, - "latency_ns": 1764444, - "cpu_ticks": 1, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177632, - "replayed_observations": 0 - } - ], - "no_op_latency": { - "repetitions": 30, - "min_ns": 1110025, - "p50_ns": 1281389, - "p95_ns": 1764444, - "p99_ns": 1820185, - "max_ns": 1820185, - "mean_ns": 1322190.0666666667, - "sample_stddev_ns": 184992.96468727806 - }, - "no_op_cpu_ticks": 6, - "no_op_cpu_ms": 60.0, - "no_op_process_write_bytes": 0, - "no_op_database_storage_growth_bytes": 0, - "no_op_observation_count_delta": 0 - }, - { - "provider": "hermes", - "production_path": "hermes_production_observation_pipeline_v1", - "pipeline_scope": "production_parse_normalize_sanitize_commit_project_and_replay", - "measured_repetitions": 30, - "observations_per_repetition": 8, - "replay_limit": 9, - "max_backlog_records": 8, - "parse": { - "scope": "native_provider_format_decode", - "raw_samples": [ - { - "repetition": 0, - "latency_ns": 182902, - "cpu_ticks": 1, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 167676, - "record_count": 8 - }, - { - "repetition": 1, - "latency_ns": 184042, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 175044, - "record_count": 8 - }, - { - "repetition": 2, - "latency_ns": 179012, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 175924, - "record_count": 8 - }, - { - "repetition": 3, - "latency_ns": 189973, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 176012, - "record_count": 8 - }, - { - "repetition": 4, - "latency_ns": 211874, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177368, - "record_count": 8 - }, - { - "repetition": 5, - "latency_ns": 227684, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177384, - "record_count": 8 - }, - { - "repetition": 6, - "latency_ns": 231373, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177408, - "record_count": 8 - }, - { - "repetition": 7, - "latency_ns": 194333, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177436, - "record_count": 8 - }, - { - "repetition": 8, - "latency_ns": 281715, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177456, - "record_count": 8 - }, - { - "repetition": 9, - "latency_ns": 189233, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177480, - "record_count": 8 - }, - { - "repetition": 10, - "latency_ns": 181052, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177484, - "record_count": 8 - }, - { - "repetition": 11, - "latency_ns": 228703, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177484, - "record_count": 8 - }, - { - "repetition": 12, - "latency_ns": 175023, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177484, - "record_count": 8 - }, - { - "repetition": 13, - "latency_ns": 298825, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177492, - "record_count": 8 - }, - { - "repetition": 14, - "latency_ns": 185903, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177492, - "record_count": 8 - }, - { - "repetition": 15, - "latency_ns": 191743, - "cpu_ticks": 1, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177496, - "record_count": 8 - }, - { - "repetition": 16, - "latency_ns": 395626, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177508, - "record_count": 8 - }, - { - "repetition": 17, - "latency_ns": 212022, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177512, - "record_count": 8 - }, - { - "repetition": 18, - "latency_ns": 225652, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177512, - "record_count": 8 - }, - { - "repetition": 19, - "latency_ns": 314985, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177512, - "record_count": 8 - }, - { - "repetition": 20, - "latency_ns": 216743, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177512, - "record_count": 8 - }, - { - "repetition": 21, - "latency_ns": 266923, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177512, - "record_count": 8 - }, - { - "repetition": 22, - "latency_ns": 242754, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177512, - "record_count": 8 - }, - { - "repetition": 23, - "latency_ns": 207194, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177536, - "record_count": 8 - }, - { - "repetition": 24, - "latency_ns": 229543, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177536, - "record_count": 8 - }, - { - "repetition": 25, - "latency_ns": 183612, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177536, - "record_count": 8 - }, - { - "repetition": 26, - "latency_ns": 275914, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177536, - "record_count": 8 - }, - { - "repetition": 27, - "latency_ns": 272964, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177536, - "record_count": 8 - }, - { - "repetition": 28, - "latency_ns": 285724, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177536, - "record_count": 8 - }, - { - "repetition": 29, - "latency_ns": 410026, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177536, - "record_count": 8 - } - ], - "latency": { - "repetitions": 30, - "min_ns": 175023, - "p50_ns": 216743, - "p95_ns": 395626, - "p99_ns": 410026, - "max_ns": 410026, - "mean_ns": 235769.06666666668, - "sample_stddev_ns": 60424.41613141983 - }, - "cpu_ticks": 2, - "cpu_ms": 20.0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177536 - }, - "commit": { - "scope": "production_adapter_parse_normalize_sanitize_commit_and_project", - "raw_samples": [ - { - "repetition": 0, - "latency_ns": 159512194, - "cpu_ticks": 16, - "process_write_bytes": 4214784, - "database_storage_growth_bytes": 2645040, - "peak_rss_kib": 171972, - "record_count": 8 - }, - { - "repetition": 1, - "latency_ns": 152527984, - "cpu_ticks": 15, - "process_write_bytes": 4222976, - "database_storage_growth_bytes": 2653280, - "peak_rss_kib": 175140, - "record_count": 8 - }, - { - "repetition": 2, - "latency_ns": 146137912, - "cpu_ticks": 15, - "process_write_bytes": 4222976, - "database_storage_growth_bytes": 2653280, - "peak_rss_kib": 176060, - "record_count": 8 - }, - { - "repetition": 3, - "latency_ns": 146821892, - "cpu_ticks": 15, - "process_write_bytes": 4222976, - "database_storage_growth_bytes": 2653280, - "peak_rss_kib": 177440, - "record_count": 8 - }, - { - "repetition": 4, - "latency_ns": 155711724, - "cpu_ticks": 15, - "process_write_bytes": 4214784, - "database_storage_growth_bytes": 2645040, - "peak_rss_kib": 177468, - "record_count": 8 - }, - { - "repetition": 5, - "latency_ns": 145592222, - "cpu_ticks": 13, - "process_write_bytes": 4214784, - "database_storage_growth_bytes": 2645040, - "peak_rss_kib": 177500, - "record_count": 8 - }, - { - "repetition": 6, - "latency_ns": 149228011, - "cpu_ticks": 15, - "process_write_bytes": 4214784, - "database_storage_growth_bytes": 2645040, - "peak_rss_kib": 177516, - "record_count": 8 - }, - { - "repetition": 7, - "latency_ns": 146855576, - "cpu_ticks": 14, - "process_write_bytes": 4251648, - "database_storage_growth_bytes": 2653280, - "peak_rss_kib": 177536, - "record_count": 8 - }, - { - "repetition": 8, - "latency_ns": 154932137, - "cpu_ticks": 15, - "process_write_bytes": 4243456, - "database_storage_growth_bytes": 2645040, - "peak_rss_kib": 177556, - "record_count": 8 - }, - { - "repetition": 9, - "latency_ns": 156796851, - "cpu_ticks": 16, - "process_write_bytes": 4214784, - "database_storage_growth_bytes": 2645040, - "peak_rss_kib": 177576, - "record_count": 8 - }, - { - "repetition": 10, - "latency_ns": 153696536, - "cpu_ticks": 15, - "process_write_bytes": 4214784, - "database_storage_growth_bytes": 2645040, - "peak_rss_kib": 177580, - "record_count": 8 - }, - { - "repetition": 11, - "latency_ns": 152884323, - "cpu_ticks": 14, - "process_write_bytes": 4214784, - "database_storage_growth_bytes": 2645040, - "peak_rss_kib": 177580, - "record_count": 8 - }, - { - "repetition": 12, - "latency_ns": 150912205, - "cpu_ticks": 14, - "process_write_bytes": 4214784, - "database_storage_growth_bytes": 2645040, - "peak_rss_kib": 177584, - "record_count": 8 - }, - { - "repetition": 13, - "latency_ns": 162239790, - "cpu_ticks": 15, - "process_write_bytes": 4231168, - "database_storage_growth_bytes": 2653280, - "peak_rss_kib": 177588, - "record_count": 8 - }, - { - "repetition": 14, - "latency_ns": 147901240, - "cpu_ticks": 15, - "process_write_bytes": 4222976, - "database_storage_growth_bytes": 2653280, - "peak_rss_kib": 177592, - "record_count": 8 - }, - { - "repetition": 15, - "latency_ns": 150711678, - "cpu_ticks": 14, - "process_write_bytes": 4214784, - "database_storage_growth_bytes": 2645040, - "peak_rss_kib": 177604, - "record_count": 8 - }, - { - "repetition": 16, - "latency_ns": 146240624, - "cpu_ticks": 15, - "process_write_bytes": 4222976, - "database_storage_growth_bytes": 2653280, - "peak_rss_kib": 177608, - "record_count": 8 - }, - { - "repetition": 17, - "latency_ns": 150827296, - "cpu_ticks": 14, - "process_write_bytes": 4222976, - "database_storage_growth_bytes": 2653280, - "peak_rss_kib": 177608, - "record_count": 8 - }, - { - "repetition": 18, - "latency_ns": 159560165, - "cpu_ticks": 15, - "process_write_bytes": 4222976, - "database_storage_growth_bytes": 2653280, - "peak_rss_kib": 177608, - "record_count": 8 - }, - { - "repetition": 19, - "latency_ns": 145302038, - "cpu_ticks": 13, - "process_write_bytes": 4222976, - "database_storage_growth_bytes": 2653280, - "peak_rss_kib": 177608, - "record_count": 8 - }, - { - "repetition": 20, - "latency_ns": 155467016, - "cpu_ticks": 14, - "process_write_bytes": 4214784, - "database_storage_growth_bytes": 2645040, - "peak_rss_kib": 177608, - "record_count": 8 - }, - { - "repetition": 21, - "latency_ns": 161642960, - "cpu_ticks": 16, - "process_write_bytes": 4214784, - "database_storage_growth_bytes": 2645040, - "peak_rss_kib": 177608, - "record_count": 8 - }, - { - "repetition": 22, - "latency_ns": 163023186, - "cpu_ticks": 15, - "process_write_bytes": 4222976, - "database_storage_growth_bytes": 2653280, - "peak_rss_kib": 177608, - "record_count": 8 - }, - { - "repetition": 23, - "latency_ns": 145880559, - "cpu_ticks": 13, - "process_write_bytes": 4243456, - "database_storage_growth_bytes": 2645040, - "peak_rss_kib": 177632, - "record_count": 8 - }, - { - "repetition": 24, - "latency_ns": 173295455, - "cpu_ticks": 17, - "process_write_bytes": 4214784, - "database_storage_growth_bytes": 2645040, - "peak_rss_kib": 177632, - "record_count": 8 - }, - { - "repetition": 25, - "latency_ns": 144235575, - "cpu_ticks": 13, - "process_write_bytes": 4222976, - "database_storage_growth_bytes": 2653280, - "peak_rss_kib": 177632, - "record_count": 8 - }, - { - "repetition": 26, - "latency_ns": 143498293, - "cpu_ticks": 13, - "process_write_bytes": 4214784, - "database_storage_growth_bytes": 2645040, - "peak_rss_kib": 177632, - "record_count": 8 - }, - { - "repetition": 27, - "latency_ns": 153119624, - "cpu_ticks": 15, - "process_write_bytes": 4214784, - "database_storage_growth_bytes": 2645040, - "peak_rss_kib": 177632, - "record_count": 8 - }, - { - "repetition": 28, - "latency_ns": 153425757, - "cpu_ticks": 14, - "process_write_bytes": 4222976, - "database_storage_growth_bytes": 2653280, - "peak_rss_kib": 177632, - "record_count": 8 - }, - { - "repetition": 29, - "latency_ns": 201706599, - "cpu_ticks": 19, - "process_write_bytes": 4231168, - "database_storage_growth_bytes": 2653280, - "peak_rss_kib": 177632, - "record_count": 8 - } - ], - "latency": { - "repetitions": 30, - "min_ns": 143498293, - "p50_ns": 152527984, - "p95_ns": 173295455, - "p99_ns": 201706599, - "max_ns": 201706599, - "mean_ns": 154322914.06666666, - "sample_stddev_ns": 11242443.541950582 - }, - "cpu_ticks": 442, - "cpu_ms": 4420.0, - "process_write_bytes": 126660608, - "database_storage_growth_bytes": 79466560, - "peak_rss_kib": 177632 - }, - "replay": { - "scope": "authoritative_store_bounded_replay", - "raw_samples": [ - { - "repetition": 0, - "latency_ns": 1210797, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 171972, - "record_count": 8 - }, - { - "repetition": 1, - "latency_ns": 1241968, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 175140, - "record_count": 8 - }, - { - "repetition": 2, - "latency_ns": 1054765, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 176060, - "record_count": 8 - }, - { - "repetition": 3, - "latency_ns": 983394, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177440, - "record_count": 8 - }, - { - "repetition": 4, - "latency_ns": 1145526, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177468, - "record_count": 8 - }, - { - "repetition": 5, - "latency_ns": 974875, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177500, - "record_count": 8 - }, - { - "repetition": 6, - "latency_ns": 978724, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177516, - "record_count": 8 - }, - { - "repetition": 7, - "latency_ns": 986144, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177536, - "record_count": 8 - }, - { - "repetition": 8, - "latency_ns": 1575232, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177556, - "record_count": 8 - }, - { - "repetition": 9, - "latency_ns": 1175096, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177576, - "record_count": 8 - }, - { - "repetition": 10, - "latency_ns": 1009664, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177580, - "record_count": 8 - }, - { - "repetition": 11, - "latency_ns": 1234236, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177580, - "record_count": 8 - }, - { - "repetition": 12, - "latency_ns": 1020465, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177584, - "record_count": 8 - }, - { - "repetition": 13, - "latency_ns": 1026724, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177588, - "record_count": 8 - }, - { - "repetition": 14, - "latency_ns": 979664, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177592, - "record_count": 8 - }, - { - "repetition": 15, - "latency_ns": 1045495, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177604, - "record_count": 8 - }, - { - "repetition": 16, - "latency_ns": 1084274, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177608, - "record_count": 8 - }, - { - "repetition": 17, - "latency_ns": 1140426, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177608, - "record_count": 8 - }, - { - "repetition": 18, - "latency_ns": 1617412, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177608, - "record_count": 8 - }, - { - "repetition": 19, - "latency_ns": 987764, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177608, - "record_count": 8 - }, - { - "repetition": 20, - "latency_ns": 912883, - "cpu_ticks": 1, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177608, - "record_count": 8 - }, - { - "repetition": 21, - "latency_ns": 1014454, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177608, - "record_count": 8 - }, - { - "repetition": 22, - "latency_ns": 1151496, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177608, - "record_count": 8 - }, - { - "repetition": 23, - "latency_ns": 1082815, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177632, - "record_count": 8 - }, - { - "repetition": 24, - "latency_ns": 2678928, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177632, - "record_count": 8 - }, - { - "repetition": 25, - "latency_ns": 993004, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177632, - "record_count": 8 - }, - { - "repetition": 26, - "latency_ns": 982924, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177632, - "record_count": 8 - }, - { - "repetition": 27, - "latency_ns": 1123986, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177632, - "record_count": 8 - }, - { - "repetition": 28, - "latency_ns": 1077165, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177632, - "record_count": 8 - }, - { - "repetition": 29, - "latency_ns": 1425310, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177632, - "record_count": 8 - } - ], - "latency": { - "repetitions": 30, - "min_ns": 912883, - "p50_ns": 1054765, - "p95_ns": 1617412, - "p99_ns": 2678928, - "max_ns": 2678928, - "mean_ns": 1163853.6666666667, - "sample_stddev_ns": 332728.0347418826 - }, - "cpu_ticks": 1, - "cpu_ms": 10.0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177632 - }, - "pipeline_raw_samples": [ - { - "repetition": 0, - "latency_ns": 160938315, - "cpu_ticks": 16, - "process_write_bytes": 4214784, - "database_storage_growth_bytes": 2645040, - "peak_rss_kib": 171972, - "replayed_observations": 8 - }, - { - "repetition": 1, - "latency_ns": 153995435, - "cpu_ticks": 15, - "process_write_bytes": 4222976, - "database_storage_growth_bytes": 2653280, - "peak_rss_kib": 175140, - "replayed_observations": 8 - }, - { - "repetition": 2, - "latency_ns": 147404881, - "cpu_ticks": 15, - "process_write_bytes": 4222976, - "database_storage_growth_bytes": 2653280, - "peak_rss_kib": 176060, - "replayed_observations": 8 - }, - { - "repetition": 3, - "latency_ns": 147980208, - "cpu_ticks": 15, - "process_write_bytes": 4222976, - "database_storage_growth_bytes": 2653280, - "peak_rss_kib": 177440, - "replayed_observations": 8 - }, - { - "repetition": 4, - "latency_ns": 157057893, - "cpu_ticks": 15, - "process_write_bytes": 4214784, - "database_storage_growth_bytes": 2645040, - "peak_rss_kib": 177468, - "replayed_observations": 8 - }, - { - "repetition": 5, - "latency_ns": 146754748, - "cpu_ticks": 13, - "process_write_bytes": 4214784, - "database_storage_growth_bytes": 2645040, - "peak_rss_kib": 177500, - "replayed_observations": 8 - }, - { - "repetition": 6, - "latency_ns": 150395237, - "cpu_ticks": 15, - "process_write_bytes": 4214784, - "database_storage_growth_bytes": 2645040, - "peak_rss_kib": 177516, - "replayed_observations": 8 - }, - { - "repetition": 7, - "latency_ns": 148042161, - "cpu_ticks": 14, - "process_write_bytes": 4251648, - "database_storage_growth_bytes": 2653280, - "peak_rss_kib": 177536, - "replayed_observations": 8 - }, - { - "repetition": 8, - "latency_ns": 156711302, - "cpu_ticks": 15, - "process_write_bytes": 4243456, - "database_storage_growth_bytes": 2645040, - "peak_rss_kib": 177556, - "replayed_observations": 8 - }, - { - "repetition": 9, - "latency_ns": 158176881, - "cpu_ticks": 16, - "process_write_bytes": 4214784, - "database_storage_growth_bytes": 2645040, - "peak_rss_kib": 177576, - "replayed_observations": 8 - }, - { - "repetition": 10, - "latency_ns": 154926213, - "cpu_ticks": 15, - "process_write_bytes": 4214784, - "database_storage_growth_bytes": 2645040, - "peak_rss_kib": 177580, - "replayed_observations": 8 - }, - { - "repetition": 11, - "latency_ns": 154322004, - "cpu_ticks": 14, - "process_write_bytes": 4214784, - "database_storage_growth_bytes": 2645040, - "peak_rss_kib": 177580, - "replayed_observations": 8 - }, - { - "repetition": 12, - "latency_ns": 152178973, - "cpu_ticks": 14, - "process_write_bytes": 4214784, - "database_storage_growth_bytes": 2645040, - "peak_rss_kib": 177584, - "replayed_observations": 8 - }, - { - "repetition": 13, - "latency_ns": 163510398, - "cpu_ticks": 15, - "process_write_bytes": 4231168, - "database_storage_growth_bytes": 2653280, - "peak_rss_kib": 177588, - "replayed_observations": 8 - }, - { - "repetition": 14, - "latency_ns": 149061507, - "cpu_ticks": 15, - "process_write_bytes": 4222976, - "database_storage_growth_bytes": 2653280, - "peak_rss_kib": 177592, - "replayed_observations": 8 - }, - { - "repetition": 15, - "latency_ns": 151996086, - "cpu_ticks": 14, - "process_write_bytes": 4214784, - "database_storage_growth_bytes": 2645040, - "peak_rss_kib": 177604, - "replayed_observations": 8 - }, - { - "repetition": 16, - "latency_ns": 147579512, - "cpu_ticks": 15, - "process_write_bytes": 4222976, - "database_storage_growth_bytes": 2653280, - "peak_rss_kib": 177608, - "replayed_observations": 8 - }, - { - "repetition": 17, - "latency_ns": 152186095, - "cpu_ticks": 14, - "process_write_bytes": 4222976, - "database_storage_growth_bytes": 2653280, - "peak_rss_kib": 177608, - "replayed_observations": 8 - }, - { - "repetition": 18, - "latency_ns": 161407611, - "cpu_ticks": 15, - "process_write_bytes": 4222976, - "database_storage_growth_bytes": 2653280, - "peak_rss_kib": 177608, - "replayed_observations": 8 - }, - { - "repetition": 19, - "latency_ns": 146472303, - "cpu_ticks": 13, - "process_write_bytes": 4222976, - "database_storage_growth_bytes": 2653280, - "peak_rss_kib": 177608, - "replayed_observations": 8 - }, - { - "repetition": 20, - "latency_ns": 156582361, - "cpu_ticks": 15, - "process_write_bytes": 4214784, - "database_storage_growth_bytes": 2645040, - "peak_rss_kib": 177608, - "replayed_observations": 8 - }, - { - "repetition": 21, - "latency_ns": 162901147, - "cpu_ticks": 16, - "process_write_bytes": 4214784, - "database_storage_growth_bytes": 2645040, - "peak_rss_kib": 177608, - "replayed_observations": 8 - }, - { - "repetition": 22, - "latency_ns": 164378965, - "cpu_ticks": 15, - "process_write_bytes": 4222976, - "database_storage_growth_bytes": 2653280, - "peak_rss_kib": 177608, - "replayed_observations": 8 - }, - { - "repetition": 23, - "latency_ns": 147194387, - "cpu_ticks": 13, - "process_write_bytes": 4243456, - "database_storage_growth_bytes": 2645040, - "peak_rss_kib": 177632, - "replayed_observations": 8 - }, - { - "repetition": 24, - "latency_ns": 176217476, - "cpu_ticks": 17, - "process_write_bytes": 4214784, - "database_storage_growth_bytes": 2645040, - "peak_rss_kib": 177632, - "replayed_observations": 8 - }, - { - "repetition": 25, - "latency_ns": 145395210, - "cpu_ticks": 13, - "process_write_bytes": 4222976, - "database_storage_growth_bytes": 2653280, - "peak_rss_kib": 177632, - "replayed_observations": 8 - }, - { - "repetition": 26, - "latency_ns": 144671979, - "cpu_ticks": 13, - "process_write_bytes": 4214784, - "database_storage_growth_bytes": 2645040, - "peak_rss_kib": 177632, - "replayed_observations": 8 - }, - { - "repetition": 27, - "latency_ns": 154517704, - "cpu_ticks": 15, - "process_write_bytes": 4214784, - "database_storage_growth_bytes": 2645040, - "peak_rss_kib": 177632, - "replayed_observations": 8 - }, - { - "repetition": 28, - "latency_ns": 154686875, - "cpu_ticks": 14, - "process_write_bytes": 4222976, - "database_storage_growth_bytes": 2653280, - "peak_rss_kib": 177632, - "replayed_observations": 8 - }, - { - "repetition": 29, - "latency_ns": 203425372, - "cpu_ticks": 19, - "process_write_bytes": 4231168, - "database_storage_growth_bytes": 2653280, - "peak_rss_kib": 177632, - "replayed_observations": 8 - } - ], - "pipeline_latency": { - "repetitions": 30, - "min_ns": 144671979, - "p50_ns": 153995435, - "p95_ns": 176217476, - "p99_ns": 203425372, - "max_ns": 203425372, - "mean_ns": 155702307.96666667, - "sample_stddev_ns": 11437186.64791771 - }, - "pipeline_records_per_second": 51.38009901377101, - "pipeline_cpu_ticks": 443, - "pipeline_cpu_ms": 4430.0, - "pipeline_process_write_bytes": 126660608, - "pipeline_database_storage_growth_bytes": 79466560, - "peak_rss_kib": 177632, - "no_op_raw_samples": [ - { - "repetition": 0, - "latency_ns": 29329250, - "cpu_ticks": 2, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 172008, - "replayed_observations": 0 - }, - { - "repetition": 1, - "latency_ns": 27246602, - "cpu_ticks": 3, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 175212, - "replayed_observations": 0 - }, - { - "repetition": 2, - "latency_ns": 26886857, - "cpu_ticks": 3, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 176060, - "replayed_observations": 0 - }, - { - "repetition": 3, - "latency_ns": 26861295, - "cpu_ticks": 3, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177444, - "replayed_observations": 0 - }, - { - "repetition": 4, - "latency_ns": 26721082, - "cpu_ticks": 3, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177472, - "replayed_observations": 0 - }, - { - "repetition": 5, - "latency_ns": 26434709, - "cpu_ticks": 4, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177504, - "replayed_observations": 0 - }, - { - "repetition": 6, - "latency_ns": 26446178, - "cpu_ticks": 3, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177516, - "replayed_observations": 0 - }, - { - "repetition": 7, - "latency_ns": 26914044, - "cpu_ticks": 3, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177536, - "replayed_observations": 0 - }, - { - "repetition": 8, - "latency_ns": 27162148, - "cpu_ticks": 3, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177560, - "replayed_observations": 0 - }, - { - "repetition": 9, - "latency_ns": 26971394, - "cpu_ticks": 2, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177576, - "replayed_observations": 0 - }, - { - "repetition": 10, - "latency_ns": 27928888, - "cpu_ticks": 2, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177580, - "replayed_observations": 0 - }, - { - "repetition": 11, - "latency_ns": 28726499, - "cpu_ticks": 3, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177580, - "replayed_observations": 0 - }, - { - "repetition": 12, - "latency_ns": 27618284, - "cpu_ticks": 3, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177588, - "replayed_observations": 0 - }, - { - "repetition": 13, - "latency_ns": 29234354, - "cpu_ticks": 3, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177588, - "replayed_observations": 0 - }, - { - "repetition": 14, - "latency_ns": 27147225, - "cpu_ticks": 3, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177592, - "replayed_observations": 0 - }, - { - "repetition": 15, - "latency_ns": 28017169, - "cpu_ticks": 2, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177604, - "replayed_observations": 0 - }, - { - "repetition": 16, - "latency_ns": 28536075, - "cpu_ticks": 3, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177608, - "replayed_observations": 0 - }, - { - "repetition": 17, - "latency_ns": 26955283, - "cpu_ticks": 3, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177608, - "replayed_observations": 0 - }, - { - "repetition": 18, - "latency_ns": 27423589, - "cpu_ticks": 3, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177608, - "replayed_observations": 0 - }, - { - "repetition": 19, - "latency_ns": 26749129, - "cpu_ticks": 3, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177608, - "replayed_observations": 0 - }, - { - "repetition": 20, - "latency_ns": 27245207, - "cpu_ticks": 2, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177608, - "replayed_observations": 0 - }, - { - "repetition": 21, - "latency_ns": 29268754, - "cpu_ticks": 3, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177608, - "replayed_observations": 0 - }, - { - "repetition": 22, - "latency_ns": 27044102, - "cpu_ticks": 3, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177632, - "replayed_observations": 0 - }, - { - "repetition": 23, - "latency_ns": 28764125, - "cpu_ticks": 3, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177632, - "replayed_observations": 0 - }, - { - "repetition": 24, - "latency_ns": 38496911, - "cpu_ticks": 3, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177632, - "replayed_observations": 0 - }, - { - "repetition": 25, - "latency_ns": 26721217, - "cpu_ticks": 2, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177632, - "replayed_observations": 0 - }, - { - "repetition": 26, - "latency_ns": 30304926, - "cpu_ticks": 3, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177632, - "replayed_observations": 0 - }, - { - "repetition": 27, - "latency_ns": 28564032, - "cpu_ticks": 3, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177632, - "replayed_observations": 0 - }, - { - "repetition": 28, - "latency_ns": 27253644, - "cpu_ticks": 4, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177632, - "replayed_observations": 0 - }, - { - "repetition": 29, - "latency_ns": 33881595, - "cpu_ticks": 3, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177632, - "replayed_observations": 0 - } - ], - "no_op_latency": { - "repetitions": 30, - "min_ns": 26434709, - "p50_ns": 27246602, - "p95_ns": 33881595, - "p99_ns": 38496911, - "max_ns": 38496911, - "mean_ns": 28228485.566666666, - "sample_stddev_ns": 2458114.7581649204 - }, - "no_op_cpu_ticks": 86, - "no_op_cpu_ms": 860.0, - "no_op_process_write_bytes": 0, - "no_op_database_storage_growth_bytes": 0, - "no_op_observation_count_delta": 0 - }, - { - "provider": "kiro", - "production_path": "kiro_production_observation_pipeline_v1", - "pipeline_scope": "production_parse_normalize_sanitize_commit_project_and_replay", - "measured_repetitions": 30, - "observations_per_repetition": 8, - "replay_limit": 9, - "max_backlog_records": 8, - "parse": { - "scope": "native_provider_format_decode", - "raw_samples": [ - { - "repetition": 0, - "latency_ns": 38339, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 173740, - "record_count": 8 - }, - { - "repetition": 1, - "latency_ns": 48222, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 175116, - "record_count": 8 - }, - { - "repetition": 2, - "latency_ns": 43291, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 175964, - "record_count": 8 - }, - { - "repetition": 3, - "latency_ns": 37591, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177348, - "record_count": 8 - }, - { - "repetition": 4, - "latency_ns": 37070, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177376, - "record_count": 8 - }, - { - "repetition": 5, - "latency_ns": 41350, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177408, - "record_count": 8 - }, - { - "repetition": 6, - "latency_ns": 36671, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177420, - "record_count": 8 - }, - { - "repetition": 7, - "latency_ns": 34261, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177440, - "record_count": 8 - }, - { - "repetition": 8, - "latency_ns": 64721, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177464, - "record_count": 8 - }, - { - "repetition": 9, - "latency_ns": 51690, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177480, - "record_count": 8 - }, - { - "repetition": 10, - "latency_ns": 43070, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177484, - "record_count": 8 - }, - { - "repetition": 11, - "latency_ns": 38291, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177484, - "record_count": 8 - }, - { - "repetition": 12, - "latency_ns": 37531, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177492, - "record_count": 8 - }, - { - "repetition": 13, - "latency_ns": 53991, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177492, - "record_count": 8 - }, - { - "repetition": 14, - "latency_ns": 35700, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177496, - "record_count": 8 - }, - { - "repetition": 15, - "latency_ns": 35681, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177508, - "record_count": 8 - }, - { - "repetition": 16, - "latency_ns": 36611, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177512, - "record_count": 8 - }, - { - "repetition": 17, - "latency_ns": 43050, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177512, - "record_count": 8 - }, - { - "repetition": 18, - "latency_ns": 37011, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177512, - "record_count": 8 - }, - { - "repetition": 19, - "latency_ns": 34709, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177512, - "record_count": 8 - }, - { - "repetition": 20, - "latency_ns": 45790, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177512, - "record_count": 8 - }, - { - "repetition": 21, - "latency_ns": 51151, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177512, - "record_count": 8 - }, - { - "repetition": 22, - "latency_ns": 41511, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177536, - "record_count": 8 - }, - { - "repetition": 23, - "latency_ns": 41571, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177536, - "record_count": 8 - }, - { - "repetition": 24, - "latency_ns": 36431, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177536, - "record_count": 8 - }, - { - "repetition": 25, - "latency_ns": 39301, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177536, - "record_count": 8 - }, - { - "repetition": 26, - "latency_ns": 42441, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177536, - "record_count": 8 - }, - { - "repetition": 27, - "latency_ns": 36392, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177536, - "record_count": 8 - }, - { - "repetition": 28, - "latency_ns": 47930, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177536, - "record_count": 8 - }, - { - "repetition": 29, - "latency_ns": 54521, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177536, - "record_count": 8 - } - ], - "latency": { - "repetitions": 30, - "min_ns": 34261, - "p50_ns": 39301, - "p95_ns": 54521, - "p99_ns": 64721, - "max_ns": 64721, - "mean_ns": 42196.333333333336, - "sample_stddev_ns": 7244.746930842652 - }, - "cpu_ticks": 0, - "cpu_ms": 0.0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177536 - }, - "commit": { - "scope": "production_adapter_parse_normalize_sanitize_commit_and_project", - "raw_samples": [ - { - "repetition": 0, - "latency_ns": 113057244, - "cpu_ticks": 10, - "process_write_bytes": 4395008, - "database_storage_growth_bytes": 2727440, - "peak_rss_kib": 174284, - "record_count": 8 - }, - { - "repetition": 1, - "latency_ns": 125666939, - "cpu_ticks": 13, - "process_write_bytes": 4395008, - "database_storage_growth_bytes": 2727440, - "peak_rss_kib": 175212, - "record_count": 8 - }, - { - "repetition": 2, - "latency_ns": 124329568, - "cpu_ticks": 12, - "process_write_bytes": 4395008, - "database_storage_growth_bytes": 2727440, - "peak_rss_kib": 176080, - "record_count": 8 - }, - { - "repetition": 3, - "latency_ns": 123005078, - "cpu_ticks": 12, - "process_write_bytes": 4395008, - "database_storage_growth_bytes": 2727440, - "peak_rss_kib": 177444, - "record_count": 8 - }, - { - "repetition": 4, - "latency_ns": 128353921, - "cpu_ticks": 12, - "process_write_bytes": 4395008, - "database_storage_growth_bytes": 2727440, - "peak_rss_kib": 177472, - "record_count": 8 - }, - { - "repetition": 5, - "latency_ns": 124776730, - "cpu_ticks": 11, - "process_write_bytes": 4395008, - "database_storage_growth_bytes": 2727440, - "peak_rss_kib": 177504, - "record_count": 8 - }, - { - "repetition": 6, - "latency_ns": 124699879, - "cpu_ticks": 11, - "process_write_bytes": 4395008, - "database_storage_growth_bytes": 2727440, - "peak_rss_kib": 177516, - "record_count": 8 - }, - { - "repetition": 7, - "latency_ns": 126312280, - "cpu_ticks": 12, - "process_write_bytes": 4403200, - "database_storage_growth_bytes": 2735680, - "peak_rss_kib": 177536, - "record_count": 8 - }, - { - "repetition": 8, - "latency_ns": 115523107, - "cpu_ticks": 12, - "process_write_bytes": 4395008, - "database_storage_growth_bytes": 2727440, - "peak_rss_kib": 177560, - "record_count": 8 - }, - { - "repetition": 9, - "latency_ns": 116626892, - "cpu_ticks": 11, - "process_write_bytes": 4395008, - "database_storage_growth_bytes": 2727440, - "peak_rss_kib": 177576, - "record_count": 8 - }, - { - "repetition": 10, - "latency_ns": 114816455, - "cpu_ticks": 11, - "process_write_bytes": 4403200, - "database_storage_growth_bytes": 2735680, - "peak_rss_kib": 177580, - "record_count": 8 - }, - { - "repetition": 11, - "latency_ns": 123202270, - "cpu_ticks": 13, - "process_write_bytes": 4395008, - "database_storage_growth_bytes": 2727440, - "peak_rss_kib": 177580, - "record_count": 8 - }, - { - "repetition": 12, - "latency_ns": 125322210, - "cpu_ticks": 12, - "process_write_bytes": 4395008, - "database_storage_growth_bytes": 2727440, - "peak_rss_kib": 177588, - "record_count": 8 - }, - { - "repetition": 13, - "latency_ns": 126651106, - "cpu_ticks": 12, - "process_write_bytes": 4395008, - "database_storage_growth_bytes": 2727440, - "peak_rss_kib": 177588, - "record_count": 8 - }, - { - "repetition": 14, - "latency_ns": 131042116, - "cpu_ticks": 13, - "process_write_bytes": 4395008, - "database_storage_growth_bytes": 2727440, - "peak_rss_kib": 177592, - "record_count": 8 - }, - { - "repetition": 15, - "latency_ns": 114837771, - "cpu_ticks": 11, - "process_write_bytes": 4403200, - "database_storage_growth_bytes": 2735680, - "peak_rss_kib": 177604, - "record_count": 8 - }, - { - "repetition": 16, - "latency_ns": 121796945, - "cpu_ticks": 11, - "process_write_bytes": 4395008, - "database_storage_growth_bytes": 2727440, - "peak_rss_kib": 177608, - "record_count": 8 - }, - { - "repetition": 17, - "latency_ns": 123881293, - "cpu_ticks": 12, - "process_write_bytes": 4395008, - "database_storage_growth_bytes": 2727440, - "peak_rss_kib": 177608, - "record_count": 8 - }, - { - "repetition": 18, - "latency_ns": 115569788, - "cpu_ticks": 10, - "process_write_bytes": 4395008, - "database_storage_growth_bytes": 2727440, - "peak_rss_kib": 177608, - "record_count": 8 - }, - { - "repetition": 19, - "latency_ns": 116550361, - "cpu_ticks": 11, - "process_write_bytes": 4403200, - "database_storage_growth_bytes": 2735680, - "peak_rss_kib": 177608, - "record_count": 8 - }, - { - "repetition": 20, - "latency_ns": 116124614, - "cpu_ticks": 11, - "process_write_bytes": 4395008, - "database_storage_growth_bytes": 2727440, - "peak_rss_kib": 177608, - "record_count": 8 - }, - { - "repetition": 21, - "latency_ns": 136291190, - "cpu_ticks": 13, - "process_write_bytes": 4395008, - "database_storage_growth_bytes": 2727440, - "peak_rss_kib": 177608, - "record_count": 8 - }, - { - "repetition": 22, - "latency_ns": 120554912, - "cpu_ticks": 11, - "process_write_bytes": 4395008, - "database_storage_growth_bytes": 2727440, - "peak_rss_kib": 177632, - "record_count": 8 - }, - { - "repetition": 23, - "latency_ns": 120102045, - "cpu_ticks": 11, - "process_write_bytes": 4395008, - "database_storage_growth_bytes": 2727440, - "peak_rss_kib": 177632, - "record_count": 8 - }, - { - "repetition": 24, - "latency_ns": 123002943, - "cpu_ticks": 11, - "process_write_bytes": 4395008, - "database_storage_growth_bytes": 2727440, - "peak_rss_kib": 177632, - "record_count": 8 - }, - { - "repetition": 25, - "latency_ns": 116985500, - "cpu_ticks": 11, - "process_write_bytes": 4403200, - "database_storage_growth_bytes": 2735680, - "peak_rss_kib": 177632, - "record_count": 8 - }, - { - "repetition": 26, - "latency_ns": 116547952, - "cpu_ticks": 11, - "process_write_bytes": 4395008, - "database_storage_growth_bytes": 2727440, - "peak_rss_kib": 177632, - "record_count": 8 - }, - { - "repetition": 27, - "latency_ns": 114232479, - "cpu_ticks": 10, - "process_write_bytes": 4395008, - "database_storage_growth_bytes": 2727440, - "peak_rss_kib": 177632, - "record_count": 8 - }, - { - "repetition": 28, - "latency_ns": 119142615, - "cpu_ticks": 11, - "process_write_bytes": 4599808, - "database_storage_growth_bytes": 2727440, - "peak_rss_kib": 177632, - "record_count": 8 - }, - { - "repetition": 29, - "latency_ns": 160552422, - "cpu_ticks": 15, - "process_write_bytes": 4411392, - "database_storage_growth_bytes": 2735680, - "peak_rss_kib": 177632, - "record_count": 8 - } - ], - "latency": { - "repetitions": 30, - "min_ns": 113057244, - "p50_ns": 121796945, - "p95_ns": 136291190, - "p99_ns": 160552422, - "max_ns": 160552422, - "mean_ns": 122651954.16666667, - "sample_stddev_ns": 9059970.406002713 - }, - "cpu_ticks": 347, - "cpu_ms": 3470.0, - "process_write_bytes": 132112384, - "database_storage_growth_bytes": 81872640, - "peak_rss_kib": 177632 - }, - "replay": { - "scope": "authoritative_store_bounded_replay", - "raw_samples": [ - { - "repetition": 0, - "latency_ns": 827081, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 174284, - "record_count": 8 - }, - { - "repetition": 1, - "latency_ns": 872661, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 175212, - "record_count": 8 - }, - { - "repetition": 2, - "latency_ns": 880472, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 176080, - "record_count": 8 - }, - { - "repetition": 3, - "latency_ns": 816242, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177444, - "record_count": 8 - }, - { - "repetition": 4, - "latency_ns": 1112515, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177472, - "record_count": 8 - }, - { - "repetition": 5, - "latency_ns": 809051, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177504, - "record_count": 8 - }, - { - "repetition": 6, - "latency_ns": 823012, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177516, - "record_count": 8 - }, - { - "repetition": 7, - "latency_ns": 999623, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177536, - "record_count": 8 - }, - { - "repetition": 8, - "latency_ns": 802120, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177560, - "record_count": 8 - }, - { - "repetition": 9, - "latency_ns": 797762, - "cpu_ticks": 1, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177576, - "record_count": 8 - }, - { - "repetition": 10, - "latency_ns": 797541, - "cpu_ticks": 1, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177580, - "record_count": 8 - }, - { - "repetition": 11, - "latency_ns": 832622, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177580, - "record_count": 8 - }, - { - "repetition": 12, - "latency_ns": 850772, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177588, - "record_count": 8 - }, - { - "repetition": 13, - "latency_ns": 911152, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177588, - "record_count": 8 - }, - { - "repetition": 14, - "latency_ns": 864672, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177592, - "record_count": 8 - }, - { - "repetition": 15, - "latency_ns": 805990, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177604, - "record_count": 8 - }, - { - "repetition": 16, - "latency_ns": 900572, - "cpu_ticks": 1, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177608, - "record_count": 8 - }, - { - "repetition": 17, - "latency_ns": 870732, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177608, - "record_count": 8 - }, - { - "repetition": 18, - "latency_ns": 819762, - "cpu_ticks": 1, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177608, - "record_count": 8 - }, - { - "repetition": 19, - "latency_ns": 804281, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177608, - "record_count": 8 - }, - { - "repetition": 20, - "latency_ns": 809720, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177608, - "record_count": 8 - }, - { - "repetition": 21, - "latency_ns": 830350, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177608, - "record_count": 8 - }, - { - "repetition": 22, - "latency_ns": 830492, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177632, - "record_count": 8 - }, - { - "repetition": 23, - "latency_ns": 973493, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177632, - "record_count": 8 - }, - { - "repetition": 24, - "latency_ns": 891832, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177632, - "record_count": 8 - }, - { - "repetition": 25, - "latency_ns": 837721, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177632, - "record_count": 8 - }, - { - "repetition": 26, - "latency_ns": 808570, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177632, - "record_count": 8 - }, - { - "repetition": 27, - "latency_ns": 814272, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177632, - "record_count": 8 - }, - { - "repetition": 28, - "latency_ns": 826152, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177632, - "record_count": 8 - }, - { - "repetition": 29, - "latency_ns": 1411089, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177632, - "record_count": 8 - } - ], - "latency": { - "repetitions": 30, - "min_ns": 797541, - "p50_ns": 830350, - "p95_ns": 1112515, - "p99_ns": 1411089, - "max_ns": 1411089, - "mean_ns": 874410.8666666667, - "sample_stddev_ns": 122730.28159165861 - }, - "cpu_ticks": 4, - "cpu_ms": 40.0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177632 - }, - "pipeline_raw_samples": [ - { - "repetition": 0, - "latency_ns": 114058197, - "cpu_ticks": 10, - "process_write_bytes": 4395008, - "database_storage_growth_bytes": 2727440, - "peak_rss_kib": 174284, - "replayed_observations": 8 - }, - { - "repetition": 1, - "latency_ns": 126770974, - "cpu_ticks": 13, - "process_write_bytes": 4395008, - "database_storage_growth_bytes": 2727440, - "peak_rss_kib": 175212, - "replayed_observations": 8 - }, - { - "repetition": 2, - "latency_ns": 125397843, - "cpu_ticks": 12, - "process_write_bytes": 4395008, - "database_storage_growth_bytes": 2727440, - "peak_rss_kib": 176080, - "replayed_observations": 8 - }, - { - "repetition": 3, - "latency_ns": 124049592, - "cpu_ticks": 12, - "process_write_bytes": 4395008, - "database_storage_growth_bytes": 2727440, - "peak_rss_kib": 177444, - "replayed_observations": 8 - }, - { - "repetition": 4, - "latency_ns": 129645539, - "cpu_ticks": 12, - "process_write_bytes": 4395008, - "database_storage_growth_bytes": 2727440, - "peak_rss_kib": 177472, - "replayed_observations": 8 - }, - { - "repetition": 5, - "latency_ns": 125798624, - "cpu_ticks": 11, - "process_write_bytes": 4395008, - "database_storage_growth_bytes": 2727440, - "peak_rss_kib": 177504, - "replayed_observations": 8 - }, - { - "repetition": 6, - "latency_ns": 125735903, - "cpu_ticks": 11, - "process_write_bytes": 4395008, - "database_storage_growth_bytes": 2727440, - "peak_rss_kib": 177516, - "replayed_observations": 8 - }, - { - "repetition": 7, - "latency_ns": 127538327, - "cpu_ticks": 12, - "process_write_bytes": 4403200, - "database_storage_growth_bytes": 2735680, - "peak_rss_kib": 177536, - "replayed_observations": 8 - }, - { - "repetition": 8, - "latency_ns": 116543623, - "cpu_ticks": 12, - "process_write_bytes": 4395008, - "database_storage_growth_bytes": 2727440, - "peak_rss_kib": 177560, - "replayed_observations": 8 - }, - { - "repetition": 9, - "latency_ns": 117613507, - "cpu_ticks": 12, - "process_write_bytes": 4395008, - "database_storage_growth_bytes": 2727440, - "peak_rss_kib": 177576, - "replayed_observations": 8 - }, - { - "repetition": 10, - "latency_ns": 115829810, - "cpu_ticks": 12, - "process_write_bytes": 4403200, - "database_storage_growth_bytes": 2735680, - "peak_rss_kib": 177580, - "replayed_observations": 8 - }, - { - "repetition": 11, - "latency_ns": 124246056, - "cpu_ticks": 13, - "process_write_bytes": 4395008, - "database_storage_growth_bytes": 2727440, - "peak_rss_kib": 177580, - "replayed_observations": 8 - }, - { - "repetition": 12, - "latency_ns": 126377544, - "cpu_ticks": 12, - "process_write_bytes": 4395008, - "database_storage_growth_bytes": 2727440, - "peak_rss_kib": 177588, - "replayed_observations": 8 - }, - { - "repetition": 13, - "latency_ns": 127789242, - "cpu_ticks": 12, - "process_write_bytes": 4395008, - "database_storage_growth_bytes": 2727440, - "peak_rss_kib": 177588, - "replayed_observations": 8 - }, - { - "repetition": 14, - "latency_ns": 132106291, - "cpu_ticks": 13, - "process_write_bytes": 4395008, - "database_storage_growth_bytes": 2727440, - "peak_rss_kib": 177592, - "replayed_observations": 8 - }, - { - "repetition": 15, - "latency_ns": 115826694, - "cpu_ticks": 11, - "process_write_bytes": 4403200, - "database_storage_growth_bytes": 2735680, - "peak_rss_kib": 177604, - "replayed_observations": 8 - }, - { - "repetition": 16, - "latency_ns": 122903791, - "cpu_ticks": 12, - "process_write_bytes": 4395008, - "database_storage_growth_bytes": 2727440, - "peak_rss_kib": 177608, - "replayed_observations": 8 - }, - { - "repetition": 17, - "latency_ns": 124967248, - "cpu_ticks": 12, - "process_write_bytes": 4395008, - "database_storage_growth_bytes": 2727440, - "peak_rss_kib": 177608, - "replayed_observations": 8 - }, - { - "repetition": 18, - "latency_ns": 116619042, - "cpu_ticks": 11, - "process_write_bytes": 4395008, - "database_storage_growth_bytes": 2727440, - "peak_rss_kib": 177608, - "replayed_observations": 8 - }, - { - "repetition": 19, - "latency_ns": 117536834, - "cpu_ticks": 11, - "process_write_bytes": 4403200, - "database_storage_growth_bytes": 2735680, - "peak_rss_kib": 177608, - "replayed_observations": 8 - }, - { - "repetition": 20, - "latency_ns": 117166967, - "cpu_ticks": 11, - "process_write_bytes": 4395008, - "database_storage_growth_bytes": 2727440, - "peak_rss_kib": 177608, - "replayed_observations": 8 - }, - { - "repetition": 21, - "latency_ns": 137352035, - "cpu_ticks": 13, - "process_write_bytes": 4395008, - "database_storage_growth_bytes": 2727440, - "peak_rss_kib": 177608, - "replayed_observations": 8 - }, - { - "repetition": 22, - "latency_ns": 121636217, - "cpu_ticks": 11, - "process_write_bytes": 4395008, - "database_storage_growth_bytes": 2727440, - "peak_rss_kib": 177632, - "replayed_observations": 8 - }, - { - "repetition": 23, - "latency_ns": 121375632, - "cpu_ticks": 11, - "process_write_bytes": 4395008, - "database_storage_growth_bytes": 2727440, - "peak_rss_kib": 177632, - "replayed_observations": 8 - }, - { - "repetition": 24, - "latency_ns": 124140459, - "cpu_ticks": 11, - "process_write_bytes": 4395008, - "database_storage_growth_bytes": 2727440, - "peak_rss_kib": 177632, - "replayed_observations": 8 - }, - { - "repetition": 25, - "latency_ns": 118006043, - "cpu_ticks": 11, - "process_write_bytes": 4403200, - "database_storage_growth_bytes": 2735680, - "peak_rss_kib": 177632, - "replayed_observations": 8 - }, - { - "repetition": 26, - "latency_ns": 117548476, - "cpu_ticks": 11, - "process_write_bytes": 4395008, - "database_storage_growth_bytes": 2727440, - "peak_rss_kib": 177632, - "replayed_observations": 8 - }, - { - "repetition": 27, - "latency_ns": 115211132, - "cpu_ticks": 10, - "process_write_bytes": 4395008, - "database_storage_growth_bytes": 2727440, - "peak_rss_kib": 177632, - "replayed_observations": 8 - }, - { - "repetition": 28, - "latency_ns": 120208961, - "cpu_ticks": 11, - "process_write_bytes": 4599808, - "database_storage_growth_bytes": 2727440, - "peak_rss_kib": 177632, - "replayed_observations": 8 - }, - { - "repetition": 29, - "latency_ns": 162369708, - "cpu_ticks": 15, - "process_write_bytes": 4411392, - "database_storage_growth_bytes": 2735680, - "peak_rss_kib": 177632, - "replayed_observations": 8 - } - ], - "pipeline_latency": { - "repetitions": 30, - "min_ns": 114058197, - "p50_ns": 122903791, - "p95_ns": 137352035, - "p99_ns": 162369708, - "max_ns": 162369708, - "mean_ns": 123745677.03333333, - "sample_stddev_ns": 9191727.406223878 - }, - "pipeline_records_per_second": 64.64872302444184, - "pipeline_cpu_ticks": 351, - "pipeline_cpu_ms": 3510.0, - "pipeline_process_write_bytes": 132112384, - "pipeline_database_storage_growth_bytes": 81872640, - "peak_rss_kib": 177632, - "no_op_raw_samples": [ - { - "repetition": 0, - "latency_ns": 2733408, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 174284, - "replayed_observations": 0 - }, - { - "repetition": 1, - "latency_ns": 3034652, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 175212, - "replayed_observations": 0 - }, - { - "repetition": 2, - "latency_ns": 2741869, - "cpu_ticks": 1, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 176080, - "replayed_observations": 0 - }, - { - "repetition": 3, - "latency_ns": 2919610, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177444, - "replayed_observations": 0 - }, - { - "repetition": 4, - "latency_ns": 2783379, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177472, - "replayed_observations": 0 - }, - { - "repetition": 5, - "latency_ns": 2841100, - "cpu_ticks": 1, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177504, - "replayed_observations": 0 - }, - { - "repetition": 6, - "latency_ns": 2896291, - "cpu_ticks": 1, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177516, - "replayed_observations": 0 - }, - { - "repetition": 7, - "latency_ns": 3337946, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177536, - "replayed_observations": 0 - }, - { - "repetition": 8, - "latency_ns": 2853730, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177560, - "replayed_observations": 0 - }, - { - "repetition": 9, - "latency_ns": 2980810, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177576, - "replayed_observations": 0 - }, - { - "repetition": 10, - "latency_ns": 2904330, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177580, - "replayed_observations": 0 - }, - { - "repetition": 11, - "latency_ns": 2953601, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177580, - "replayed_observations": 0 - }, - { - "repetition": 12, - "latency_ns": 2997842, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177588, - "replayed_observations": 0 - }, - { - "repetition": 13, - "latency_ns": 3112563, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177588, - "replayed_observations": 0 - }, - { - "repetition": 14, - "latency_ns": 3268487, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177592, - "replayed_observations": 0 - }, - { - "repetition": 15, - "latency_ns": 2736819, - "cpu_ticks": 1, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177604, - "replayed_observations": 0 - }, - { - "repetition": 16, - "latency_ns": 3306996, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177608, - "replayed_observations": 0 - }, - { - "repetition": 17, - "latency_ns": 2876669, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177608, - "replayed_observations": 0 - }, - { - "repetition": 18, - "latency_ns": 2925110, - "cpu_ticks": 1, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177608, - "replayed_observations": 0 - }, - { - "repetition": 19, - "latency_ns": 2778298, - "cpu_ticks": 1, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177608, - "replayed_observations": 0 - }, - { - "repetition": 20, - "latency_ns": 2952111, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177608, - "replayed_observations": 0 - }, - { - "repetition": 21, - "latency_ns": 3027582, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177608, - "replayed_observations": 0 - }, - { - "repetition": 22, - "latency_ns": 3138522, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177632, - "replayed_observations": 0 - }, - { - "repetition": 23, - "latency_ns": 2901201, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177632, - "replayed_observations": 0 - }, - { - "repetition": 24, - "latency_ns": 3192545, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177632, - "replayed_observations": 0 - }, - { - "repetition": 25, - "latency_ns": 2752548, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177632, - "replayed_observations": 0 - }, - { - "repetition": 26, - "latency_ns": 2732077, - "cpu_ticks": 1, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177632, - "replayed_observations": 0 - }, - { - "repetition": 27, - "latency_ns": 2686458, - "cpu_ticks": 1, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177632, - "replayed_observations": 0 - }, - { - "repetition": 28, - "latency_ns": 2883148, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177632, - "replayed_observations": 0 - }, - { - "repetition": 29, - "latency_ns": 4753835, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177632, - "replayed_observations": 0 - } - ], - "no_op_latency": { - "repetitions": 30, - "min_ns": 2686458, - "p50_ns": 2904330, - "p95_ns": 3337946, - "p99_ns": 4753835, - "max_ns": 4753835, - "mean_ns": 3000117.9, - "sample_stddev_ns": 375261.11233888497 - }, - "no_op_cpu_ticks": 8, - "no_op_cpu_ms": 80.0, - "no_op_process_write_bytes": 0, - "no_op_database_storage_growth_bytes": 0, - "no_op_observation_count_delta": 0 - }, - { - "provider": "cline", - "production_path": "cline_production_observation_pipeline_v1", - "pipeline_scope": "production_parse_normalize_sanitize_commit_project_and_replay", - "measured_repetitions": 30, - "observations_per_repetition": 8, - "replay_limit": 9, - "max_backlog_records": 8, - "parse": { - "scope": "native_provider_format_decode", - "raw_samples": [ - { - "repetition": 0, - "latency_ns": 56490, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 174252, - "record_count": 8 - }, - { - "repetition": 1, - "latency_ns": 44431, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 175116, - "record_count": 8 - }, - { - "repetition": 2, - "latency_ns": 54640, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 175984, - "record_count": 8 - }, - { - "repetition": 3, - "latency_ns": 46040, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177348, - "record_count": 8 - }, - { - "repetition": 4, - "latency_ns": 42702, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177376, - "record_count": 8 - }, - { - "repetition": 5, - "latency_ns": 55711, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177408, - "record_count": 8 - }, - { - "repetition": 6, - "latency_ns": 44591, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177420, - "record_count": 8 - }, - { - "repetition": 7, - "latency_ns": 56630, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177440, - "record_count": 8 - }, - { - "repetition": 8, - "latency_ns": 69820, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177464, - "record_count": 8 - }, - { - "repetition": 9, - "latency_ns": 72301, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177480, - "record_count": 8 - }, - { - "repetition": 10, - "latency_ns": 53302, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177484, - "record_count": 8 - }, - { - "repetition": 11, - "latency_ns": 52971, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177484, - "record_count": 8 - }, - { - "repetition": 12, - "latency_ns": 61970, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177492, - "record_count": 8 - }, - { - "repetition": 13, - "latency_ns": 44859, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177492, - "record_count": 8 - }, - { - "repetition": 14, - "latency_ns": 47271, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177496, - "record_count": 8 - }, - { - "repetition": 15, - "latency_ns": 58611, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177508, - "record_count": 8 - }, - { - "repetition": 16, - "latency_ns": 45391, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177512, - "record_count": 8 - }, - { - "repetition": 17, - "latency_ns": 54200, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177512, - "record_count": 8 - }, - { - "repetition": 18, - "latency_ns": 52421, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177512, - "record_count": 8 - }, - { - "repetition": 19, - "latency_ns": 56231, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177512, - "record_count": 8 - }, - { - "repetition": 20, - "latency_ns": 44040, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177512, - "record_count": 8 - }, - { - "repetition": 21, - "latency_ns": 54631, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177512, - "record_count": 8 - }, - { - "repetition": 22, - "latency_ns": 70151, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177536, - "record_count": 8 - }, - { - "repetition": 23, - "latency_ns": 56800, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177536, - "record_count": 8 - }, - { - "repetition": 24, - "latency_ns": 49871, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177536, - "record_count": 8 - }, - { - "repetition": 25, - "latency_ns": 59121, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177536, - "record_count": 8 - }, - { - "repetition": 26, - "latency_ns": 71151, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177536, - "record_count": 8 - }, - { - "repetition": 27, - "latency_ns": 53510, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177536, - "record_count": 8 - }, - { - "repetition": 28, - "latency_ns": 43521, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177536, - "record_count": 8 - }, - { - "repetition": 29, - "latency_ns": 76941, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177536, - "record_count": 8 - } - ], - "latency": { - "repetitions": 30, - "min_ns": 42702, - "p50_ns": 54200, - "p95_ns": 72301, - "p99_ns": 76941, - "max_ns": 76941, - "mean_ns": 55010.666666666664, - "sample_stddev_ns": 9433.918797883383 - }, - "cpu_ticks": 0, - "cpu_ms": 0.0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177536 - }, - "commit": { - "scope": "production_adapter_parse_normalize_sanitize_commit_and_project", - "raw_samples": [ - { - "repetition": 0, - "latency_ns": 120586917, - "cpu_ticks": 12, - "process_write_bytes": 4681728, - "database_storage_growth_bytes": 2875760, - "peak_rss_kib": 174356, - "record_count": 8 - }, - { - "repetition": 1, - "latency_ns": 115626168, - "cpu_ticks": 10, - "process_write_bytes": 4673536, - "database_storage_growth_bytes": 2867520, - "peak_rss_kib": 175212, - "record_count": 8 - }, - { - "repetition": 2, - "latency_ns": 129906955, - "cpu_ticks": 13, - "process_write_bytes": 4681728, - "database_storage_growth_bytes": 2875760, - "peak_rss_kib": 176080, - "record_count": 8 - }, - { - "repetition": 3, - "latency_ns": 120350202, - "cpu_ticks": 11, - "process_write_bytes": 4673536, - "database_storage_growth_bytes": 2867520, - "peak_rss_kib": 177456, - "record_count": 8 - }, - { - "repetition": 4, - "latency_ns": 127697222, - "cpu_ticks": 12, - "process_write_bytes": 4681728, - "database_storage_growth_bytes": 2875760, - "peak_rss_kib": 177472, - "record_count": 8 - }, - { - "repetition": 5, - "latency_ns": 115343139, - "cpu_ticks": 11, - "process_write_bytes": 4681728, - "database_storage_growth_bytes": 2875760, - "peak_rss_kib": 177504, - "record_count": 8 - }, - { - "repetition": 6, - "latency_ns": 124463745, - "cpu_ticks": 12, - "process_write_bytes": 4681728, - "database_storage_growth_bytes": 2875760, - "peak_rss_kib": 177524, - "record_count": 8 - }, - { - "repetition": 7, - "latency_ns": 117505406, - "cpu_ticks": 12, - "process_write_bytes": 4681728, - "database_storage_growth_bytes": 2875760, - "peak_rss_kib": 177536, - "record_count": 8 - }, - { - "repetition": 8, - "latency_ns": 120404866, - "cpu_ticks": 11, - "process_write_bytes": 4673536, - "database_storage_growth_bytes": 2867520, - "peak_rss_kib": 177560, - "record_count": 8 - }, - { - "repetition": 9, - "latency_ns": 124722704, - "cpu_ticks": 12, - "process_write_bytes": 4673536, - "database_storage_growth_bytes": 2867520, - "peak_rss_kib": 177576, - "record_count": 8 - }, - { - "repetition": 10, - "latency_ns": 122841316, - "cpu_ticks": 13, - "process_write_bytes": 4681728, - "database_storage_growth_bytes": 2875760, - "peak_rss_kib": 177580, - "record_count": 8 - }, - { - "repetition": 11, - "latency_ns": 124826414, - "cpu_ticks": 12, - "process_write_bytes": 4673536, - "database_storage_growth_bytes": 2867520, - "peak_rss_kib": 177580, - "record_count": 8 - }, - { - "repetition": 12, - "latency_ns": 119463018, - "cpu_ticks": 12, - "process_write_bytes": 4689920, - "database_storage_growth_bytes": 2875760, - "peak_rss_kib": 177588, - "record_count": 8 - }, - { - "repetition": 13, - "latency_ns": 118802847, - "cpu_ticks": 11, - "process_write_bytes": 4673536, - "database_storage_growth_bytes": 2867520, - "peak_rss_kib": 177588, - "record_count": 8 - }, - { - "repetition": 14, - "latency_ns": 111902461, - "cpu_ticks": 10, - "process_write_bytes": 4673536, - "database_storage_growth_bytes": 2867520, - "peak_rss_kib": 177592, - "record_count": 8 - }, - { - "repetition": 15, - "latency_ns": 128055614, - "cpu_ticks": 12, - "process_write_bytes": 4673536, - "database_storage_growth_bytes": 2867520, - "peak_rss_kib": 177604, - "record_count": 8 - }, - { - "repetition": 16, - "latency_ns": 123595071, - "cpu_ticks": 11, - "process_write_bytes": 4673536, - "database_storage_growth_bytes": 2867520, - "peak_rss_kib": 177608, - "record_count": 8 - }, - { - "repetition": 17, - "latency_ns": 123062232, - "cpu_ticks": 11, - "process_write_bytes": 4673536, - "database_storage_growth_bytes": 2867520, - "peak_rss_kib": 177608, - "record_count": 8 - }, - { - "repetition": 18, - "latency_ns": 131214334, - "cpu_ticks": 12, - "process_write_bytes": 4673536, - "database_storage_growth_bytes": 2867520, - "peak_rss_kib": 177608, - "record_count": 8 - }, - { - "repetition": 19, - "latency_ns": 116625850, - "cpu_ticks": 12, - "process_write_bytes": 4734976, - "database_storage_growth_bytes": 2867520, - "peak_rss_kib": 177608, - "record_count": 8 - }, - { - "repetition": 20, - "latency_ns": 114551010, - "cpu_ticks": 11, - "process_write_bytes": 4673536, - "database_storage_growth_bytes": 2867520, - "peak_rss_kib": 177608, - "record_count": 8 - }, - { - "repetition": 21, - "latency_ns": 123807297, - "cpu_ticks": 12, - "process_write_bytes": 4681728, - "database_storage_growth_bytes": 2875760, - "peak_rss_kib": 177608, - "record_count": 8 - }, - { - "repetition": 22, - "latency_ns": 123951659, - "cpu_ticks": 12, - "process_write_bytes": 4673536, - "database_storage_growth_bytes": 2867520, - "peak_rss_kib": 177632, - "record_count": 8 - }, - { - "repetition": 23, - "latency_ns": 151945753, - "cpu_ticks": 15, - "process_write_bytes": 4673536, - "database_storage_growth_bytes": 2867520, - "peak_rss_kib": 177632, - "record_count": 8 - }, - { - "repetition": 24, - "latency_ns": 114283873, - "cpu_ticks": 10, - "process_write_bytes": 4673536, - "database_storage_growth_bytes": 2867520, - "peak_rss_kib": 177632, - "record_count": 8 - }, - { - "repetition": 25, - "latency_ns": 139775493, - "cpu_ticks": 13, - "process_write_bytes": 4673536, - "database_storage_growth_bytes": 2867520, - "peak_rss_kib": 177632, - "record_count": 8 - }, - { - "repetition": 26, - "latency_ns": 129612292, - "cpu_ticks": 12, - "process_write_bytes": 4681728, - "database_storage_growth_bytes": 2875760, - "peak_rss_kib": 177632, - "record_count": 8 - }, - { - "repetition": 27, - "latency_ns": 124173546, - "cpu_ticks": 11, - "process_write_bytes": 4673536, - "database_storage_growth_bytes": 2867520, - "peak_rss_kib": 177632, - "record_count": 8 - }, - { - "repetition": 28, - "latency_ns": 118000221, - "cpu_ticks": 11, - "process_write_bytes": 4759552, - "database_storage_growth_bytes": 2867520, - "peak_rss_kib": 177632, - "record_count": 8 - }, - { - "repetition": 29, - "latency_ns": 163074238, - "cpu_ticks": 16, - "process_write_bytes": 4673536, - "database_storage_growth_bytes": 2867520, - "peak_rss_kib": 177632, - "record_count": 8 - } - ], - "latency": { - "repetitions": 30, - "min_ns": 111902461, - "p50_ns": 123062232, - "p95_ns": 151945753, - "p99_ns": 163074238, - "max_ns": 163074238, - "mean_ns": 124672395.43333334, - "sample_stddev_ns": 10809698.668319238 - }, - "cpu_ticks": 355, - "cpu_ms": 3550.0, - "process_write_bytes": 140443648, - "database_storage_growth_bytes": 86108000, - "peak_rss_kib": 177632 - }, - "replay": { - "scope": "authoritative_store_bounded_replay", - "raw_samples": [ - { - "repetition": 0, - "latency_ns": 902472, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 174356, - "record_count": 8 - }, - { - "repetition": 1, - "latency_ns": 857402, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 175212, - "record_count": 8 - }, - { - "repetition": 2, - "latency_ns": 827502, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 176080, - "record_count": 8 - }, - { - "repetition": 3, - "latency_ns": 844411, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177456, - "record_count": 8 - }, - { - "repetition": 4, - "latency_ns": 1180196, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177472, - "record_count": 8 - }, - { - "repetition": 5, - "latency_ns": 831001, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177504, - "record_count": 8 - }, - { - "repetition": 6, - "latency_ns": 932252, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177524, - "record_count": 8 - }, - { - "repetition": 7, - "latency_ns": 843732, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177536, - "record_count": 8 - }, - { - "repetition": 8, - "latency_ns": 855312, - "cpu_ticks": 1, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177560, - "record_count": 8 - }, - { - "repetition": 9, - "latency_ns": 842442, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177576, - "record_count": 8 - }, - { - "repetition": 10, - "latency_ns": 910913, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177580, - "record_count": 8 - }, - { - "repetition": 11, - "latency_ns": 873393, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177580, - "record_count": 8 - }, - { - "repetition": 12, - "latency_ns": 837192, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177588, - "record_count": 8 - }, - { - "repetition": 13, - "latency_ns": 848562, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177588, - "record_count": 8 - }, - { - "repetition": 14, - "latency_ns": 717949, - "cpu_ticks": 1, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177592, - "record_count": 8 - }, - { - "repetition": 15, - "latency_ns": 921034, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177604, - "record_count": 8 - }, - { - "repetition": 16, - "latency_ns": 893412, - "cpu_ticks": 1, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177608, - "record_count": 8 - }, - { - "repetition": 17, - "latency_ns": 847542, - "cpu_ticks": 1, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177608, - "record_count": 8 - }, - { - "repetition": 18, - "latency_ns": 867853, - "cpu_ticks": 1, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177608, - "record_count": 8 - }, - { - "repetition": 19, - "latency_ns": 838492, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177608, - "record_count": 8 - }, - { - "repetition": 20, - "latency_ns": 790101, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177608, - "record_count": 8 - }, - { - "repetition": 21, - "latency_ns": 957154, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177608, - "record_count": 8 - }, - { - "repetition": 22, - "latency_ns": 854552, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177632, - "record_count": 8 - }, - { - "repetition": 23, - "latency_ns": 1162027, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177632, - "record_count": 8 - }, - { - "repetition": 24, - "latency_ns": 831072, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177632, - "record_count": 8 - }, - { - "repetition": 25, - "latency_ns": 1004333, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177632, - "record_count": 8 - }, - { - "repetition": 26, - "latency_ns": 948264, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177632, - "record_count": 8 - }, - { - "repetition": 27, - "latency_ns": 840551, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177632, - "record_count": 8 - }, - { - "repetition": 28, - "latency_ns": 838221, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177632, - "record_count": 8 - }, - { - "repetition": 29, - "latency_ns": 1222967, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177632, - "record_count": 8 - } - ], - "latency": { - "repetitions": 30, - "min_ns": 717949, - "p50_ns": 854552, - "p95_ns": 1180196, - "p99_ns": 1222967, - "max_ns": 1222967, - "mean_ns": 897410.2, - "sample_stddev_ns": 112504.33189495876 - }, - "cpu_ticks": 5, - "cpu_ms": 50.0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177632 - }, - "pipeline_raw_samples": [ - { - "repetition": 0, - "latency_ns": 121726954, - "cpu_ticks": 12, - "process_write_bytes": 4681728, - "database_storage_growth_bytes": 2875760, - "peak_rss_kib": 174356, - "replayed_observations": 8 - }, - { - "repetition": 1, - "latency_ns": 116696463, - "cpu_ticks": 10, - "process_write_bytes": 4673536, - "database_storage_growth_bytes": 2867520, - "peak_rss_kib": 175212, - "replayed_observations": 8 - }, - { - "repetition": 2, - "latency_ns": 130945230, - "cpu_ticks": 13, - "process_write_bytes": 4681728, - "database_storage_growth_bytes": 2875760, - "peak_rss_kib": 176080, - "replayed_observations": 8 - }, - { - "repetition": 3, - "latency_ns": 121416256, - "cpu_ticks": 11, - "process_write_bytes": 4673536, - "database_storage_growth_bytes": 2867520, - "peak_rss_kib": 177456, - "replayed_observations": 8 - }, - { - "repetition": 4, - "latency_ns": 129105603, - "cpu_ticks": 12, - "process_write_bytes": 4681728, - "database_storage_growth_bytes": 2875760, - "peak_rss_kib": 177472, - "replayed_observations": 8 - }, - { - "repetition": 5, - "latency_ns": 116379503, - "cpu_ticks": 11, - "process_write_bytes": 4681728, - "database_storage_growth_bytes": 2875760, - "peak_rss_kib": 177504, - "replayed_observations": 8 - }, - { - "repetition": 6, - "latency_ns": 125676042, - "cpu_ticks": 12, - "process_write_bytes": 4681728, - "database_storage_growth_bytes": 2875760, - "peak_rss_kib": 177524, - "replayed_observations": 8 - }, - { - "repetition": 7, - "latency_ns": 118578180, - "cpu_ticks": 12, - "process_write_bytes": 4681728, - "database_storage_growth_bytes": 2875760, - "peak_rss_kib": 177536, - "replayed_observations": 8 - }, - { - "repetition": 8, - "latency_ns": 121450610, - "cpu_ticks": 12, - "process_write_bytes": 4673536, - "database_storage_growth_bytes": 2867520, - "peak_rss_kib": 177560, - "replayed_observations": 8 - }, - { - "repetition": 9, - "latency_ns": 125783509, - "cpu_ticks": 12, - "process_write_bytes": 4673536, - "database_storage_growth_bytes": 2867520, - "peak_rss_kib": 177576, - "replayed_observations": 8 - }, - { - "repetition": 10, - "latency_ns": 123943353, - "cpu_ticks": 13, - "process_write_bytes": 4681728, - "database_storage_growth_bytes": 2875760, - "peak_rss_kib": 177580, - "replayed_observations": 8 - }, - { - "repetition": 11, - "latency_ns": 125903658, - "cpu_ticks": 12, - "process_write_bytes": 4673536, - "database_storage_growth_bytes": 2867520, - "peak_rss_kib": 177580, - "replayed_observations": 8 - }, - { - "repetition": 12, - "latency_ns": 120555483, - "cpu_ticks": 12, - "process_write_bytes": 4689920, - "database_storage_growth_bytes": 2875760, - "peak_rss_kib": 177588, - "replayed_observations": 8 - }, - { - "repetition": 13, - "latency_ns": 119839321, - "cpu_ticks": 11, - "process_write_bytes": 4673536, - "database_storage_growth_bytes": 2867520, - "peak_rss_kib": 177588, - "replayed_observations": 8 - }, - { - "repetition": 14, - "latency_ns": 112789923, - "cpu_ticks": 11, - "process_write_bytes": 4673536, - "database_storage_growth_bytes": 2867520, - "peak_rss_kib": 177592, - "replayed_observations": 8 - }, - { - "repetition": 15, - "latency_ns": 129230609, - "cpu_ticks": 12, - "process_write_bytes": 4673536, - "database_storage_growth_bytes": 2867520, - "peak_rss_kib": 177604, - "replayed_observations": 8 - }, - { - "repetition": 16, - "latency_ns": 124700206, - "cpu_ticks": 12, - "process_write_bytes": 4673536, - "database_storage_growth_bytes": 2867520, - "peak_rss_kib": 177608, - "replayed_observations": 8 - }, - { - "repetition": 17, - "latency_ns": 124111647, - "cpu_ticks": 12, - "process_write_bytes": 4673536, - "database_storage_growth_bytes": 2867520, - "peak_rss_kib": 177608, - "replayed_observations": 8 - }, - { - "repetition": 18, - "latency_ns": 132307918, - "cpu_ticks": 13, - "process_write_bytes": 4673536, - "database_storage_growth_bytes": 2867520, - "peak_rss_kib": 177608, - "replayed_observations": 8 - }, - { - "repetition": 19, - "latency_ns": 117682926, - "cpu_ticks": 12, - "process_write_bytes": 4734976, - "database_storage_growth_bytes": 2867520, - "peak_rss_kib": 177608, - "replayed_observations": 8 - }, - { - "repetition": 20, - "latency_ns": 115535694, - "cpu_ticks": 11, - "process_write_bytes": 4673536, - "database_storage_growth_bytes": 2867520, - "peak_rss_kib": 177608, - "replayed_observations": 8 - }, - { - "repetition": 21, - "latency_ns": 124970735, - "cpu_ticks": 12, - "process_write_bytes": 4681728, - "database_storage_growth_bytes": 2875760, - "peak_rss_kib": 177608, - "replayed_observations": 8 - }, - { - "repetition": 22, - "latency_ns": 125023884, - "cpu_ticks": 12, - "process_write_bytes": 4673536, - "database_storage_growth_bytes": 2867520, - "peak_rss_kib": 177632, - "replayed_observations": 8 - }, - { - "repetition": 23, - "latency_ns": 153366293, - "cpu_ticks": 15, - "process_write_bytes": 4673536, - "database_storage_growth_bytes": 2867520, - "peak_rss_kib": 177632, - "replayed_observations": 8 - }, - { - "repetition": 24, - "latency_ns": 115293938, - "cpu_ticks": 10, - "process_write_bytes": 4673536, - "database_storage_growth_bytes": 2867520, - "peak_rss_kib": 177632, - "replayed_observations": 8 - }, - { - "repetition": 25, - "latency_ns": 141017700, - "cpu_ticks": 13, - "process_write_bytes": 4673536, - "database_storage_growth_bytes": 2867520, - "peak_rss_kib": 177632, - "replayed_observations": 8 - }, - { - "repetition": 26, - "latency_ns": 130788187, - "cpu_ticks": 12, - "process_write_bytes": 4681728, - "database_storage_growth_bytes": 2875760, - "peak_rss_kib": 177632, - "replayed_observations": 8 - }, - { - "repetition": 27, - "latency_ns": 125236289, - "cpu_ticks": 11, - "process_write_bytes": 4673536, - "database_storage_growth_bytes": 2867520, - "peak_rss_kib": 177632, - "replayed_observations": 8 - }, - { - "repetition": 28, - "latency_ns": 119023385, - "cpu_ticks": 11, - "process_write_bytes": 4759552, - "database_storage_growth_bytes": 2867520, - "peak_rss_kib": 177632, - "replayed_observations": 8 - }, - { - "repetition": 29, - "latency_ns": 164598709, - "cpu_ticks": 16, - "process_write_bytes": 4673536, - "database_storage_growth_bytes": 2867520, - "peak_rss_kib": 177632, - "replayed_observations": 8 - } - ], - "pipeline_latency": { - "repetitions": 30, - "min_ns": 112789923, - "p50_ns": 124111647, - "p95_ns": 153366293, - "p99_ns": 164598709, - "max_ns": 164598709, - "mean_ns": 125789273.6, - "sample_stddev_ns": 10924031.693472154 - }, - "pipeline_records_per_second": 63.59842752124773, - "pipeline_cpu_ticks": 360, - "pipeline_cpu_ms": 3600.0, - "pipeline_process_write_bytes": 140443648, - "pipeline_database_storage_growth_bytes": 86108000, - "peak_rss_kib": 177632, - "no_op_raw_samples": [ - { - "repetition": 0, - "latency_ns": 3550609, - "cpu_ticks": 1, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 174356, - "replayed_observations": 0 - }, - { - "repetition": 1, - "latency_ns": 2803190, - "cpu_ticks": 1, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 175212, - "replayed_observations": 0 - }, - { - "repetition": 2, - "latency_ns": 3018092, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 176080, - "replayed_observations": 0 - }, - { - "repetition": 3, - "latency_ns": 3014822, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177456, - "replayed_observations": 0 - }, - { - "repetition": 4, - "latency_ns": 2918902, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177472, - "replayed_observations": 0 - }, - { - "repetition": 5, - "latency_ns": 2868140, - "cpu_ticks": 1, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177504, - "replayed_observations": 0 - }, - { - "repetition": 6, - "latency_ns": 3047473, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177524, - "replayed_observations": 0 - }, - { - "repetition": 7, - "latency_ns": 2956621, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177536, - "replayed_observations": 0 - }, - { - "repetition": 8, - "latency_ns": 2831139, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177560, - "replayed_observations": 0 - }, - { - "repetition": 9, - "latency_ns": 2906870, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177576, - "replayed_observations": 0 - }, - { - "repetition": 10, - "latency_ns": 3071043, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177580, - "replayed_observations": 0 - }, - { - "repetition": 11, - "latency_ns": 2958131, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177580, - "replayed_observations": 0 - }, - { - "repetition": 12, - "latency_ns": 2987472, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177588, - "replayed_observations": 0 - }, - { - "repetition": 13, - "latency_ns": 2799218, - "cpu_ticks": 1, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177588, - "replayed_observations": 0 - }, - { - "repetition": 14, - "latency_ns": 2676447, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177592, - "replayed_observations": 0 - }, - { - "repetition": 15, - "latency_ns": 3272836, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177604, - "replayed_observations": 0 - }, - { - "repetition": 16, - "latency_ns": 3143643, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177608, - "replayed_observations": 0 - }, - { - "repetition": 17, - "latency_ns": 2805229, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177608, - "replayed_observations": 0 - }, - { - "repetition": 18, - "latency_ns": 3193094, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177608, - "replayed_observations": 0 - }, - { - "repetition": 19, - "latency_ns": 2816067, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177608, - "replayed_observations": 0 - }, - { - "repetition": 20, - "latency_ns": 2802578, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177608, - "replayed_observations": 0 - }, - { - "repetition": 21, - "latency_ns": 3157364, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177608, - "replayed_observations": 0 - }, - { - "repetition": 22, - "latency_ns": 2785208, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177632, - "replayed_observations": 0 - }, - { - "repetition": 23, - "latency_ns": 3277525, - "cpu_ticks": 1, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177632, - "replayed_observations": 0 - }, - { - "repetition": 24, - "latency_ns": 2712767, - "cpu_ticks": 1, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177632, - "replayed_observations": 0 - }, - { - "repetition": 25, - "latency_ns": 3148114, - "cpu_ticks": 1, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177632, - "replayed_observations": 0 - }, - { - "repetition": 26, - "latency_ns": 3137664, - "cpu_ticks": 1, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177632, - "replayed_observations": 0 - }, - { - "repetition": 27, - "latency_ns": 3014541, - "cpu_ticks": 1, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177632, - "replayed_observations": 0 - }, - { - "repetition": 28, - "latency_ns": 2776628, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177632, - "replayed_observations": 0 - }, - { - "repetition": 29, - "latency_ns": 3949045, - "cpu_ticks": 1, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177632, - "replayed_observations": 0 - } - ], - "no_op_latency": { - "repetitions": 30, - "min_ns": 2676447, - "p50_ns": 2958131, - "p95_ns": 3550609, - "p99_ns": 3949045, - "max_ns": 3949045, - "mean_ns": 3013349.066666667, - "sample_stddev_ns": 263893.5114695311 - }, - "no_op_cpu_ticks": 10, - "no_op_cpu_ms": 100.0, - "no_op_process_write_bytes": 0, - "no_op_database_storage_growth_bytes": 0, - "no_op_observation_count_delta": 0 - }, - { - "provider": "roo-code", - "production_path": "roo-code_production_observation_pipeline_v1", - "pipeline_scope": "production_parse_normalize_sanitize_commit_project_and_replay", - "measured_repetitions": 30, - "observations_per_repetition": 8, - "replay_limit": 9, - "max_backlog_records": 8, - "parse": { - "scope": "native_provider_format_decode", - "raw_samples": [ - { - "repetition": 0, - "latency_ns": 57062, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 174260, - "record_count": 8 - }, - { - "repetition": 1, - "latency_ns": 61500, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 175116, - "record_count": 8 - }, - { - "repetition": 2, - "latency_ns": 56810, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 175984, - "record_count": 8 - }, - { - "repetition": 3, - "latency_ns": 45760, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177360, - "record_count": 8 - }, - { - "repetition": 4, - "latency_ns": 43871, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177376, - "record_count": 8 - }, - { - "repetition": 5, - "latency_ns": 57760, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177408, - "record_count": 8 - }, - { - "repetition": 6, - "latency_ns": 51231, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177428, - "record_count": 8 - }, - { - "repetition": 7, - "latency_ns": 44241, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177440, - "record_count": 8 - }, - { - "repetition": 8, - "latency_ns": 50510, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177464, - "record_count": 8 - }, - { - "repetition": 9, - "latency_ns": 44840, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177480, - "record_count": 8 - }, - { - "repetition": 10, - "latency_ns": 47201, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177484, - "record_count": 8 - }, - { - "repetition": 11, - "latency_ns": 52661, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177484, - "record_count": 8 - }, - { - "repetition": 12, - "latency_ns": 61141, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177492, - "record_count": 8 - }, - { - "repetition": 13, - "latency_ns": 47761, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177492, - "record_count": 8 - }, - { - "repetition": 14, - "latency_ns": 45211, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177496, - "record_count": 8 - }, - { - "repetition": 15, - "latency_ns": 55611, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177508, - "record_count": 8 - }, - { - "repetition": 16, - "latency_ns": 53201, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177512, - "record_count": 8 - }, - { - "repetition": 17, - "latency_ns": 48321, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177512, - "record_count": 8 - }, - { - "repetition": 18, - "latency_ns": 46431, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177512, - "record_count": 8 - }, - { - "repetition": 19, - "latency_ns": 47851, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177512, - "record_count": 8 - }, - { - "repetition": 20, - "latency_ns": 42650, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177512, - "record_count": 8 - }, - { - "repetition": 21, - "latency_ns": 56492, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177512, - "record_count": 8 - }, - { - "repetition": 22, - "latency_ns": 55231, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177536, - "record_count": 8 - }, - { - "repetition": 23, - "latency_ns": 44910, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177536, - "record_count": 8 - }, - { - "repetition": 24, - "latency_ns": 47840, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177536, - "record_count": 8 - }, - { - "repetition": 25, - "latency_ns": 47801, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177536, - "record_count": 8 - }, - { - "repetition": 26, - "latency_ns": 46290, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177536, - "record_count": 8 - }, - { - "repetition": 27, - "latency_ns": 55931, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177536, - "record_count": 8 - }, - { - "repetition": 28, - "latency_ns": 44280, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177536, - "record_count": 8 - }, - { - "repetition": 29, - "latency_ns": 66451, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177536, - "record_count": 8 - } - ], - "latency": { - "repetitions": 30, - "min_ns": 42650, - "p50_ns": 47851, - "p95_ns": 61500, - "p99_ns": 66451, - "max_ns": 66451, - "mean_ns": 50895.03333333333, - "sample_stddev_ns": 6219.873169143394 - }, - "cpu_ticks": 0, - "cpu_ms": 0.0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177536 - }, - "commit": { - "scope": "production_adapter_parse_normalize_sanitize_commit_and_project", - "raw_samples": [ - { - "repetition": 0, - "latency_ns": 121335458, - "cpu_ticks": 12, - "process_write_bytes": 4677632, - "database_storage_growth_bytes": 2871640, - "peak_rss_kib": 174356, - "record_count": 8 - }, - { - "repetition": 1, - "latency_ns": 116118665, - "cpu_ticks": 11, - "process_write_bytes": 4677632, - "database_storage_growth_bytes": 2871640, - "peak_rss_kib": 175212, - "record_count": 8 - }, - { - "repetition": 2, - "latency_ns": 123602989, - "cpu_ticks": 11, - "process_write_bytes": 4677632, - "database_storage_growth_bytes": 2871640, - "peak_rss_kib": 176108, - "record_count": 8 - }, - { - "repetition": 3, - "latency_ns": 116672950, - "cpu_ticks": 11, - "process_write_bytes": 4677632, - "database_storage_growth_bytes": 2871640, - "peak_rss_kib": 177456, - "record_count": 8 - }, - { - "repetition": 4, - "latency_ns": 120097775, - "cpu_ticks": 10, - "process_write_bytes": 4677632, - "database_storage_growth_bytes": 2871640, - "peak_rss_kib": 177472, - "record_count": 8 - }, - { - "repetition": 5, - "latency_ns": 117830033, - "cpu_ticks": 12, - "process_write_bytes": 4685824, - "database_storage_growth_bytes": 2879880, - "peak_rss_kib": 177504, - "record_count": 8 - }, - { - "repetition": 6, - "latency_ns": 123236707, - "cpu_ticks": 11, - "process_write_bytes": 4694016, - "database_storage_growth_bytes": 2879880, - "peak_rss_kib": 177524, - "record_count": 8 - }, - { - "repetition": 7, - "latency_ns": 112949722, - "cpu_ticks": 11, - "process_write_bytes": 4677632, - "database_storage_growth_bytes": 2871640, - "peak_rss_kib": 177536, - "record_count": 8 - }, - { - "repetition": 8, - "latency_ns": 122761658, - "cpu_ticks": 11, - "process_write_bytes": 4685824, - "database_storage_growth_bytes": 2879880, - "peak_rss_kib": 177576, - "record_count": 8 - }, - { - "repetition": 9, - "latency_ns": 121058743, - "cpu_ticks": 11, - "process_write_bytes": 4677632, - "database_storage_growth_bytes": 2871640, - "peak_rss_kib": 177576, - "record_count": 8 - }, - { - "repetition": 10, - "latency_ns": 121884674, - "cpu_ticks": 12, - "process_write_bytes": 4685824, - "database_storage_growth_bytes": 2879880, - "peak_rss_kib": 177580, - "record_count": 8 - }, - { - "repetition": 11, - "latency_ns": 115435352, - "cpu_ticks": 11, - "process_write_bytes": 4677632, - "database_storage_growth_bytes": 2871640, - "peak_rss_kib": 177580, - "record_count": 8 - }, - { - "repetition": 12, - "latency_ns": 120570103, - "cpu_ticks": 12, - "process_write_bytes": 4685824, - "database_storage_growth_bytes": 2879880, - "peak_rss_kib": 177588, - "record_count": 8 - }, - { - "repetition": 13, - "latency_ns": 114177273, - "cpu_ticks": 10, - "process_write_bytes": 4677632, - "database_storage_growth_bytes": 2871640, - "peak_rss_kib": 177588, - "record_count": 8 - }, - { - "repetition": 14, - "latency_ns": 125989127, - "cpu_ticks": 12, - "process_write_bytes": 4685824, - "database_storage_growth_bytes": 2879880, - "peak_rss_kib": 177592, - "record_count": 8 - }, - { - "repetition": 15, - "latency_ns": 128240115, - "cpu_ticks": 12, - "process_write_bytes": 4677632, - "database_storage_growth_bytes": 2871640, - "peak_rss_kib": 177604, - "record_count": 8 - }, - { - "repetition": 16, - "latency_ns": 131133365, - "cpu_ticks": 13, - "process_write_bytes": 4685824, - "database_storage_growth_bytes": 2879880, - "peak_rss_kib": 177608, - "record_count": 8 - }, - { - "repetition": 17, - "latency_ns": 122581445, - "cpu_ticks": 11, - "process_write_bytes": 4685824, - "database_storage_growth_bytes": 2879880, - "peak_rss_kib": 177608, - "record_count": 8 - }, - { - "repetition": 18, - "latency_ns": 119650173, - "cpu_ticks": 10, - "process_write_bytes": 4677632, - "database_storage_growth_bytes": 2871640, - "peak_rss_kib": 177608, - "record_count": 8 - }, - { - "repetition": 19, - "latency_ns": 129373676, - "cpu_ticks": 12, - "process_write_bytes": 4706304, - "database_storage_growth_bytes": 2871640, - "peak_rss_kib": 177608, - "record_count": 8 - }, - { - "repetition": 20, - "latency_ns": 125439090, - "cpu_ticks": 11, - "process_write_bytes": 4677632, - "database_storage_growth_bytes": 2871640, - "peak_rss_kib": 177608, - "record_count": 8 - }, - { - "repetition": 21, - "latency_ns": 124796461, - "cpu_ticks": 12, - "process_write_bytes": 4685824, - "database_storage_growth_bytes": 2879880, - "peak_rss_kib": 177608, - "record_count": 8 - }, - { - "repetition": 22, - "latency_ns": 118050266, - "cpu_ticks": 11, - "process_write_bytes": 4706304, - "database_storage_growth_bytes": 2871640, - "peak_rss_kib": 177632, - "record_count": 8 - }, - { - "repetition": 23, - "latency_ns": 139535051, - "cpu_ticks": 13, - "process_write_bytes": 4677632, - "database_storage_growth_bytes": 2871640, - "peak_rss_kib": 177632, - "record_count": 8 - }, - { - "repetition": 24, - "latency_ns": 122350024, - "cpu_ticks": 11, - "process_write_bytes": 4677632, - "database_storage_growth_bytes": 2871640, - "peak_rss_kib": 177632, - "record_count": 8 - }, - { - "repetition": 25, - "latency_ns": 125090400, - "cpu_ticks": 11, - "process_write_bytes": 4685824, - "database_storage_growth_bytes": 2879880, - "peak_rss_kib": 177632, - "record_count": 8 - }, - { - "repetition": 26, - "latency_ns": 117993523, - "cpu_ticks": 12, - "process_write_bytes": 4685824, - "database_storage_growth_bytes": 2879880, - "peak_rss_kib": 177632, - "record_count": 8 - }, - { - "repetition": 27, - "latency_ns": 116964357, - "cpu_ticks": 11, - "process_write_bytes": 4685824, - "database_storage_growth_bytes": 2879880, - "peak_rss_kib": 177632, - "record_count": 8 - }, - { - "repetition": 28, - "latency_ns": 129804233, - "cpu_ticks": 13, - "process_write_bytes": 4677632, - "database_storage_growth_bytes": 2871640, - "peak_rss_kib": 177632, - "record_count": 8 - }, - { - "repetition": 29, - "latency_ns": 162415088, - "cpu_ticks": 16, - "process_write_bytes": 4677632, - "database_storage_growth_bytes": 2871640, - "peak_rss_kib": 177632, - "record_count": 8 - } - ], - "latency": { - "repetitions": 30, - "min_ns": 112949722, - "p50_ns": 121884674, - "p95_ns": 139535051, - "p99_ns": 162415088, - "max_ns": 162415088, - "mean_ns": 123571283.2, - "sample_stddev_ns": 9267600.058038302 - }, - "cpu_ticks": 347, - "cpu_ms": 3470.0, - "process_write_bytes": 140492800, - "database_storage_growth_bytes": 86248080, - "peak_rss_kib": 177632 - }, - "replay": { - "scope": "authoritative_store_bounded_replay", - "raw_samples": [ - { - "repetition": 0, - "latency_ns": 875921, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 174356, - "record_count": 8 - }, - { - "repetition": 1, - "latency_ns": 869842, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 175212, - "record_count": 8 - }, - { - "repetition": 2, - "latency_ns": 841632, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 176108, - "record_count": 8 - }, - { - "repetition": 3, - "latency_ns": 835691, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177456, - "record_count": 8 - }, - { - "repetition": 4, - "latency_ns": 919023, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177472, - "record_count": 8 - }, - { - "repetition": 5, - "latency_ns": 804582, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177504, - "record_count": 8 - }, - { - "repetition": 6, - "latency_ns": 813522, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177524, - "record_count": 8 - }, - { - "repetition": 7, - "latency_ns": 813260, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177536, - "record_count": 8 - }, - { - "repetition": 8, - "latency_ns": 904862, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177576, - "record_count": 8 - }, - { - "repetition": 9, - "latency_ns": 825270, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177576, - "record_count": 8 - }, - { - "repetition": 10, - "latency_ns": 882034, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177580, - "record_count": 8 - }, - { - "repetition": 11, - "latency_ns": 834953, - "cpu_ticks": 1, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177580, - "record_count": 8 - }, - { - "repetition": 12, - "latency_ns": 861772, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177588, - "record_count": 8 - }, - { - "repetition": 13, - "latency_ns": 726311, - "cpu_ticks": 1, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177588, - "record_count": 8 - }, - { - "repetition": 14, - "latency_ns": 877232, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177592, - "record_count": 8 - }, - { - "repetition": 15, - "latency_ns": 876393, - "cpu_ticks": 1, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177604, - "record_count": 8 - }, - { - "repetition": 16, - "latency_ns": 790981, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177608, - "record_count": 8 - }, - { - "repetition": 17, - "latency_ns": 890083, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177608, - "record_count": 8 - }, - { - "repetition": 18, - "latency_ns": 973004, - "cpu_ticks": 1, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177608, - "record_count": 8 - }, - { - "repetition": 19, - "latency_ns": 899113, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177608, - "record_count": 8 - }, - { - "repetition": 20, - "latency_ns": 897222, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177608, - "record_count": 8 - }, - { - "repetition": 21, - "latency_ns": 855482, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177608, - "record_count": 8 - }, - { - "repetition": 22, - "latency_ns": 822212, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177632, - "record_count": 8 - }, - { - "repetition": 23, - "latency_ns": 878733, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177632, - "record_count": 8 - }, - { - "repetition": 24, - "latency_ns": 826052, - "cpu_ticks": 1, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177632, - "record_count": 8 - }, - { - "repetition": 25, - "latency_ns": 858562, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177632, - "record_count": 8 - }, - { - "repetition": 26, - "latency_ns": 1164597, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177632, - "record_count": 8 - }, - { - "repetition": 27, - "latency_ns": 831482, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177632, - "record_count": 8 - }, - { - "repetition": 28, - "latency_ns": 967262, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177632, - "record_count": 8 - }, - { - "repetition": 29, - "latency_ns": 1277818, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177632, - "record_count": 8 - } - ], - "latency": { - "repetitions": 30, - "min_ns": 726311, - "p50_ns": 861772, - "p95_ns": 1164597, - "p99_ns": 1277818, - "max_ns": 1277818, - "mean_ns": 883163.4333333333, - "sample_stddev_ns": 105509.02026242488 - }, - "cpu_ticks": 5, - "cpu_ms": 50.0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177632 - }, - "pipeline_raw_samples": [ - { - "repetition": 0, - "latency_ns": 122442023, - "cpu_ticks": 12, - "process_write_bytes": 4677632, - "database_storage_growth_bytes": 2871640, - "peak_rss_kib": 174356, - "replayed_observations": 8 - }, - { - "repetition": 1, - "latency_ns": 117164599, - "cpu_ticks": 11, - "process_write_bytes": 4677632, - "database_storage_growth_bytes": 2871640, - "peak_rss_kib": 175212, - "replayed_observations": 8 - }, - { - "repetition": 2, - "latency_ns": 124642183, - "cpu_ticks": 11, - "process_write_bytes": 4677632, - "database_storage_growth_bytes": 2871640, - "peak_rss_kib": 176108, - "replayed_observations": 8 - }, - { - "repetition": 3, - "latency_ns": 117717474, - "cpu_ticks": 11, - "process_write_bytes": 4677632, - "database_storage_growth_bytes": 2871640, - "peak_rss_kib": 177456, - "replayed_observations": 8 - }, - { - "repetition": 4, - "latency_ns": 121249323, - "cpu_ticks": 11, - "process_write_bytes": 4677632, - "database_storage_growth_bytes": 2871640, - "peak_rss_kib": 177472, - "replayed_observations": 8 - }, - { - "repetition": 5, - "latency_ns": 118824809, - "cpu_ticks": 12, - "process_write_bytes": 4685824, - "database_storage_growth_bytes": 2879880, - "peak_rss_kib": 177504, - "replayed_observations": 8 - }, - { - "repetition": 6, - "latency_ns": 124267492, - "cpu_ticks": 11, - "process_write_bytes": 4694016, - "database_storage_growth_bytes": 2879880, - "peak_rss_kib": 177524, - "replayed_observations": 8 - }, - { - "repetition": 7, - "latency_ns": 113954587, - "cpu_ticks": 11, - "process_write_bytes": 4677632, - "database_storage_growth_bytes": 2871640, - "peak_rss_kib": 177536, - "replayed_observations": 8 - }, - { - "repetition": 8, - "latency_ns": 123880414, - "cpu_ticks": 11, - "process_write_bytes": 4685824, - "database_storage_growth_bytes": 2879880, - "peak_rss_kib": 177576, - "replayed_observations": 8 - }, - { - "repetition": 9, - "latency_ns": 122067637, - "cpu_ticks": 11, - "process_write_bytes": 4677632, - "database_storage_growth_bytes": 2871640, - "peak_rss_kib": 177576, - "replayed_observations": 8 - }, - { - "repetition": 10, - "latency_ns": 122978020, - "cpu_ticks": 12, - "process_write_bytes": 4685824, - "database_storage_growth_bytes": 2879880, - "peak_rss_kib": 177580, - "replayed_observations": 8 - }, - { - "repetition": 11, - "latency_ns": 116499218, - "cpu_ticks": 12, - "process_write_bytes": 4677632, - "database_storage_growth_bytes": 2871640, - "peak_rss_kib": 177580, - "replayed_observations": 8 - }, - { - "repetition": 12, - "latency_ns": 121663308, - "cpu_ticks": 12, - "process_write_bytes": 4685824, - "database_storage_growth_bytes": 2879880, - "peak_rss_kib": 177588, - "replayed_observations": 8 - }, - { - "repetition": 13, - "latency_ns": 115083286, - "cpu_ticks": 11, - "process_write_bytes": 4677632, - "database_storage_growth_bytes": 2871640, - "peak_rss_kib": 177588, - "replayed_observations": 8 - }, - { - "repetition": 14, - "latency_ns": 127075521, - "cpu_ticks": 12, - "process_write_bytes": 4685824, - "database_storage_growth_bytes": 2879880, - "peak_rss_kib": 177592, - "replayed_observations": 8 - }, - { - "repetition": 15, - "latency_ns": 129328841, - "cpu_ticks": 13, - "process_write_bytes": 4677632, - "database_storage_growth_bytes": 2871640, - "peak_rss_kib": 177604, - "replayed_observations": 8 - }, - { - "repetition": 16, - "latency_ns": 132125128, - "cpu_ticks": 13, - "process_write_bytes": 4685824, - "database_storage_growth_bytes": 2879880, - "peak_rss_kib": 177608, - "replayed_observations": 8 - }, - { - "repetition": 17, - "latency_ns": 123696930, - "cpu_ticks": 11, - "process_write_bytes": 4685824, - "database_storage_growth_bytes": 2879880, - "peak_rss_kib": 177608, - "replayed_observations": 8 - }, - { - "repetition": 18, - "latency_ns": 120857082, - "cpu_ticks": 11, - "process_write_bytes": 4677632, - "database_storage_growth_bytes": 2871640, - "peak_rss_kib": 177608, - "replayed_observations": 8 - }, - { - "repetition": 19, - "latency_ns": 130505392, - "cpu_ticks": 12, - "process_write_bytes": 4706304, - "database_storage_growth_bytes": 2871640, - "peak_rss_kib": 177608, - "replayed_observations": 8 - }, - { - "repetition": 20, - "latency_ns": 126536157, - "cpu_ticks": 11, - "process_write_bytes": 4677632, - "database_storage_growth_bytes": 2871640, - "peak_rss_kib": 177608, - "replayed_observations": 8 - }, - { - "repetition": 21, - "latency_ns": 125880745, - "cpu_ticks": 12, - "process_write_bytes": 4685824, - "database_storage_growth_bytes": 2879880, - "peak_rss_kib": 177608, - "replayed_observations": 8 - }, - { - "repetition": 22, - "latency_ns": 119101581, - "cpu_ticks": 11, - "process_write_bytes": 4706304, - "database_storage_growth_bytes": 2871640, - "peak_rss_kib": 177632, - "replayed_observations": 8 - }, - { - "repetition": 23, - "latency_ns": 140626016, - "cpu_ticks": 13, - "process_write_bytes": 4677632, - "database_storage_growth_bytes": 2871640, - "peak_rss_kib": 177632, - "replayed_observations": 8 - }, - { - "repetition": 24, - "latency_ns": 123379488, - "cpu_ticks": 12, - "process_write_bytes": 4677632, - "database_storage_growth_bytes": 2871640, - "peak_rss_kib": 177632, - "replayed_observations": 8 - }, - { - "repetition": 25, - "latency_ns": 126146404, - "cpu_ticks": 11, - "process_write_bytes": 4685824, - "database_storage_growth_bytes": 2879880, - "peak_rss_kib": 177632, - "replayed_observations": 8 - }, - { - "repetition": 26, - "latency_ns": 119323020, - "cpu_ticks": 12, - "process_write_bytes": 4685824, - "database_storage_growth_bytes": 2879880, - "peak_rss_kib": 177632, - "replayed_observations": 8 - }, - { - "repetition": 27, - "latency_ns": 117974401, - "cpu_ticks": 11, - "process_write_bytes": 4685824, - "database_storage_growth_bytes": 2879880, - "peak_rss_kib": 177632, - "replayed_observations": 8 - }, - { - "repetition": 28, - "latency_ns": 130994257, - "cpu_ticks": 13, - "process_write_bytes": 4677632, - "database_storage_growth_bytes": 2871640, - "peak_rss_kib": 177632, - "replayed_observations": 8 - }, - { - "repetition": 29, - "latency_ns": 163948649, - "cpu_ticks": 16, - "process_write_bytes": 4677632, - "database_storage_growth_bytes": 2871640, - "peak_rss_kib": 177632, - "replayed_observations": 8 - } - ], - "pipeline_latency": { - "repetitions": 30, - "min_ns": 113954587, - "p50_ns": 122978020, - "p95_ns": 140626016, - "p99_ns": 163948649, - "max_ns": 163948649, - "mean_ns": 124664466.16666667, - "sample_stddev_ns": 9343409.35366234 - }, - "pipeline_records_per_second": 64.172255703599, - "pipeline_cpu_ticks": 353, - "pipeline_cpu_ms": 3530.0, - "pipeline_process_write_bytes": 140492800, - "pipeline_database_storage_growth_bytes": 86248080, - "peak_rss_kib": 177632, - "no_op_raw_samples": [ - { - "repetition": 0, - "latency_ns": 3255777, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 174356, - "replayed_observations": 0 - }, - { - "repetition": 1, - "latency_ns": 2748649, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 175212, - "replayed_observations": 0 - }, - { - "repetition": 2, - "latency_ns": 2911461, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 176108, - "replayed_observations": 0 - }, - { - "repetition": 3, - "latency_ns": 2891821, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177456, - "replayed_observations": 0 - }, - { - "repetition": 4, - "latency_ns": 3142144, - "cpu_ticks": 1, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177472, - "replayed_observations": 0 - }, - { - "repetition": 5, - "latency_ns": 2735169, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177504, - "replayed_observations": 0 - }, - { - "repetition": 6, - "latency_ns": 2938991, - "cpu_ticks": 1, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177524, - "replayed_observations": 0 - }, - { - "repetition": 7, - "latency_ns": 2710028, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177536, - "replayed_observations": 0 - }, - { - "repetition": 8, - "latency_ns": 3243846, - "cpu_ticks": 1, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177576, - "replayed_observations": 0 - }, - { - "repetition": 9, - "latency_ns": 2753219, - "cpu_ticks": 1, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177576, - "replayed_observations": 0 - }, - { - "repetition": 10, - "latency_ns": 3018182, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177580, - "replayed_observations": 0 - }, - { - "repetition": 11, - "latency_ns": 2905810, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177580, - "replayed_observations": 0 - }, - { - "repetition": 12, - "latency_ns": 3032221, - "cpu_ticks": 1, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177588, - "replayed_observations": 0 - }, - { - "repetition": 13, - "latency_ns": 2743049, - "cpu_ticks": 1, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177588, - "replayed_observations": 0 - }, - { - "repetition": 14, - "latency_ns": 2939779, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177592, - "replayed_observations": 0 - }, - { - "repetition": 15, - "latency_ns": 3233836, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177604, - "replayed_observations": 0 - }, - { - "repetition": 16, - "latency_ns": 2962330, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177608, - "replayed_observations": 0 - }, - { - "repetition": 17, - "latency_ns": 2944842, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177608, - "replayed_observations": 0 - }, - { - "repetition": 18, - "latency_ns": 3084833, - "cpu_ticks": 1, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177608, - "replayed_observations": 0 - }, - { - "repetition": 19, - "latency_ns": 3462118, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177608, - "replayed_observations": 0 - }, - { - "repetition": 20, - "latency_ns": 2828279, - "cpu_ticks": 1, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177608, - "replayed_observations": 0 - }, - { - "repetition": 21, - "latency_ns": 3124662, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177608, - "replayed_observations": 0 - }, - { - "repetition": 22, - "latency_ns": 3430647, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177632, - "replayed_observations": 0 - }, - { - "repetition": 23, - "latency_ns": 3053292, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177632, - "replayed_observations": 0 - }, - { - "repetition": 24, - "latency_ns": 2893690, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177632, - "replayed_observations": 0 - }, - { - "repetition": 25, - "latency_ns": 2895540, - "cpu_ticks": 1, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177632, - "replayed_observations": 0 - }, - { - "repetition": 26, - "latency_ns": 2883089, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177632, - "replayed_observations": 0 - }, - { - "repetition": 27, - "latency_ns": 2777109, - "cpu_ticks": 1, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177632, - "replayed_observations": 0 - }, - { - "repetition": 28, - "latency_ns": 3367446, - "cpu_ticks": 1, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177632, - "replayed_observations": 0 - }, - { - "repetition": 29, - "latency_ns": 3864284, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177632, - "replayed_observations": 0 - } - ], - "no_op_latency": { - "repetitions": 30, - "min_ns": 2710028, - "p50_ns": 2939779, - "p95_ns": 3462118, - "p99_ns": 3864284, - "max_ns": 3864284, - "mean_ns": 3025871.433333333, - "sample_stddev_ns": 261773.90035871157 - }, - "no_op_cpu_ticks": 11, - "no_op_cpu_ms": 110.0, - "no_op_process_write_bytes": 0, - "no_op_database_storage_growth_bytes": 0, - "no_op_observation_count_delta": 0 - }, - { - "provider": "kilo", - "production_path": "kilo_production_observation_pipeline_v1", - "pipeline_scope": "production_parse_normalize_sanitize_commit_project_and_replay", - "measured_repetitions": 30, - "observations_per_repetition": 8, - "replay_limit": 9, - "max_backlog_records": 8, - "parse": { - "scope": "native_provider_format_decode", - "raw_samples": [ - { - "repetition": 0, - "latency_ns": 53881, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 174260, - "record_count": 8 - }, - { - "repetition": 1, - "latency_ns": 44711, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 175116, - "record_count": 8 - }, - { - "repetition": 2, - "latency_ns": 43829, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 176012, - "record_count": 8 - }, - { - "repetition": 3, - "latency_ns": 62891, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177360, - "record_count": 8 - }, - { - "repetition": 4, - "latency_ns": 45161, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177376, - "record_count": 8 - }, - { - "repetition": 5, - "latency_ns": 56801, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177408, - "record_count": 8 - }, - { - "repetition": 6, - "latency_ns": 44090, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177428, - "record_count": 8 - }, - { - "repetition": 7, - "latency_ns": 53910, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177440, - "record_count": 8 - }, - { - "repetition": 8, - "latency_ns": 48051, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177480, - "record_count": 8 - }, - { - "repetition": 9, - "latency_ns": 60551, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177480, - "record_count": 8 - }, - { - "repetition": 10, - "latency_ns": 44110, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177484, - "record_count": 8 - }, - { - "repetition": 11, - "latency_ns": 55541, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177484, - "record_count": 8 - }, - { - "repetition": 12, - "latency_ns": 56791, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177492, - "record_count": 8 - }, - { - "repetition": 13, - "latency_ns": 57902, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177492, - "record_count": 8 - }, - { - "repetition": 14, - "latency_ns": 47490, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177496, - "record_count": 8 - }, - { - "repetition": 15, - "latency_ns": 45880, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177508, - "record_count": 8 - }, - { - "repetition": 16, - "latency_ns": 46551, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177512, - "record_count": 8 - }, - { - "repetition": 17, - "latency_ns": 50801, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177512, - "record_count": 8 - }, - { - "repetition": 18, - "latency_ns": 61742, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177512, - "record_count": 8 - }, - { - "repetition": 19, - "latency_ns": 43740, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177512, - "record_count": 8 - }, - { - "repetition": 20, - "latency_ns": 55170, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177512, - "record_count": 8 - }, - { - "repetition": 21, - "latency_ns": 45420, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177512, - "record_count": 8 - }, - { - "repetition": 22, - "latency_ns": 43431, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177536, - "record_count": 8 - }, - { - "repetition": 23, - "latency_ns": 46791, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177536, - "record_count": 8 - }, - { - "repetition": 24, - "latency_ns": 42020, - "cpu_ticks": 1, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177536, - "record_count": 8 - }, - { - "repetition": 25, - "latency_ns": 65770, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177536, - "record_count": 8 - }, - { - "repetition": 26, - "latency_ns": 60321, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177536, - "record_count": 8 - }, - { - "repetition": 27, - "latency_ns": 56221, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177536, - "record_count": 8 - }, - { - "repetition": 28, - "latency_ns": 45141, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177536, - "record_count": 8 - }, - { - "repetition": 29, - "latency_ns": 85533, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177536, - "record_count": 8 - } - ], - "latency": { - "repetitions": 30, - "min_ns": 42020, - "p50_ns": 48051, - "p95_ns": 65770, - "p99_ns": 85533, - "max_ns": 85533, - "mean_ns": 52341.4, - "sample_stddev_ns": 9376.459767178507 - }, - "cpu_ticks": 1, - "cpu_ms": 10.0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177536 - }, - "commit": { - "scope": "production_adapter_parse_normalize_sanitize_commit_and_project", - "raw_samples": [ - { - "repetition": 0, - "latency_ns": 128135944, - "cpu_ticks": 13, - "process_write_bytes": 4669440, - "database_storage_growth_bytes": 2863400, - "peak_rss_kib": 175140, - "record_count": 8 - }, - { - "repetition": 1, - "latency_ns": 118983414, - "cpu_ticks": 11, - "process_write_bytes": 4677632, - "database_storage_growth_bytes": 2871640, - "peak_rss_kib": 175212, - "record_count": 8 - }, - { - "repetition": 2, - "latency_ns": 122941598, - "cpu_ticks": 11, - "process_write_bytes": 4669440, - "database_storage_growth_bytes": 2863400, - "peak_rss_kib": 176108, - "record_count": 8 - }, - { - "repetition": 3, - "latency_ns": 124390478, - "cpu_ticks": 13, - "process_write_bytes": 4669440, - "database_storage_growth_bytes": 2863400, - "peak_rss_kib": 177464, - "record_count": 8 - }, - { - "repetition": 4, - "latency_ns": 121455185, - "cpu_ticks": 11, - "process_write_bytes": 4677632, - "database_storage_growth_bytes": 2871640, - "peak_rss_kib": 177472, - "record_count": 8 - }, - { - "repetition": 5, - "latency_ns": 126263601, - "cpu_ticks": 13, - "process_write_bytes": 4669440, - "database_storage_growth_bytes": 2863400, - "peak_rss_kib": 177504, - "record_count": 8 - }, - { - "repetition": 6, - "latency_ns": 130366837, - "cpu_ticks": 13, - "process_write_bytes": 4677632, - "database_storage_growth_bytes": 2871640, - "peak_rss_kib": 177532, - "record_count": 8 - }, - { - "repetition": 7, - "latency_ns": 126220647, - "cpu_ticks": 12, - "process_write_bytes": 4677632, - "database_storage_growth_bytes": 2871640, - "peak_rss_kib": 177536, - "record_count": 8 - }, - { - "repetition": 8, - "latency_ns": 115213612, - "cpu_ticks": 11, - "process_write_bytes": 4669440, - "database_storage_growth_bytes": 2863400, - "peak_rss_kib": 177576, - "record_count": 8 - }, - { - "repetition": 9, - "latency_ns": 120825271, - "cpu_ticks": 12, - "process_write_bytes": 4669440, - "database_storage_growth_bytes": 2863400, - "peak_rss_kib": 177580, - "record_count": 8 - }, - { - "repetition": 10, - "latency_ns": 120650077, - "cpu_ticks": 10, - "process_write_bytes": 4669440, - "database_storage_growth_bytes": 2863400, - "peak_rss_kib": 177580, - "record_count": 8 - }, - { - "repetition": 11, - "latency_ns": 126147551, - "cpu_ticks": 12, - "process_write_bytes": 4677632, - "database_storage_growth_bytes": 2871640, - "peak_rss_kib": 177580, - "record_count": 8 - }, - { - "repetition": 12, - "latency_ns": 125559102, - "cpu_ticks": 12, - "process_write_bytes": 4730880, - "database_storage_growth_bytes": 2871640, - "peak_rss_kib": 177588, - "record_count": 8 - }, - { - "repetition": 13, - "latency_ns": 129737538, - "cpu_ticks": 12, - "process_write_bytes": 4714496, - "database_storage_growth_bytes": 2871640, - "peak_rss_kib": 177588, - "record_count": 8 - }, - { - "repetition": 14, - "latency_ns": 115789425, - "cpu_ticks": 11, - "process_write_bytes": 4669440, - "database_storage_growth_bytes": 2863400, - "peak_rss_kib": 177592, - "record_count": 8 - }, - { - "repetition": 15, - "latency_ns": 118322198, - "cpu_ticks": 12, - "process_write_bytes": 4669440, - "database_storage_growth_bytes": 2863400, - "peak_rss_kib": 177604, - "record_count": 8 - }, - { - "repetition": 16, - "latency_ns": 127542554, - "cpu_ticks": 12, - "process_write_bytes": 4677632, - "database_storage_growth_bytes": 2871640, - "peak_rss_kib": 177608, - "record_count": 8 - }, - { - "repetition": 17, - "latency_ns": 124441222, - "cpu_ticks": 11, - "process_write_bytes": 4669440, - "database_storage_growth_bytes": 2863400, - "peak_rss_kib": 177608, - "record_count": 8 - }, - { - "repetition": 18, - "latency_ns": 122987679, - "cpu_ticks": 12, - "process_write_bytes": 4677632, - "database_storage_growth_bytes": 2871640, - "peak_rss_kib": 177608, - "record_count": 8 - }, - { - "repetition": 19, - "latency_ns": 122076955, - "cpu_ticks": 12, - "process_write_bytes": 4669440, - "database_storage_growth_bytes": 2863400, - "peak_rss_kib": 177608, - "record_count": 8 - }, - { - "repetition": 20, - "latency_ns": 146301379, - "cpu_ticks": 14, - "process_write_bytes": 4669440, - "database_storage_growth_bytes": 2863400, - "peak_rss_kib": 177608, - "record_count": 8 - }, - { - "repetition": 21, - "latency_ns": 129716579, - "cpu_ticks": 12, - "process_write_bytes": 4669440, - "database_storage_growth_bytes": 2863400, - "peak_rss_kib": 177608, - "record_count": 8 - }, - { - "repetition": 22, - "latency_ns": 121385032, - "cpu_ticks": 12, - "process_write_bytes": 4714496, - "database_storage_growth_bytes": 2871640, - "peak_rss_kib": 177632, - "record_count": 8 - }, - { - "repetition": 23, - "latency_ns": 117911543, - "cpu_ticks": 12, - "process_write_bytes": 4685824, - "database_storage_growth_bytes": 2871640, - "peak_rss_kib": 177632, - "record_count": 8 - }, - { - "repetition": 24, - "latency_ns": 128091392, - "cpu_ticks": 12, - "process_write_bytes": 4677632, - "database_storage_growth_bytes": 2871640, - "peak_rss_kib": 177632, - "record_count": 8 - }, - { - "repetition": 25, - "latency_ns": 126048124, - "cpu_ticks": 12, - "process_write_bytes": 4677632, - "database_storage_growth_bytes": 2871640, - "peak_rss_kib": 177632, - "record_count": 8 - }, - { - "repetition": 26, - "latency_ns": 120335764, - "cpu_ticks": 11, - "process_write_bytes": 4669440, - "database_storage_growth_bytes": 2863400, - "peak_rss_kib": 177632, - "record_count": 8 - }, - { - "repetition": 27, - "latency_ns": 128967001, - "cpu_ticks": 12, - "process_write_bytes": 4669440, - "database_storage_growth_bytes": 2863400, - "peak_rss_kib": 177632, - "record_count": 8 - }, - { - "repetition": 28, - "latency_ns": 120832199, - "cpu_ticks": 11, - "process_write_bytes": 4669440, - "database_storage_growth_bytes": 2863400, - "peak_rss_kib": 177632, - "record_count": 8 - }, - { - "repetition": 29, - "latency_ns": 130945026, - "cpu_ticks": 11, - "process_write_bytes": 4698112, - "database_storage_growth_bytes": 2863400, - "peak_rss_kib": 177632, - "record_count": 8 - } - ], - "latency": { - "repetitions": 30, - "min_ns": 115213612, - "p50_ns": 124390478, - "p95_ns": 130945026, - "p99_ns": 146301379, - "max_ns": 146301379, - "mean_ns": 124619497.56666666, - "sample_stddev_ns": 5976735.86738549 - }, - "cpu_ticks": 355, - "cpu_ms": 3550.0, - "process_write_bytes": 140353536, - "database_storage_growth_bytes": 86009120, - "peak_rss_kib": 177632 - }, - "replay": { - "scope": "authoritative_store_bounded_replay", - "raw_samples": [ - { - "repetition": 0, - "latency_ns": 1297919, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 175140, - "record_count": 8 - }, - { - "repetition": 1, - "latency_ns": 849432, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 175212, - "record_count": 8 - }, - { - "repetition": 2, - "latency_ns": 852061, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 176108, - "record_count": 8 - }, - { - "repetition": 3, - "latency_ns": 863202, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177464, - "record_count": 8 - }, - { - "repetition": 4, - "latency_ns": 929283, - "cpu_ticks": 1, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177472, - "record_count": 8 - }, - { - "repetition": 5, - "latency_ns": 910042, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177504, - "record_count": 8 - }, - { - "repetition": 6, - "latency_ns": 810832, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177532, - "record_count": 8 - }, - { - "repetition": 7, - "latency_ns": 832912, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177536, - "record_count": 8 - }, - { - "repetition": 8, - "latency_ns": 709881, - "cpu_ticks": 1, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177576, - "record_count": 8 - }, - { - "repetition": 9, - "latency_ns": 823441, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177580, - "record_count": 8 - }, - { - "repetition": 10, - "latency_ns": 868481, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177580, - "record_count": 8 - }, - { - "repetition": 11, - "latency_ns": 875823, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177580, - "record_count": 8 - }, - { - "repetition": 12, - "latency_ns": 827351, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177588, - "record_count": 8 - }, - { - "repetition": 13, - "latency_ns": 842622, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177588, - "record_count": 8 - }, - { - "repetition": 14, - "latency_ns": 836492, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177592, - "record_count": 8 - }, - { - "repetition": 15, - "latency_ns": 850032, - "cpu_ticks": 1, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177604, - "record_count": 8 - }, - { - "repetition": 16, - "latency_ns": 757591, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177608, - "record_count": 8 - }, - { - "repetition": 17, - "latency_ns": 863112, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177608, - "record_count": 8 - }, - { - "repetition": 18, - "latency_ns": 852451, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177608, - "record_count": 8 - }, - { - "repetition": 19, - "latency_ns": 882232, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177608, - "record_count": 8 - }, - { - "repetition": 20, - "latency_ns": 1308639, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177608, - "record_count": 8 - }, - { - "repetition": 21, - "latency_ns": 947284, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177608, - "record_count": 8 - }, - { - "repetition": 22, - "latency_ns": 1165066, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177632, - "record_count": 8 - }, - { - "repetition": 23, - "latency_ns": 869821, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177632, - "record_count": 8 - }, - { - "repetition": 24, - "latency_ns": 902712, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177632, - "record_count": 8 - }, - { - "repetition": 25, - "latency_ns": 1027764, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177632, - "record_count": 8 - }, - { - "repetition": 26, - "latency_ns": 846502, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177632, - "record_count": 8 - }, - { - "repetition": 27, - "latency_ns": 850412, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177632, - "record_count": 8 - }, - { - "repetition": 28, - "latency_ns": 821632, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177632, - "record_count": 8 - }, - { - "repetition": 29, - "latency_ns": 891151, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177632, - "record_count": 8 - } - ], - "latency": { - "repetitions": 30, - "min_ns": 709881, - "p50_ns": 852451, - "p95_ns": 1297919, - "p99_ns": 1308639, - "max_ns": 1308639, - "mean_ns": 898872.5, - "sample_stddev_ns": 135071.80253805497 - }, - "cpu_ticks": 3, - "cpu_ms": 30.0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177632 - }, - "pipeline_raw_samples": [ - { - "repetition": 0, - "latency_ns": 129787697, - "cpu_ticks": 13, - "process_write_bytes": 4669440, - "database_storage_growth_bytes": 2863400, - "peak_rss_kib": 175140, - "replayed_observations": 8 - }, - { - "repetition": 1, - "latency_ns": 120023810, - "cpu_ticks": 12, - "process_write_bytes": 4677632, - "database_storage_growth_bytes": 2871640, - "peak_rss_kib": 175212, - "replayed_observations": 8 - }, - { - "repetition": 2, - "latency_ns": 124003583, - "cpu_ticks": 11, - "process_write_bytes": 4669440, - "database_storage_growth_bytes": 2863400, - "peak_rss_kib": 176108, - "replayed_observations": 8 - }, - { - "repetition": 3, - "latency_ns": 125477313, - "cpu_ticks": 13, - "process_write_bytes": 4669440, - "database_storage_growth_bytes": 2863400, - "peak_rss_kib": 177464, - "replayed_observations": 8 - }, - { - "repetition": 4, - "latency_ns": 122604502, - "cpu_ticks": 12, - "process_write_bytes": 4677632, - "database_storage_growth_bytes": 2871640, - "peak_rss_kib": 177472, - "replayed_observations": 8 - }, - { - "repetition": 5, - "latency_ns": 127428517, - "cpu_ticks": 13, - "process_write_bytes": 4669440, - "database_storage_growth_bytes": 2863400, - "peak_rss_kib": 177504, - "replayed_observations": 8 - }, - { - "repetition": 6, - "latency_ns": 131383152, - "cpu_ticks": 13, - "process_write_bytes": 4677632, - "database_storage_growth_bytes": 2871640, - "peak_rss_kib": 177532, - "replayed_observations": 8 - }, - { - "repetition": 7, - "latency_ns": 127308823, - "cpu_ticks": 12, - "process_write_bytes": 4677632, - "database_storage_growth_bytes": 2871640, - "peak_rss_kib": 177536, - "replayed_observations": 8 - }, - { - "repetition": 8, - "latency_ns": 116114936, - "cpu_ticks": 12, - "process_write_bytes": 4669440, - "database_storage_growth_bytes": 2863400, - "peak_rss_kib": 177576, - "replayed_observations": 8 - }, - { - "repetition": 9, - "latency_ns": 121877484, - "cpu_ticks": 12, - "process_write_bytes": 4669440, - "database_storage_growth_bytes": 2863400, - "peak_rss_kib": 177580, - "replayed_observations": 8 - }, - { - "repetition": 10, - "latency_ns": 121698981, - "cpu_ticks": 10, - "process_write_bytes": 4669440, - "database_storage_growth_bytes": 2863400, - "peak_rss_kib": 177580, - "replayed_observations": 8 - }, - { - "repetition": 11, - "latency_ns": 127248266, - "cpu_ticks": 12, - "process_write_bytes": 4677632, - "database_storage_growth_bytes": 2871640, - "peak_rss_kib": 177580, - "replayed_observations": 8 - }, - { - "repetition": 12, - "latency_ns": 126641067, - "cpu_ticks": 12, - "process_write_bytes": 4730880, - "database_storage_growth_bytes": 2871640, - "peak_rss_kib": 177588, - "replayed_observations": 8 - }, - { - "repetition": 13, - "latency_ns": 130807894, - "cpu_ticks": 12, - "process_write_bytes": 4714496, - "database_storage_growth_bytes": 2871640, - "peak_rss_kib": 177588, - "replayed_observations": 8 - }, - { - "repetition": 14, - "latency_ns": 116806019, - "cpu_ticks": 11, - "process_write_bytes": 4669440, - "database_storage_growth_bytes": 2863400, - "peak_rss_kib": 177592, - "replayed_observations": 8 - }, - { - "repetition": 15, - "latency_ns": 119375603, - "cpu_ticks": 13, - "process_write_bytes": 4669440, - "database_storage_growth_bytes": 2863400, - "peak_rss_kib": 177604, - "replayed_observations": 8 - }, - { - "repetition": 16, - "latency_ns": 128503108, - "cpu_ticks": 12, - "process_write_bytes": 4677632, - "database_storage_growth_bytes": 2871640, - "peak_rss_kib": 177608, - "replayed_observations": 8 - }, - { - "repetition": 17, - "latency_ns": 125523425, - "cpu_ticks": 11, - "process_write_bytes": 4669440, - "database_storage_growth_bytes": 2863400, - "peak_rss_kib": 177608, - "replayed_observations": 8 - }, - { - "repetition": 18, - "latency_ns": 124066315, - "cpu_ticks": 12, - "process_write_bytes": 4677632, - "database_storage_growth_bytes": 2871640, - "peak_rss_kib": 177608, - "replayed_observations": 8 - }, - { - "repetition": 19, - "latency_ns": 123191640, - "cpu_ticks": 12, - "process_write_bytes": 4669440, - "database_storage_growth_bytes": 2863400, - "peak_rss_kib": 177608, - "replayed_observations": 8 - }, - { - "repetition": 20, - "latency_ns": 147831350, - "cpu_ticks": 14, - "process_write_bytes": 4669440, - "database_storage_growth_bytes": 2863400, - "peak_rss_kib": 177608, - "replayed_observations": 8 - }, - { - "repetition": 21, - "latency_ns": 130960926, - "cpu_ticks": 12, - "process_write_bytes": 4669440, - "database_storage_growth_bytes": 2863400, - "peak_rss_kib": 177608, - "replayed_observations": 8 - }, - { - "repetition": 22, - "latency_ns": 122761781, - "cpu_ticks": 12, - "process_write_bytes": 4714496, - "database_storage_growth_bytes": 2871640, - "peak_rss_kib": 177632, - "replayed_observations": 8 - }, - { - "repetition": 23, - "latency_ns": 119017778, - "cpu_ticks": 12, - "process_write_bytes": 4685824, - "database_storage_growth_bytes": 2871640, - "peak_rss_kib": 177632, - "replayed_observations": 8 - }, - { - "repetition": 24, - "latency_ns": 129217447, - "cpu_ticks": 12, - "process_write_bytes": 4677632, - "database_storage_growth_bytes": 2871640, - "peak_rss_kib": 177632, - "replayed_observations": 8 - }, - { - "repetition": 25, - "latency_ns": 127384972, - "cpu_ticks": 12, - "process_write_bytes": 4677632, - "database_storage_growth_bytes": 2871640, - "peak_rss_kib": 177632, - "replayed_observations": 8 - }, - { - "repetition": 26, - "latency_ns": 121419479, - "cpu_ticks": 12, - "process_write_bytes": 4669440, - "database_storage_growth_bytes": 2863400, - "peak_rss_kib": 177632, - "replayed_observations": 8 - }, - { - "repetition": 27, - "latency_ns": 130037407, - "cpu_ticks": 12, - "process_write_bytes": 4669440, - "database_storage_growth_bytes": 2863400, - "peak_rss_kib": 177632, - "replayed_observations": 8 - }, - { - "repetition": 28, - "latency_ns": 121842073, - "cpu_ticks": 11, - "process_write_bytes": 4669440, - "database_storage_growth_bytes": 2863400, - "peak_rss_kib": 177632, - "replayed_observations": 8 - }, - { - "repetition": 29, - "latency_ns": 132048292, - "cpu_ticks": 11, - "process_write_bytes": 4698112, - "database_storage_growth_bytes": 2863400, - "peak_rss_kib": 177632, - "replayed_observations": 8 - } - ], - "pipeline_latency": { - "repetitions": 30, - "min_ns": 116114936, - "p50_ns": 125477313, - "p95_ns": 132048292, - "p99_ns": 147831350, - "max_ns": 147831350, - "mean_ns": 125746454.66666667, - "sample_stddev_ns": 6061055.651752579 - }, - "pipeline_records_per_second": 63.620083931644, - "pipeline_cpu_ticks": 360, - "pipeline_cpu_ms": 3600.0, - "pipeline_process_write_bytes": 140353536, - "pipeline_database_storage_growth_bytes": 86009120, - "peak_rss_kib": 177632, - "no_op_raw_samples": [ - { - "repetition": 0, - "latency_ns": 4102778, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 175140, - "replayed_observations": 0 - }, - { - "repetition": 1, - "latency_ns": 2769709, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 175212, - "replayed_observations": 0 - }, - { - "repetition": 2, - "latency_ns": 2933251, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 176108, - "replayed_observations": 0 - }, - { - "repetition": 3, - "latency_ns": 2959671, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177464, - "replayed_observations": 0 - }, - { - "repetition": 4, - "latency_ns": 3003482, - "cpu_ticks": 1, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177472, - "replayed_observations": 0 - }, - { - "repetition": 5, - "latency_ns": 3131744, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177504, - "replayed_observations": 0 - }, - { - "repetition": 6, - "latency_ns": 2872210, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177532, - "replayed_observations": 0 - }, - { - "repetition": 7, - "latency_ns": 3069573, - "cpu_ticks": 1, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177536, - "replayed_observations": 0 - }, - { - "repetition": 8, - "latency_ns": 2778698, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177576, - "replayed_observations": 0 - }, - { - "repetition": 9, - "latency_ns": 2887600, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177580, - "replayed_observations": 0 - }, - { - "repetition": 10, - "latency_ns": 2750548, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177580, - "replayed_observations": 0 - }, - { - "repetition": 11, - "latency_ns": 2962711, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177580, - "replayed_observations": 0 - }, - { - "repetition": 12, - "latency_ns": 2958972, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177588, - "replayed_observations": 0 - }, - { - "repetition": 13, - "latency_ns": 3004122, - "cpu_ticks": 1, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177588, - "replayed_observations": 0 - }, - { - "repetition": 14, - "latency_ns": 2814599, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177592, - "replayed_observations": 0 - }, - { - "repetition": 15, - "latency_ns": 2736258, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177604, - "replayed_observations": 0 - }, - { - "repetition": 16, - "latency_ns": 2808608, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177608, - "replayed_observations": 0 - }, - { - "repetition": 17, - "latency_ns": 3018092, - "cpu_ticks": 1, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177608, - "replayed_observations": 0 - }, - { - "repetition": 18, - "latency_ns": 2984811, - "cpu_ticks": 1, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177608, - "replayed_observations": 0 - }, - { - "repetition": 19, - "latency_ns": 3059552, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177608, - "replayed_observations": 0 - }, - { - "repetition": 20, - "latency_ns": 3172334, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177608, - "replayed_observations": 0 - }, - { - "repetition": 21, - "latency_ns": 4402861, - "cpu_ticks": 1, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177608, - "replayed_observations": 0 - }, - { - "repetition": 22, - "latency_ns": 3011141, - "cpu_ticks": 1, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177632, - "replayed_observations": 0 - }, - { - "repetition": 23, - "latency_ns": 3044662, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177632, - "replayed_observations": 0 - }, - { - "repetition": 24, - "latency_ns": 3065313, - "cpu_ticks": 1, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177632, - "replayed_observations": 0 - }, - { - "repetition": 25, - "latency_ns": 4282889, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177632, - "replayed_observations": 0 - }, - { - "repetition": 26, - "latency_ns": 2878461, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177632, - "replayed_observations": 0 - }, - { - "repetition": 27, - "latency_ns": 3097043, - "cpu_ticks": 0, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177632, - "replayed_observations": 0 - }, - { - "repetition": 28, - "latency_ns": 2717588, - "cpu_ticks": 1, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177632, - "replayed_observations": 0 - }, - { - "repetition": 29, - "latency_ns": 3112254, - "cpu_ticks": 2, - "process_write_bytes": 0, - "database_storage_growth_bytes": 0, - "peak_rss_kib": 177632, - "replayed_observations": 0 - } - ], - "no_op_latency": { - "repetitions": 30, - "min_ns": 2717588, - "p50_ns": 2984811, - "p95_ns": 4282889, - "p99_ns": 4402861, - "max_ns": 4402861, - "mean_ns": 3079717.8333333335, - "sample_stddev_ns": 421866.7017571475 - }, - "no_op_cpu_ticks": 11, - "no_op_cpu_ms": 110.0, - "no_op_process_write_bytes": 0, - "no_op_database_storage_growth_bytes": 0, - "no_op_observation_count_delta": 0 - } - ] - }, - "hook_telemetry_readiness": { - "artifact_kind": "readiness_and_fixture_identity_not_runtime_contract", - "canonical_contract": { - "aggregation_dimensions": { - "disposition_class": [ - "application", - "transport", - "timeout", - "cancellation", - "unknown" - ], - "disposition_status": [ - "supported", - "degraded", - "unavailable", - "unknown", - "backpressured", - "accepted_for_replay", - "committed", - "exact_duplicate" - ], - "excluded_untrusted_dimensions": [ - "hook_name", - "disposition.reason_code" - ], - "host": [ - "claude", - "codex", - "cursor", - "hermes", - "kiro", - "other" - ], - "retryable": [ - true, - false, - null - ] - }, - "latency_semantics": { - "daemon_processing_duration": { - "blocker": "hook_completed_does_not_emit_daemon_processing_duration", - "status": "unavailable" - }, - "hook_wall_time": { - "fields": [ - "hook_wall_time_us", - "hook_wall_time_ms" - ], - "role": "host_measured_hook_span" - }, - "host_ipc_rtt": { - "aliases": [ - "daemon_rtt" - ], - "event_field": "daemon_rtt_us", - "role": "true_host_ipc_rtt" - } - }, - "metrics": { - "daemon_rtt": [ - "daemon_rtt_us", - "daemon_call_count" - ], - "disposition": [ - "disposition.status", - "disposition.retryable", - "disposition.reason_code", - "disposition.class" - ], - "hook_wall_time": [ - "hook_wall_time_us", - "hook_wall_time_ms" - ], - "payload_bytes": [ - "payload_bytes", - "daemon_ipc_payload_bytes" - ], - "timeout": [ - "timeout.budget_ms", - "timeout.timed_out" - ] - }, - "provider_coverage": [ - { - "host": "claude", - "status": "instrumented" - }, - { - "host": "codex", - "status": "instrumented" - }, - { - "host": "cursor", - "status": "instrumented" - }, - { - "host": "hermes", - "status": "partial" - }, - { - "host": "kiro", - "status": "instrumented" - } - ], - "schema_version": 1 - }, - "host_fixture_measurements": [ - { - "host": "claude", - "fixture_path": "tests/fixtures/host_events/claude/baseline.json", - "fixture_sha256": "6bb06840fe1e2716f66c02a58220c2c1a122b387cdc97af987a0b4d4427124e7", - "canonical_request_payload_bytes": [ - 142, - 142, - 142, - 142 - ], - "disposition_vocabulary": [ - "supported", - "degraded", - "unavailable", - "unknown" - ] - }, - { - "host": "codex", - "fixture_path": "tests/fixtures/host_events/codex/baseline.json", - "fixture_sha256": "1095677d360835fcfbaa8da978aebe57fadaf49d257a85b0e0b8779f8a765ef7", - "canonical_request_payload_bytes": [ - 104, - 104, - 104, - 104 - ], - "disposition_vocabulary": [ - "supported", - "degraded", - "unavailable", - "unknown" - ] - }, - { - "host": "cursor", - "fixture_path": "tests/fixtures/host_events/cursor/baseline.json", - "fixture_sha256": "e80d6a498ccb300aaee76717f24bdd843722fda037156a980c44ebf43b67370f", - "canonical_request_payload_bytes": [ - 104, - 104, - 104, - 104 - ], - "disposition_vocabulary": [ - "supported", - "degraded", - "unavailable", - "unknown" - ] - }, - { - "host": "hermes", - "fixture_path": "tests/fixtures/host_events/hermes/baseline.json", - "fixture_sha256": "911c9ca516ccdb8320b137bececd38c0826eafdd3a369ac8939d5359241bb49c", - "canonical_request_payload_bytes": [ - 236, - 236, - 236, - 236 - ], - "disposition_vocabulary": [ - "supported", - "degraded", - "unavailable", - "unknown" - ] - }, - { - "host": "kiro", - "fixture_path": "tests/fixtures/host_events/kiro/baseline.json", - "fixture_sha256": "efaab57d6d9efc0bda7a7ed8a57d236599409d5abf9c2eed405cd7725b5882bc", - "canonical_request_payload_bytes": [ - 118, - 118, - 118, - 118 - ], - "disposition_vocabulary": [ - "supported", - "degraded", - "unavailable", - "unknown" - ] - } - ], - "cursor_catch_up_ingest_max_bytes": 2097152, - "readiness_distributions": { - "schema_version": 1, - "source_event": "hook_completed", - "collection_status": "no_samples", - "input_rows_received": 0, - "input_rows_processed": 0, - "input_rows_dropped_at_cap": 0, - "events_considered": 0, - "events_skipped_non_completed": 0, - "hook_wall_time_distribution": [], - "host_ipc_rtt_distribution": [], - "payload_bytes_distribution": [], - "timeout_outcomes_by_host": [], - "disposition_counts_by_host": [], - "unavailable_metrics": [ - { - "metric": "daemon_processing_duration_distribution", - "status": "unavailable", - "blocker": "hook_completed_does_not_emit_daemon_processing_duration" - } - ], - "bounds": { - "max_input_rows": 10000, - "host_buckets": 6, - "max_disposition_series": 720, - "latency_buckets": 13, - "bytes_buckets": 8 - }, - "rows_folded_to_other_host": 0, - "disposition_values_folded_to_unknown": 0 - }, - "unavailable_measurements": [ - { - "metric": "daemon_processing_duration_distribution", - "status": "unavailable", - "required_collection_step": "hook_completed emits host-measured daemon_rtt_us (TRUE host IPC RTT) only; daemon-internal processing duration is not present on the event contract" - } - ] - }, - "stale_reason": "workload identity no longer matches the live harness: benchmark sources changed after acceptance and the pr5-observation surfaces were renamed to the claude-observation capability", - "superseded_by_workload_schema_version": 3 -} \ No newline at end of file diff --git a/crates/tracedecay-sessions/src/lib.rs b/crates/tracedecay-sessions/src/lib.rs index 5e1de8c6b0..26aa3167a0 100644 --- a/crates/tracedecay-sessions/src/lib.rs +++ b/crates/tracedecay-sessions/src/lib.rs @@ -18,8 +18,7 @@ //! exact paths and contents. Re-seal them together from a clean source //! commit if they ever need to move or regenerate, never hand-edit: //! -//! - `benchmark_data/claude-observation/workload-v1.json` and -//! `benchmark_data/claude-observation/result-2026-07-26-dc17dd73.json` +//! - `benchmark_data/claude-observation/workload-v1.json` //! - `benchmark_data/session-temporal/workload-v1.json` and //! `benchmark_data/session-temporal/result-provisional.json` //! - `tests/fixtures/transcript_golden/cline_like/manifest.json` and diff --git a/crates/tracedecay/tests/claude_observation_benchmark/artifact.rs b/crates/tracedecay/tests/claude_observation_benchmark/artifact.rs index febee34f1a..87f8e45c75 100644 --- a/crates/tracedecay/tests/claude_observation_benchmark/artifact.rs +++ b/crates/tracedecay/tests/claude_observation_benchmark/artifact.rs @@ -1,18 +1,14 @@ -use std::collections::BTreeSet; use std::fs; use std::io::Read; use std::path::{Path, PathBuf}; use std::process::Command; use serde::{Deserialize, Serialize}; -use serde_json::{Map, Value}; use sha2::{Digest, Sha256}; pub(super) use tracedecay_domain::canonical_text::sha256_hex; -use super::metrics::{ - aggregate_samples, ticks_to_ms, validate_no_op_invariants, validate_no_op_samples, -}; +use super::metrics::{aggregate_samples, ticks_to_ms, validate_no_op_invariants}; use super::model::{ BenchmarkResult, BuildIdentity, Distribution, EvidenceStatus, GitSnapshot, PROVIDER_COMMIT_SCOPE, PROVIDER_PARSE_SCOPE, PROVIDER_REPLAY_SCOPE, @@ -20,9 +16,8 @@ use super::model::{ }; use super::{ BENCHMARK_COMMAND, HARNESS_SOURCES, MEASURED_REPETITIONS, NATIVE_PROVIDER_FIXTURES, - PROVIDER_PIPELINE_SCOPE, RECORDS_PER_REPETITION, RESULT_SCHEMA_VERSION, RETIRED_WORKLOAD_ID, - WARMUP_REPETITIONS, WORKLOAD_ID, WORKLOAD_MANIFEST, WORKLOAD_MANIFEST_PATH, - WORKLOAD_SCHEMA_VERSION, + PROVIDER_PIPELINE_SCOPE, RECORDS_PER_REPETITION, RESULT_SCHEMA_VERSION, WARMUP_REPETITIONS, + WORKLOAD_ID, WORKLOAD_MANIFEST, WORKLOAD_MANIFEST_PATH, }; pub(super) struct MeasuredBuild { @@ -35,16 +30,6 @@ pub(super) struct MeasuredBuild { pub(super) struct EvidenceIndex { pub(super) schema_version: u32, pub(super) current_acceptance: Option, - pub(super) historical_stale: Vec, -} - -#[derive(Deserialize)] -struct ArtifactEnvelope { - schema_version: u32, - evidence_status: String, - workload_id: String, - #[serde(flatten)] - rest: Map, } pub(super) fn assert_repository_evidence() { @@ -72,22 +57,6 @@ pub(super) fn validate_evidence_directory( index.schema_version )); } - let historical_index = index - .historical_stale - .iter() - .cloned() - .collect::>(); - if historical_index.len() != index.historical_stale.len() { - return Err("evidence index contains duplicate historical artifacts".to_string()); - } - if index - .current_acceptance - .as_ref() - .is_some_and(|name| historical_index.contains(name)) - { - return Err("current acceptance is also indexed as historical".to_string()); - } - let mut files = fs::read_dir(directory) .map_err(|error| format!("read {}: {error}", directory.display()))? .filter_map(Result::ok) @@ -102,30 +71,13 @@ pub(super) fn validate_evidence_directory( files.sort(); let mut acceptance = Vec::new(); - let mut historical = BTreeSet::new(); for name in files { let path = directory.join(&name); let bytes = fs::read(&path).map_err(|error| format!("read {}: {error}", path.display()))?; - let envelope = serde_json::from_slice::(&bytes) + let result = serde_json::from_slice::(&bytes) .map_err(|error| format!("parse {}: {error}", path.display()))?; - match envelope.evidence_status.as_str() { - "acceptance" => { - let result = serde_json::from_slice::(&bytes) - .map_err(|error| format!("parse schema-2 {}: {error}", path.display()))?; - validate_acceptance_result(&result)?; - acceptance.push(name); - } - "historical_stale" => { - validate_historical_result(&envelope)?; - historical.insert(name); - } - status => { - return Err(format!( - "{} has unsupported evidence_status {status}", - path.display() - )); - } - } + validate_acceptance_result(&result)?; + acceptance.push(name); } if acceptance.len() > 1 { @@ -134,11 +86,6 @@ pub(super) fn validate_evidence_directory( acceptance.len() )); } - if historical != historical_index { - return Err(format!( - "historical evidence index mismatch: indexed={historical_index:?}, files={historical:?}" - )); - } match (&index.current_acceptance, acceptance.as_slice()) { (Some(expected), [actual]) if expected == actual => Ok(Some(actual.clone())), (None, []) if !require_acceptance => Ok(None), @@ -150,79 +97,6 @@ pub(super) fn validate_evidence_directory( } } -/// Historical and retired artifacts keep the workload id they were sealed -/// under; only live acceptance evidence must carry the current id. -fn is_recognized_workload_id(workload_id: &str) -> bool { - workload_id == WORKLOAD_ID || workload_id == RETIRED_WORKLOAD_ID -} - -fn validate_historical_result(result: &ArtifactEnvelope) -> Result<(), String> { - if result.schema_version == RESULT_SCHEMA_VERSION { - return validate_retired_acceptance_result(result); - } - if result.schema_version != 1 - || !is_recognized_workload_id(&result.workload_id) - || string(&result.rest, "stale_reason")?.is_empty() - || unsigned(&result.rest, "superseded_by_result_schema_version")? - != u64::from(RESULT_SCHEMA_VERSION) - || !is_lower_hex(string(&result.rest, "benchmark_commit")?, 40) - || boolean(&result.rest, "benchmark_commit_dirty")? - { - return Err("historical result provenance is invalid".to_string()); - } - if unsigned(&result.rest, "warmup_repetitions")? - != u64::try_from(WARMUP_REPETITIONS).expect("warmup count fits u64") - || unsigned(&result.rest, "measured_repetitions")? - != u64::try_from(MEASURED_REPETITIONS).expect("sample count fits u64") - || unsigned(&result.rest, "records_per_repetition")? - != u64::try_from(RECORDS_PER_REPETITION).expect("record count fits u64") - || unsigned(&result.rest, "measured_records")? - != u64::try_from(MEASURED_REPETITIONS * RECORDS_PER_REPETITION) - .expect("measured record count fits u64") - { - return Err("historical result repetition contract mismatch".to_string()); - } - let pipeline = samples(&result.rest, "pipeline_raw_samples")?; - let no_op = samples(&result.rest, "no_op_replay_raw_samples")?; - validate_sample_sequence(&pipeline, RECORDS_PER_REPETITION)?; - validate_no_op_samples(&no_op, 0, RECORDS_PER_REPETITION)?; - validate_distribution(&result.rest, "pipeline_batch_latency", &pipeline)?; - validate_distribution(&result.rest, "no_op_replay_latency", &no_op)?; - let no_op_totals = result - .rest - .get("no_op_replay_totals") - .and_then(Value::as_object) - .ok_or_else(|| "historical result lacks no-op totals".to_string())?; - if no_op_totals.is_empty() || no_op_totals.values().any(|value| value.as_u64() != Some(0)) { - return Err("historical no-op coordinator reported work".to_string()); - } - validate_aggregates(&result.rest, &pipeline, &no_op) -} - -fn validate_retired_acceptance_result(result: &ArtifactEnvelope) -> Result<(), String> { - let git_before = result - .rest - .get("git_before") - .and_then(Value::as_object) - .ok_or_else(|| "retired acceptance result lacks git_before".to_string())?; - if !is_recognized_workload_id(&result.workload_id) - || string(&result.rest, "stale_reason")?.is_empty() - || unsigned(&result.rest, "superseded_by_workload_schema_version")? - != u64::from(WORKLOAD_SCHEMA_VERSION) - || !is_lower_hex(string(git_before, "commit")?, 40) - || boolean(git_before, "dirty")? - { - return Err("retired acceptance result provenance is invalid".to_string()); - } - let pipeline = samples(&result.rest, "pipeline_raw_samples")?; - let no_op = samples(&result.rest, "no_op_replay_raw_samples")?; - validate_sample_sequence(&pipeline, RECORDS_PER_REPETITION)?; - validate_no_op_samples(&no_op, 0, 0)?; - validate_distribution(&result.rest, "pipeline_batch_latency", &pipeline)?; - validate_distribution(&result.rest, "no_op_replay_latency", &no_op)?; - validate_aggregates(&result.rest, &pipeline, &no_op) -} - fn validate_acceptance_result(result: &BenchmarkResult) -> Result<(), String> { if result.schema_version != RESULT_SCHEMA_VERSION || result.evidence_status != EvidenceStatus::Acceptance @@ -531,43 +405,6 @@ fn validate_provider_phase( Ok(()) } -fn validate_aggregates( - fields: &Map, - pipeline_samples: &[RawPhaseSample], - no_op_samples: &[RawPhaseSample], -) -> Result<(), String> { - let pipeline = aggregate_samples(pipeline_samples); - let no_op = aggregate_samples(no_op_samples); - let expected = [ - ("pipeline_cpu_ticks", pipeline.cpu_ticks), - ("pipeline_process_write_bytes", pipeline.process_write_bytes), - ( - "database_storage_growth_bytes", - pipeline.database_storage_growth_bytes, - ), - ("no_op_replay_cpu_ticks", no_op.cpu_ticks), - ( - "no_op_replay_process_write_bytes", - no_op.process_write_bytes, - ), - ( - "no_op_replay_database_storage_growth_bytes", - no_op.database_storage_growth_bytes, - ), - ( - "peak_rss_kib", - pipeline.peak_rss_kib.max(no_op.peak_rss_kib), - ), - ]; - if expected - .iter() - .any(|(field, value)| unsigned(fields, field) != Ok(*value)) - { - return Err("historical result aggregate mismatch".to_string()); - } - Ok(()) -} - fn validate_sample_sequence( samples: &[RawPhaseSample], replayed_observations: usize, @@ -586,23 +423,6 @@ fn validate_sample_sequence( Ok(()) } -fn validate_distribution( - fields: &Map, - name: &str, - samples: &[RawPhaseSample], -) -> Result<(), String> { - let distribution = serde_json::from_value::( - fields - .get(name) - .cloned() - .ok_or_else(|| format!("historical result lacks {name}"))?, - ) - .map_err(|error| format!("parse historical {name}: {error}"))?; - distribution_matches(&distribution, samples) - .then_some(()) - .ok_or_else(|| format!("historical {name} mismatch")) -} - fn distribution_matches(expected: &Distribution, samples: &[RawPhaseSample]) -> bool { let actual = Distribution::from_samples( &samples @@ -620,37 +440,6 @@ fn distribution_matches(expected: &Distribution, samples: &[RawPhaseSample]) -> && float_close(actual.sample_stddev_ns, expected.sample_stddev_ns) } -fn samples(fields: &Map, name: &str) -> Result, String> { - serde_json::from_value( - fields - .get(name) - .cloned() - .ok_or_else(|| format!("historical result lacks {name}"))?, - ) - .map_err(|error| format!("parse historical {name}: {error}")) -} - -fn string<'a>(fields: &'a Map, name: &str) -> Result<&'a str, String> { - fields - .get(name) - .and_then(Value::as_str) - .ok_or_else(|| format!("artifact lacks string {name}")) -} - -fn unsigned(fields: &Map, name: &str) -> Result { - fields - .get(name) - .and_then(Value::as_u64) - .ok_or_else(|| format!("artifact lacks unsigned {name}")) -} - -fn boolean(fields: &Map, name: &str) -> Result { - fields - .get(name) - .and_then(Value::as_bool) - .ok_or_else(|| format!("artifact lacks boolean {name}")) -} - fn float_close(left: f64, right: f64) -> bool { (left - right).abs() <= left.abs().max(right.abs()).max(1.0) * 1e-12 } diff --git a/crates/tracedecay/tests/claude_observation_benchmark/baseline.rs b/crates/tracedecay/tests/claude_observation_benchmark/baseline.rs index 3d1ee830c2..913437fa40 100644 --- a/crates/tracedecay/tests/claude_observation_benchmark/baseline.rs +++ b/crates/tracedecay/tests/claude_observation_benchmark/baseline.rs @@ -58,10 +58,7 @@ pub(super) struct ProviderBaseline { pub(super) fixture: ProviderFixture, pub(super) checks: Vec, pub(super) bounds: ProviderBounds, - /// Additive v1 field. Validation requires it for every provider while old - /// tolerant readers can continue to consume the original v1 fields. - #[serde(default, skip_serializing_if = "Option::is_none")] - pub(super) measurement: Option, + pub(super) measurement: ProviderMeasurement, } #[derive(Debug, Clone, Deserialize, Serialize, PartialEq, Eq)] @@ -97,7 +94,6 @@ pub(super) struct ProviderMeasurement { pub(super) struct ProviderBaselineCatalog { schema_version: u32, catalog_id: &'static str, - compatibility: &'static str, baselines: Vec, } @@ -144,7 +140,6 @@ pub(super) fn catalog() -> ProviderBaselineCatalog { ProviderBaselineCatalog { schema_version: PROVIDER_BASELINE_SCHEMA_VERSION, catalog_id: PROVIDER_BASELINE_CATALOG_ID, - compatibility: "v1_additive_optional_measurement_field", baselines: expected(), } } @@ -174,10 +169,7 @@ pub(super) fn validate(baselines: &[ProviderBaseline]) { assert!(!fixture.source_paths.is_empty()); assert!(fixture.redacted_secret.starts_with(REDACTION_MARKER)); assert!(!fixture.redacted_secret.contains("sk-test-")); - let measurement = baseline - .measurement - .as_ref() - .unwrap_or_else(|| panic!("{} has no measured result contract", baseline.provider)); + let measurement = &baseline.measurement; assert!( measurement.harness_measures_performance, "{} cannot be pending", @@ -249,12 +241,12 @@ fn baseline(provider: &str) -> ProviderBaseline { fair_rotation_providers: PROVIDERS.len(), peak_resource_fields: strings(PEAK_RESOURCE_FIELDS), }, - measurement: Some(ProviderMeasurement { + measurement: ProviderMeasurement { harness_path: format!("{provider}_production_observation_pipeline_v1"), harness_measures_performance: true, result_schema: "provider-observation-performance-result-v1".to_string(), required_metrics: strings(PERFORMANCE_METRICS), - }), + }, } } diff --git a/crates/tracedecay/tests/claude_observation_benchmark/main.rs b/crates/tracedecay/tests/claude_observation_benchmark/main.rs index f885d8763b..c3bca419c0 100644 --- a/crates/tracedecay/tests/claude_observation_benchmark/main.rs +++ b/crates/tracedecay/tests/claude_observation_benchmark/main.rs @@ -12,9 +12,6 @@ mod tests; const RESULT_SCHEMA_VERSION: u32 = 2; const WORKLOAD_SCHEMA_VERSION: u32 = 3; const WORKLOAD_ID: &str = "claude-observation-pipeline-v1"; -/// Workload id recorded by archival artifacts sealed before the capability -/// rename; accepted only for historical and retired evidence provenance. -const RETIRED_WORKLOAD_ID: &str = "pr5-observation-pipeline-v1"; const WARMUP_REPETITIONS: usize = 3; const MEASURED_REPETITIONS: usize = 30; const RECORDS_PER_REPETITION: usize = 64; diff --git a/crates/tracedecay/tests/claude_observation_benchmark/model.rs b/crates/tracedecay/tests/claude_observation_benchmark/model.rs index 205c5d65b0..c896a04adc 100644 --- a/crates/tracedecay/tests/claude_observation_benchmark/model.rs +++ b/crates/tracedecay/tests/claude_observation_benchmark/model.rs @@ -279,8 +279,7 @@ pub(super) struct BenchmarkResult { pub(super) no_op_replay_database_storage_growth_bytes: u64, pub(super) no_op_replay_observation_count_delta: i64, pub(super) no_op_replay_totals: NoOpTotals, - /// Additive schema-2 field. Current acceptance validation requires it, - /// while historical schema-2 artifacts can still deserialize. + /// Acceptance validation requires it. #[serde(default)] pub(super) provider_observation_performance: Option, #[serde(default)] diff --git a/evals/agent_adoption/README.md b/evals/agent_adoption/README.md index ee0987810a..bd2057bd35 100644 --- a/evals/agent_adoption/README.md +++ b/evals/agent_adoption/README.md @@ -523,7 +523,7 @@ TRACEDECAY_AGENT_EVALS=1 HOSTS=claude \ * **Codex 0.144+** `codex exec --json`: `item.started` / `item.completed` envelopes normalize `command_execution`, `mcp_tool_call`, `collab_tool_call` (`spawn_agent`), and `agent_message`. Lifecycle pairs are - deduplicated by `item.id`. Legacy `msg.type` events remain accepted. + deduplicated by `item.id`. Host-specific MCP tool names collapse to canonical form, e.g. `mcp__plugin_tracedecay_graph__tracedecay_context` → `tracedecay_context`. diff --git a/evals/agent_adoption/grade.py b/evals/agent_adoption/grade.py index aa40747c27..f557de0fe4 100755 --- a/evals/agent_adoption/grade.py +++ b/evals/agent_adoption/grade.py @@ -15,7 +15,7 @@ The grader normalizes BOTH host transcript formats behind a single event model: * Claude Code `--output-format stream-json` (JSONL of assistant/user/result events) - * Codex `codex exec --json` (JSONL of {"msg": {...}} events) + * Codex `codex exec --json` (JSONL of `thread.*` / `turn.*` / `item.*` events) so every downstream check runs on one shape: an ordered list of tool calls plus the agent's final answer text. @@ -367,8 +367,6 @@ def _detect_format(lines: list[str]) -> str: except json.JSONDecodeError: continue if isinstance(obj, dict): - if "msg" in obj and isinstance(obj["msg"], dict): - return "codex" if str(obj.get("type") or "").startswith( ("thread.", "turn.", "item.") ): @@ -472,10 +470,7 @@ def parse_codex(lines: list[str], host: str) -> Transcript: item_envelope = outer_type in ("item.started", "item.completed") and isinstance( obj.get("item"), dict ) - if item_envelope: - msg = obj["item"] - else: - msg = obj.get("msg") if isinstance(obj.get("msg"), dict) else obj + msg = obj["item"] if item_envelope else obj t = msg.get("type") or outer_type item_id = str(msg.get("id") or "") if item_envelope else "" completed_item = outer_type == "item.completed" and item_envelope @@ -497,7 +492,7 @@ def _add_tool(tc: ToolCall): timeline.append({"kind": "tool", "call": tc}) seq += 1 - if t in ("mcp_tool_call_begin", "mcp_tool_call", "tool_call"): + if t in ("mcp_tool_call", "tool_call"): inv = msg.get("invocation") or msg tool = inv.get("tool") or inv.get("name") server = inv.get("server") @@ -513,18 +508,9 @@ def _add_tool(tc: ToolCall): blob = "\n".join(_string_leaves(msg.get("result"))) if blob.strip(): timeline.append({"kind": "ctx", "text": blob}) - elif t in ("exec_command_begin", "exec_command", "command_execution"): + elif t in ("exec_command", "command_execution"): cmd = msg.get("command") or msg.get("cmd") or "" _add_tool(tool_call(seq, "Bash", {"command": cmd})) - elif t in ("function_call",): - raw = msg.get("name") or "" - args = msg.get("arguments") or {} - if isinstance(args, str): - try: - args = json.loads(args) - except json.JSONDecodeError: - args = {"_raw": args} - _add_tool(tool_call(seq, raw, args)) elif t == "collab_tool_call": raw = msg.get("tool") or msg.get("name") or "" args = msg.get("arguments") or msg.get("input") @@ -1894,8 +1880,8 @@ def split_learned_variant(base: str) -> tuple[str, Optional[str]]: def parse_transcript_base(base: str) -> Optional[tuple[str, str, str, str]]: """Split a basename into (scenario_id, host, condition, model). - Accepts legacy `__[__]` and matrix - `____[__][__qhints][__r]` shapes. Scenario + Accepts the matrix `____[__][__qhints][__r]` + shape. Scenario ids use single underscores, so `__` separators are unambiguous; a trailing `r` is the repetition index, and `qhints` only keeps hints-on transcripts apart from hints-off ones (the run meta records the setting). @@ -1905,17 +1891,14 @@ def parse_transcript_base(base: str) -> Optional[tuple[str, str, str, str]]: parts.pop() if len(parts) >= 3 and parts[-1] == "qhints": parts.pop() - if len(parts) < 2: + if len(parts) < 3: return None condition = "full" if parts[-1] in CONDITIONS: condition = parts.pop() - if parts[-1] in KNOWN_HOSTS: - return "__".join(parts[:-1]), parts[-1], condition, "" if len(parts) >= 3 and parts[-2] in KNOWN_HOSTS: return "__".join(parts[:-2]), parts[-2], condition, parts[-1] - # tolerant fallback: assume 2-part id__host - return "__".join(parts[:-1]), parts[-1], condition, "" + return None def load_scenarios(scenarios_dir: str) -> dict[str, dict]: diff --git a/evals/agent_adoption/selftest.py b/evals/agent_adoption/selftest.py index dd21225b39..c2cf9f1a32 100644 --- a/evals/agent_adoption/selftest.py +++ b/evals/agent_adoption/selftest.py @@ -318,13 +318,13 @@ def test_specialist_agents(): ]) codex = grade.load_transcript_lines( [json.dumps({ - "msg": { - "type": "function_call", - "name": "spawn_agent", - "arguments": json.dumps({ - "agent_type": "tracedecay-runtime-storage-doctor" - }), - } + "type": "item.completed", + "item": { + "id": "item_spawn", + "type": "collab_tool_call", + "tool": "spawn_agent", + "arguments": {"agent_type": "tracedecay-runtime-storage-doctor"}, + }, })], "codex", ) @@ -409,12 +409,12 @@ def test_end_to_end(): # full condition, steering-driven, correct answer. answer = "The reserve_stock function decrements on-hand stock." - with open(os.path.join(rdir, "explore_reserve_stock__claude.stdout.jsonl"), "w") as f: + with open(os.path.join(rdir, "explore_reserve_stock__claude__haiku.stdout.jsonl"), "w") as f: f.write("\n".join([claude_tool(TD, {}), claude_result(answer)]) + "\n") # bare condition (filename-encoded), unprompted adoption. - with open(os.path.join(rdir, "explore_reserve_stock__claude__bare.stdout.jsonl"), "w") as f: + with open(os.path.join(rdir, "explore_reserve_stock__claude__haiku__bare.stdout.jsonl"), "w") as f: f.write("\n".join([claude_tool(TD, {}), claude_result(answer)]) + "\n") - with open(os.path.join(rdir, "explore_reserve_stock__claude__bare.meta.json"), "w") as f: + with open(os.path.join(rdir, "explore_reserve_stock__claude__haiku__bare.meta.json"), "w") as f: json.dump({"channel_condition": "bare", "repeated_query_hints": "on"}, f) # Failed launches are harness failures, not behavioral evidence. failed = "explore_reserve_stock__claude__sonnet" @@ -450,7 +450,7 @@ def test_end_to_end(): by_cond.get("bare", {}).get("channel") == grade.CH_UNPROMPTED) check("e2e: correctness scored", by_cond["full"]["correctness"]["status"] == "pass" and "score" not in by_cond["full"]) - agg = sb["aggregate"]["claude"] + agg = sb["aggregate"]["claude/haiku"] check("e2e: adoption_rate 1.0", agg["adoption_rate"] == 1.0) check("e2e: per-condition present", set(agg["conditions"]) == {"full", "bare"}) check("e2e: no native baseline is reported as missing", @@ -468,7 +468,7 @@ def test_end_to_end(): by_cond["bare"].get("repeated_query_hints") == "on" and by_cond["full"].get("repeated_query_hints") == "off") check("e2e: report compares hint cells", - "claude bare hints-on" in report and "claude full hints-off" in report) + "claude/haiku bare hints-on" in report and "claude/haiku full hints-off" in report) def test_skill_routing(): @@ -654,9 +654,6 @@ def test_transcript_base_repetitions(): check("reps: rep suffix on full condition", grade.parse_transcript_base("trace_callers__claude__opus__r3") == ("trace_callers", "claude", "full", "opus")) - check("reps: legacy id__host keeps a trailing r-like host untouched", - grade.parse_transcript_base("routing_r1__claude") - == ("routing_r1", "claude", "full", "")) def test_cost_and_corrections(): diff --git a/evals/hermetic/scorecard.py b/evals/hermetic/scorecard.py index a051e81e3b..c3dc0a682a 100644 --- a/evals/hermetic/scorecard.py +++ b/evals/hermetic/scorecard.py @@ -30,7 +30,7 @@ row still count as a *missed* opportunity); without it the denominator is the rows actually present in ``results.jsonl``. * A row "triggered" when it passed. Passing is read from the ``pass`` field - (the boolean score.py emits); ``passed`` is accepted as a fallback alias. + (the boolean score.py emits). Usage: @@ -94,16 +94,11 @@ def row_triggered(row: dict) -> bool: cli_attempts = row.get("tool_cmd_attempts") or 0 if used_mcp or (isinstance(cli_attempts, int) and cli_attempts > 0): return True - for key in ("pass", "passed"): - if key in row: - return bool(row.get(key)) + if "pass" in row: + return bool(row["pass"]) return False -# Backwards-compatible alias. -row_passed = row_triggered - - def aggregate(results: list[dict], corpus: list[dict] | None = None, reps: int | None = None) -> dict: """Count each expected scenario/repetition once, including missing runs.""" if reps is not None and (type(reps) is not int or reps < 1): @@ -170,7 +165,7 @@ def blank() -> dict: if b not in buckets: buckets[b] = blank() order.append(b) - if row_passed(row): + if row_triggered(row): buckets[b]["triggered"] += 1 for name in order: diff --git a/evals/hermetic/test_scorecard.py b/evals/hermetic/test_scorecard.py index cb2c5453ee..59773928be 100644 --- a/evals/hermetic/test_scorecard.py +++ b/evals/hermetic/test_scorecard.py @@ -91,17 +91,6 @@ def test_non_factstore_ignored(self): # Overall opportunities exclude the context row. self.assertEqual(s["overall"]["opportunities"], 6) - def test_passed_alias(self): - # score.py emits "pass"; ensure "passed" is tolerated as a fallback. - rows = [ - {"id": "w1", "category": "factstore-write", "passed": True}, - {"id": "w2", "category": "factstore-write", "passed": False}, - ] - s = scorecard.aggregate(rows) - self.assertEqual(s["buckets"]["write"]["opportunities"], 2) - self.assertEqual(s["buckets"]["write"]["triggered"], 1) - self.assertAlmostEqual(s["buckets"]["write"]["adoption_pct"], 50.0, places=2) - class CorpusDenominatorTest(unittest.TestCase): def test_corpus_counts_missing_scenarios(self): diff --git a/scripts/run-claude-observation-benchmark.sh b/scripts/run-claude-observation-benchmark.sh index 3f60de70d1..393dd2e33c 100755 --- a/scripts/run-claude-observation-benchmark.sh +++ b/scripts/run-claude-observation-benchmark.sh @@ -81,11 +81,7 @@ if [[ -z $result_json ]]; then echo "benchmark result marker was malformed" >&2 exit 1 fi -# Stage only the new output. Historical evidence is read through symlinks, -# without creating a second copy of any existing artifact. -for historical in "$repo_root"/benchmark_data/claude-observation/result-*.json; do - ln -s "$historical" "$staging/$(basename "$historical")" -done +# Stage only the new output. printf '%s\n' "$result_json" >"$staging/$result_name" sed "s/\"current_acceptance\": null/\"current_acceptance\": \"$result_name\"/" \ "$index_path" >"$staging/evidence-index.json" diff --git a/scripts/test-claude-observation-benchmark-publication.py b/scripts/test-claude-observation-benchmark-publication.py index 5aa81bd8bb..afc0a0655b 100644 --- a/scripts/test-claude-observation-benchmark-publication.py +++ b/scripts/test-claude-observation-benchmark-publication.py @@ -28,14 +28,10 @@ def setUp(self) -> None: shutil.copy2(ROOT / "scripts" / name, scripts / name) self.evidence = self.repo / "benchmark_data/claude-observation" self.evidence.mkdir(parents=True) - self.historical = self.evidence / "result-historical.json" - self.historical.write_text('{"evidence_status":"historical_stale"}\n') - self.historical_bytes = self.historical.read_bytes() self.index = self.evidence / "evidence-index.json" self.index.write_text(json.dumps({ "schema_version": 1, "current_acceptance": None, - "historical_stale": [self.historical.name], }) + "\n") self.index_bytes = self.index.read_bytes() git_env = {key: value for key, value in os.environ.items() if not key.startswith("GIT_")} @@ -74,9 +70,6 @@ def setUp(self) -> None: directory = Path(next(arg[len(prefix):] for arg in sys.argv if arg.startswith(prefix))) index = json.loads((directory / "evidence-index.json").read_text()) assert json.loads((directory / index["current_acceptance"]).read_text()) == {"measured": True} - for name in index["historical_stale"]: - assert (directory / name).is_symlink() - assert json.loads((directory / name).read_text())["evidence_status"] == "historical_stale" print("test result: ok. 1 passed; 0 failed; 0 ignored") else: raise SystemExit("unexpected Bazel command") @@ -118,7 +111,6 @@ def run_publication(self, fault: str = "", signal: str = "SIGTERM"): env=dict(self.env, PUBLICATION_FAULT=fault, PUBLICATION_SIGNAL=signal), capture_output=True, text=True, timeout=15, ) - self.assertEqual(self.historical.read_bytes(), self.historical_bytes) self.assertEqual(list(self.tmp.iterdir()), [], "publication staging was retained") return completed From 1083e1ba6ce28e9c5837ca48cb81188c6c344a84 Mon Sep 17 00:00:00 2001 From: Zack Jackson <25274700+ScriptedAlchemy@users.noreply.github.com> Date: Wed, 28 Oct 2026 22:55:18 -0700 Subject: [PATCH 05/13] refactor(cli): remove retired hook subcommands and flag alias (U5) Items removed: L023, L059, L024, L032, L033. - L023/L059: delete the hook-pre-tool-use and hook-prompt-submit subcommands (Commands variants, the pre-tool-use fast path, the NATIVE_CAPTURE_COMMANDS and capture_command_name rows, the dispatch arms, and the TOOL_INPUT doc clause). - L032: delete hook-kiro-pre-tool-use, hook-kiro-post-tool-use, hook-cursor-subagent-start and hook-cursor-before-submit-prompt, plus the host-bundles README paragraph. - L024: drop the `--claude-code-tool-search` alias on `serve`. - L033: delete the CLI tombstone tests for retired commands, flags and config keys. Callers migrated: none remain; no installer or bundle emits these names. Tests deleted: the_beta_83_claude_plugin_flag_serves_the_full_tool_list, retired_worldwide_counter_commands_are_refused_by_the_parser, automation_config_set_rejects_retired_lock_timeout_flags, gitignore_command_is_refused_as_unknown, the pre-tool-use and Kiro pre/post replay rows, the lifecycle-lease rows and no-input block, the Kiro postToolUse half of the prompt-boundary test (renamed kiro_hooks_capture_prompt_boundary), and the legacy-seed, retired automation-defaults and sidecar asserts in the Codex automation install test and the user.upload_enabled.v1 block in the user-settings test. Upgrade impact: Claude configs from old plugins that still name hook-pre-tool-use or hook-prompt-submit, or a beta.83 MCP config that passes --claude-code-tool-search, fail with a clap usage error on every hook call or `serve` start until `tracedecay update-plugin` for Claude. Old Kiro agent hooks naming preToolUse or postToolUse exit 2 until `tracedecay update-plugin --agent kiro`. Co-Authored-By: Claude Opus 5.5 --- .../tracedecay-agent-hosts/src/hooks/mod.rs | 4 +- crates/tracedecay-cli/src/cli.rs | 22 +---- crates/tracedecay-cli/src/hook_capture_cmd.rs | 56 ----------- crates/tracedecay-cli/src/hook_cmd.rs | 3 - crates/tracedecay-cli/src/main.rs | 16 +--- crates/tracedecay-cli/src/startup_tests.rs | 38 +------- .../cli_non_interactive_test.rs | 93 ------------------- .../tests/core_cli_suite/tool_daemon_test.rs | 41 +------- .../hook_lifecycle_lease_test.rs | 13 --- .../tests/hooks_lsp_suite/hook_replay_test.rs | 84 +---------------- ...mon-intent-pass-and-unified-suggestions.md | 2 +- plugin/README-host-bundles.md | 5 - 12 files changed, 14 insertions(+), 363 deletions(-) diff --git a/crates/tracedecay-agent-hosts/src/hooks/mod.rs b/crates/tracedecay-agent-hosts/src/hooks/mod.rs index 407366d414..ca3473bedf 100644 --- a/crates/tracedecay-agent-hosts/src/hooks/mod.rs +++ b/crates/tracedecay-agent-hosts/src/hooks/mod.rs @@ -94,8 +94,8 @@ pub fn aggregate_hook_completed_readiness(rows: &[Value]) -> HookCompletedReadin /// row is indistinguishable from the response row the same event produces. /// /// `hook_name` is the event the subcommand itself names. It wins over the -/// payload's own event name, so an empty, malformed, or nameless payload (and -/// Claude's `TOOL_INPUT`-driven `preToolUse`) still records the host event. +/// payload's own event name, so an empty, malformed, or nameless payload still +/// records the host event. /// /// The returned span writes `hook_completed` when dropped; the caller notes /// the capture outcome on it first. diff --git a/crates/tracedecay-cli/src/cli.rs b/crates/tracedecay-cli/src/cli.rs index 67c2f0485b..1bf1e5107a 100644 --- a/crates/tracedecay-cli/src/cli.rs +++ b/crates/tracedecay-cli/src/cli.rs @@ -332,12 +332,6 @@ pub enum Commands { #[arg(long, requires = "agent")] local: bool, }, - /// PreToolUse hook handler (called by Claude Code, not by users directly) - #[command(name = "hook-pre-tool-use", hide = true)] - HookPreToolUse, - /// UserPromptSubmit hook handler (resets session counter) - #[command(name = "hook-prompt-submit", hide = true)] - HookPromptSubmit, /// Stop hook handler (prints session token savings) #[command(name = "hook-stop", hide = true)] HookStop, @@ -353,24 +347,12 @@ pub enum Commands { /// Claude Code SubagentStart hook handler (called by Claude Code, not by users directly) #[command(name = "hook-claude-subagent-start", hide = true)] HookClaudeSubagentStart, - /// Kiro PreToolUse hook handler (called by Kiro, not by users directly) - #[command(name = "hook-kiro-pre-tool-use", hide = true)] - HookKiroPreToolUse, /// Kiro UserPromptSubmit hook handler (called by Kiro, not by users directly) #[command(name = "hook-kiro-prompt-submit", hide = true)] HookKiroPromptSubmit, - /// Kiro PostToolUse hook handler for incremental sync - #[command(name = "hook-kiro-post-tool-use", hide = true)] - HookKiroPostToolUse, - /// Cursor subagentStart hook handler (called by Cursor, not by users directly) - #[command(name = "hook-cursor-subagent-start", hide = true)] - HookCursorSubagentStart, /// Cursor postToolUse hook handler (called by Cursor, not by users directly) #[command(name = "hook-cursor-post-tool-use", hide = true)] HookCursorPostToolUse, - /// Cursor beforeSubmitPrompt hook handler (called by Cursor, not by users directly) - #[command(name = "hook-cursor-before-submit-prompt", hide = true)] - HookCursorBeforeSubmitPrompt, /// Cursor preCompact hook handler (called by Cursor, not by users directly) #[command(name = "hook-cursor-pre-compact", hide = true)] HookCursorPreCompact, @@ -458,9 +440,7 @@ pub enum Commands { /// List every tool with its full schema instead of stubbing the tools /// outside the always-loaded set. For hosts that defer tool schemas /// themselves, such as Claude Code. - // The Claude plugin deployed by 1.0.0-beta.83 passes - // `--claude-code-tool-search`, which served the same full list. - #[arg(long, alias = "claude-code-tool-search")] + #[arg(long)] full_tool_list: bool, /// List only the tools in this catalog profile (`default`, `compact`, /// `administrative`, `host-limited`). Unlisted tools stay callable by diff --git a/crates/tracedecay-cli/src/hook_capture_cmd.rs b/crates/tracedecay-cli/src/hook_capture_cmd.rs index 96c887b458..60fe9fff83 100644 --- a/crates/tracedecay-cli/src/hook_capture_cmd.rs +++ b/crates/tracedecay-cli/src/hook_capture_cmd.rs @@ -20,11 +20,6 @@ use crate::cli::Commands; /// Every native hook subcommand, the source it captures from, and the host /// event it answers when that subcommand is specific to one event. const NATIVE_CAPTURE_COMMANDS: &[(&str, NativeHookCaptureSourceV1, Option<&str>)] = &[ - ( - "hook-prompt-submit", - NativeHookCaptureSourceV1::Host(NativeHostIdentityV1::ClaudeCode), - Some("UserPromptSubmit"), - ), ( "hook-stop", NativeHookCaptureSourceV1::Host(NativeHostIdentityV1::ClaudeCode), @@ -45,36 +40,16 @@ const NATIVE_CAPTURE_COMMANDS: &[(&str, NativeHookCaptureSourceV1, Option<&str>) NativeHookCaptureSourceV1::Host(NativeHostIdentityV1::ClaudeCode), Some("SubagentStart"), ), - ( - "hook-kiro-pre-tool-use", - NativeHookCaptureSourceV1::Host(NativeHostIdentityV1::Kiro), - Some("preToolUse"), - ), ( "hook-kiro-prompt-submit", NativeHookCaptureSourceV1::Host(NativeHostIdentityV1::Kiro), Some("userPromptSubmit"), ), - ( - "hook-kiro-post-tool-use", - NativeHookCaptureSourceV1::Host(NativeHostIdentityV1::Kiro), - Some("postToolUse"), - ), - ( - "hook-cursor-subagent-start", - NativeHookCaptureSourceV1::Host(NativeHostIdentityV1::CursorDesktop), - Some("subagentStart"), - ), ( "hook-cursor-post-tool-use", NativeHookCaptureSourceV1::Host(NativeHostIdentityV1::CursorDesktop), Some("postToolUse"), ), - ( - "hook-cursor-before-submit-prompt", - NativeHookCaptureSourceV1::Host(NativeHostIdentityV1::CursorDesktop), - Some("beforeSubmitPrompt"), - ), ( "hook-cursor-pre-compact", NativeHookCaptureSourceV1::Host(NativeHostIdentityV1::CursorDesktop), @@ -174,32 +149,6 @@ pub(crate) fn try_run(args: &[OsString]) -> Option { // Native callbacks must never enter normal CLI startup: that path owns // lifecycle maintenance and may open product state before the daemon has // admitted the observation. - if command == "hook-pre-tool-use" { - install_stderr_tracing(StderrTracingDefault::Silent); - if args.len() != 2 { - return Some(refused("hook callbacks take no arguments")); - } - // Claude's pre-tool callback has no replay-safe native observation. - // An empty successful response preserves the host's normal allow path - // without reviving the removed hook-local policy authority. The - // invocation itself is still adoption telemetry, and `TOOL_INPUT` - // carries no event name, so the hook name is supplied here. The - // allow response never depends on it: a process without a profile - // records nothing and still allows the tool. - match ProfileRoot::from_env() { - Ok(profile) => drop( - tracedecay_agent_hosts::hooks::record_native_capture_invoked( - &tracedecay::hook_runtime(profile), - std::env::current_dir().ok().as_deref(), - NativeHostIdentityV1::ClaudeCode, - Some("preToolUse"), - &std::env::var("TOOL_INPUT").unwrap_or_default(), - ), - ), - Err(error) => tracing::debug!(%error, "preToolUse invocation not recorded"), - } - return Some(0); - } // Hooks with a provider-supported synchronous response must enter the // async composition root: their existing handlers perform the canonical // V2 admission/replay journey and render only daemon-approved guidance. @@ -260,17 +209,12 @@ fn native_response_command_from_name(command: &str) -> bool { fn capture_command_name(command: &Commands) -> Option<&'static str> { match command { - Commands::HookPromptSubmit => Some("hook-prompt-submit"), Commands::HookStop => Some("hook-stop"), Commands::HookClaudeSessionStart => Some("hook-claude-session-start"), Commands::HookClaudePostToolUse => Some("hook-claude-post-tool-use"), Commands::HookClaudeSubagentStart => Some("hook-claude-subagent-start"), - Commands::HookKiroPreToolUse => Some("hook-kiro-pre-tool-use"), Commands::HookKiroPromptSubmit => Some("hook-kiro-prompt-submit"), - Commands::HookKiroPostToolUse => Some("hook-kiro-post-tool-use"), - Commands::HookCursorSubagentStart => Some("hook-cursor-subagent-start"), Commands::HookCursorPostToolUse => Some("hook-cursor-post-tool-use"), - Commands::HookCursorBeforeSubmitPrompt => Some("hook-cursor-before-submit-prompt"), Commands::HookCursorPreCompact => Some("hook-cursor-pre-compact"), Commands::HookCursorAfterFileEdit => Some("hook-cursor-after-file-edit"), Commands::HookCursorSessionStart => Some("hook-cursor-session-start"), diff --git a/crates/tracedecay-cli/src/hook_cmd.rs b/crates/tracedecay-cli/src/hook_cmd.rs index 88bc07ec9e..b799f07d8f 100644 --- a/crates/tracedecay-cli/src/hook_cmd.rs +++ b/crates/tracedecay-cli/src/hook_cmd.rs @@ -87,9 +87,6 @@ fn handle_hook_command_inner( &profile, source, hook_name, )); } - if matches!(command, Commands::HookPreToolUse) { - return Ok(0); - } unreachable!("non-hook command passed to hook dispatcher") }) } diff --git a/crates/tracedecay-cli/src/main.rs b/crates/tracedecay-cli/src/main.rs index 5520982eb9..a0e42d7376 100644 --- a/crates/tracedecay-cli/src/main.rs +++ b/crates/tracedecay-cli/src/main.rs @@ -871,19 +871,13 @@ impl CommandFamily { | Commands::Reinstall { .. } | Commands::UpdatePlugin { .. } | Commands::Uninstall { .. } => Self::Agent, - Commands::HookPreToolUse - | Commands::HookPromptSubmit - | Commands::HookStop + Commands::HookStop | Commands::HookClaudeSessionStart | Commands::HookClaudePostToolUse | Commands::HookClaudePostCompact | Commands::HookClaudeSubagentStart - | Commands::HookKiroPreToolUse | Commands::HookKiroPromptSubmit - | Commands::HookKiroPostToolUse - | Commands::HookCursorSubagentStart | Commands::HookCursorPostToolUse - | Commands::HookCursorBeforeSubmitPrompt | Commands::HookCursorPreCompact | Commands::HookCursorAfterFileEdit | Commands::HookCursorSessionStart @@ -1596,19 +1590,13 @@ async fn dispatch_hook_command( command: Commands, ) -> tracedecay_domain::errors::Result { let code = match command { - hook_command @ (Commands::HookPreToolUse - | Commands::HookPromptSubmit - | Commands::HookStop + hook_command @ (Commands::HookStop | Commands::HookClaudeSessionStart | Commands::HookClaudePostToolUse | Commands::HookClaudePostCompact | Commands::HookClaudeSubagentStart - | Commands::HookKiroPreToolUse | Commands::HookKiroPromptSubmit - | Commands::HookKiroPostToolUse - | Commands::HookCursorSubagentStart | Commands::HookCursorPostToolUse - | Commands::HookCursorBeforeSubmitPrompt | Commands::HookCursorPreCompact | Commands::HookCursorAfterFileEdit | Commands::HookCursorSessionStart diff --git a/crates/tracedecay-cli/src/startup_tests.rs b/crates/tracedecay-cli/src/startup_tests.rs index e66b06e6a9..08a28e3bd2 100644 --- a/crates/tracedecay-cli/src/startup_tests.rs +++ b/crates/tracedecay-cli/src/startup_tests.rs @@ -693,34 +693,16 @@ fn post_update_full_reinstall_advances_both_version_markers() { assert!(!config.mark_version_installed(running)); } -#[test] -fn retired_worldwide_counter_commands_are_refused_by_the_parser() { - for retired in ["enable-upload-counter", "disable-upload-counter"] { - let error = Cli::try_parse_from(["tracedecay", retired]) - .err() - .expect("a retired subcommand must not parse"); - assert_eq!(error.kind(), clap::error::ErrorKind::InvalidSubcommand); - } -} - #[test] fn claude_and_kiro_hooks_skip_startup_maintenance() { // Claude and Kiro lifecycle hooks are agent-invoked hot-path // commands, exactly like the Cursor/Codex hooks already in the // skip-list. They must skip the pre-command startup maintenance so they // stay fast on every tool-use/prompt/stop event (#84). - assert!(should_skip_startup_maintenance(&Commands::HookPreToolUse)); - assert!(should_skip_startup_maintenance(&Commands::HookPromptSubmit)); assert!(should_skip_startup_maintenance(&Commands::HookStop)); - assert!(should_skip_startup_maintenance( - &Commands::HookKiroPreToolUse - )); assert!(should_skip_startup_maintenance( &Commands::HookKiroPromptSubmit )); - assert!(should_skip_startup_maintenance( - &Commands::HookKiroPostToolUse - )); } #[test] @@ -734,7 +716,7 @@ fn every_hook_subcommand_skips_startup_maintenance() { .filter(|name| name.starts_with("hook-")) .collect(); assert!( - hooks.len() > 30, + hooks.len() > 20, "hook subcommands were not enumerated: {hooks:?}" ); for hook in &hooks { @@ -832,24 +814,6 @@ fn query_commands_accept_json_output() { )); } -#[test] -fn the_beta_83_claude_plugin_flag_serves_the_full_tool_list() { - for flag in ["--full-tool-list", "--claude-code-tool-search"] { - let cli = Cli::try_parse_from(["tracedecay", "serve", flag]) - .unwrap_or_else(|error| panic!("{flag} must parse: {error}")); - assert!( - matches!( - cli.command, - Some(Commands::Serve { - full_tool_list: true, - .. - }) - ), - "{flag} must select the full tool list" - ); - } -} - #[test] fn serve_selects_a_catalog_profile_by_its_short_name() { for args in [ diff --git a/crates/tracedecay-cli/tests/core_cli_suite/cli_non_interactive_test.rs b/crates/tracedecay-cli/tests/core_cli_suite/cli_non_interactive_test.rs index d25bbb97b8..e9223ccdb8 100644 --- a/crates/tracedecay-cli/tests/core_cli_suite/cli_non_interactive_test.rs +++ b/crates/tracedecay-cli/tests/core_cli_suite/cli_non_interactive_test.rs @@ -1772,16 +1772,6 @@ fn install_codex_automation_enables_daemon_owned_project_configuration_nonintera std::fs::create_dir_all(project_root.join("src")).unwrap(); std::fs::write(project_root.join("src/lib.rs"), "pub fn marker() {}\n").unwrap(); - let legacy_automation_dir = home - .path() - .join(".codex/automations/watch-tracedecay-memory"); - std::fs::create_dir_all(&legacy_automation_dir).unwrap(); - std::fs::write( - legacy_automation_dir.join("automation.toml"), - "status = \"ACTIVE\"\n", - ) - .unwrap(); - let output = run_codex_automation_install(&home, &project_root); assert!( String::from_utf8_lossy(&output.stderr).contains("daemon-managed project configuration"), @@ -1795,14 +1785,6 @@ fn install_codex_automation_enables_daemon_owned_project_configuration_nonintera .is_file(), "install --agent codex should still install the Codex plugin bundle" ); - // Native lifecycle boundary (289eaa7747): install must not mutate - // Codex-owned automation state, including the legacy v0.0.10-v0.0.20 - // native scheduled automation the daemon scheduler replaced. - assert_eq!( - std::fs::read_to_string(legacy_automation_dir.join("automation.toml")).unwrap(), - "status = \"ACTIVE\"\n", - "Codex automation install must leave Codex-native automation state untouched" - ); assert!( !project_root.join(".codex/automations").exists(), "Codex automation install must not create repo-local Codex automation files" @@ -1845,33 +1827,6 @@ fn install_codex_automation_enables_daemon_owned_project_configuration_nonintera config["effective"]["tasks"]["skill_writer"]["min_idle_secs"], 900 ); - - let user_config: toml::Value = toml::from_str( - &std::fs::read_to_string(profile_root(home.path()).join("config.toml")) - .expect("install should save host lifecycle settings"), - ) - .expect("host lifecycle settings should remain valid TOML"); - assert!( - user_config.get("automation").is_none(), - "automation install must not persist retired user automation defaults: {user_config:?}" - ); - - let projects_dir = profile_root(home.path()).join("projects"); - let sidecars = std::fs::read_dir(&projects_dir).map_or_default(|entries| { - entries - .map(|entry| { - entry - .unwrap() - .path() - .join("dashboard/automation_config.json") - }) - .filter(|path| path.is_file()) - .collect::>() - }); - assert!( - sidecars.is_empty(), - "automation install must not write retired dashboard sidecars: {sidecars:?}" - ); } #[test] @@ -1951,30 +1906,6 @@ fn automation_config_set_rejects_unimplemented_external_backend() { assert!(stderr.contains("disabled, codex-app-server")); } -#[test] -fn automation_config_set_rejects_retired_lock_timeout_flags() { - let home = TempDir::new().unwrap(); - let project = TempDir::new().unwrap(); - for flag in [ - "--memory-curator-stale-lock-secs", - "--session-reflector-stale-lock-secs", - "--skill-writer-stale-lock-secs", - ] { - let mut command = tracedecay_command(home.path(), project.path()); - command.args(["automation", "config", "set", flag, "3600"]); - let output = run_with_timeout(command, cli_timeout()); - assert!( - !output.status.success(), - "retired flag {flag} must be rejected" - ); - let stderr = String::from_utf8_lossy(&output.stderr); - assert!( - stderr.contains("unexpected argument") && stderr.contains(flag), - "{stderr}" - ); - } -} - #[test] fn automation_config_set_writes_complete_canonical_project_setting_noninteractively() { let home = TempDir::new().unwrap(); @@ -3360,30 +3291,6 @@ async fn branch_list_reads_profile_sharded_branch_meta() { ); } -/// `index.git_ignore.v1` is retired: the index is Git's view of the worktree, -/// so there is no toggle left for a `gitignore` command to report or flip. -#[test] -fn gitignore_command_is_refused_as_unknown() { - let home = TempDir::new().unwrap(); - let project = TempDir::new().unwrap(); - write_git_fixture(project.path()); - for arguments in [&["gitignore"][..], &["gitignore", "off"][..]] { - let mut command = tracedecay_command_without_daemon(home.path(), project.path()); - command.args(arguments); - let output = run_with_timeout(command, cli_timeout()); - let stderr = String::from_utf8_lossy(&output.stderr); - assert_eq!( - output.status.code(), - Some(2), - "{arguments:?} must be a usage error\nstderr:\n{stderr}" - ); - assert!( - stderr.contains("unrecognized subcommand 'gitignore'"), - "{arguments:?} must be refused as an unknown command\nstderr:\n{stderr}" - ); - } -} - #[tokio::test] async fn automation_facts_list_reports_terminal_receipt_collection() { let home = TempDir::new().unwrap(); diff --git a/crates/tracedecay-cli/tests/core_cli_suite/tool_daemon_test.rs b/crates/tracedecay-cli/tests/core_cli_suite/tool_daemon_test.rs index ae5aebe178..b8b64ece40 100644 --- a/crates/tracedecay-cli/tests/core_cli_suite/tool_daemon_test.rs +++ b/crates/tracedecay-cli/tests/core_cli_suite/tool_daemon_test.rs @@ -985,42 +985,13 @@ fn cursor_after_shell_missing_daemon_exits_promptly_without_children() { } #[test] -fn kiro_hooks_capture_prompt_boundary_and_type_post_tool_use_unsupported() { +fn kiro_hooks_capture_prompt_boundary() { let home = TempDir::new().unwrap(); let project = TempDir::new().unwrap(); let home_path = canonical_existing_path(home.path()); let project_path = canonical_existing_path(project.path()); let host = NativeHostIdentityV1::Kiro; let data_root = enroll_native_capture_project(&home_path, &project_path, "proj_kiro_capture"); - std::fs::create_dir_all(project_path.join("src")).unwrap(); - std::fs::write( - project_path.join("src/lib.rs"), - "pub fn answer() -> u32 { 44 }\n", - ) - .unwrap(); - - // Kiro's only native capture family is PromptBoundary; postToolUse is - // typed Unsupported (fail-open exit 0) and never enters the spool. - let post_tool_use = run_native_capture_hook( - &home_path, - &project_path, - "hook-kiro-post-tool-use", - &json!({ - "hook_event_name": "postToolUse", - "cwd": project_path, - "tool_name": "fs_write", - "tool_input": { - "path": "src/lib.rs" - }, - }), - ); - assert_capture_transport_response("Kiro postToolUse unsupported", &post_tool_use, 0); - assert_eq!( - native_capture_pending_records(&data_root, host), - 0, - "unsupported Kiro postToolUse must not enqueue a spool record" - ); - let prompt_submit = run_native_capture_hook( &home_path, &project_path, @@ -4138,8 +4109,7 @@ fn configuration_get_from(home: &Path, cwd: &Path, key: &str) -> (Option, V /// A user-scoped setting belongs to the profile, so it resolves wherever the /// command runs: the same value is reported inside and outside any project. A -/// project-scoped key still needs a project, and the retired worldwide-counter -/// upload setting is no longer a registered key. +/// project-scoped key still needs a project. #[test] fn user_settings_resolve_from_the_profile_outside_any_project() { let home = TempDir::new().unwrap(); @@ -4162,13 +4132,6 @@ fn user_settings_resolve_from_the_profile_outside_any_project() { ); } - let (code, retired) = configuration_get_from(&home, &outside, "user.upload_enabled.v1"); - assert_ne!( - code, - Some(0), - "the retired upload setting must be refused, not read: {retired}" - ); - let (code, refused) = configuration_get_from(&home, &outside, "index.max_file_size.v1"); assert_eq!(code, Some(1), "{refused}"); assert_eq!( diff --git a/crates/tracedecay/tests/hooks_lsp_suite/hook_lifecycle_lease_test.rs b/crates/tracedecay/tests/hooks_lsp_suite/hook_lifecycle_lease_test.rs index 50b5d11eb7..3fd1b00776 100644 --- a/crates/tracedecay/tests/hooks_lsp_suite/hook_lifecycle_lease_test.rs +++ b/crates/tracedecay/tests/hooks_lsp_suite/hook_lifecycle_lease_test.rs @@ -48,17 +48,12 @@ fn native_hook_commands() -> Vec<(&'static str, Vec)> { .to_vec(); vec![ - ("hook-prompt-submit", claude_stop.clone()), ("hook-stop", claude_stop.clone()), ("hook-claude-session-start", claude_stop.clone()), ("hook-claude-post-tool-use", claude_stop.clone()), ("hook-claude-subagent-start", claude_stop), - ("hook-kiro-pre-tool-use", kiro_prompt.clone()), ("hook-kiro-prompt-submit", kiro_prompt.clone()), - ("hook-kiro-post-tool-use", kiro_prompt), - ("hook-cursor-subagent-start", cursor_edit.clone()), ("hook-cursor-post-tool-use", cursor_edit.clone()), - ("hook-cursor-before-submit-prompt", cursor_edit.clone()), ("hook-cursor-pre-compact", cursor_edit.clone()), ("hook-cursor-after-file-edit", cursor_edit.clone()), ("hook-cursor-session-start", cursor_edit.clone()), @@ -168,14 +163,6 @@ fn native_host_hooks_do_not_create_a_missing_profile() { assert_eq!(output.stdout, expected_stdout, "{hook}: {output:?}"); assert!(output.stderr.is_empty(), "{hook}: {output:?}"); } - - let home = temp.path().join("no-input"); - std::fs::create_dir_all(&home).unwrap(); - let output = run_hook(&home, "hook-pre-tool-use", None); - assert!(output.status.success(), "{output:?}"); - assert!(output.stdout.is_empty(), "{output:?}"); - assert!(output.stderr.is_empty(), "{output:?}"); - assert!(!home.join(".tracedecay").exists()); } #[test] diff --git a/crates/tracedecay/tests/hooks_lsp_suite/hook_replay_test.rs b/crates/tracedecay/tests/hooks_lsp_suite/hook_replay_test.rs index 652f22027b..cefe243b48 100644 --- a/crates/tracedecay/tests/hooks_lsp_suite/hook_replay_test.rs +++ b/crates/tracedecay/tests/hooks_lsp_suite/hook_replay_test.rs @@ -36,10 +36,8 @@ struct Replay { hook_name: &'static str, /// The session the host payload names, which the row must carry. session: &'static str, - /// JSON piped to stdin; `None` for the legacy Claude `preToolUse` contract - /// which reads `TOOL_INPUT` from the environment instead. + /// JSON piped to stdin. stdin: Option, - tool_input_env: Option, } fn replays(root: &str) -> Vec { @@ -55,7 +53,6 @@ fn replays(root: &str) -> Vec { "hook_event_name": "SessionStart", "source": "startup", })), - tool_input_env: None, }, Replay { subcommand: "hook-claude-post-tool-use", @@ -75,19 +72,6 @@ fn replays(root: &str) -> Vec { "permission_mode": "default", "duration_ms": 1, })), - tool_input_env: None, - }, - Replay { - subcommand: "hook-pre-tool-use", - agent: "claude", - hook_name: "preToolUse", - session: "claude-s1", - stdin: None, - tool_input_env: Some(json!({ - "session_id": "claude-s1", - "subagent_type": "Explore", - "prompt": "explore the codebase and find where the parser is defined", - })), }, Replay { subcommand: "hook-codex-session-start", @@ -97,7 +81,6 @@ fn replays(root: &str) -> Vec { stdin: Some( json!({ "hook_event_name": "SessionStart", "session_id": "codex-s1", "cwd": root }), ), - tool_input_env: None, }, Replay { subcommand: "hook-codex-user-prompt-submit", @@ -110,7 +93,6 @@ fn replays(root: &str) -> Vec { "hook_event_name": "UserPromptSubmit", "prompt": "fix the failing test", })), - tool_input_env: None, }, Replay { subcommand: "hook-codex-post-tool-use", @@ -127,7 +109,6 @@ fn replays(root: &str) -> Vec { "tool_input": { "command": "cargo build" }, "tool_response": "Finished", })), - tool_input_env: None, }, // Capture-only callbacks are decoded by the production native decoder, // so their payloads must carry the host's documented Stop shape rather @@ -148,7 +129,6 @@ fn replays(root: &str) -> Vec { "stop_hook_active": false, "last_assistant_message": "done", })), - tool_input_env: None, }, Replay { subcommand: "hook-cursor-session-start", @@ -158,7 +138,6 @@ fn replays(root: &str) -> Vec { stdin: Some( json!({ "hook_event_name": "sessionStart", "conversation_id": "cursor-s1", "cwd": root }), ), - tool_input_env: None, }, Replay { subcommand: "hook-cursor-post-tool-use", @@ -170,7 +149,6 @@ fn replays(root: &str) -> Vec { "cwd": root, "tool_name": "Read", })), - tool_input_env: None, }, Replay { subcommand: "hook-cursor-stop", @@ -186,23 +164,6 @@ fn replays(root: &str) -> Vec { "loop_count": 1, "cwd": root, })), - tool_input_env: None, - }, - Replay { - subcommand: "hook-kiro-pre-tool-use", - agent: "kiro", - hook_name: "preToolUse", - session: "kiro-s1", - stdin: Some(json!({ - "hook_event_name": "preToolUse", - "session_id": "kiro-s1", - "cwd": root, - "tool_name": "delegate", - "tool_input": { - "task": "explore the codebase and find where the parser is defined", - }, - })), - tool_input_env: None, }, Replay { subcommand: "hook-kiro-prompt-submit", @@ -215,21 +176,6 @@ fn replays(root: &str) -> Vec { "hook_event_name": "userPromptSubmit", "prompt": "add a feature", })), - tool_input_env: None, - }, - Replay { - subcommand: "hook-kiro-post-tool-use", - agent: "kiro", - hook_name: "postToolUse", - session: "kiro-s1", - stdin: Some(json!({ - "hook_event_name": "postToolUse", - "session_id": "kiro-s1", - "cwd": root, - "tool_name": "fsWrite", - "file_path": format!("{root}/src/lib.rs"), - })), - tool_input_env: None, }, Replay { subcommand: "hook-pi-event", @@ -243,7 +189,6 @@ fn replays(root: &str) -> Vec { "cwd": root, "reason": "startup", })), - tool_input_env: None, }, Replay { subcommand: "hook-pi-event", @@ -256,7 +201,6 @@ fn replays(root: &str) -> Vec { "session_id": "pi-s1", "cwd": root, })), - tool_input_env: None, }, Replay { subcommand: "hook-kimi-event", @@ -272,7 +216,6 @@ fn replays(root: &str) -> Vec { "tool_call_id": "kimi-call-1", "tool_output": "Finished", })), - tool_input_env: None, }, Replay { subcommand: "hook-kimi-event", @@ -285,7 +228,6 @@ fn replays(root: &str) -> Vec { "cwd": root, "stop_hook_active": false, })), - tool_input_env: None, }, Replay { subcommand: "hook-opencode-event", @@ -298,7 +240,6 @@ fn replays(root: &str) -> Vec { "type": "session.execution.succeeded", "data": { "sessionID": "ses_opencode_s1" }, })), - tool_input_env: None, }, ] } @@ -314,9 +255,6 @@ fn run_replay(home: &Path, project_root: &Path, replay: &Replay) { .stderr(Stdio::piped()); c }; - if let Some(tool_input) = &replay.tool_input_env { - command.env("TOOL_INPUT", tool_input.to_string()); - } let mut child = command .spawn() .unwrap_or_else(|e| panic!("spawn {}: {e}", replay.subcommand)); @@ -336,17 +274,6 @@ fn run_replay(home: &Path, project_root: &Path, replay: &Replay) { String::from_utf8_lossy(&output.stdout), String::from_utf8_lossy(&output.stderr), ); - // Research-shaped pre-tool payloads must reach the host as an allow: no - // permission decision on stdout, nothing for the model on stderr. - if replay.hook_name == "preToolUse" { - let stdout = String::from_utf8_lossy(&output.stdout); - assert!( - matches!(stdout.trim(), "" | "{}") && output.stderr.is_empty(), - "{} must not refuse research\nstdout: {stdout}\nstderr: {}", - replay.subcommand, - String::from_utf8_lossy(&output.stderr), - ); - } } fn read_jsonl_rows(path: &Path) -> Vec { @@ -436,11 +363,10 @@ async fn replayed_provider_hooks_record_attributed_rows_and_bridge_to_analytics_ && str_field(row, "hook_name") == replay.hook_name }) .collect(); - // The capture-only fast path and the retired Claude pre-tool callback - // never reach a response handler, so they record the invocation - // themselves: a host firing a hook is adoption evidence whatever the - // capture outcome, and a silent callback is indistinguishable from a - // broken install. + // The capture-only fast path never reaches a response handler, so it + // records the invocation itself: a host firing a hook is adoption + // evidence whatever the capture outcome, and a silent callback is + // indistinguishable from a broken install. assert_eq!( matched.len(), 1, diff --git a/docs/plans/tracedecay-v2/41-daemon-intent-pass-and-unified-suggestions.md b/docs/plans/tracedecay-v2/41-daemon-intent-pass-and-unified-suggestions.md index 02ac4035b8..b22ca3851f 100644 --- a/docs/plans/tracedecay-v2/41-daemon-intent-pass-and-unified-suggestions.md +++ b/docs/plans/tracedecay-v2/41-daemon-intent-pass-and-unified-suggestions.md @@ -164,7 +164,7 @@ overstate the top probability, so thresholds never transfer. | Host | Boundaries admitted today | Suggestion surface | Gap closed in phase 2 | |---|---|---|---| -| Claude Code | SessionStart, PostToolUse (edit tools), Stop | `hookSpecificOutput.additionalContext` | register `UserPromptSubmit`; promote `hook-prompt-submit` from capture-only | +| Claude Code | SessionStart, PostToolUse (edit tools), Stop | `hookSpecificOutput.additionalContext` | register `UserPromptSubmit` | | Codex | SessionStart, PostToolUse, Stop | `additionalContext` | route `UserPromptSubmit` through dispatch; drop local hint | | Cursor | sessionStart, afterFileEdit, stop | `additional_context` on sessionStart / postToolUse | decode `postToolUse` -> ToolLifecycle; `beforeSubmitPrompt` cannot inject | | Kiro | `userPromptSubmit` | stdout | bounded lookup | diff --git a/plugin/README-host-bundles.md b/plugin/README-host-bundles.md index 11dbb8185c..cb374aa0b5 100644 --- a/plugin/README-host-bundles.md +++ b/plugin/README-host-bundles.md @@ -111,11 +111,6 @@ copies. Pi is the MCP-free host: its extension registers the catalog tools over | **LSP** | `.lsp.json` | native VS Code extension (not `.lsp.json`) | **no** (typed unavailable; intentional) | **no** (intentional) | **no** (OpenCode 2 runs no LSP) | **no** (intentional) | | **Rules** | **no** (intentional) | yes (`rules/tracedecay.mdc`) | **no** (intentional) | **no** (intentional) | `AGENTS.md` is Core instruction content, not a rules product | routing skill is Core instruction content | -Cursor CLI binaries exist for `hook-cursor-subagent-start` and -`hook-cursor-before-submit-prompt`; the Cursor bundle does not wire those -events. Treat them as typed-unavailable unless Cursor grows those adapter -events. - ## First-party catalog Every registry artifact declares a class and owning component. Command prompt From a63972477512166ee911f2aef82cafb0d03f27c1 Mon Sep 17 00:00:00 2001 From: Zack Jackson <25274700+ScriptedAlchemy@users.noreply.github.com> Date: Wed, 28 Oct 2026 23:43:25 -0700 Subject: [PATCH 06/13] refactor(hosts): remove the retired operator-mcp component (U6) Items removed: L025. - Delete HostComponentV1::OperatorMcp and HostBundleComponentArg::OperatorMcp (the hidden `--component operator-mcp` value), and drop them from the Claude, Cursor and Codex component lists. - Delete the receipt supersede/translate machinery in host_bundle/control.rs (LEGACY_COMPONENT_IDENTITIES, canonical_component, legacy_aliases, superseded_identities, translate_to_identity, ComponentReceiptsV1, component_receipts) and the writer ownership guard, writer remove_receipt, planner superseded_receipt_digests, doctor canonical_marker and the component-set superseded-receipt retirement loop. Planning evidence is the component's own receipt. - Strip every OperatorMcp arm in capability_admission, codex/mcp_registry, cursor, kimi, droid, vibe, opencode and host_bundle_registry. Callers migrated: selected_host_component is gone, so --component passes straight through; the unscoped-sweep test uses ContextMcp. Tests deleted: agent_cmd/mcp_identity_tests.rs (whole file), the retired spelling half of the component help test, opencode_non_owner_component_cannot_ remove_context_registration, the six legacy-receipt migration tests and helpers in host_bundle/tests.rs, and legacy_mcp_only_install_updates_and_uninstalls_as_one_server. Upgrade impact: `--component operator-mcp` is a clap usage error. On Claude, Cursor and Codex an operator-mcp receipt written by an older release (receipt..operator-mcp.v1.json) is no longer recognised and is left as an orphan file; the deployed MCP file it recorded is treated as an unreceipted path, so byte-identical bytes converge and drift needs `--yes --adopt`. Codex MCP-only installs registered under that identity are no longer cleaned up by uninstall. Co-Authored-By: Claude Opus 5.5 --- .../src/agents/codex/mcp_registry.rs | 82 +--- .../src/agents/cursor.rs | 5 +- .../src/agents/droid.rs | 4 +- .../host_bundle/capability_admission.rs | 6 +- .../src/agents/host_bundle/component_set.rs | 35 +- .../src/agents/host_bundle/control.rs | 151 +------ .../src/agents/host_bundle/doctor.rs | 58 +-- .../src/agents/host_bundle/mod.rs | 2 +- .../src/agents/host_bundle/planner.rs | 31 +- .../src/agents/host_bundle/tests.rs | 292 ------------ .../src/agents/host_bundle/writer.rs | 31 +- .../src/agents/host_bundle_registry.rs | 19 +- .../tracedecay-agent-hosts/src/agents/kimi.rs | 5 +- .../src/agents/opencode.rs | 3 - .../tracedecay-agent-hosts/src/agents/vibe.rs | 4 +- crates/tracedecay-cli/src/agent_cmd.rs | 62 +-- .../src/agent_cmd/mcp_identity_tests.rs | 426 ------------------ crates/tracedecay-cli/src/cli.rs | 4 - crates/tracedecay-cli/src/startup_tests.rs | 13 +- .../src/integration/descriptor.rs | 15 +- 20 files changed, 80 insertions(+), 1168 deletions(-) delete mode 100644 crates/tracedecay-cli/src/agent_cmd/mcp_identity_tests.rs diff --git a/crates/tracedecay-agent-hosts/src/agents/codex/mcp_registry.rs b/crates/tracedecay-agent-hosts/src/agents/codex/mcp_registry.rs index 6c2b142cc5..3806fd63e2 100644 --- a/crates/tracedecay-agent-hosts/src/agents/codex/mcp_registry.rs +++ b/crates/tracedecay-agent-hosts/src/agents/codex/mcp_registry.rs @@ -31,8 +31,7 @@ //! that would give a plugin user two identical tracedecay MCP servers, one of //! them invisible to `codex plugin` management. //! -//! An **MCP-only** component set (`ContextMcp` and/or `OperatorMcp` selected -//! *without* `Core`) is the case that had no working registration at all before +//! An **MCP-only** component set (`ContextMcp` selected *without* `Core`) is the case that had no working registration at all before //! this module. That set deploys the plugin's `.mcp.json` and nothing else, and //! since the plugin is never installed, the file is inert, the operator ends //! up with a staged file and no MCP server. `codex mcp add` is exactly the @@ -101,8 +100,7 @@ pub(super) const CODEX_HOOKS_KEY: &str = "hooks"; /// the only way the server actually exists. pub(super) fn is_mcp_only_component_set(components: &[HostComponentV1]) -> bool { !components.contains(&HostComponentV1::Core) - && (components.contains(&HostComponentV1::ContextMcp) - || components.contains(&HostComponentV1::OperatorMcp)) + && components.contains(&HostComponentV1::ContextMcp) } /// Whether `component` is an MCP route served by Codex's standalone registry @@ -115,10 +113,7 @@ pub(super) fn standalone_mcp_route( tracedecay_bin: Option<&str>, serve_args: &ServeArgs, ) -> std::result::Result { - if !matches!( - component, - HostComponentV1::ContextMcp | HostComponentV1::OperatorMcp - ) { + if component != HostComponentV1::ContextMcp { return Ok(false); } let Some(server) = standalone_server(home).map_err(drop)? else { @@ -151,8 +146,7 @@ fn standalone_server(home: &Path) -> Result> { /// one, and after its uninstall the server would be registration residue. pub(super) fn retire_standalone_server(components: &[HostComponentV1], home: &Path) -> Result<()> { let plugin_carries_mcp = components.contains(&HostComponentV1::Core) - && (components.contains(&HostComponentV1::ContextMcp) - || components.contains(&HostComponentV1::OperatorMcp)); + && components.contains(&HostComponentV1::ContextMcp); if !plugin_carries_mcp || standalone_server(home)?.is_none() { return Ok(()); } @@ -775,74 +769,6 @@ exit 0"#; }) } - /// A released binary's MCP-only `operator-mcp` install registered the - /// standalone server under the legacy identity. The canonical update - /// re-registers that one server under `context-mcp`, and the canonical - /// uninstall removes it. - #[cfg(unix)] - #[test] - fn legacy_mcp_only_install_updates_and_uninstalls_as_one_server() { - use crate::agents::host_bundle::HostBundleLifecycleOpV1; - - const OLD_BIN: &str = "/opt/tracedecay-old/bin/tracedecay"; - const NEW_BIN: &str = "/opt/tracedecay-new/bin/tracedecay"; - let home = tempfile::tempdir().unwrap(); - let lifecycle = tempfile::tempdir().unwrap(); - let bin_dir = tempfile::tempdir().unwrap(); - fake_codex_cli( - &bin_dir.path().join("codex"), - &bin_dir.path().join("invocations.log"), - FAKE_TABLE_SCOPED_REGISTRY_BODY, - ); - let _codex_cli = - tracedecay_runtime_core::config::HostProgramSearchPathGuard::set(bin_dir.path()); - let config_path = codex_config_path(home.path()); - std::fs::create_dir_all(config_path.parent().unwrap()).unwrap(); - let operator = "[mcp_servers.other]\ncommand = \"other\"\n\n"; - std::fs::write(&config_path, operator).unwrap(); - - run_codex_selection( - home.path(), - lifecycle.path(), - &[HostComponentV1::OperatorMcp], - HostBundleLifecycleOpV1::Install, - 60, - OLD_BIN, - ) - .unwrap(); - assert!(live_receipt(lifecycle.path(), HostComponentV1::OperatorMcp).is_some()); - - run_codex_selection( - home.path(), - lifecycle.path(), - &[HostComponentV1::ContextMcp], - HostBundleLifecycleOpV1::Update, - 61, - NEW_BIN, - ) - .expect("the canonical update takes over the legacy standalone server"); - - assert_eq!(tracedecay_servers(&config_path), ["other", "tracedecay"]); - let config: toml::Table = - toml::from_str(&std::fs::read_to_string(&config_path).unwrap()).unwrap(); - assert_eq!(server_command(&config, "tracedecay"), Some(NEW_BIN)); - assert!(live_receipt(lifecycle.path(), HostComponentV1::OperatorMcp).is_none()); - assert!(live_receipt(lifecycle.path(), HostComponentV1::ContextMcp).is_some()); - - run_codex_selection( - home.path(), - lifecycle.path(), - &[HostComponentV1::ContextMcp], - HostBundleLifecycleOpV1::Uninstall, - 62, - NEW_BIN, - ) - .expect("the canonical uninstall removes the migrated server"); - - assert_eq!(std::fs::read_to_string(&config_path).unwrap(), operator); - assert!(live_receipt(lifecycle.path(), HostComponentV1::ContextMcp).is_none()); - } - /// Body for a fake `codex` whose `mcp add` writes the tracedecay server and /// also drops every table whose header starts with `region`. #[cfg(unix)] diff --git a/crates/tracedecay-agent-hosts/src/agents/cursor.rs b/crates/tracedecay-agent-hosts/src/agents/cursor.rs index c19dc6739b..dd148f1932 100644 --- a/crates/tracedecay-agent-hosts/src/agents/cursor.rs +++ b/crates/tracedecay-agent-hosts/src/agents/cursor.rs @@ -81,10 +81,7 @@ impl AgentIntegration for CursorIntegration { let mcp_current = mcp .pointer("/mcpServers/tracedecay") .is_some_and(Value::is_object); - if matches!( - component, - HostComponentV1::ContextMcp | HostComponentV1::OperatorMcp - ) { + if component == HostComponentV1::ContextMcp { return if mcp_current { HostBundleRegistrationStateV1::Current } else { diff --git a/crates/tracedecay-agent-hosts/src/agents/droid.rs b/crates/tracedecay-agent-hosts/src/agents/droid.rs index d2ce19328e..1e14846a37 100644 --- a/crates/tracedecay-agent-hosts/src/agents/droid.rs +++ b/crates/tracedecay-agent-hosts/src/agents/droid.rs @@ -318,9 +318,7 @@ impl AgentIntegration for DroidIntegration { &ctx.catalog_profiles.serve_args(self.id()), ), HostComponentV1::Core => droid_hooks_registration_state(&ctx.home), - HostComponentV1::Agent | HostComponentV1::OperatorMcp => { - HostBundleRegistrationStateV1::Missing - } + HostComponentV1::Agent => HostBundleRegistrationStateV1::Missing, } } diff --git a/crates/tracedecay-agent-hosts/src/agents/host_bundle/capability_admission.rs b/crates/tracedecay-agent-hosts/src/agents/host_bundle/capability_admission.rs index 678e1d46b8..52891e1b16 100644 --- a/crates/tracedecay-agent-hosts/src/agents/host_bundle/capability_admission.rs +++ b/crates/tracedecay-agent-hosts/src/agents/host_bundle/capability_admission.rs @@ -29,7 +29,7 @@ pub fn require_component_capabilities( component: HostComponentV1, ) -> Result<(), HostBundleError> { use HostCapabilityV1::{Cli, Hooks, Lsp, Mcp, NativeDiagnostics}; - use HostComponentV1::{Agent, ContextMcp, Core, OperatorMcp}; + use HostComponentV1::{Agent, ContextMcp, Core}; let required: &[HostCapabilityV1] = match (host, component) { (HostKindV1::ClaudeCode, Core) => &[Lsp, Hooks], @@ -61,7 +61,7 @@ pub fn require_component_capabilities( return Err(HostBundleError::UnsupportedCapability); } (HostKindV1::Zed | HostKindV1::Antigravity | HostKindV1::Vibe, ContextMcp) => &[Mcp], - (HostKindV1::Zed | HostKindV1::Antigravity | HostKindV1::Vibe, Agent | OperatorMcp) => { + (HostKindV1::Zed | HostKindV1::Antigravity | HostKindV1::Vibe, Agent) => { return Err(HostBundleError::UnsupportedCapability); } // Pi's Core deploys the extension that carries both the tool bridge @@ -79,7 +79,7 @@ pub fn require_component_capabilities( // requiring `Hooks` would refuse the component against the same // capability matrix every other host is judged by. (HostKindV1::ChatGpt, Core) => &[Mcp], - (_, ContextMcp | OperatorMcp) => &[Mcp], + (_, ContextMcp) => &[Mcp], (HostKindV1::CursorDesktop, Agent) => &[NativeDiagnostics], (HostKindV1::OpenCode, Agent) => &[Cli], (_, Agent) => return Err(HostBundleError::UnsupportedCapability), diff --git a/crates/tracedecay-agent-hosts/src/agents/host_bundle/component_set.rs b/crates/tracedecay-agent-hosts/src/agents/host_bundle/component_set.rs index 51b15136c5..79e7ed8685 100644 --- a/crates/tracedecay-agent-hosts/src/agents/host_bundle/component_set.rs +++ b/crates/tracedecay-agent-hosts/src/agents/host_bundle/component_set.rs @@ -7,9 +7,8 @@ use sha2::{Digest, Sha256}; use tracedecay_host_integration::host_bundle_stale_preview; use super::control::{ - ComponentReceiptsV1, component_receipts, component_set_receipt_matches, - component_set_receipt_matches_preview, validate_component_set_receipt, - validate_component_set_request, + component_set_receipt_matches, component_set_receipt_matches_preview, + validate_component_set_receipt, validate_component_set_request, }; use super::model::{ HostComponentSetExecutionRequestV1, HostComponentSetLifecyclePreviewV1, @@ -132,7 +131,8 @@ struct PreparedHostComponentSetComponentV1 { manifest: HostBundleManifestV1, content_by_path: BTreeMap>, plan: HostBundleMutationPlanV1, - receipts: ComponentReceiptsV1, + /// The component's own receipt as read. + receipt: Option, } impl HostBundleWriterV1 { @@ -271,7 +271,7 @@ impl HostBundleWriterV1 { recorded.extend( prepared .iter() - .flat_map(|component| component.receipts.recorded()) + .filter_map(|component| component.receipt.as_ref()) .flat_map(|receipt| receipt.created_directories.iter().cloned()), ); if predates_creation_records { @@ -291,14 +291,6 @@ impl HostBundleWriterV1 { self.write_receipt(component_receipt)?; } verification?; - // Retire superseded receipts before the aggregate receipt, which - // turns a rerun of this operation id into an early-returning replay. - for superseded in prepared - .iter() - .flat_map(|component| &component.receipts.superseded) - { - self.remove_receipt(superseded.host, superseded.component)?; - } self.write_component_set_receipt(&receipt)?; Ok(receipt) })(); @@ -325,14 +317,9 @@ impl HostBundleWriterV1 { request.lifecycle.operation, &component.contents, )?; - let receipts = component_receipts( - &self.root_path, - component.manifest.host, - component.manifest.component, - |host, component| self.load_receipt(host, component), - )?; - let owned_receipt = receipts - .evidence + let receipt = + self.load_receipt(component.manifest.host, component.manifest.component)?; + let owned_receipt = receipt .as_ref() .filter(|receipt| receipt.operation != HostBundleLifecycleOpV1::Uninstall); let manifest_observed = @@ -418,7 +405,7 @@ impl HostBundleWriterV1 { manifest: component.manifest.clone(), content_by_path, plan, - receipts, + receipt, }); } Ok(prepared) @@ -492,7 +479,7 @@ fn recorded_creations( ) -> (Vec, bool) { let previous = prepared .iter() - .flat_map(|component| component.receipts.recorded()); + .filter_map(|component| component.receipt.as_ref()); let predates_records = previous .clone() .any(|receipt| receipt.created_config.is_none()); @@ -571,7 +558,7 @@ fn component_set_receipt_from_prepared( .mutations .iter() .all(|mutation| mutation.action == HostArtifactActionV1::Noop) - && let Some(previous_receipt) = &component.receipts.evidence + && let Some(previous_receipt) = &component.receipt && previous_receipt.manifest_digest == component.manifest.canonical_digest()? { return Ok(HostBundleInstallReceiptV1 { diff --git a/crates/tracedecay-agent-hosts/src/agents/host_bundle/control.rs b/crates/tracedecay-agent-hosts/src/agents/host_bundle/control.rs index a990c3ce34..f35bdcfd62 100644 --- a/crates/tracedecay-agent-hosts/src/agents/host_bundle/control.rs +++ b/crates/tracedecay-agent-hosts/src/agents/host_bundle/control.rs @@ -13,7 +13,7 @@ use tracedecay_host_integration::host_bundle_storage_failure; use super::model::{ HostComponentSetExecutionRequestV1, HostComponentSetLifecyclePreviewV1, HostComponentSetV1, }; -use super::planner::{inspect_install_target, observe_artifact_at}; +use super::planner::inspect_install_target; use super::{ HOST_BUNDLE_RECEIPT_SCHEMA_VERSION, HostBundleError, HostBundleInstallReceiptV1, HostBundleLifecycleOpV1, HostComponentSetReceiptV1, HostComponentV1, HostKindV1, @@ -90,26 +90,18 @@ pub fn latest_host_component_receipt_at( read_receipt_at(lifecycle_root, host, component) } -/// Deploy paths that `component`'s receipt, or the receipt of any identity -/// sharing its route, claims. `component`'s next transaction owns these paths -/// rather than adopting them. +/// Deploy paths that `component`'s receipt claims. `component`'s next +/// transaction owns these paths rather than adopting them. pub fn host_component_owned_paths_at( lifecycle_root: &Path, host: HostKindV1, component: HostComponentV1, ) -> Result, HostBundleError> { - let mut paths = BTreeSet::new(); - for identity in std::iter::once(component).chain(superseded_identities(component)) { - if let Some(receipt) = read_receipt_at(lifecycle_root, host, identity)? { - paths.extend( - receipt - .artifacts - .into_iter() - .map(|artifact| artifact.relative_path), - ); - } - } - Ok(paths) + Ok(read_receipt_at(lifecycle_root, host, component)? + .into_iter() + .flat_map(|receipt| receipt.artifacts) + .map(|artifact| artifact.relative_path) + .collect()) } pub(super) fn read_receipt_at( @@ -409,7 +401,6 @@ pub(super) fn receipt_identity_from_file_name( HostComponentV1::Core, HostComponentV1::Agent, HostComponentV1::ContextMcp, - HostComponentV1::OperatorMcp, ]; stock_host_kinds().into_iter().find_map(|host| { components @@ -420,131 +411,6 @@ pub(super) fn receipt_identity_from_file_name( }) } -/// Retired component identities and the canonical identity that owns their -/// route. Every identity of one route shares its deploy paths, so a -/// transaction for one of them supersedes and retires the receipts of the -/// others. -const LEGACY_COMPONENT_IDENTITIES: [(HostComponentV1, HostComponentV1); 1] = - [(HostComponentV1::OperatorMcp, HostComponentV1::ContextMcp)]; - -/// The identity a component's receipts converge to. -pub fn canonical_component(component: HostComponentV1) -> HostComponentV1 { - LEGACY_COMPONENT_IDENTITIES - .into_iter() - .find(|(legacy, _)| *legacy == component) - .map_or(component, |(_, canonical)| canonical) -} - -/// Legacy identities that share `canonical`'s route. -fn legacy_aliases(canonical: HostComponentV1) -> impl Iterator { - LEGACY_COMPONENT_IDENTITIES - .into_iter() - .filter(move |(_, owner)| *owner == canonical) - .map(|(legacy, _)| legacy) -} - -/// The other identities sharing `component`'s route, whose receipts a -/// transaction for `component` supersedes. A legacy selection still plans its -/// own identity, so it supersedes the canonical receipt in turn. -pub(super) fn superseded_identities(component: HostComponentV1) -> Vec { - let canonical = canonical_component(component); - std::iter::once(canonical) - .chain(legacy_aliases(canonical)) - .filter(|identity| *identity != component) - .collect() -} - -/// Every receipt one component's lifecycle must account for on one host. -pub(super) struct ComponentReceiptsV1 { - /// The component's own receipt as read. - pub(super) own: Option, - /// Receipts of the other identities sharing the route, as read (live or - /// uninstall). Retired after the own receipt is written. - pub(super) superseded: Vec, - /// Ownership evidence for planning, always in the planned identity: the - /// live receipt whose artifacts all match disk (own first), else the live - /// own receipt, else a live superseded receipt, else `own`. Never - /// persisted. A translated receipt keeps its original `manifest_digest`, - /// so it can never pass as an unchanged companion. - pub(super) evidence: Option, -} - -impl ComponentReceiptsV1 { - /// Every receipt file read, whose creation facts the next receipt inherits. - pub(super) fn recorded(&self) -> impl Iterator + Clone { - self.own.iter().chain(&self.superseded) - } -} - -/// Read `component`'s receipt and the receipts it supersedes through `load`, -/// and pick the planning evidence by observing `artifact_root`. -pub(super) fn component_receipts( - artifact_root: &Path, - host: HostKindV1, - component: HostComponentV1, - load: impl Fn( - HostKindV1, - HostComponentV1, - ) -> Result, HostBundleError>, -) -> Result { - let own = load(host, component)?; - let superseded = superseded_identities(component) - .into_iter() - .filter_map(|identity| load(host, identity).transpose()) - .collect::, _>>()?; - let live = own - .iter() - .chain(&superseded) - .filter(|receipt| receipt.operation != HostBundleLifecycleOpV1::Uninstall) - .collect::>(); - let mut chosen = None; - for receipt in &live { - if receipt_matches_disk(artifact_root, receipt)? { - chosen = Some(*receipt); - break; - } - } - let evidence = match chosen.or(live.first().copied()) { - Some(receipt) => Some(translate_to_identity(receipt, component)), - None => own.clone(), - }; - Ok(ComponentReceiptsV1 { - own, - superseded, - evidence, - }) -} - -fn receipt_matches_disk( - artifact_root: &Path, - receipt: &HostBundleInstallReceiptV1, -) -> Result { - for artifact in &receipt.artifacts { - let observed = - observe_artifact_at(artifact_root, &artifact.relative_path, None, None, None)?; - if observed.artifact_digest != Some(artifact.artifact_digest) { - return Ok(false); - } - } - Ok(true) -} - -/// `receipt` under `component`'s identity: the component and every artifact -/// marker become `component`'s, so the planner sees a path the planned -/// component already owns. -fn translate_to_identity( - receipt: &HostBundleInstallReceiptV1, - component: HostComponentV1, -) -> HostBundleInstallReceiptV1 { - let marker = expected_ownership_marker(receipt.host, component); - let mut translated = receipt.clone(); - translated.component = component; - for artifact in &mut translated.artifacts { - artifact.ownership_marker.clone_from(&marker); - } - translated -} - pub(super) fn expected_ownership_marker(host: HostKindV1, component: HostComponentV1) -> String { format!( "tracedecay.{}.{}.v1", @@ -558,6 +424,5 @@ pub(super) fn component_slug(component: HostComponentV1) -> &'static str { HostComponentV1::Core => "core", HostComponentV1::Agent => "agent", HostComponentV1::ContextMcp => "context-mcp", - HostComponentV1::OperatorMcp => "operator-mcp", } } diff --git a/crates/tracedecay-agent-hosts/src/agents/host_bundle/doctor.rs b/crates/tracedecay-agent-hosts/src/agents/host_bundle/doctor.rs index b70b13de4e..b4d18f5275 100644 --- a/crates/tracedecay-agent-hosts/src/agents/host_bundle/doctor.rs +++ b/crates/tracedecay-agent-hosts/src/agents/host_bundle/doctor.rs @@ -9,9 +9,8 @@ use serde::Serialize; use tracedecay_host_integration::host_bundle_storage_failure; use super::control::{ - HOST_BUNDLE_CONTROL_DIR, MAX_CONTROL_FILE_BYTES, canonical_component, component_slug, - expected_ownership_marker, parse_receipt, receipt_file, receipt_identity_from_file_name, - validate_receipt, + HOST_BUNDLE_CONTROL_DIR, MAX_CONTROL_FILE_BYTES, component_slug, expected_ownership_marker, + parse_receipt, receipt_file, receipt_identity_from_file_name, validate_receipt, }; use super::planner::{ObservedArtifactKindV1, ObservedHostArtifactV1, observe_artifact_at}; use super::{ @@ -282,28 +281,25 @@ pub fn inspect_installed_host_bundle_components_at( continue; } - // A legacy receipt is never current: its route waits on the canonical - // component's next transaction to migrate it. - let catalog_current = receipt.component == canonical_component(receipt.component) - && crate::agents::host_bundle_registry::verified_embedded_host_bundle( - receipt.host, - receipt.component, - 0, - generator_commit, - ®istrations.serve_args(receipt.host), - ) - .ok() - .is_some_and(|bundle| { - bundle.manifest.canonical_digest() == Ok(receipt.manifest_digest) - && receipt.artifacts.len() == bundle.manifest.artifacts.len() - && receipt.artifacts.iter().all(|artifact| { - bundle.manifest.artifacts.iter().any(|expected| { - artifact.relative_path == expected.relative_path - && artifact.artifact_digest == expected.artifact_digest - && artifact.ownership_marker == expected.ownership_marker - }) + let catalog_current = crate::agents::host_bundle_registry::verified_embedded_host_bundle( + receipt.host, + receipt.component, + 0, + generator_commit, + ®istrations.serve_args(receipt.host), + ) + .ok() + .is_some_and(|bundle| { + bundle.manifest.canonical_digest() == Ok(receipt.manifest_digest) + && receipt.artifacts.len() == bundle.manifest.artifacts.len() + && receipt.artifacts.iter().all(|artifact| { + bundle.manifest.artifacts.iter().any(|expected| { + artifact.relative_path == expected.relative_path + && artifact.artifact_digest == expected.artifact_digest + && artifact.ownership_marker == expected.ownership_marker }) - }); + }) + }); let registration = registrations.inspect_registration(receipt.host, receipt.component); let activation_guidance = registrations.interactive_activation_guidance(receipt.host); let mut artifacts = Vec::with_capacity(receipt.artifacts.len()); @@ -316,7 +312,9 @@ pub fn inspect_installed_host_bundle_components_at( let sole_owner = ownership_claims .get(&artifact.relative_path) .is_some_and(|markers| { - markers.len() == 1 && markers.contains(&canonical_marker(&receipt)) + markers.len() == 1 + && markers + .contains(&expected_ownership_marker(receipt.host, receipt.component)) }); let observed = observe_artifact_at( artifact_root, @@ -446,18 +444,12 @@ fn receipt_ownership_claims(receipt_paths: &[PathBuf]) -> BTreeMap String { - expected_ownership_marker(receipt.host, canonical_component(receipt.component)) -} - /// Doctor-side mirror of the planner's (`plan_artifact_action`) marker-vs-digest boundary /// under `Repair`, the operation every repair action recommends. /// @@ -549,7 +541,7 @@ pub(super) fn repair_action( if host == HostKindV1::ChatGpt && state != HostBundleComponentDoctorStateV1::Current { return "run `tracedecay install --agent chatgpt` to refresh the staged bundle, then register it inside ChatGPT through its interactive plugin or connector surfaces; ChatGPT keeps no local registry Doctor can verify".to_string(); } - let component = component_slug(canonical_component(component)); + let component = component_slug(component); let host_descriptor = host.descriptor(); let host = host_descriptor.cli_id(); match state { diff --git a/crates/tracedecay-agent-hosts/src/agents/host_bundle/mod.rs b/crates/tracedecay-agent-hosts/src/agents/host_bundle/mod.rs index 73e5611e6d..c12446bbbc 100644 --- a/crates/tracedecay-agent-hosts/src/agents/host_bundle/mod.rs +++ b/crates/tracedecay-agent-hosts/src/agents/host_bundle/mod.rs @@ -48,7 +48,7 @@ mod writer; pub use capability_admission::{require_capability, require_component_capabilities}; pub use component_set::HostComponentSetTransactionV1; pub use control::{ - canonical_component, host_component_owned_paths_at, latest_host_component_receipt_at, + host_component_owned_paths_at, latest_host_component_receipt_at, latest_host_component_set_receipt_at, }; pub use doctor::{ diff --git a/crates/tracedecay-agent-hosts/src/agents/host_bundle/planner.rs b/crates/tracedecay-agent-hosts/src/agents/host_bundle/planner.rs index 16999eb0d6..ce98ee5a67 100644 --- a/crates/tracedecay-agent-hosts/src/agents/host_bundle/planner.rs +++ b/crates/tracedecay-agent-hosts/src/agents/host_bundle/planner.rs @@ -15,8 +15,7 @@ use tracedecay_host_integration::host_bundle_stale_preview; use tracedecay_host_integration::host_bundle_storage_failure; use super::control::{ - component_receipts, read_receipt_at, validate_component_set_request, - validate_hermes_profile_bindings, + read_receipt_at, validate_component_set_request, validate_hermes_profile_bindings, }; use super::model::{ CompetingHostExtensionClaimV1, HostBundleExecutionRequestV1, HostBundleLifecyclePreviewV1, @@ -466,10 +465,6 @@ struct HostComponentArtifactStateV1 { component: HostComponentV1, manifest_digest: [u8; 32], receipt_digest: Option<[u8; 32]>, - // Skipped when empty so a host without legacy receipts keeps the exact - // revision it had before legacy receipts were tracked. - #[serde(skip_serializing_if = "Vec::is_empty")] - superseded_receipt_digests: Vec<[u8; 32]>, observed: Vec, } @@ -488,17 +483,16 @@ fn component_set_artifact_state_revision( components.sort_by_key(|component| component.manifest.component); let mut states = Vec::with_capacity(components.len()); for component in components { - let receipts = component_receipts( - artifact_root, + let receipt = read_receipt_at( + lifecycle_root, component.manifest.host, component.manifest.component, - |host, component| read_receipt_at(lifecycle_root, host, component), )?; let mut paths = BTreeMap::new(); for artifact in &component.manifest.artifacts { paths.insert(artifact.relative_path.clone(), (None, None)); } - if let Some(receipt) = &receipts.evidence { + if let Some(receipt) = &receipt { for artifact in &receipt.artifacts { paths.insert( artifact.relative_path.clone(), @@ -532,12 +526,7 @@ fn component_set_artifact_state_revision( states.push(HostComponentArtifactStateV1 { component: component.manifest.component, manifest_digest: component.manifest.canonical_digest()?, - receipt_digest: receipts.own.as_ref().map(receipt_digest).transpose()?, - superseded_receipt_digests: receipts - .superseded - .iter() - .map(receipt_digest) - .collect::>()?, + receipt_digest: receipt.as_ref().map(receipt_digest).transpose()?, observed, }); } @@ -602,14 +591,8 @@ pub fn dry_run_host_bundle_lifecycle_with_lifecycle_root_at( } validate_competing_extension_claims(competing_extension_claims)?; verifier.verify_manifest(manifest)?; - let receipts = component_receipts( - artifact_root, - manifest.host, - manifest.component, - |host, component| read_receipt_at(lifecycle_root, host, component), - )?; - let owned_receipt = receipts - .evidence + let receipt = read_receipt_at(lifecycle_root, manifest.host, manifest.component)?; + let owned_receipt = receipt .as_ref() .filter(|receipt| receipt.operation != HostBundleLifecycleOpV1::Uninstall); let manifest_observed = if request.lifecycle.operation == HostBundleLifecycleOpV1::Uninstall { diff --git a/crates/tracedecay-agent-hosts/src/agents/host_bundle/tests.rs b/crates/tracedecay-agent-hosts/src/agents/host_bundle/tests.rs index b6c734cf66..b21a6659c1 100644 --- a/crates/tracedecay-agent-hosts/src/agents/host_bundle/tests.rs +++ b/crates/tracedecay-agent-hosts/src/agents/host_bundle/tests.rs @@ -2010,295 +2010,3 @@ fn pi_hook_capability_is_proven_by_its_embedded_fixture() { require_component_capabilities(HostKindV1::Pi, HostComponentV1::Core) .expect("Pi Core is admitted over proven Hooks and Cli"); } - -const MCP_PATH: &str = "mcp.json"; - -fn mcp_set(bytes: &[u8]) -> HostComponentSetV1 { - HostComponentSetV1 { - host: HostKindV1::CursorDesktop, - components: vec![component_entry( - component_manifest( - HostKindV1::CursorDesktop, - HostComponentV1::ContextMcp, - MCP_PATH, - bytes, - ), - bytes, - )], - } -} - -fn mcp_set_request( - operation: HostBundleLifecycleOpV1, - operation_id: u8, -) -> HostComponentSetExecutionRequestV1 { - let mut request = component_set_request(HostKindV1::CursorDesktop, operation, operation_id); - request.lifecycle.expected_components = vec![HostComponentV1::ContextMcp]; - request -} - -/// Deploy `bytes` and the receipt a released binary's `--component -/// operator-mcp` install wrote for them. -fn seed_legacy_mcp_install(root: &Path, writer: &HostBundleWriterV1, bytes: &[u8]) { - std::fs::write(root.join(MCP_PATH), bytes).unwrap(); - writer - .write_receipt(&HostBundleInstallReceiptV1 { - schema_version: HOST_BUNDLE_RECEIPT_SCHEMA_VERSION, - operation_id: [40; 16], - host: HostKindV1::CursorDesktop, - component: HostComponentV1::OperatorMcp, - operation: HostBundleLifecycleOpV1::Install, - manifest_digest: component_manifest( - HostKindV1::CursorDesktop, - HostComponentV1::OperatorMcp, - MCP_PATH, - bytes, - ) - .canonical_digest() - .unwrap(), - artifacts: vec![HostBundleReceiptArtifactV1 { - relative_path: MCP_PATH.to_string(), - artifact_digest: Sha256::digest(bytes).into(), - ownership_marker: expected_ownership_marker( - HostKindV1::CursorDesktop, - HostComponentV1::OperatorMcp, - ), - }], - created_directories: Vec::new(), - created_config: Some(Vec::new()), - }) - .unwrap(); -} - -fn legacy_mcp_receipt_path(root: &Path) -> PathBuf { - root.join(HOST_BUNDLE_CONTROL_DIR).join(receipt_file( - HostKindV1::CursorDesktop, - HostComponentV1::OperatorMcp, - )) -} - -/// A run killed after it wrote the canonical receipt and before it retired the -/// legacy one leaves both; the rerun finds nothing to write and finishes the -/// retirement. -#[test] -fn interrupted_migration_with_both_receipts_converges_without_writes() { - let root = tempfile::tempdir().unwrap(); - let mut writer = HostBundleWriterV1::open(root.path()).unwrap(); - let component_set = mcp_set(b"mcp-v2"); - let verifier = ComponentSetVerifier::from_set(&component_set); - HostComponentSetTransactionV1::new(&mut writer) - .execute( - &component_set, - &mcp_set_request(HostBundleLifecycleOpV1::Install, 41), - &verifier, - &mut ArtifactOnlyTestRegistration, - ) - .unwrap(); - let canonical_bytes = std::fs::read(root.path().join(MCP_PATH)).unwrap(); - seed_legacy_mcp_install(root.path(), &writer, b"mcp-v1"); - std::fs::write(root.path().join(MCP_PATH), &canonical_bytes).unwrap(); - - let request = mcp_set_request(HostBundleLifecycleOpV1::Update, 42); - let preview = HostComponentSetTransactionV1::new(&mut writer) - .preview( - &component_set, - &request, - &verifier, - &mut ArtifactOnlyTestRegistration, - ) - .unwrap(); - assert!( - preview - .component_plans - .iter() - .flat_map(|plan| &plan.mutations) - .all(|mutation| mutation.action == HostArtifactActionV1::Noop) - ); - HostComponentSetTransactionV1::new(&mut writer) - .execute_confirmed( - &component_set, - &request, - &preview, - &verifier, - &mut ArtifactOnlyTestRegistration, - ) - .unwrap(); - - assert_eq!( - writer - .load_receipt(HostKindV1::CursorDesktop, HostComponentV1::OperatorMcp) - .unwrap(), - None - ); - assert_eq!( - writer - .load_receipt(HostKindV1::CursorDesktop, HostComponentV1::ContextMcp) - .unwrap() - .expect("the canonical receipt owns the route") - .operation_id, - [42; 16] - ); - assert_eq!( - std::fs::read(root.path().join(MCP_PATH)).unwrap(), - b"mcp-v2" - ); -} - -#[test] -fn legacy_receipt_drift_between_preview_and_apply_is_stale() { - let root = tempfile::tempdir().unwrap(); - let mut writer = HostBundleWriterV1::open(root.path()).unwrap(); - seed_legacy_mcp_install(root.path(), &writer, b"mcp"); - let component_set = mcp_set(b"mcp"); - let verifier = ComponentSetVerifier::from_set(&component_set); - let request = mcp_set_request(HostBundleLifecycleOpV1::Update, 43); - let preview = HostComponentSetTransactionV1::new(&mut writer) - .preview( - &component_set, - &request, - &verifier, - &mut ArtifactOnlyTestRegistration, - ) - .unwrap(); - - writer - .remove_receipt(HostKindV1::CursorDesktop, HostComponentV1::OperatorMcp) - .unwrap(); - - assert!(matches!( - HostComponentSetTransactionV1::new(&mut writer).execute_confirmed( - &component_set, - &request, - &preview, - &verifier, - &mut ArtifactOnlyTestRegistration, - ), - Err(HostBundleError::StalePreview(_)) - )); - assert_eq!( - writer - .load_receipt(HostKindV1::CursorDesktop, HostComponentV1::ContextMcp) - .unwrap(), - None - ); - assert_eq!(writer.load_component_set_receipt([43; 16]).unwrap(), None); - assert_eq!(std::fs::read(root.path().join(MCP_PATH)).unwrap(), b"mcp"); -} - -#[test] -fn migration_failure_preserves_published_artifact_and_prior_receipt() { - let root = tempfile::tempdir().unwrap(); - let mut writer = HostBundleWriterV1::open(root.path()).unwrap(); - seed_legacy_mcp_install(root.path(), &writer, b"mcp-v1"); - let legacy_receipt = std::fs::read(legacy_mcp_receipt_path(root.path())).unwrap(); - let component_set = mcp_set(b"mcp-v2"); - let mut registration = FailingSetRegistration::default(); - - assert_eq!( - HostComponentSetTransactionV1::new(&mut writer).execute( - &component_set, - &mcp_set_request(HostBundleLifecycleOpV1::Update, 44), - &ComponentSetVerifier::from_set(&component_set), - &mut registration, - ), - Err(FAILING_SET_REGISTRATION_VERIFY) - ); - - assert_eq!( - std::fs::read(root.path().join(MCP_PATH)).unwrap(), - b"mcp-v2" - ); - assert_eq!( - std::fs::read(legacy_mcp_receipt_path(root.path())).unwrap(), - legacy_receipt - ); - assert_eq!( - writer - .load_receipt(HostKindV1::CursorDesktop, HostComponentV1::ContextMcp) - .unwrap() - .expect("the canonical receipt records the published artifact") - .operation_id, - [44; 16] - ); - assert_eq!(writer.load_component_set_receipt([44; 16]).unwrap(), None); -} - -#[test] -fn single_component_execute_refuses_while_legacy_receipt_owns_route() { - let root = tempfile::tempdir().unwrap(); - let mut writer = HostBundleWriterV1::open(root.path()).unwrap(); - seed_legacy_mcp_install(root.path(), &writer, b"mcp"); - let manifest = component_manifest( - HostKindV1::CursorDesktop, - HostComponentV1::ContextMcp, - MCP_PATH, - b"mcp", - ); - let mut request = execution( - HostKindV1::CursorDesktop, - HostBundleLifecycleOpV1::Install, - 45, - true, - ); - request.lifecycle.expected_component = HostComponentV1::ContextMcp; - - let refusal = writer - .execute( - &manifest, - &request, - &component_entry(manifest.clone(), b"mcp").contents, - &verifier(&manifest), - ) - .unwrap_err(); - - assert!( - matches!(&refusal, HostBundleError::OwnershipConflict(reason) if reason.contains("tracedecay update --agent cursor")), - "{refusal:?}" - ); - assert_eq!( - writer - .load_receipt(HostKindV1::CursorDesktop, HostComponentV1::ContextMcp) - .unwrap(), - None - ); -} - -#[test] -fn doctor_reports_dual_claim_as_one_owner_with_canonical_repair() { - let artifacts = tempfile::tempdir().unwrap(); - let lifecycle = tempfile::tempdir().unwrap(); - drop(HostBundleWriterV1::open_with_lifecycle_root(artifacts.path(), lifecycle.path()).unwrap()); - for component in [HostComponentV1::ContextMcp, HostComponentV1::OperatorMcp] { - write_component_receipt( - artifacts.path(), - lifecycle.path(), - HostKindV1::CursorDesktop, - component, - &[(MCP_PATH, Some(b"mcp"))], - ); - } - - let report = inspect_installed_host_bundle_components_at( - artifacts.path(), - lifecycle.path(), - &CurrentRegistration, - crate::agents::TEST_GENERATOR_COMMIT, - ) - .unwrap(); - - assert_eq!(report.components.len(), 2); - for component in &report.components { - assert_eq!( - component.artifacts[0].state, - HostBundleComponentDoctorStateV1::Current, - "{}", - component.label() - ); - assert_eq!( - component.repair_action, - "run `tracedecay reinstall --component context-mcp`", - "{}", - component.label() - ); - } -} diff --git a/crates/tracedecay-agent-hosts/src/agents/host_bundle/writer.rs b/crates/tracedecay-agent-hosts/src/agents/host_bundle/writer.rs index 26775ece28..4c2b4b342c 100644 --- a/crates/tracedecay-agent-hosts/src/agents/host_bundle/writer.rs +++ b/crates/tracedecay-agent-hosts/src/agents/host_bundle/writer.rs @@ -19,9 +19,9 @@ use tracedecay_runtime_core::storage::retry_transient_file_op; use super::control::{ HOST_BUNDLE_CONTROL_DIR, HOST_BUNDLE_LOCK_FILE, MAX_CONTROL_FILE_BYTES, - component_set_receipt_file, component_slug, is_safe_component, parse_receipt, receipt_file, - receipt_identity_from_file_name, receipt_schema_probe, superseded_identities, - validate_component_set_receipt, validate_receipt, writer_lock_file, + component_set_receipt_file, is_safe_component, parse_receipt, receipt_file, + receipt_identity_from_file_name, receipt_schema_probe, validate_component_set_receipt, + validate_receipt, writer_lock_file, }; use super::model::HostBundleExecutionRequestV1; use super::planner::{ @@ -152,23 +152,6 @@ impl HostBundleWriterV1 { Err(HostBundleError::ReceiptCorrupted) }; } - // Only the component-set transaction can retire another identity's - // receipt during publication; writing here would leave two - // owners of one route. - for identity in superseded_identities(manifest.component) { - if self - .load_receipt(manifest.host, identity)? - .is_some_and(|receipt| receipt.operation != HostBundleLifecycleOpV1::Uninstall) - { - return Err(HostBundleError::OwnershipConflict(format!( - "a {} receipt owns the {} route; run `tracedecay update --agent {}` to \ - migrate it", - component_slug(identity), - component_slug(manifest.component), - manifest.host.descriptor().cli_id(), - ))); - } - } let owned_receipt = previous_receipt .as_ref() .filter(|receipt| receipt.operation != HostBundleLifecycleOpV1::Uninstall); @@ -588,14 +571,6 @@ impl HostBundleWriterV1 { ) } - pub(super) fn remove_receipt( - &self, - host: HostKindV1, - component: HostComponentV1, - ) -> Result<(), HostBundleError> { - self.remove_control_file(&receipt_file(host, component)) - } - pub(super) fn load_component_set_receipt( &self, operation_id: [u8; 16], diff --git a/crates/tracedecay-agent-hosts/src/agents/host_bundle_registry.rs b/crates/tracedecay-agent-hosts/src/agents/host_bundle_registry.rs index e6efb295af..a1017a61d3 100644 --- a/crates/tracedecay-agent-hosts/src/agents/host_bundle_registry.rs +++ b/crates/tracedecay-agent-hosts/src/agents/host_bundle_registry.rs @@ -471,7 +471,7 @@ fn component_assets( if host == HostKindV1::CursorDesktop && matches!( component, - HostComponentV1::Core | HostComponentV1::ContextMcp | HostComponentV1::OperatorMcp + HostComponentV1::Core | HostComponentV1::ContextMcp ) { let files = super::cursor::rendered_plugin_files(tracedecay_bin, serve_args) @@ -496,7 +496,7 @@ fn component_assets( if host == HostKindV1::Codex && matches!( component, - HostComponentV1::Core | HostComponentV1::ContextMcp | HostComponentV1::OperatorMcp + HostComponentV1::Core | HostComponentV1::ContextMcp ) { let files = super::codex::rendered_global_plugin_files(tracedecay_bin, serve_args) @@ -520,7 +520,7 @@ fn component_assets( if host == HostKindV1::ClaudeCode && matches!( component, - HostComponentV1::Core | HostComponentV1::ContextMcp | HostComponentV1::OperatorMcp + HostComponentV1::Core | HostComponentV1::ContextMcp ) { let files = super::claude::rendered_plugin_files(tracedecay_bin, serve_args) @@ -840,7 +840,6 @@ fn component_name(component: HostComponentV1) -> &'static str { HostComponentV1::Core => "core", HostComponentV1::Agent => "agent", HostComponentV1::ContextMcp => "context-mcp", - HostComponentV1::OperatorMcp => "operator-mcp", } } @@ -1161,14 +1160,7 @@ mod tests { ); assert_eq!( supported_components(HostKindV1::ClaudeCode), - vec![ - HostComponentV1::Core, - HostComponentV1::ContextMcp, - HostComponentV1::OperatorMcp, - ] - ); - assert!( - !default_components(HostKindV1::ClaudeCode).contains(&HostComponentV1::OperatorMcp) + vec![HostComponentV1::Core, HostComponentV1::ContextMcp,] ); } @@ -1176,10 +1168,7 @@ mod tests { fn shared_mcp_manifests_have_one_canonical_component_owner() { for (host, unsupported) in [ (HostKindV1::Hermes, HostComponentV1::ContextMcp), - (HostKindV1::Hermes, HostComponentV1::OperatorMcp), - (HostKindV1::OpenCode, HostComponentV1::OperatorMcp), (HostKindV1::KimiCode, HostComponentV1::ContextMcp), - (HostKindV1::KimiCode, HostComponentV1::OperatorMcp), ] { assert_eq!( verified_embedded_host_bundle( diff --git a/crates/tracedecay-agent-hosts/src/agents/kimi.rs b/crates/tracedecay-agent-hosts/src/agents/kimi.rs index 6ec65ce3f9..9fa2c89754 100644 --- a/crates/tracedecay-agent-hosts/src/agents/kimi.rs +++ b/crates/tracedecay-agent-hosts/src/agents/kimi.rs @@ -222,10 +222,7 @@ impl AgentIntegration for KimiIntegration { } let mcp_current = kimi_user_mcp_is_current(&code_home, &ctx.catalog_profiles.serve_args(self.id())); - if matches!( - component, - HostComponentV1::ContextMcp | HostComponentV1::OperatorMcp - ) { + if component == HostComponentV1::ContextMcp { return State::Missing; } let events = manifest diff --git a/crates/tracedecay-agent-hosts/src/agents/opencode.rs b/crates/tracedecay-agent-hosts/src/agents/opencode.rs index f576ad8e62..7539123eb7 100644 --- a/crates/tracedecay-agent-hosts/src/agents/opencode.rs +++ b/crates/tracedecay-agent-hosts/src/agents/opencode.rs @@ -191,9 +191,6 @@ impl AgentIntegration for OpenCodeIntegration { State::Missing }; } - if component == HostComponentV1::OperatorMcp { - return State::Missing; - } let config_root = config_path.parent().unwrap_or(&ctx.home); if component == HostComponentV1::Agent { let assets = super::plugin_bundle::opencode_agent_files() diff --git a/crates/tracedecay-agent-hosts/src/agents/vibe.rs b/crates/tracedecay-agent-hosts/src/agents/vibe.rs index 8154a9b9cd..1b7bd1e05e 100644 --- a/crates/tracedecay-agent-hosts/src/agents/vibe.rs +++ b/crates/tracedecay-agent-hosts/src/agents/vibe.rs @@ -290,9 +290,7 @@ fn component_registration_state( mcp_registration_state(config, expected_binary, Some(serve_args)) } HostComponentV1::Core => prompt_registration_state(prompt), - HostComponentV1::Agent | HostComponentV1::OperatorMcp => { - HostBundleRegistrationStateV1::Missing - } + HostComponentV1::Agent => HostBundleRegistrationStateV1::Missing, } } diff --git a/crates/tracedecay-cli/src/agent_cmd.rs b/crates/tracedecay-cli/src/agent_cmd.rs index 2645f940cc..05f7664f31 100644 --- a/crates/tracedecay-cli/src/agent_cmd.rs +++ b/crates/tracedecay-cli/src/agent_cmd.rs @@ -17,8 +17,6 @@ use automation::{ install_codex_daemon_automation, validate_codex_automation_flags, validate_codex_automation_project_path, }; -#[cfg(test)] -mod mcp_identity_tests; #[derive(Clone, Copy, Debug, PartialEq, Eq)] pub(crate) enum HostBundleCliOperation { @@ -663,22 +661,6 @@ fn component_is_not_applicable(agent: &str, component: crate::cli::HostBundleCom }) } -/// The identity a `--component` selection writes. A retired identity the host -/// still lists plans its canonical route, so `operator-mcp` writes -/// `context-mcp` on the hosts that offered it and stays a refusal elsewhere. -fn selected_host_component( - host: tracedecay_agent_hosts::agents::host_bundle::HostKindV1, - component: tracedecay_agent_hosts::agents::host_bundle::HostComponentV1, -) -> tracedecay_agent_hosts::agents::host_bundle::HostComponentV1 { - if tracedecay_agent_hosts::agents::host_bundle_registry::supported_components(host) - .contains(&component) - { - tracedecay_agent_hosts::agents::host_bundle::canonical_component(component) - } else { - component - } -} - fn canonical_host_component_set_with_tracedecay_bin( agent: &str, component: Option, @@ -696,7 +678,7 @@ fn canonical_host_component_set_with_tracedecay_bin( }; let requested = component.map(host_bundle_component).map_or_else( || tracedecay_agent_hosts::agents::host_bundle_registry::default_components(host), - |component| vec![selected_host_component(host, component)], + |component| vec![component], ); if requested.is_empty() { return Err(tracedecay_domain::errors::TraceDecayError::Config { @@ -1219,9 +1201,6 @@ fn host_bundle_component( crate::cli::HostBundleComponentArg::ContextMcp => { tracedecay_agent_hosts::agents::host_bundle::HostComponentV1::ContextMcp } - crate::cli::HostBundleComponentArg::OperatorMcp => { - tracedecay_agent_hosts::agents::host_bundle::HostComponentV1::OperatorMcp - } } } @@ -1564,12 +1543,12 @@ mod tests { )); assert!(!component_is_not_applicable( "claude", - crate::cli::HostBundleComponentArg::OperatorMcp + crate::cli::HostBundleComponentArg::ContextMcp )); assert!( canonical_host_component_set( "claude", - Some(crate::cli::HostBundleComponentArg::OperatorMcp), + Some(crate::cli::HostBundleComponentArg::ContextMcp), 0, ) .is_ok(), @@ -2582,41 +2561,6 @@ mod tests { ); } - #[test] - fn opencode_non_owner_component_cannot_remove_context_registration() { - let home = tempfile::tempdir().unwrap(); - let config_path = home.path().join(".config/opencode/opencode.json"); - std::fs::create_dir_all(config_path.parent().unwrap()).unwrap(); - std::fs::write(&config_path, OPENCODE_CONTEXT_CONFIG).unwrap(); - let integration = tracedecay_agent_hosts::agents::get_integration("opencode").unwrap(); - let context = tracedecay_agent_hosts::agents::InstallContext { - profile: tracedecay_runtime_core::config::ProfileRoot::under_home(home.path()), - home: home.path().to_path_buf(), - tracedecay_bin: "tracedecay".to_string(), - project_root: None, - dashboard: true, - serve_args: Default::default(), - }; - - integration - .activate_deployed_host_component_registration( - &[tracedecay_agent_hosts::agents::host_bundle::HostComponentV1::OperatorMcp], - &context, - ) - .unwrap(); - integration - .deactivate_deployed_host_component_registration( - &[tracedecay_agent_hosts::agents::host_bundle::HostComponentV1::OperatorMcp], - &context, - ) - .unwrap(); - - assert_eq!( - std::fs::read(&config_path).unwrap(), - OPENCODE_CONTEXT_CONFIG - ); - } - #[test] fn current_opencode_context_install_is_byte_preserving() { use tracedecay_agent_hosts::agents::host_bundle::HostComponentSetRegistrationV1; diff --git a/crates/tracedecay-cli/src/agent_cmd/mcp_identity_tests.rs b/crates/tracedecay-cli/src/agent_cmd/mcp_identity_tests.rs deleted file mode 100644 index 06503c2c21..0000000000 --- a/crates/tracedecay-cli/src/agent_cmd/mcp_identity_tests.rs +++ /dev/null @@ -1,426 +0,0 @@ -//! Lifecycle journeys for the one MCP route Claude, Cursor and Codex share -//! between the canonical `context-mcp` component and the legacy -//! `operator-mcp` selection. - -use std::path::{Path, PathBuf}; - -use tracedecay_agent_hosts::agents::host_bundle::{ - HostArtifactActionV1, HostBundleLifecycleOpV1, HostComponentV1, HostKindV1, - latest_host_component_receipt_at, -}; -use tracedecay_agent_hosts::agents::host_bundle_registry::verified_embedded_host_component_set_with_tracedecay_bin; -use tracedecay_runtime_core::config::ProfileRoot; - -use super::{ - ComponentSetApplyContext, HostBundleCliOperation, HostLifecycleError, HostLifecycleResult, - apply_canonical_component_set, canonical_host_component_set, component_is_not_applicable, - resolved_lifecycle_root, run_host_component_lifecycle, -}; -use crate::cli::{HostBundleCliOptions, HostBundleComponentArg}; - -const CURSOR_MCP: &str = ".cursor/plugins/local/tracedecay/mcp.json"; -const CURSOR_CORE_MANIFEST: &str = ".cursor/plugins/local/tracedecay/.cursor-plugin/plugin.json"; -const OLD_BIN: &str = "/opt/tracedecay-old/bin/tracedecay"; -const MID_BIN: &str = "/opt/tracedecay-mid/bin/tracedecay"; -const NEW_BIN: &str = "/opt/tracedecay-new/bin/tracedecay"; - -fn options(component: Option) -> HostBundleCliOptions { - HostBundleCliOptions { - component, - dry_run: false, - yes: true, - adopt: false, - } -} - -fn applied(result: Result) -> Result<(), String> { - match result { - Ok(HostLifecycleResult::Applied) => Ok(()), - Ok(other) => Err(format!("{other:?}")), - Err(HostLifecycleError::Failed(error)) => Err(error.to_string()), - Err(HostLifecycleError::Absent { detail, .. }) => Err(detail), - } -} - -fn run( - home: &Path, - operation: HostBundleCliOperation, - component: Option, - tracedecay_bin: &str, -) -> Result<(), String> { - let profile = ProfileRoot::under_home(home); - applied(run_host_component_lifecycle( - &profile, - "cursor", - operation, - &options(component), - home, - &resolved_lifecycle_root(&profile), - &ComponentSetApplyContext::with_tracedecay_bin(tracedecay_bin), - )) -} - -/// Every MCP identity whose live receipt claims `relative_path`. -fn live_mcp_claims(home: &Path, relative_path: &str) -> Vec { - let lifecycle_root = resolved_lifecycle_root(&ProfileRoot::under_home(home)); - [HostComponentV1::ContextMcp, HostComponentV1::OperatorMcp] - .into_iter() - .filter(|component| { - latest_host_component_receipt_at(&lifecycle_root, HostKindV1::CursorDesktop, *component) - .expect("receipt reads") - .is_some_and(|receipt| { - receipt.operation != HostBundleLifecycleOpV1::Uninstall - && receipt - .artifacts - .iter() - .any(|artifact| artifact.relative_path == relative_path) - }) - }) - .collect() -} - -/// A released binary installed Core and then the optional `operator-mcp` -/// component, each through its own `--component` run. Such a binary planned -/// the catalog's own `operator-mcp` set. -fn install_legacy_operator_mcp(home: &Path) { - run( - home, - HostBundleCliOperation::Install, - Some(HostBundleComponentArg::Core), - OLD_BIN, - ) - .unwrap(); - let profile = ProfileRoot::under_home(home); - let legacy = verified_embedded_host_component_set_with_tracedecay_bin( - HostKindV1::CursorDesktop, - &[HostComponentV1::OperatorMcp], - 0, - OLD_BIN, - crate::product_runtime::PRODUCT_FULL_SHA, - &tracedecay_agent_hosts::agents::serve_args::ServeArgs::default(), - ) - .unwrap(); - applied(apply_canonical_component_set( - &profile, - "cursor", - HostBundleCliOperation::Install, - &legacy, - &options(Some(HostBundleComponentArg::OperatorMcp)), - home, - &resolved_lifecycle_root(&profile), - &ComponentSetApplyContext::with_tracedecay_bin(OLD_BIN), - )) - .unwrap(); - assert_eq!( - live_mcp_claims(home, CURSOR_MCP), - [HostComponentV1::OperatorMcp] - ); -} - -#[test] -fn legacy_operator_mcp_install_updates_under_one_owner() { - let home = tempfile::tempdir().unwrap(); - install_legacy_operator_mcp(home.path()); - - run(home.path(), HostBundleCliOperation::Update, None, NEW_BIN) - .expect("a plain update converges a legacy operator-mcp install"); - - assert_eq!( - live_mcp_claims(home.path(), CURSOR_MCP), - [HostComponentV1::ContextMcp] - ); - let mcp = std::fs::read_to_string(home.path().join(CURSOR_MCP)).unwrap(); - assert!(mcp.contains(NEW_BIN), "{mcp}"); - assert!(!mcp.contains(OLD_BIN), "{mcp}"); -} - -#[test] -fn plain_uninstall_removes_a_legacy_operator_mcp_route() { - let home = tempfile::tempdir().unwrap(); - install_legacy_operator_mcp(home.path()); - - run( - home.path(), - HostBundleCliOperation::Uninstall, - None, - OLD_BIN, - ) - .unwrap(); - - assert!(!home.path().join(CURSOR_MCP).exists()); - assert!(!home.path().join(CURSOR_CORE_MANIFEST).exists()); - assert!(live_mcp_claims(home.path(), CURSOR_MCP).is_empty()); -} - -#[test] -fn legacy_operator_mcp_selection_uninstalls_only_its_route() { - let home = tempfile::tempdir().unwrap(); - install_legacy_operator_mcp(home.path()); - - run( - home.path(), - HostBundleCliOperation::Uninstall, - Some(HostBundleComponentArg::OperatorMcp), - OLD_BIN, - ) - .unwrap(); - - assert!(!home.path().join(CURSOR_MCP).exists()); - assert!(home.path().join(CURSOR_CORE_MANIFEST).is_file()); - assert!(live_mcp_claims(home.path(), CURSOR_MCP).is_empty()); -} - -/// Names of the MCP servers in Cursor's plugin `mcp.json` that launch -/// `tracedecay_bin`. -fn servers_launching(home: &Path, tracedecay_bin: &str) -> Vec { - let mcp: serde_json::Value = - serde_json::from_slice(&std::fs::read(home.join(CURSOR_MCP)).unwrap()).unwrap(); - mcp["mcpServers"] - .as_object() - .unwrap() - .iter() - .filter(|(_, server)| server["command"] == tracedecay_bin) - .map(|(name, _)| name.clone()) - .collect() -} - -/// `--component operator-mcp` is the retired name of the `context-mcp` route: -/// a fresh selection writes the canonical receipt and serves the same single -/// server the canonical selection serves. -#[test] -fn operator_mcp_selection_installs_the_canonical_route() { - let legacy_named = tempfile::tempdir().unwrap(); - let canonical = tempfile::tempdir().unwrap(); - for (home, selection) in [ - (legacy_named.path(), HostBundleComponentArg::OperatorMcp), - (canonical.path(), HostBundleComponentArg::ContextMcp), - ] { - run( - home, - HostBundleCliOperation::Install, - Some(HostBundleComponentArg::Core), - OLD_BIN, - ) - .unwrap(); - run( - home, - HostBundleCliOperation::Install, - Some(selection), - OLD_BIN, - ) - .unwrap(); - } - - assert_eq!( - live_mcp_claims(legacy_named.path(), CURSOR_MCP), - [HostComponentV1::ContextMcp] - ); - assert!(!receipt_path(legacy_named.path(), "operator-mcp").exists()); - assert_eq!( - servers_launching(legacy_named.path(), OLD_BIN), - ["tracedecay"] - ); - assert_eq!( - std::fs::read(legacy_named.path().join(CURSOR_MCP)).unwrap(), - std::fs::read(canonical.path().join(CURSOR_MCP)).unwrap(), - "both selections serve the same server" - ); -} - -#[test] -fn operator_mcp_selection_updates_a_legacy_install_under_one_owner() { - let home = tempfile::tempdir().unwrap(); - install_legacy_operator_mcp(home.path()); - - run( - home.path(), - HostBundleCliOperation::Update, - Some(HostBundleComponentArg::OperatorMcp), - NEW_BIN, - ) - .expect("the retired selection updates the route it always named"); - - assert_eq!( - live_mcp_claims(home.path(), CURSOR_MCP), - [HostComponentV1::ContextMcp] - ); - assert!(!receipt_path(home.path(), "operator-mcp").exists()); - assert_eq!(servers_launching(home.path(), NEW_BIN), ["tracedecay"]); - assert!(servers_launching(home.path(), OLD_BIN).is_empty()); -} - -/// A legacy install whose `mcp.json` was deleted is recovered by a plain -/// repair, which leaves the canonical identity as the route's only owner. -#[test] -fn plain_repair_recovers_a_drifted_legacy_operator_mcp_route() { - let home = tempfile::tempdir().unwrap(); - install_legacy_operator_mcp(home.path()); - std::fs::remove_file(home.path().join(CURSOR_MCP)).unwrap(); - - run(home.path(), HostBundleCliOperation::Repair, None, OLD_BIN) - .expect("repair restores the route the legacy receipt owned"); - - assert_eq!(servers_launching(home.path(), OLD_BIN), ["tracedecay"]); - assert_eq!( - live_mcp_claims(home.path(), CURSOR_MCP), - [HostComponentV1::ContextMcp] - ); - assert!(!receipt_path(home.path(), "operator-mcp").exists()); -} - -/// The retired name keeps its old reach: the hosts that offered it plan -/// `context-mcp`, and every other host still skips or refuses it rather than -/// gaining an MCP route through it. -#[test] -fn operator_mcp_selection_keeps_its_host_scope() { - for agent in ["claude", "cursor", "codex"] { - let selected = - canonical_host_component_set(agent, Some(HostBundleComponentArg::OperatorMcp), 0) - .unwrap() - .unwrap(); - let components = selected - .component_set - .components - .iter() - .map(|component| component.manifest.component) - .collect::>(); - assert_eq!(components, [HostComponentV1::ContextMcp], "{agent}"); - assert!(!component_is_not_applicable( - agent, - HostBundleComponentArg::OperatorMcp - )); - } - for agent in ["cline", "opencode", "kiro"] { - assert!( - component_is_not_applicable(agent, HostBundleComponentArg::OperatorMcp), - "{agent}" - ); - assert!( - canonical_host_component_set(agent, Some(HostBundleComponentArg::OperatorMcp), 0) - .is_err(), - "{agent}" - ); - } -} - -fn receipt_path(home: &Path, component_slug: &str) -> PathBuf { - resolved_lifecycle_root(&ProfileRoot::under_home(home)) - .join(".tracedecay-host-bundle-v1") - .join(format!("receipt.cursor-desktop.{component_slug}.v1.json")) -} - -/// What a released binary's `--component operator-mcp` run left beside a -/// default install: a legacy receipt claiming the route the `context-mcp` -/// receipt claims, with the legacy component's own manifest digest. -fn seed_legacy_receipt_beside_context_mcp(home: &Path) { - let lifecycle_root = resolved_lifecycle_root(&ProfileRoot::under_home(home)); - let mut legacy = latest_host_component_receipt_at( - &lifecycle_root, - HostKindV1::CursorDesktop, - HostComponentV1::ContextMcp, - ) - .unwrap() - .expect("default install owns the MCP route"); - legacy.component = HostComponentV1::OperatorMcp; - legacy.manifest_digest = [7; 32]; - for artifact in &mut legacy.artifacts { - artifact.ownership_marker = artifact - .ownership_marker - .replace("context-mcp", "operator-mcp"); - } - std::fs::write( - receipt_path(home, "operator-mcp"), - serde_json::to_vec(&legacy).unwrap(), - ) - .unwrap(); -} - -fn dual_claim_install(home: &Path) { - run(home, HostBundleCliOperation::Install, None, OLD_BIN).unwrap(); - seed_legacy_receipt_beside_context_mcp(home); - assert_eq!( - live_mcp_claims(home, CURSOR_MCP), - [HostComponentV1::ContextMcp, HostComponentV1::OperatorMcp] - ); -} - -#[test] -fn dual_claim_update_retires_the_legacy_receipt() { - let home = tempfile::tempdir().unwrap(); - dual_claim_install(home.path()); - - run(home.path(), HostBundleCliOperation::Update, None, NEW_BIN).unwrap(); - - assert_eq!( - live_mcp_claims(home.path(), CURSOR_MCP), - [HostComponentV1::ContextMcp] - ); - assert!(!receipt_path(home.path(), "operator-mcp").exists()); - let mcp = std::fs::read_to_string(home.path().join(CURSOR_MCP)).unwrap(); - assert!(mcp.contains(NEW_BIN), "{mcp}"); -} - -/// The legacy receipt records the bytes on disk while the `context-mcp` -/// receipt still records an older render, so only the legacy receipt proves -/// ownership of what is deployed. -#[test] -fn dual_claim_divergent_digests_update_converges() { - let home = tempfile::tempdir().unwrap(); - run(home.path(), HostBundleCliOperation::Install, None, OLD_BIN).unwrap(); - let old_context_receipt = std::fs::read(receipt_path(home.path(), "context-mcp")).unwrap(); - run(home.path(), HostBundleCliOperation::Update, None, MID_BIN).unwrap(); - seed_legacy_receipt_beside_context_mcp(home.path()); - std::fs::write( - receipt_path(home.path(), "context-mcp"), - old_context_receipt, - ) - .unwrap(); - - run(home.path(), HostBundleCliOperation::Update, None, NEW_BIN) - .expect("the receipt matching disk proves ownership"); - - assert_eq!( - live_mcp_claims(home.path(), CURSOR_MCP), - [HostComponentV1::ContextMcp] - ); - assert!(!receipt_path(home.path(), "operator-mcp").exists()); - let mcp = std::fs::read_to_string(home.path().join(CURSOR_MCP)).unwrap(); - assert!(mcp.contains(NEW_BIN), "{mcp}"); -} - -#[test] -fn dual_claim_operator_uninstall_leaves_no_dangling_owner() { - let home = tempfile::tempdir().unwrap(); - dual_claim_install(home.path()); - - run( - home.path(), - HostBundleCliOperation::Uninstall, - Some(HostBundleComponentArg::OperatorMcp), - OLD_BIN, - ) - .unwrap(); - - assert!(!home.path().join(CURSOR_MCP).exists()); - assert!(live_mcp_claims(home.path(), CURSOR_MCP).is_empty()); - assert!(home.path().join(CURSOR_CORE_MANIFEST).is_file()); -} - -/// The dry run of a plain update over a legacy install refreshes the route -/// the legacy receipt owns; it never reports that as adopting a foreign file. -#[test] -fn dry_run_labels_a_legacy_owned_route_as_replaced() { - let home = tempfile::tempdir().unwrap(); - install_legacy_operator_mcp(home.path()); - - let owned = super::receipt_owned_paths( - &resolved_lifecycle_root(&ProfileRoot::under_home(home.path())), - HostKindV1::CursorDesktop, - HostComponentV1::ContextMcp, - ); - - assert_eq!( - super::artifact_disposition(&HostArtifactActionV1::Replace, &owned, CURSOR_MCP), - "replace" - ); -} diff --git a/crates/tracedecay-cli/src/cli.rs b/crates/tracedecay-cli/src/cli.rs index 1bf1e5107a..405e601860 100644 --- a/crates/tracedecay-cli/src/cli.rs +++ b/crates/tracedecay-cli/src/cli.rs @@ -76,10 +76,6 @@ pub enum HostBundleComponentArg { Core, Agent, ContextMcp, - /// Retired name of `context-mcp`, still accepted on the hosts that - /// offered it. - #[value(hide = true)] - OperatorMcp, } #[derive(Clone, Copy, Debug, Default)] diff --git a/crates/tracedecay-cli/src/startup_tests.rs b/crates/tracedecay-cli/src/startup_tests.rs index 08a28e3bd2..6b941822d5 100644 --- a/crates/tracedecay-cli/src/startup_tests.rs +++ b/crates/tracedecay-cli/src/startup_tests.rs @@ -151,20 +151,11 @@ fn default_component_set_adoption_requires_confirmation() { } } -/// Help offers one MCP component; scripts that spell the retired one still -/// parse. +/// Help offers the MCP component. #[test] -fn component_help_lists_one_mcp_choice_and_keeps_the_retired_spelling() { +fn component_help_lists_the_mcp_choice() { let help = Cli::command().render_long_help().to_string(); assert!(help.contains("context-mcp"), "{help}"); - assert!(!help.contains("operator-mcp"), "{help}"); - - let cli = Cli::try_parse_from(["tracedecay", "update-plugin", "--component", "operator-mcp"]) - .expect("the retired component spelling still parses"); - assert_eq!( - cli.component, - Some(super::HostBundleComponentArg::OperatorMcp) - ); } #[test] diff --git a/crates/tracedecay-domain/src/integration/descriptor.rs b/crates/tracedecay-domain/src/integration/descriptor.rs index de320b9896..bb9997d547 100644 --- a/crates/tracedecay-domain/src/integration/descriptor.rs +++ b/crates/tracedecay-domain/src/integration/descriptor.rs @@ -73,7 +73,6 @@ pub enum HostComponentV1 { Core, Agent, ContextMcp, - OperatorMcp, } #[derive(Clone, Debug, Eq, JsonSchema, PartialEq, Serialize)] @@ -133,19 +132,15 @@ impl HostKindV1 { } pub fn descriptor(self) -> HostDescriptorV1 { - use HostComponentV1::{Agent, ContextMcp, Core, OperatorMcp}; + use HostComponentV1::{Agent, ContextMcp, Core}; let (cli_id, slug, components) = match self { - HostKindV1::ClaudeCode => { - ("claude", "claude-code", vec![Core, ContextMcp, OperatorMcp]) + HostKindV1::ClaudeCode => ("claude", "claude-code", vec![Core, ContextMcp]), + HostKindV1::CursorDesktop => { + ("cursor", "cursor-desktop", vec![Core, Agent, ContextMcp]) } - HostKindV1::CursorDesktop => ( - "cursor", - "cursor-desktop", - vec![Core, Agent, ContextMcp, OperatorMcp], - ), HostKindV1::CursorCloud => ("cursor", "cursor-cloud", vec![]), - HostKindV1::Codex => ("codex", "codex", vec![Core, ContextMcp, OperatorMcp]), + HostKindV1::Codex => ("codex", "codex", vec![Core, ContextMcp]), HostKindV1::Devin => ("devin", "devin", vec![ContextMcp]), HostKindV1::Zed => ("zed", "zed", vec![ContextMcp]), HostKindV1::Antigravity => ("antigravity", "antigravity", vec![ContextMcp]), From 8054e10fbb336506ca6569adb1f70d0a9a63806e Mon Sep 17 00:00:00 2001 From: Zack Jackson <25274700+ScriptedAlchemy@users.noreply.github.com> Date: Wed, 28 Oct 2026 23:44:05 -0700 Subject: [PATCH 07/13] docs(agents): state the no-legacy rule in AGENTS.md Replace the guidance that allowed compatibility aliases, deprecation paths and data migrations once a prior shape shipped with the operator's rule: tracedecay keeps no legacy or backward-compatibility code. When a shape changes, every caller migrates and the old one is deleted; old stores, clients and hosts are refused through the typed reset and refusal paths, never shimmed. The zack-mode skill repeated the old allowance for time-boxed adapters and is updated to match. Upgrade impact: none (documentation only). Co-Authored-By: Claude Opus 5.5 --- .cursor/skills/zack-mode/SKILL.md | 4 ++-- AGENTS.md | 10 +++++----- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.cursor/skills/zack-mode/SKILL.md b/.cursor/skills/zack-mode/SKILL.md index d12229632f..7caea6aed2 100644 --- a/.cursor/skills/zack-mode/SKILL.md +++ b/.cursor/skills/zack-mode/SKILL.md @@ -33,8 +33,8 @@ before adding another abstraction. When replacing an internal API, read and apply the `principle-migrate-callers-then-delete-legacy-apis` skill (pstack plugin). Inventory and migrate every internal caller, then delete the legacy API in the -same wave. Use only time-boxed adapters. Do not add compatibility layers without -proven external or persisted consumers. +same wave. Add no adapters or compatibility layers: old stores, clients, and +hosts are refused through the typed reset and refusal paths. ## Delegation and ownership diff --git a/AGENTS.md b/AGENTS.md index 1b9c384712..acd33366cc 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -176,11 +176,11 @@ unauthorized external action after completing independent, authorized work. - Complete cutovers in one delivery slice: migrate every caller and datum, then delete compatibility façades, duplicate routes, old flags, dead aliases, and support code left from the move. -- Add a V2/V3 contract, compatibility alias, deprecation path, or data - migration only after proving the prior shape shipped on `origin/master`, in - a published package, or in a live persisted format. Branch-local and - unreleased contracts change in place; a `V1` suffix alone is not release - evidence and does not justify compatibility shims. +- Keep no legacy or backward-compatibility code. When a shape changes, + migrate every caller and delete the old one in the same slice. Old stores, + clients, and hosts are refused through the typed reset and refusal paths, + never shimmed: no compatibility aliases, deprecation paths, version floors + that branch to old behavior, or data migrations. - Keep boundaries explicit: use top-level explicit imports/reexports, avoid wildcard parent-child cycles and inline imports, maintain one generated wire authority, and do not hand-write duplicate DTOs. From 97ec6e5b054b6601ed7ddd8aa39513702c4f3264 Mon Sep 17 00:00:00 2001 From: Zack Jackson <25274700+ScriptedAlchemy@users.noreply.github.com> Date: Wed, 28 Oct 2026 23:46:19 -0700 Subject: [PATCH 08/13] refactor(runtime-core): drop the unreachable_pub allow (U3 follow-up) L018 follow-up: the allow and its comment described root shims that re-exported the extracted kernel. With windows_security removed the crate builds clean under Clippy on every target without it. Upgrade impact: none. Co-Authored-By: Claude Opus 5.5 --- crates/tracedecay-runtime-core/src/lib.rs | 5 ----- 1 file changed, 5 deletions(-) diff --git a/crates/tracedecay-runtime-core/src/lib.rs b/crates/tracedecay-runtime-core/src/lib.rs index 9af7db74d9..5ae5ade6c0 100644 --- a/crates/tracedecay-runtime-core/src/lib.rs +++ b/crates/tracedecay-runtime-core/src/lib.rs @@ -79,11 +79,6 @@ #![allow(clippy::missing_fields_in_debug)] #![allow(clippy::single_match_else)] #![allow(clippy::large_futures)] -// The kernel was extracted from a single crate where every intra-crate item -// was reachable through crate-restricted visibility. Crossing the crate -// boundary promoted those to `pub`; the root shims re-export them, so this -// public API is an artifact of the split, not new API. -#![allow(unreachable_pub)] #![allow(rustdoc::broken_intra_doc_links)] #![allow(rustdoc::private_intra_doc_links)] From bd64621c128008681a75e312d77e4c936e6ebcde Mon Sep 17 00:00:00 2001 From: Zack Jackson <25274700+ScriptedAlchemy@users.noreply.github.com> Date: Thu, 29 Oct 2026 01:00:59 -0700 Subject: [PATCH 09/13] refactor(config): remove retired setting keys and deprecation state (U7) Items removed: L026, L027, L028, L108, L040. - L108: delete RETIRED_CORE_SETTING_KEYS_V1 and RETIRED_PROFILE_SETTING_KEYS_V1 and the retired-key arguments, removals and drift allowance in converge_registry_shape and the profile store. A snapshot holding a retired key is configuration ResetRequired. - L027: delete AutomationTaskSettingsV1.legacy_stale_lock_secs and every retire_lock_timeout projection (automation config and admission, configuration get and pin, global-db convergence and rollback), plus RetiredAutomationLockTimeout. - L026: index include/exclude patterns are validated on read as well as write (validate_written_value is folded into validate_value). Delete partition_index_patterns, setting_findings, ConfigurationSettingFindingV1, ConfigurationSettingActionV1, ResolvedSetting.findings, ConfigurationDriftV1::Unapplied and unapplied_statement. The generated TypeScript SDK, dashboard contracts and embedded ChatGPT server bundle are regenerated. - L028: delete UserConfig RETIRED_KEYS and without_retired_keys and the USER-GUIDE counter history. - L040: delete DeprecationStateV1 and SettingDefinitionV1.deprecation. Callers migrated: automation config/admission, configuration operations and pin, daemon-service doctor_kernel and profile configuration get, global-db registry/store/mutation/control. Tests deleted: the retired-sync, retired-key convergence, released-key, retired-lock-timeout, stored-pattern-finding and profile retired-upload tests, the retired-keys half of the user config save test, and the retired-sync list/get assertions. Upgrade impact: a project or profile configuration store holding a retired key (diagnostics.prewarm.v1, index.git_ignore.v1, semantic.runtime.v1, sync.full_sync_escalation_files.v1, sync.max_concurrent_syncs.v1, sync.orphan_db_gc_days.v1, user.upload_enabled.v1, user.watcher_debounce_ms.v1, user.extraction_timeout_secs.v1), an automation value carrying stale_lock_secs, or an index include/exclude pattern that does not compile now returns configuration ResetRequired; reset the project or profile configuration and re-apply custom settings. Configuration get no longer returns `findings`; regenerate SDK clients. Dead keys left in config.toml stay as inert entries. Co-Authored-By: Claude Opus 5.5 --- .../src/automation/scheduler.rs | 1 - crates/tracedecay-automation/src/config.rs | 43 +- .../cli_non_interactive_test.rs | 7 - .../src/config/mod.rs | 172 +------- .../src/configuration/operations.rs | 186 +-------- .../tracedecay-contracts/src/configuration.rs | 25 -- crates/tracedecay-contracts/src/doctor/mod.rs | 8 +- .../src/doctor/sources.rs | 32 -- crates/tracedecay-contracts/src/lib.rs | 10 +- .../src/doctor_kernel.rs | 35 +- .../src/doctor_kernel/tests.rs | 82 ---- .../src/invocation/configuration/profile.rs | 2 - crates/tracedecay-domain/src/configuration.rs | 165 +------- crates/tracedecay-domain/src/lib.rs | 11 +- .../src/configuration/registry.rs | 170 +------- .../src/configuration/store.rs | 104 +---- .../src/configuration/store/control.rs | 6 +- .../src/configuration/store/mutation.rs | 16 +- .../src/configuration/store/tests/mod.rs | 375 +----------------- .../configuration/store/tests/persistence.rs | 121 +----- .../configuration/store/tests/retired_sync.rs | 221 ----------- crates/tracedecay-project/src/config/tests.rs | 102 +---- .../src/user_config.rs | 55 +-- .../tests/automation_runner_test/scheduler.rs | 20 +- .../schemas/dashboard-contracts.schema.json | 2 +- dashboard/src/contracts/decoders.ts | 6 +- docs/USER-GUIDE.md | 19 +- plugin/chatgpt-extension/embedded/server.mjs | 2 +- sdks/typescript/src/operations.ts | 10 +- 29 files changed, 100 insertions(+), 1908 deletions(-) delete mode 100644 crates/tracedecay-global-db/src/configuration/store/tests/retired_sync.rs diff --git a/crates/tracedecay-automation-runtime/src/automation/scheduler.rs b/crates/tracedecay-automation-runtime/src/automation/scheduler.rs index 53072d587d..3ef0244d77 100644 --- a/crates/tracedecay-automation-runtime/src/automation/scheduler.rs +++ b/crates/tracedecay-automation-runtime/src/automation/scheduler.rs @@ -685,7 +685,6 @@ const USER_JOB_TASK_CONFIG: AutomationTaskSettingsV1 = AutomationTaskSettingsV1 interval_secs: None, cooldown_secs: None, min_idle_secs: None, - legacy_stale_lock_secs: None, session_evidence_budget_backoff_secs: None, }; diff --git a/crates/tracedecay-automation/src/config.rs b/crates/tracedecay-automation/src/config.rs index cb64d5639f..234eac71ee 100644 --- a/crates/tracedecay-automation/src/config.rs +++ b/crates/tracedecay-automation/src/config.rs @@ -122,7 +122,6 @@ pub fn effective_config( project: Option<&AutomationConfigPatch>, ) -> Result { let mut config = global.clone(); - config.retire_lock_timeout(); if let Some(patch) = project { apply_patch(&mut config, patch); } @@ -171,8 +170,7 @@ impl AdmittedAutomationConfig { } pub fn admit_config(config: &AutomationSettingsV1) -> Result { - let mut config = config.clone(); - config.retire_lock_timeout(); + let config = config.clone(); if config.timeout_secs == 0 { return Err(config_error( "automation timeout_secs must be greater than zero", @@ -631,45 +629,6 @@ fn parse_schedule_duration_secs(value: &str) -> Option { mod tests { use super::*; - #[test] - fn effective_settings_retire_legacy_lock_timeout_and_patch_refuses_it() { - let mut stored = serde_json::to_value(AutomationSettingsV1::default()).unwrap(); - stored["tasks"]["memory_curator"]["stale_lock_secs"] = serde_json::json!(3600); - stored["tasks"]["session_reflector"]["stale_lock_secs"] = serde_json::Value::Null; - stored["timeout_secs"] = serde_json::json!(137); - let stored: AutomationSettingsV1 = serde_json::from_value(stored).unwrap(); - let historical_bytes = serde_json::to_vec(&stored).unwrap(); - let effective = effective_config(&stored, None).unwrap(); - assert_eq!(effective.timeout_secs, 137); - assert!(!effective.has_retired_lock_timeout()); - let admitted = admit_config(&stored).unwrap(); - assert_eq!(admitted.settings, effective); - assert!(!admitted.has_retired_lock_timeout()); - for (task, every_secs) in [ - (AgentTaskKind::MemoryCurator, 900), - (AgentTaskKind::SessionReflector, 900), - (AgentTaskKind::SkillWriter, 3600), - ] { - assert_eq!( - admitted.schedule(task), - Some(AutomationSchedule::Interval { every_secs }) - ); - } - assert!(stored.has_retired_lock_timeout()); - assert_eq!(serde_json::to_vec(&stored).unwrap(), historical_bytes); - for task in ["memory_curator", "session_reflector", "skill_writer"] { - for value in [serde_json::Value::Null, serde_json::json!(3600)] { - let patch = serde_json::json!({ (task): { "stale_lock_secs": value } }); - let error = serde_json::from_value::(patch).unwrap_err(); - assert!( - error - .to_string() - .contains("unknown field `stale_lock_secs`") - ); - } - } - } - #[test] fn session_evidence_budget_backoff_is_patchable_clearable_and_nonzero() { let base = AutomationSettingsV1::default(); diff --git a/crates/tracedecay-cli/tests/core_cli_suite/cli_non_interactive_test.rs b/crates/tracedecay-cli/tests/core_cli_suite/cli_non_interactive_test.rs index e9223ccdb8..97ec64e000 100644 --- a/crates/tracedecay-cli/tests/core_cli_suite/cli_non_interactive_test.rs +++ b/crates/tracedecay-cli/tests/core_cli_suite/cli_non_interactive_test.rs @@ -1964,13 +1964,6 @@ fn automation_config_set_writes_complete_canonical_project_setting_noninteractiv payload["effective"]["tasks"]["session_reflector"]["interval_secs"], 1800 ); - for task in ["memory_curator", "session_reflector", "skill_writer"] { - assert!( - payload["effective"]["tasks"][task] - .get("stale_lock_secs") - .is_none() - ); - } assert_eq!( payload["effective"]["tasks"]["memory_curator"]["cooldown_secs"], 300 diff --git a/crates/tracedecay-configuration/src/config/mod.rs b/crates/tracedecay-configuration/src/config/mod.rs index a1cba57ad5..12628536d7 100644 --- a/crates/tracedecay-configuration/src/config/mod.rs +++ b/crates/tracedecay-configuration/src/config/mod.rs @@ -18,7 +18,6 @@ use std::sync::{Arc, OnceLock}; use tracedecay_automation::Result as AutomationResult; use tracedecay_automation::config::{AdmittedAutomationConfig, admit_config}; -use tracedecay_contracts::{ConfigurationSettingActionV1, ConfigurationSettingFindingV1}; use tracedecay_domain::configuration::{ AUTOMATION_SETTINGS_SETTING_KEY, AutomationSettingsV1, ConfigurationRevisionId, ConfigurationSnapshotV1, ConfigurationValueV1, INDEX_EXCLUDE_SETTING_KEY, @@ -35,7 +34,7 @@ use tracedecay_domain::configuration::{ SYNC_WATCH_MAX_PROJECTS_SETTING_KEY, SettingKey, TELEMETRY_TIMINGS_SETTING_KEY, }; use tracedecay_domain::errors::{AutomationErrorMessage, Result, TraceDecayError}; -use tracedecay_domain::{IndexPathPolicyV1, ProjectId, validate_index_path_patterns}; +use tracedecay_domain::{IndexPathPolicyV1, ProjectId}; use tracedecay_global_db::configuration::contracts::ConfigurationCurrentStateV1; use tracedecay_global_db::{RegisteredGlobalDb, RegisteredGlobalDbLeaseV1}; @@ -270,18 +269,13 @@ fn runtime_config_from_snapshot( Ok(RuntimeTraceDecayConfig { automation: match required_setting(snapshot, AUTOMATION_SETTINGS_SETTING_KEY)? { ConfigurationValueV1::AutomationSettings(settings) => { - // Read-only pins can precede registry convergence. Project - // current settings without changing the historical snapshot - // or admitting schedules that reports still need to expose. - let mut current = settings.as_ref().clone(); - current.retire_lock_timeout(); - Arc::new(current) + Arc::new(settings.as_ref().clone()) } _ => return Err(config_error("expected automation settings")), }, index_paths: IndexPathPolicyV1::new( - applied_index_patterns(snapshot, INDEX_EXCLUDE_SETTING_KEY)?, - applied_index_patterns(snapshot, INDEX_INCLUDE_SETTING_KEY)?, + required_string_list(snapshot, INDEX_EXCLUDE_SETTING_KEY)?, + required_string_list(snapshot, INDEX_INCLUDE_SETTING_KEY)?, ) .map_err(|error| config_error(format!("resolved index path policy is invalid: {error}")))?, max_file_size: required_unsigned(snapshot, INDEX_MAX_FILE_SIZE_SETTING_KEY)?, @@ -395,65 +389,6 @@ pub fn required_string_list( } } -/// Splits a stored index path pattern list into the patterns indexing -/// applies and a finding for each one that does not compile. -/// -/// Writes refuse such a pattern, but an earlier release stored patterns it -/// never compiled. Refusing the whole pin would also refuse the `set` and -/// `unset` that repair it, so the pin applies the rest and -/// [`setting_findings`] reports each skipped pattern. -fn partition_index_patterns( - patterns: Vec, -) -> (Vec, Vec) { - // One set compiles when every member does; only a failing list needs the - // per-pattern compiles that name its invalid members. - if validate_index_path_patterns(&patterns).is_ok() { - return (patterns, Vec::new()); - } - let mut applied = Vec::with_capacity(patterns.len()); - let mut findings = Vec::new(); - for pattern in patterns { - match validate_index_path_patterns(std::slice::from_ref(&pattern)) { - Ok(()) => applied.push(pattern), - Err(error) => findings.push(ConfigurationSettingFindingV1::InvalidIndexPathPattern { - pattern, - message: error.message, - legal_actions: vec![ - ConfigurationSettingActionV1::Set, - ConfigurationSettingActionV1::Unset, - ], - }), - } - } - (applied, findings) -} - -fn applied_index_patterns( - snapshot: &ConfigurationSnapshotV1, - key_name: &str, -) -> Result> { - Ok(partition_index_patterns(required_string_list(snapshot, key_name)?).0) -} - -/// The parts of a stored `value` for `key` that the runtime configuration -/// does not apply. -pub fn setting_findings( - key: &SettingKey, - value: &ConfigurationValueV1, -) -> Vec { - match value { - ConfigurationValueV1::StringList(patterns) - if matches!( - key.as_str(), - INDEX_EXCLUDE_SETTING_KEY | INDEX_INCLUDE_SETTING_KEY - ) => - { - partition_index_patterns(patterns.clone()).1 - } - _ => Vec::new(), - } -} - fn required_lcm_summarizer_executables( snapshot: &ConfigurationSnapshotV1, ) -> Result { @@ -481,10 +416,9 @@ mod tests { use tracedecay_domain::ProjectId; use tracedecay_domain::configuration::{ AUTOMATION_SETTINGS_SETTING_KEY, ConfigurationLayerIdV1, ConfigurationRevisionId, - ConfigurationSnapshotV1, ConfigurationValueV1, INDEX_EXCLUDE_SETTING_KEY, - INDEX_MAX_FILE_SIZE_SETTING_KEY, SYNC_READ_COOLDOWN_SECS_SETTING_KEY, - SYNC_WATCH_DEBOUNCE_MS_SETTING_KEY, SYNC_WATCH_LINKED_WORKTREES_SETTING_KEY, - SYNC_WATCH_MAX_PROJECTS_SETTING_KEY, SettingKey, + ConfigurationSnapshotV1, ConfigurationValueV1, INDEX_MAX_FILE_SIZE_SETTING_KEY, + SYNC_READ_COOLDOWN_SECS_SETTING_KEY, SYNC_WATCH_DEBOUNCE_MS_SETTING_KEY, + SYNC_WATCH_LINKED_WORKTREES_SETTING_KEY, SYNC_WATCH_MAX_PROJECTS_SETTING_KEY, SettingKey, }; use tracedecay_domain::errors::TraceDecayError; @@ -573,7 +507,7 @@ mod tests { } #[test] - fn pin_decodes_supported_sync_settings_without_retired_keys() { + fn pin_decodes_supported_sync_settings() { let complete = resolved(BTreeMap::from([ ( SettingKey::new(SYNC_WATCH_LINKED_WORKTREES_SETTING_KEY).unwrap(), @@ -592,17 +526,7 @@ mod tests { ConfigurationValueV1::Unsigned(45), ), ])); - let mut values = complete.effective_values; - let mut provenance = complete.provenance; - for raw_key in [ - "sync.full_sync_escalation_files.v1", - "sync.max_concurrent_syncs.v1", - ] { - let key = SettingKey::new(raw_key).unwrap(); - values.remove(&key); - provenance.remove(&key); - } - let snapshot = ConfigurationSnapshotV1::new(values, provenance).unwrap(); + let snapshot = complete; let pinned = PinnedRuntimeConfiguration::new(target(), revision(), snapshot).unwrap(); @@ -661,23 +585,6 @@ mod tests { )); } - #[test] - fn pin_skips_a_stored_index_pattern_that_no_longer_compiles() { - // An earlier release accepted patterns it never compiled; loading - // one must not take every tool down with the configuration. - let key = SettingKey::new(INDEX_EXCLUDE_SETTING_KEY).unwrap(); - let stored = resolved(BTreeMap::from([( - key, - ConfigurationValueV1::StringList(vec!["src/[abc".to_owned(), "docs/**".to_owned()]), - )])); - - let pinned = PinnedRuntimeConfiguration::new(target(), revision(), stored).unwrap(); - - assert_eq!(pinned.config().index_paths.exclude_patterns(), ["docs/**"]); - assert!(pinned.config().index_paths.excludes("docs/guide.md")); - assert!(!pinned.config().index_paths.excludes("src/a")); - } - #[test] fn retargeting_shares_the_snapshot_and_keeps_the_revision() { let pinned = @@ -700,67 +607,6 @@ mod tests { assert_eq!(moved.config(), pinned.config()); } - #[test] - fn pin_projects_retired_automation_settings_without_rewriting_history() { - let key = SettingKey::new(AUTOMATION_SETTINGS_SETTING_KEY).unwrap(); - let task = tracedecay_automation::backend::AgentTaskKind::MemoryCurator; - for schedule in ["every 10m", "after lunch"] { - let mut settings = tracedecay_automation::config::AutomationSettingsV1::default(); - settings.tasks.memory_curator.schedule = Some(schedule.to_owned()); - settings.tasks.memory_curator.interval_secs = Some(5); - let mut snapshot = resolved(BTreeMap::from([( - key.clone(), - ConfigurationValueV1::AutomationSettings(Box::new(settings.clone())), - )])); - let mut historical_settings = serde_json::to_value(&settings).unwrap(); - historical_settings["tasks"]["memory_curator"]["stale_lock_secs"] = - serde_json::json!(3600); - historical_settings["tasks"]["session_reflector"]["stale_lock_secs"] = - serde_json::Value::Null; - // The third task keeps the absent historical representation. - snapshot.effective_values.insert( - key.clone(), - ConfigurationValueV1::AutomationSettings(Box::new( - serde_json::from_value(historical_settings).unwrap(), - )), - ); - let historical = - ConfigurationSnapshotV1::new(snapshot.effective_values, snapshot.provenance) - .unwrap(); - let stored_bytes = serde_json::to_vec(&historical).unwrap(); - - let pin = PinnedRuntimeConfiguration::new( - target(), - revision(), - serde_json::from_slice(&stored_bytes).unwrap(), - ) - .unwrap(); - - assert_eq!(pin.config().automation.as_ref(), &settings); - let effective = serde_json::to_value(pin.config().automation.as_ref()).unwrap(); - for task in ["memory_curator", "session_reflector", "skill_writer"] { - assert!(effective["tasks"][task].get("stale_lock_secs").is_none()); - } - assert_eq!(serde_json::to_vec(pin.snapshot()).unwrap(), stored_bytes); - pin.snapshot().validate().unwrap(); - if schedule == "every 10m" { - assert_eq!( - pin.admitted_automation().unwrap().schedule(task), - Some( - tracedecay_automation::config::AutomationSchedule::Interval { - every_secs: 600, - } - ), - ); - } else { - assert!(matches!( - pin.admitted_automation(), - Err(TraceDecayError::Automation(_)) - )); - } - } - } - #[test] fn pin_retains_schedule_admission_without_refusing_raw_settings() { let key = diff --git a/crates/tracedecay-configuration/src/configuration/operations.rs b/crates/tracedecay-configuration/src/configuration/operations.rs index 8115fb6a6a..ff3b30164b 100644 --- a/crates/tracedecay-configuration/src/configuration/operations.rs +++ b/crates/tracedecay-configuration/src/configuration/operations.rs @@ -3,8 +3,8 @@ use tracedecay_domain::configuration::{ ACCESS_RULES_SETTING_KEY, ChangePlanId, ConfigurationMutationEffectV1, ConfigurationMutationOperationV1, ConfigurationMutationSinkV1, ConfigurationRevisionId, - ConfigurationValueV1, ProtectedApplyRequest, ProtectedChange, ProtectedChangePlan, - RollbackModeV1, SOURCE_BINDINGS_SETTING_KEY, SettingKey, WORK_TOPOLOGY_POLICY_SETTING_KEY, + ProtectedApplyRequest, ProtectedChange, ProtectedChangePlan, RollbackModeV1, + SOURCE_BINDINGS_SETTING_KEY, SettingKey, WORK_TOPOLOGY_POLICY_SETTING_KEY, }; use tracedecay_domain::{UtcMicros, canonical_sha256}; @@ -12,7 +12,6 @@ use crate::config::registry::ConfigurationRegistry; use crate::config::scope_control::{ ProtectedChangePlanDraftV1, plan_protected_change, validate_apply_binding, }; -use crate::config::setting_findings; use tracedecay_global_db::configuration::contracts::ports::{ ConfigurationControlStore, ConfigurationMutationAuthorizationPort, ConfigurationOperationFuture, CurrentConfigurationMutationAuthorizationV1, ScopeResolutionPort, @@ -157,20 +156,13 @@ where // default is the authority for that case. Reporting it as // not-found made every install that predates a key's registration // look as though the setting did not exist. - let mut effective_value = current + let effective_value = current .snapshot .effective_values .get(&key) .cloned() .unwrap_or_else(|| definition.default_value.clone()); - // A read-only store, or a concurrent write during convergence, - // can still carry the historical field. Project today's settings - // without changing the source snapshot or its CAS identity. - if let ConfigurationValueV1::AutomationSettings(settings) = &mut effective_value { - settings.retire_lock_timeout(); - } Ok(ResolvedSetting { - findings: setting_findings(&key, &effective_value), key: key.clone(), effective_value, revision_id: current.revision_id, @@ -532,7 +524,7 @@ fn validate_direct_mutation( .validate_layer(key, layer) .map_err(ConfigurationError::validation)?; registry - .validate_written_value(key, value) + .validate_value(key, value) .map_err(ConfigurationError::validation) } DirectConfigurationMutation::Unset { layer, key } => { @@ -623,13 +615,11 @@ mod tests { use std::sync::Mutex; use super::*; - use crate::config::registry::{ConfigurationRegistry, ConfigurationRegistryError}; + use crate::config::registry::ConfigurationRegistry; use tracedecay_domain::configuration::{ - AUTOMATION_SETTINGS_SETTING_KEY, AuthorityRef, AutomationSettingsV1, - CandidateDispositionV1, ConfigurationCandidateV1, ConfigurationGrantId, - ConfigurationGrantReceiptId, ConfigurationLayerIdV1, ConfigurationMutationGrantReceiptV1, - ConfigurationSnapshotV1, ConfigurationValueV1, ProtectedChange, ScopeSourceBinding, - SettingKey, SourceBindingId, SourceKindV1, + AuthorityRef, ConfigurationGrantId, ConfigurationGrantReceiptId, ConfigurationLayerIdV1, + ConfigurationMutationGrantReceiptV1, ConfigurationSnapshotV1, ConfigurationValueV1, + ProtectedChange, ScopeSourceBinding, SettingKey, SourceBindingId, SourceKindV1, }; use tracedecay_domain::{AccessPolicyDigest, ActorId, LocatorDigest, ProjectId}; use tracedecay_global_db::configuration::contracts::ports::{ @@ -833,53 +823,8 @@ mod tests { assert_eq!(result, Err(ConfigurationError::PolicyWideningForbidden)); } - #[test] - fn direct_mutation_rejects_retired_sync_settings() { - let registry = ConfigurationRegistry::core().unwrap(); - let layer = ConfigurationLayerIdV1::Project { - project_id: id::("project.configuration.sync"), - }; - let retained = DirectConfigurationMutation::Set { - layer: layer.clone(), - key: SettingKey::new("sync.watch_max_projects.v1").unwrap(), - value: Box::new(ConfigurationValueV1::Unsigned(7)), - }; - assert_eq!(validate_direct_mutation(®istry, &retained), Ok(())); - - for raw_key in [ - "sync.full_sync_escalation_files.v1", - "sync.max_concurrent_syncs.v1", - ] { - let key = SettingKey::new(raw_key).unwrap(); - let expected = ConfigurationError::validation( - ConfigurationRegistryError::UnknownSetting(key.clone()), - ); - let set = DirectConfigurationMutation::Set { - layer: layer.clone(), - key: key.clone(), - value: Box::new(ConfigurationValueV1::Unsigned(9)), - }; - for mutation in [ - set.clone(), - DirectConfigurationMutation::Unset { - layer: layer.clone(), - key, - }, - DirectConfigurationMutation::Batch { - mutations: vec![retained.clone(), set], - }, - ] { - assert_eq!( - validate_direct_mutation(®istry, &mutation), - Err(expected.clone()), - "retired settings must reject every direct write form: {mutation:?}" - ); - } - } - } - #[asupersync::test] - async fn retired_sync_settings_are_absent_from_list_and_get() { + async fn retained_sync_settings_are_listed_and_resolve_to_their_default() { let registry = ConfigurationRegistry::core().unwrap(); let store = Store { current: ConfigurationCurrentStateV1 { @@ -929,23 +874,6 @@ mod tests { .effective_value, ConfigurationValueV1::Unsigned(32) ); - - for raw_key in [ - "sync.full_sync_escalation_files.v1", - "sync.max_concurrent_syncs.v1", - ] { - let key = SettingKey::new(raw_key).unwrap(); - assert!( - !listed.iter().any(|setting| setting.key == key), - "{raw_key}" - ); - assert_eq!( - operations.get(actor.clone(), key.clone()).await, - Err(ConfigurationError::validation( - ConfigurationRegistryError::UnknownSetting(key) - )) - ); - } } #[test] @@ -1041,102 +969,6 @@ mod tests { ); } - #[asupersync::test] - async fn get_projects_retired_automation_fields_without_rewriting_the_source_snapshot() { - let key = SettingKey::new(AUTOMATION_SETTINGS_SETTING_KEY).unwrap(); - let revision_id: ConfigurationRevisionId = id("configuration.revision.legacy-timeout"); - let expected = AutomationSettingsV1 { - timeout_secs: 137, - ..AutomationSettingsV1::default() - }; - let mut stored = serde_json::to_value(&expected).unwrap(); - stored["tasks"]["memory_curator"]["stale_lock_secs"] = serde_json::json!(3600); - stored["tasks"]["session_reflector"]["stale_lock_secs"] = serde_json::Value::Null; - let snapshot = ConfigurationSnapshotV1::new( - BTreeMap::from([( - key.clone(), - ConfigurationValueV1::AutomationSettings(Box::new( - serde_json::from_value(stored).unwrap(), - )), - )]), - BTreeMap::from([( - key.clone(), - vec![ConfigurationCandidateV1 { - layer: ConfigurationLayerIdV1::Project { - project_id: id("project.fixture"), - }, - revision_id: revision_id.clone(), - disposition: CandidateDispositionV1::Winning, - safe_reason: None, - }], - )]), - ) - .unwrap(); - let stored_bytes = serde_json::to_vec(&snapshot).unwrap(); - let store = Store { - current: ConfigurationCurrentStateV1 { - revision_id: revision_id.clone(), - snapshot: snapshot.clone(), - }, - saved: Mutex::new(None), - replay: Mutex::new(None), - }; - let registry = ConfigurationRegistry::core().unwrap(); - let authorization = Authorization { - current: CurrentConfigurationMutationAuthorizationV1 { - grant_revision: 1, - grant_digest: digest('c'), - scope_digest: digest('a'), - policy_epoch: 7, - policy_digest: policy_digest('b'), - }, - }; - let scope = Scope { - evidence: ScopeRevalidationEvidenceV1 { - resolved_scope_digest: digest('a'), - membership_digest: None, - authorization_policy_digest: policy_digest('b'), - policy_epoch: 7, - }, - }; - let operations = ConfigurationControlPlaneOperations::new( - ®istry, - &store, - &scope, - &authorization, - clock, - ); - let resolved = operations - .get( - AuthorizedActor { - actor_id: id("actor.configuration.read"), - }, - key.clone(), - ) - .await - .unwrap(); - assert_eq!( - resolved.effective_value, - ConfigurationValueV1::AutomationSettings(Box::new(expected)) - ); - assert_eq!(resolved.revision_id, revision_id); - assert_eq!(resolved.snapshot_id, snapshot.snapshot_id); - assert_eq!( - resolved.effective_behavior_digest, - snapshot.effective_behavior_digest - ); - assert_eq!( - resolved.resolution_provenance_digest, - snapshot.resolution_provenance_digest - ); - assert_eq!(resolved.candidates, snapshot.provenance[&key]); - store.current.snapshot.validate().unwrap(); - assert_eq!( - serde_json::to_vec(&store.current.snapshot).unwrap(), - stored_bytes - ); - } - #[asupersync::test] async fn protected_dry_run_persists_the_exact_operation_beside_its_redacted_plan() { let revision_id: ConfigurationRevisionId = id("configuration.revision.fixture"); diff --git a/crates/tracedecay-contracts/src/configuration.rs b/crates/tracedecay-contracts/src/configuration.rs index e5c655b317..0923f9ac93 100644 --- a/crates/tracedecay-contracts/src/configuration.rs +++ b/crates/tracedecay-contracts/src/configuration.rs @@ -149,31 +149,6 @@ pub struct ResolvedSetting { pub effective_behavior_digest: ManifestDigest, pub resolution_provenance_digest: ManifestDigest, pub candidates: Vec, - /// Parts of the stored value this release does not apply. Empty when the - /// effective value applies in full. - pub findings: Vec, -} - -/// A stored value the running release keeps but does not apply. The value -/// stays readable so `legal_actions` on the same key can replace it. -#[derive(Clone, Debug, Serialize, Deserialize, JsonSchema, PartialEq, Eq)] -#[serde(tag = "kind", rename_all = "snake_case", deny_unknown_fields)] -pub enum ConfigurationSettingFindingV1 { - /// An `index.exclude.v1` / `index.include.v1` pattern that does not - /// compile. An earlier release stored it unchecked; indexing runs - /// without it. - InvalidIndexPathPattern { - pattern: String, - message: String, - legal_actions: Vec, - }, -} - -#[derive(Clone, Copy, Debug, Serialize, Deserialize, JsonSchema, PartialEq, Eq)] -#[serde(rename_all = "snake_case")] -pub enum ConfigurationSettingActionV1 { - Set, - Unset, } #[derive(Clone, Copy, Debug, Serialize, Deserialize, JsonSchema, PartialEq, Eq)] diff --git a/crates/tracedecay-contracts/src/doctor/mod.rs b/crates/tracedecay-contracts/src/doctor/mod.rs index d8f586343e..cd5a701ad1 100644 --- a/crates/tracedecay-contracts/src/doctor/mod.rs +++ b/crates/tracedecay-contracts/src/doctor/mod.rs @@ -35,10 +35,10 @@ pub use sources::{ ProfileAuthorityReadV1, RemoteAuthorityReadV1, RemoteListenerReadV1, RemoteOperationalReadV1, ResidentMemoryDoctorPort, ResidentMemoryHolderReadV1, ResidentMemoryOwnerReadV1, ResidentMemoryReadV1, RuntimeHealthDoctorPort, RuntimeHealthReadV1, RuntimeLivenessV1, - StorageDoctorPort, UnappliedConfigurationSettingV1, advisory_feedback_findings, - code_index_finding, configuration_finding, github_source_finding, host_integration_finding, - ingest_refusal_finding, language_server_finding, observability_finding, - operational_audit_findings, resident_memory_findings, runtime_health_finding, + StorageDoctorPort, advisory_feedback_findings, code_index_finding, configuration_finding, + github_source_finding, host_integration_finding, ingest_refusal_finding, + language_server_finding, observability_finding, operational_audit_findings, + resident_memory_findings, runtime_health_finding, }; pub use types::{ DoctorCoverageCompletenessV1, DoctorCoverageStatementV1, DoctorEvidenceRefV1, diff --git a/crates/tracedecay-contracts/src/doctor/sources.rs b/crates/tracedecay-contracts/src/doctor/sources.rs index 86724f3843..2d99b7bc95 100644 --- a/crates/tracedecay-contracts/src/doctor/sources.rs +++ b/crates/tracedecay-contracts/src/doctor/sources.rs @@ -36,7 +36,6 @@ use std::pin::Pin; use schemars::JsonSchema; use serde::{Deserialize, Serialize}; use sha2::{Digest, Sha256}; -use tracedecay_domain::configuration::SettingKey; use tracedecay_domain::{ CodeGenerationId, FeedbackCycleId, FeedbackCycleTerminationV1, FeedbackFindingId, FeedbackFindingLifecycleV1, FeedbackResultId, FeedbackScopeV1, ProviderEvaluationStateV1, @@ -44,7 +43,6 @@ use tracedecay_domain::{ }; use crate::RequestContext; -use crate::configuration::ConfigurationSettingFindingV1; use crate::error::ApplicationContractError; use crate::storage::findings::truncate_at_char_boundary; @@ -134,32 +132,6 @@ pub enum ConfigurationDriftV1 { Drifted, /// A requested pin could not be honored by the authority. PinUnavailable, - /// The resolved configuration stores values the effective configuration - /// leaves unapplied. - Unapplied(Vec), -} - -/// One stored setting value the effective configuration does not apply. -#[derive(Clone, Debug, Serialize, Deserialize, PartialEq, Eq)] -pub struct UnappliedConfigurationSettingV1 { - pub key: SettingKey, - pub finding: ConfigurationSettingFindingV1, -} - -fn unapplied_statement(settings: &[UnappliedConfigurationSettingV1]) -> String { - let statements = settings.iter().map(|setting| { - let key = setting.key.as_str(); - match &setting.finding { - ConfigurationSettingFindingV1::InvalidIndexPathPattern { - pattern, message, .. - } => format!( - "{key} stores pattern {pattern:?} that does not compile ({message}); indexing \ - runs without it. Set {key} to patterns that compile or unset it \ - (tracedecay_configuration_set / tracedecay_configuration_unset)" - ), - } - }); - bounded_statement(&statements.collect::>().join("; ")) } /// One configuration-authority resolve/pin health read. @@ -210,10 +182,6 @@ pub fn configuration_finding( "configuration.resolved.pin-unavailable", Cow::Borrowed("a requested configuration pin could not be honored"), ), - ConfigurationDriftV1::Unapplied(settings) => ( - "configuration.resolved.unapplied", - Cow::Owned(unapplied_statement(settings)), - ), }; let state = DoctorEvidenceStateV1::Degraded; source_finding(family, state, reference, *coverage, &statement) diff --git a/crates/tracedecay-contracts/src/lib.rs b/crates/tracedecay-contracts/src/lib.rs index 1edbdfd75c..610b8ad95e 100644 --- a/crates/tracedecay-contracts/src/lib.rs +++ b/crates/tracedecay-contracts/src/lib.rs @@ -126,11 +126,11 @@ pub use configuration::{ ConfigurationGetRequestV1, ConfigurationListRequestV1, ConfigurationMutationReceipt, ConfigurationObservedStateRequestV1, ConfigurationProtectedApplyRequestV1, ConfigurationProtectedPreviewRequestV1, ConfigurationRollbackPreviewRequestV1, - ConfigurationSetRequestV1, ConfigurationSettingActionV1, ConfigurationSettingFindingV1, - ConfigurationUnsetRequestV1, ConfigurationWireRequestV1, ResolvedSetting, SettingSummary, - configuration_surface_catalog_contribution, configuration_surface_handler_descriptors, - configuration_surface_operation, configuration_surface_request_schema, - configuration_surface_result_schema, configuration_wire_request_from_invocation_payload, + ConfigurationSetRequestV1, ConfigurationUnsetRequestV1, ConfigurationWireRequestV1, + ResolvedSetting, SettingSummary, configuration_surface_catalog_contribution, + configuration_surface_handler_descriptors, configuration_surface_operation, + configuration_surface_request_schema, configuration_surface_result_schema, + configuration_wire_request_from_invocation_payload, }; pub use context::{ APPLICATION_REQUEST_ID_HEADER, ApplicationRequestControlV1, CancellationContext, diff --git a/crates/tracedecay-daemon-service/src/doctor_kernel.rs b/crates/tracedecay-daemon-service/src/doctor_kernel.rs index b41c34854e..4cf7865432 100644 --- a/crates/tracedecay-daemon-service/src/doctor_kernel.rs +++ b/crates/tracedecay-daemon-service/src/doctor_kernel.rs @@ -16,7 +16,7 @@ use tracedecay_application::advisory::github_runtime::{ }; use tracedecay_code_index_runtime::code_index_scheduler::CodeIndexSchedulerRegistryV1; use tracedecay_code_index_runtime::code_index_scheduler::identity::repository_id_for; -use tracedecay_configuration::config::{PinnedRuntimeConfiguration, setting_findings}; +use tracedecay_configuration::config::PinnedRuntimeConfiguration; use tracedecay_contracts::code_index_freshness::CodeIndexStalenessStateV1; use tracedecay_contracts::doctor::{ AdvisoryFeedbackDoctorPort, AdvisoryFeedbackReadV1, CodeIndexMountDoctorPort, @@ -31,8 +31,8 @@ use tracedecay_contracts::doctor::{ ProfileAuthorityReadV1, RemoteOperationalReadV1, ResidentMemoryDoctorPort, ResidentMemoryHolderReadV1, ResidentMemoryOwnerReadV1, ResidentMemoryReadV1, RuntimeHealthDoctorPort, RuntimeHealthReadV1, StorageDoctorPort, - UnappliedConfigurationSettingV1, advisory_feedback_read_from_publication, merge_storage_reads, - runtime_health_read, storage_family_read, + advisory_feedback_read_from_publication, merge_storage_reads, runtime_health_read, + storage_family_read, }; use tracedecay_contracts::request_identity::{GlobalRequestSurface, mint_global_request_id}; use tracedecay_contracts::storage::SchemaConvergenceFindingV1; @@ -55,37 +55,18 @@ const DOCTOR_CONTEXT_HORIZON_MICROS: i64 = 30_000_000; /// Map a real pinned-configuration lookup outcome into a kernel read. /// -/// A pinned snapshot is in sync only when the runtime configuration applies -/// every stored value; each part [`setting_findings`] reports it leaves -/// unapplied makes the read [`ConfigurationDriftV1::Unapplied`]. A cold cache, -/// the fail-closed accessor's `Err`, is a typed +/// A pinned snapshot is in sync. A cold cache, the fail-closed accessor's +/// `Err`, is a typed /// [`ConfigurationAuthorityReadV1::Absent`], never a fabricated healthy result. #[must_use] pub fn configuration_read_from_pin( resolved: &Result, ) -> ConfigurationAuthorityReadV1 { - let Ok(pinned) = resolved else { + if resolved.is_err() { return ConfigurationAuthorityReadV1::Absent; - }; - let unapplied: Vec<_> = pinned - .snapshot() - .effective_values - .iter() - .flat_map(|(key, value)| { - setting_findings(key, value).into_iter().map(|finding| { - UnappliedConfigurationSettingV1 { - key: key.clone(), - finding, - } - }) - }) - .collect(); + } ConfigurationAuthorityReadV1::Resolved { - drift: if unapplied.is_empty() { - ConfigurationDriftV1::InSync - } else { - ConfigurationDriftV1::Unapplied(unapplied) - }, + drift: ConfigurationDriftV1::InSync, coverage: DoctorCoverageCompletenessV1::Complete, } } diff --git a/crates/tracedecay-daemon-service/src/doctor_kernel/tests.rs b/crates/tracedecay-daemon-service/src/doctor_kernel/tests.rs index 652cc56df5..40adab5f4f 100644 --- a/crates/tracedecay-daemon-service/src/doctor_kernel/tests.rs +++ b/crates/tracedecay-daemon-service/src/doctor_kernel/tests.rs @@ -27,88 +27,6 @@ fn configuration_read_from_pin_absent_on_cold_cache() { ); } -fn pinned_index_exclude( - patterns: &[&str], -) -> tracedecay_configuration::config::PinnedRuntimeConfiguration { - use tracedecay_configuration::config::registry::ConfigurationRegistry; - use tracedecay_configuration::config::resolver::{ConfigurationLayerV1, resolve_configuration}; - use tracedecay_domain::configuration::{ - ConfigurationLayerIdV1, ConfigurationRevisionId, ConfigurationValueV1, - INDEX_EXCLUDE_SETTING_KEY, SettingKey, - }; - - let project_id = tracedecay_domain::ProjectId::new("project.doctor-unapplied-exclude").unwrap(); - let revision = ConfigurationRevisionId::new("configuration.revision.doctor-exclude").unwrap(); - let snapshot = resolve_configuration( - &ConfigurationRegistry::core().unwrap(), - &[ConfigurationLayerV1 { - layer: ConfigurationLayerIdV1::Project { - project_id: project_id.clone(), - }, - revision_id: revision.clone(), - entries: std::collections::BTreeMap::from([( - SettingKey::new(INDEX_EXCLUDE_SETTING_KEY).unwrap(), - ConfigurationValueV1::StringList( - patterns - .iter() - .map(|pattern| (*pattern).to_owned()) - .collect(), - ), - )]), - }], - ) - .expect("read-time validation admits a stored pattern") - .snapshot; - tracedecay_configuration::config::PinnedRuntimeConfiguration::new( - tracedecay_configuration::config::RuntimeConfigurationTarget { - profile_root: std::path::PathBuf::from("/profile"), - project_id, - project_root: std::path::PathBuf::from("/project"), - }, - revision, - snapshot, - ) - .expect("an unapplied pattern must not refuse the pin") -} - -/// A stored exclude pattern the pin skips is configuration out of sync with -/// what the operator stored, never "matches the resolved authority". -#[test] -fn configuration_finding_reports_a_stored_pattern_the_pin_leaves_unapplied() { - use tracedecay_contracts::doctor::{DoctorEvidenceStateV1, configuration_finding}; - - let finding = |patterns: &[&str]| { - let read = configuration_read_from_pin::<&str>(&Ok(pinned_index_exclude(patterns))); - let finding = configuration_finding(&read).expect("configuration finding"); - ( - finding.state(), - finding.evidence()[0].reference().as_str().to_owned(), - finding.coverage().statement().to_owned(), - ) - }; - - assert_eq!( - finding(&["src/[abc", "docs/**"]), - ( - DoctorEvidenceStateV1::Degraded, - "configuration.resolved.unapplied".to_owned(), - "index.exclude.v1 stores pattern \"src/[abc\" that does not compile (unclosed \ - character class; missing ']'); indexing runs without it. Set index.exclude.v1 to \ - patterns that compile or unset it (tracedecay_configuration_set / \ - tracedecay_configuration_unset)" - .to_owned(), - ) - ); - assert_eq!( - finding(&["docs/**"]), - ( - DoctorEvidenceStateV1::HealthyCompleteCoverage, - "configuration.resolved.in-sync".to_owned(), - "effective configuration matches the resolved authority".to_owned(), - ) - ); -} - async fn audit_verdict(database: &tracedecay_runtime_core::db::Database) -> Option { tracedecay_global_db::schema_stages::audit_observation_authority( database, diff --git a/crates/tracedecay-daemon-service/src/invocation/configuration/profile.rs b/crates/tracedecay-daemon-service/src/invocation/configuration/profile.rs index c94af06545..20c44ad042 100644 --- a/crates/tracedecay-daemon-service/src/invocation/configuration/profile.rs +++ b/crates/tracedecay-daemon-service/src/invocation/configuration/profile.rs @@ -2,7 +2,6 @@ //! profile's own `ProfileSessions` store owns. No project is opened or named. use super::*; -use tracedecay_configuration::config::setting_findings; use tracedecay_domain::configuration::{ ConfigurationLayerIdV1, SettingKey, USER_CODE_INDEX_WORKERS_SETTING_KEY, UserProfileId, }; @@ -121,7 +120,6 @@ async fn profile_configuration_outcome( .cloned() .ok_or(ConfigurationError::Unavailable)?; let setting = ResolvedSetting { - findings: setting_findings(&request.key, &effective_value), candidates: current .snapshot .provenance diff --git a/crates/tracedecay-domain/src/configuration.rs b/crates/tracedecay-domain/src/configuration.rs index 668d6d3977..601a3eb328 100644 --- a/crates/tracedecay-domain/src/configuration.rs +++ b/crates/tracedecay-domain/src/configuration.rs @@ -44,38 +44,6 @@ pub const CONTEXT_SCOUT_SETTINGS_SETTING_KEY: &str = "context_scout.settings.v1" pub const AUTOMATION_SETTINGS_SETTING_KEY: &str = "automation.settings.v1"; pub const LCM_SUMMARIZER_EXECUTABLES_SETTING_KEY: &str = "lcm.summarizer_executables.v1"; -/// Core setting keys that shipped in published betas and were then retired. -/// A persisted snapshot carrying one converges by dropping it; its value has -/// no registered owner anymore. `semantic.runtime.v1` shipped through -/// v0.1.0-beta.37 and left with the dense retrieval runtime; -/// `sync.orphan_db_gc_days.v1` shipped through v0.1.0-beta.50 and left with -/// the orphan branch-database sweep; `index.git_ignore.v1` shipped through -/// v0.1.0-beta.50 and left because the code index is defined by Git's view -/// of the worktree, which always honors `.gitignore`. The upload, -/// watcher-debounce, and extraction-timeout user settings were stored in each -/// project's snapshot through v1.0.0-beta.61 and now live only in the profile -/// store ([`PROFILE_SETTING_KEYS_V1`]). `diagnostics.prewarm.v1` shipped -/// through v1.0.0-beta.83 and left with the compile-on-read cargo prewarm. -/// The full-sync escalation and concurrent-sync settings were retired because -/// sync execution does not read them. -pub const RETIRED_CORE_SETTING_KEYS_V1: &[&str] = &[ - "diagnostics.prewarm.v1", - "index.git_ignore.v1", - "semantic.runtime.v1", - "sync.full_sync_escalation_files.v1", - "sync.max_concurrent_syncs.v1", - "sync.orphan_db_gc_days.v1", - "user.upload_enabled.v1", - USER_WATCHER_DEBOUNCE_MS_SETTING_KEY, - USER_EXTRACTION_TIMEOUT_SECS_SETTING_KEY, -]; - -/// Profile setting keys that shipped and were then retired. A profile store -/// carrying one converges by dropping it on the next read; the value has no -/// registered owner anymore. `user.upload_enabled.v1` was the opt-in of the -/// worldwide token counter, removed without a final upload. -pub const RETIRED_PROFILE_SETTING_KEYS_V1: &[&str] = &["user.upload_enabled.v1"]; - /// Canonical user-profile settings. pub const USER_REPEATED_QUERY_HINTS_SETTING_KEY: &str = "user.repeated_query_hints.v1"; pub const USER_CODE_INDEX_WORKERS_SETTING_KEY: &str = "user.code_index_workers.v1"; @@ -527,24 +495,6 @@ pub enum RestartRequirementV1 { DaemonRestart, } -#[derive(Clone, Debug, Serialize, Deserialize, PartialEq, Eq)] -#[serde(rename_all = "snake_case", tag = "state")] -pub enum DeprecationStateV1 { - Active, - Deprecated { replacement: Option }, -} - -impl DeprecationStateV1 { - pub fn validate(&self) -> Result<(), DomainError> { - match self { - Self::Active => Ok(()), - Self::Deprecated { replacement } => { - replacement.as_ref().map_or(Ok(()), SettingKey::validate) - } - } - } -} - #[derive( Clone, Copy, Debug, Serialize, Deserialize, JsonSchema, PartialEq, Eq, PartialOrd, Ord, Hash, )] @@ -760,19 +710,6 @@ pub struct AutomationTaskSettingsV1 { pub interval_secs: Option, pub cooldown_secs: Option, pub min_idle_secs: Option, - /// Historical snapshot payload only. Preserve absent, null, and numeric - /// forms so their recorded digests remain verifiable. Current settings - /// retire this field; task ownership is governed by the operating-system - /// lock, never by an elapsed-time override. - #[doc(hidden)] - #[schemars(skip)] - #[serde( - rename = "stale_lock_secs", - default, - deserialize_with = "deserialize_retired_lock_timeout", - skip_serializing_if = "Option::is_none" - )] - pub legacy_stale_lock_secs: Option>, /// Suppression window between session-evidence retrieval attempts while /// the evidence budget stays exhausted. Unset uses the automation crate's /// one-hour default. Distinct from `cooldown_secs`, which paces retries @@ -787,7 +724,6 @@ impl AutomationTaskSettingsV1 { self.interval_secs, self.cooldown_secs, self.min_idle_secs, - self.legacy_stale_lock_secs.flatten(), self.session_evidence_budget_backoff_secs, ] { if matches!(value, Some(0)) { @@ -803,18 +739,6 @@ impl AutomationTaskSettingsV1 { } } -#[allow(clippy::option_option)] -fn deserialize_retired_lock_timeout<'de, D>( - deserializer: D, -) -> Result>, D::Error> -where - D: Deserializer<'de>, -{ - // `default` handles an absent field. This function runs for an explicitly - // present null too, which ordinary nested Option deserialization loses. - Option::::deserialize(deserializer).map(Some) -} - #[derive(Clone, Debug, Serialize, Deserialize, JsonSchema, PartialEq, Eq, Default)] #[serde(deny_unknown_fields)] pub struct AutomationTaskSetV1 { @@ -866,34 +790,7 @@ impl AutomationSettingsV1 { } pub fn is_default(&self) -> bool { - let mut current = self.clone(); - current.retire_lock_timeout(); - current == Self::default() - } - - pub fn has_retired_lock_timeout(&self) -> bool { - [ - &self.tasks.memory_curator, - &self.tasks.session_reflector, - &self.tasks.skill_writer, - ] - .iter() - .any(|task| task.legacy_stale_lock_secs.is_some()) - } - - /// Project a historical value onto the current effective settings. The - /// store calls this on a copy when committing a converged child revision; - /// historical snapshots retain their original serialized representation. - pub fn retire_lock_timeout(&mut self) -> bool { - let mut changed = false; - for task in [ - &mut self.tasks.memory_curator, - &mut self.tasks.session_reflector, - &mut self.tasks.skill_writer, - ] { - changed |= task.legacy_stale_lock_secs.take().is_some(); - } - changed + *self == Self::default() } } @@ -905,7 +802,6 @@ impl Default for AutomationSettingsV1 { interval_secs: Some(interval_secs), cooldown_secs: Some(300), min_idle_secs, - legacy_stale_lock_secs: None, session_evidence_budget_backoff_secs: None, }; Self { @@ -927,61 +823,6 @@ impl Default for AutomationSettingsV1 { } } -#[cfg(test)] -mod automation_settings_tests { - use super::{AutomationSettingsV1, AutomationTaskSettingsV1}; - use crate::canonical_sha256; - - #[test] - fn historical_lock_timeouts_preserve_their_serialized_identity() { - for timeout in [ - None, - Some(serde_json::Value::Null), - Some(serde_json::json!(3600)), - ] { - let mut historical = serde_json::to_value(AutomationSettingsV1::default()).unwrap(); - for task in ["memory_curator", "session_reflector", "skill_writer"] { - if let Some(timeout) = &timeout { - historical["tasks"][task]["stale_lock_secs"] = timeout.clone(); - } - } - let stored: AutomationSettingsV1 = serde_json::from_value(historical.clone()).unwrap(); - stored.validate().unwrap(); - assert_eq!(stored.has_retired_lock_timeout(), timeout.is_some()); - assert_eq!(serde_json::to_value(&stored).unwrap(), historical); - assert_eq!( - canonical_sha256(&stored).unwrap(), - canonical_sha256(&historical).unwrap(), - "loading an absent, null, or numeric historical field must preserve the digest input" - ); - assert!( - stored.is_default(), - "a retired timeout is not an active override" - ); - - let mut effective = stored.clone(); - assert_eq!(effective.retire_lock_timeout(), timeout.is_some()); - assert_eq!(effective, AutomationSettingsV1::default()); - assert!(!effective.retire_lock_timeout(), "retirement is idempotent"); - for task in ["memory_curator", "session_reflector", "skill_writer"] { - assert!( - serde_json::to_value(&effective).unwrap()["tasks"][task] - .get("stale_lock_secs") - .is_none() - ); - } - assert_eq!(serde_json::to_value(&stored).unwrap(), historical); - } - } - - #[test] - fn current_automation_schema_has_no_lock_timeout_control() { - let schema = serde_json::to_value(schemars::schema_for!(AutomationTaskSettingsV1)).unwrap(); - assert!(schema["properties"].get("stale_lock_secs").is_none()); - assert_eq!(schema["additionalProperties"], false); - } -} - #[derive(Clone, Copy, Debug, Serialize, Deserialize, JsonSchema, PartialEq, Eq)] #[serde(deny_unknown_fields)] pub struct ContextScoutConfigurationLimitsV1 { @@ -1454,7 +1295,6 @@ pub struct SettingDefinitionV1 { pub sensitivity: SettingSensitivityV1, pub scope: SettingScopeV1, pub restart_requirement: RestartRequirementV1, - pub deprecation: DeprecationStateV1, } impl SettingDefinitionV1 { @@ -1465,8 +1305,7 @@ impl SettingDefinitionV1 { field: "configuration setting definition", }); } - self.default_value.validate()?; - self.deprecation.validate() + self.default_value.validate() } } diff --git a/crates/tracedecay-domain/src/lib.rs b/crates/tracedecay-domain/src/lib.rs index f59e9016d1..4845bd1dc2 100644 --- a/crates/tracedecay-domain/src/lib.rs +++ b/crates/tracedecay-domain/src/lib.rs @@ -100,12 +100,11 @@ pub use configuration::{ ConfigurationSnapshotV1, ConfigurationValueKindV1, ConfigurationValueV1, ContextScoutConfigurationLimitsV1, ContextScoutConfigurationModeV1, ContextScoutConfigurationStateV1, ContextScoutConfiguredModelPathV1, ContextScoutSettingsV1, - CredentialReferenceId, CrossMergeModeV1, CrossMergePolicyV1, DeprecationStateV1, - GitHubStackedPullRequestPolicyV1, HistoryRewritePolicyV1, INDEX_EXCLUDE_SETTING_KEY, - INDEX_EXTRACT_DOCSTRINGS_SETTING_KEY, INDEX_INCLUDE_SETTING_KEY, - INDEX_MAX_FILE_SIZE_SETTING_KEY, INDEX_NATIVE_GRAPH_ACTIVATION_SETTING_KEY, - INDEX_TRACK_CALL_SITES_SETTING_KEY, LCM_SUMMARIZER_EXECUTABLES_SETTING_KEY, - LcmSummarizerExecutableV1, LcmSummarizerExecutablesV1, + CredentialReferenceId, CrossMergeModeV1, CrossMergePolicyV1, GitHubStackedPullRequestPolicyV1, + HistoryRewritePolicyV1, INDEX_EXCLUDE_SETTING_KEY, INDEX_EXTRACT_DOCSTRINGS_SETTING_KEY, + INDEX_INCLUDE_SETTING_KEY, INDEX_MAX_FILE_SIZE_SETTING_KEY, + INDEX_NATIVE_GRAPH_ACTIVATION_SETTING_KEY, INDEX_TRACK_CALL_SITES_SETTING_KEY, + LCM_SUMMARIZER_EXECUTABLES_SETTING_KEY, LcmSummarizerExecutableV1, LcmSummarizerExecutablesV1, MAX_WORK_EXPERTISE_CONSENT_LIFETIME_MICROS_V1, PROJECT_WORK_EXPERTISE_CONSENT_SETTING_KEY, ProtectedApplyRequest, ProtectedChange, ProtectedChangePlan, ProtectedChangeSnapshotError, ProtectedRefDispositionV1, ProtectedRefRuleV1, ProtectedRefSelectorV1, QueryCollectionId, diff --git a/crates/tracedecay-global-db/src/configuration/registry.rs b/crates/tracedecay-global-db/src/configuration/registry.rs index b42e7cfabd..97d964bf4a 100644 --- a/crates/tracedecay-global-db/src/configuration/registry.rs +++ b/crates/tracedecay-global-db/src/configuration/registry.rs @@ -7,11 +7,10 @@ use tracedecay_domain::configuration::{ ACCESS_RULES_SETTING_KEY, ANALYZER_SETTINGS_SETTING_KEY, AUTOMATION_SETTINGS_SETTING_KEY, AnalyzerSettingsV1, CONFIGURATION_SETTING_KEYS_V1, CONTEXT_SCOUT_SETTINGS_SETTING_KEY, CodeIndexWorkerSelectionV1, ConfigurationValueKindV1, ConfigurationValueV1, - ContextScoutSettingsV1, DeprecationStateV1, INDEX_EXCLUDE_SETTING_KEY, - INDEX_EXTRACT_DOCSTRINGS_SETTING_KEY, INDEX_INCLUDE_SETTING_KEY, - INDEX_MAX_FILE_SIZE_SETTING_KEY, INDEX_NATIVE_GRAPH_ACTIVATION_SETTING_KEY, - INDEX_TRACK_CALL_SITES_SETTING_KEY, LCM_SUMMARIZER_EXECUTABLES_SETTING_KEY, - LcmSummarizerExecutablesV1, PROFILE_SETTING_KEYS_V1, + ContextScoutSettingsV1, INDEX_EXCLUDE_SETTING_KEY, INDEX_EXTRACT_DOCSTRINGS_SETTING_KEY, + INDEX_INCLUDE_SETTING_KEY, INDEX_MAX_FILE_SIZE_SETTING_KEY, + INDEX_NATIVE_GRAPH_ACTIVATION_SETTING_KEY, INDEX_TRACK_CALL_SITES_SETTING_KEY, + LCM_SUMMARIZER_EXECUTABLES_SETTING_KEY, LcmSummarizerExecutablesV1, PROFILE_SETTING_KEYS_V1, PROJECT_WORK_EXPERTISE_CONSENT_SETTING_KEY, RestartRequirementV1, SOURCE_BINDINGS_SETTING_KEY, SYNC_AUTO_INIT_SETTING_KEY, SYNC_AUTO_TRACK_PR_BRANCHES_SETTING_KEY, SYNC_AUTO_TRACK_PR_POLL_SECS_SETTING_KEY, SYNC_AUTO_WATCH_SETTING_KEY, @@ -65,10 +64,6 @@ pub enum ConfigurationRegistryError { pattern: String, message: String, }, - #[error( - "setting {key} contains retired stale_lock_secs; task locks no longer accept an age override" - )] - RetiredAutomationLockTimeout { key: SettingKey }, #[error("setting {key} cannot be written in layer {layer:?}")] InvalidLayer { key: SettingKey, @@ -98,7 +93,6 @@ impl ConfigurationRegistry { sensitivity: SettingSensitivityV1::Sensitive, scope: SettingScopeV1::Project, restart_requirement: RestartRequirementV1::None, - deprecation: DeprecationStateV1::Active, })?; registry.register(SettingDefinitionV1 { key: setting_key(ACCESS_RULES_SETTING_KEY)?, @@ -108,7 +102,6 @@ impl ConfigurationRegistry { sensitivity: SettingSensitivityV1::Sensitive, scope: SettingScopeV1::Project, restart_requirement: RestartRequirementV1::None, - deprecation: DeprecationStateV1::Active, })?; register_project_stored_user_profile_settings(&mut registry)?; registry.register(SettingDefinitionV1 { @@ -119,7 +112,6 @@ impl ConfigurationRegistry { sensitivity: SettingSensitivityV1::Sensitive, scope: SettingScopeV1::Project, restart_requirement: RestartRequirementV1::AnalyzerRestart, - deprecation: DeprecationStateV1::Active, })?; registry.register(SettingDefinitionV1 { key: setting_key(WORK_TOPOLOGY_POLICY_SETTING_KEY)?, @@ -131,7 +123,6 @@ impl ConfigurationRegistry { sensitivity: SettingSensitivityV1::Sensitive, scope: SettingScopeV1::Project, restart_requirement: RestartRequirementV1::DaemonRestart, - deprecation: DeprecationStateV1::Active, })?; registry.register(SettingDefinitionV1 { key: setting_key(WORK_EXECUTABLE_BINDINGS_SETTING_KEY)?, @@ -141,7 +132,6 @@ impl ConfigurationRegistry { sensitivity: SettingSensitivityV1::Sensitive, scope: SettingScopeV1::Project, restart_requirement: RestartRequirementV1::DaemonRestart, - deprecation: DeprecationStateV1::Active, })?; registry.register(SettingDefinitionV1 { key: setting_key(PROJECT_WORK_EXPERTISE_CONSENT_SETTING_KEY)?, @@ -153,7 +143,6 @@ impl ConfigurationRegistry { sensitivity: SettingSensitivityV1::Sensitive, scope: SettingScopeV1::Project, restart_requirement: RestartRequirementV1::None, - deprecation: DeprecationStateV1::Active, })?; registry.register(SettingDefinitionV1 { key: setting_key(CONTEXT_SCOUT_SETTINGS_SETTING_KEY)?, @@ -165,7 +154,6 @@ impl ConfigurationRegistry { sensitivity: SettingSensitivityV1::Sensitive, scope: SettingScopeV1::Project, restart_requirement: RestartRequirementV1::None, - deprecation: DeprecationStateV1::Active, })?; registry.register(SettingDefinitionV1 { key: setting_key(AUTOMATION_SETTINGS_SETTING_KEY)?, @@ -175,7 +163,6 @@ impl ConfigurationRegistry { sensitivity: SettingSensitivityV1::Sensitive, scope: SettingScopeV1::Project, restart_requirement: RestartRequirementV1::None, - deprecation: DeprecationStateV1::Active, })?; // On-demand LCM summarization launches a host CLI only through this // explicit binding; the unconfigured default keeps compaction pending @@ -190,7 +177,6 @@ impl ConfigurationRegistry { sensitivity: SettingSensitivityV1::Sensitive, scope: SettingScopeV1::Project, restart_requirement: RestartRequirementV1::None, - deprecation: DeprecationStateV1::Active, })?; registry.register(SettingDefinitionV1 { key: setting_key(PROXIMITY_RISK_THRESHOLD_SETTING_KEY_V1)?, @@ -202,7 +188,6 @@ impl ConfigurationRegistry { sensitivity: SettingSensitivityV1::Public, scope: SettingScopeV1::Project, restart_requirement: RestartRequirementV1::None, - deprecation: DeprecationStateV1::Active, })?; register_project_settings(&mut registry)?; let expected = CONFIGURATION_SETTING_KEYS_V1 @@ -329,29 +314,6 @@ impl ConfigurationRegistry { }); } } - Ok(()) - } - - /// [`Self::validate_value`] plus the checks that gate only a new write. - /// - /// Stored snapshots are revalidated with `validate_value` on every read, - /// so a rule that may tighten across releases must not live there: an - /// `index.exclude.v1` pattern an earlier release accepted has to keep - /// loading (the runtime pin leaves it unapplied and reports it as a - /// setting finding) while a new write of it is refused. - pub fn validate_written_value( - &self, - key: &SettingKey, - value: &ConfigurationValueV1, - ) -> Result<(), ConfigurationRegistryError> { - self.validate_value(key, value)?; - if let ConfigurationValueV1::AutomationSettings(settings) = value - && settings.has_retired_lock_timeout() - { - return Err(ConfigurationRegistryError::RetiredAutomationLockTimeout { - key: key.clone(), - }); - } if let ConfigurationValueV1::StringList(patterns) = value && matches!( key.as_str(), @@ -417,7 +379,6 @@ fn register_project_stored_user_profile_settings( sensitivity: SettingSensitivityV1::Sensitive, scope: SettingScopeV1::UserProfile, restart_requirement: RestartRequirementV1::None, - deprecation: DeprecationStateV1::Active, }) } @@ -449,7 +410,6 @@ fn register_profile_scalar_settings( sensitivity: SettingSensitivityV1::Public, scope: SettingScopeV1::UserProfile, restart_requirement, - deprecation: DeprecationStateV1::Active, })?; } Ok(()) @@ -466,7 +426,6 @@ fn code_index_worker_definition() -> Result GlobalDbConfigurationControlStore<'db> { } /// Converge a snapshot written by an earlier published registry onto the - /// current one: registry-added settings receive their typed defaults, - /// retired settings are dropped, and a never-overridden setting follows a - /// default that changed. + /// current one: registry-added settings receive their typed defaults and + /// a never-overridden setting follows a default that changed. /// /// This is exact schema convergence, not a runtime fallback: only the - /// closed sets of known additive keys and known retired keys are accepted. + /// closed set of known additive keys is accepted. /// The result is an immutable child revision, and the expected parent is /// checked under the store's write transaction. pub async fn converge_registered_registry_shape( @@ -355,7 +353,6 @@ impl<'db> GlobalDbConfigurationControlStore<'db> { LCM_SUMMARIZER_EXECUTABLES_SETTING_KEY, SYNC_WATCH_LINKED_WORKTREES_SETTING_KEY, ], - RETIRED_CORE_SETTING_KEYS_V1, ) .await } @@ -371,7 +368,6 @@ impl<'db> GlobalDbConfigurationControlStore<'db> { occurred_at: UtcMicros, registry: &ConfigurationRegistry, additive_keys: &[&str], - retired_keys: &[&str], ) -> Result { expected_revision_id .validate() @@ -382,10 +378,6 @@ impl<'db> GlobalDbConfigurationControlStore<'db> { .iter() .map(|key| (*key).to_owned()) .collect::>(); - let retired_keys = retired_keys - .iter() - .map(|key| (*key).to_owned()) - .collect::>(); transact_config(self.db, |_| ConfigurationError::Unavailable, async move |transaction| { let current = current_state_from_transaction(&transaction).await?; if current.revision_id != expected_revision_id { @@ -397,12 +389,6 @@ impl<'db> GlobalDbConfigurationControlStore<'db> { .map(SettingKey::new) .collect::, _>>() .map_err(ConfigurationError::validation)?; - let retired_keys = retired_keys - .iter() - .cloned() - .map(SettingKey::new) - .collect::, _>>() - .map_err(ConfigurationError::validation)?; let expected_keys = registry .definitions() .map(|definition| definition.key.clone()) @@ -417,10 +403,6 @@ impl<'db> GlobalDbConfigurationControlStore<'db> { .difference(&actual_keys) .cloned() .collect::>(); - let removals = actual_keys - .intersection(&retired_keys) - .cloned() - .collect::>(); // A setting nothing ever overrode still carries the default the // registry shipped when the snapshot was written. It follows the // current default, otherwise a default that changed between @@ -440,45 +422,16 @@ impl<'db> GlobalDbConfigurationControlStore<'db> { }) .map(|definition| definition.key.clone()) .collect::>(); - // The old automation timeout was serialized even when null. Keep - // historical snapshots intact, and remove it from the current - // value under the same revision fence as other registry upgrades. - let retired_automation_values = current - .snapshot - .effective_values - .iter() - .filter(|(key, _)| key.as_str() == AUTOMATION_SETTINGS_SETTING_KEY) - .filter_map(|(key, value)| { - if let ConfigurationValueV1::AutomationSettings(settings) = value { - let mut settings = settings.clone(); - if settings.retire_lock_timeout() { - return Some(( - key.clone(), - ConfigurationValueV1::AutomationSettings(settings), - )); - } - } - None - }) - .collect::>(); - if missing_keys.is_empty() - && removals.is_empty() - && stale_defaults.is_empty() - && retired_automation_values.is_empty() - { + if missing_keys.is_empty() && stale_defaults.is_empty() { validate_snapshot_registry_completeness_with_registry(¤t.snapshot, ®istry) .map_err(map_store_error)?; return Ok(current); } - let surviving_keys = actual_keys - .difference(&retired_keys) - .cloned() - .collect::>(); if missing_keys.iter().any(|key| !additive_keys.contains(key)) - || !surviving_keys.is_subset(&expected_keys) + || !actual_keys.is_subset(&expected_keys) { return Err(ConfigurationError::ResetRequired { - reason: "configuration snapshot registry drift is not a registered additive-default or retired-key upgrade" + reason: "configuration snapshot registry drift is not a registered additive-default upgrade" .to_owned(), }); } @@ -496,8 +449,6 @@ impl<'db> GlobalDbConfigurationControlStore<'db> { "tracedecay.configuration.registry-shape-convergence.v1", &expected_revision_id, &additions, - &removals, - &retired_automation_values, )) .map_err(ConfigurationError::validation)?; let next_revision_id: ConfigurationRevisionId = derived_identifier( @@ -512,21 +463,10 @@ impl<'db> GlobalDbConfigurationControlStore<'db> { )?; let mut effective_values = current.snapshot.effective_values.clone(); let mut provenance = current.snapshot.provenance.clone(); - for key in &removals { - effective_values.remove(key); - provenance.remove(key); - } for (key, default_value) in additions { effective_values.insert(key.clone(), default_value); provenance.insert(key, default_provenance.clone()); } - for (key, value) in retired_automation_values { - // Preserve an operator's active settings and their provenance. - // A registry-default value has already adopted today's default. - if !stale_defaults.contains(&key) { - effective_values.insert(key, value); - } - } let snapshot = ConfigurationSnapshotV1::new(effective_values, provenance) .map_err(ConfigurationError::validation)?; validate_snapshot_registry_completeness_with_registry(&snapshot, ®istry) @@ -758,19 +698,12 @@ impl<'db> ProfileConfigurationStore<'db> { } } let current = self.current_state().await?; - let carries_retired_key = current.snapshot.effective_values.keys().any(|key| { - RETIRED_PROFILE_SETTING_KEYS_V1 - .iter() - .any(|retired| key.as_str() == *retired) - }); - if !carries_retired_key - && registry.definitions().all(|definition| { - current - .snapshot - .effective_values - .contains_key(&definition.key) - }) - { + if registry.definitions().all(|definition| { + current + .snapshot + .effective_values + .contains_key(&definition.key) + }) { return Self::project(&self.profile_id, current, ®istry); } let converged = match self @@ -780,7 +713,6 @@ impl<'db> ProfileConfigurationStore<'db> { occurred_at, ®istry, PROFILE_ADDITIVE_SETTING_KEYS, - RETIRED_PROFILE_SETTING_KEYS_V1, ) .await { diff --git a/crates/tracedecay-global-db/src/configuration/store/control.rs b/crates/tracedecay-global-db/src/configuration/store/control.rs index 55e8ea2c58..dbc93046e4 100644 --- a/crates/tracedecay-global-db/src/configuration/store/control.rs +++ b/crates/tracedecay-global-db/src/configuration/store/control.rs @@ -4,7 +4,7 @@ use super::activation::latest_component_activation_states; use super::audit::{audit_from_transaction, insert_dry_run_audit_event}; use super::mutation::{ build_configuration_commit, commit_configuration_transaction, commit_direct_in_transaction, - current_state_from_transaction, derived_identifier, map_store_error, project_rollback_snapshot, + current_state_from_transaction, derived_identifier, map_store_error, protected_change_snapshot_v1, replay_control_receipt, result_revision_id, rollback_redacted_changes, validate_apply_request, validate_plan_evidence, }; @@ -334,7 +334,7 @@ impl ConfigurationControlStore for GlobalDbConfigurationControlStore<'_> { .map_err(ConfigurationError::validation)?, "configuration rollback plan id", )?; - let snapshot = project_rollback_snapshot(target.snapshot)?; + let snapshot = target.snapshot; let changes = rollback_redacted_changes(¤t.snapshot, &snapshot)?; if changes.is_empty() { return Err(ConfigurationError::PlanStale); @@ -454,7 +454,7 @@ impl ConfigurationControlStore for GlobalDbConfigurationControlStore<'_> { .await .map_err(map_store_error)? .ok_or(ConfigurationError::PlanStale)?; - let snapshot = project_rollback_snapshot(target.snapshot)?; + let snapshot = target.snapshot; if rollback_redacted_changes(¤t.snapshot, &snapshot)? != plan.redacted_changes { diff --git a/crates/tracedecay-global-db/src/configuration/store/mutation.rs b/crates/tracedecay-global-db/src/configuration/store/mutation.rs index e1d1eac1b4..cefa1c4121 100644 --- a/crates/tracedecay-global-db/src/configuration/store/mutation.rs +++ b/crates/tracedecay-global-db/src/configuration/store/mutation.rs @@ -445,7 +445,7 @@ pub(super) fn apply_direct_mutation_to_snapshot( .validate_layer(key, layer) .map_err(ConfigurationError::validation)?; registry - .validate_written_value(key, value) + .validate_value(key, value) .map_err(ConfigurationError::validation)?; replace_direct_effective_value( effective_values, @@ -741,20 +741,6 @@ pub(super) fn rollback_redacted_changes( .collect() } -pub(super) fn project_rollback_snapshot( - mut historical: ConfigurationSnapshotV1, -) -> Result { - // Rollback creates a current revision from historical intent. Preserve the - // historical record and provenance, but never restore a retired setting. - for value in historical.effective_values.values_mut() { - if let ConfigurationValueV1::AutomationSettings(settings) = value { - settings.retire_lock_timeout(); - } - } - ConfigurationSnapshotV1::new(historical.effective_values, historical.provenance) - .map_err(ConfigurationError::validation) -} - pub(super) async fn current_state_from_transaction( transaction: &impl QueryExecutor, ) -> Result { diff --git a/crates/tracedecay-global-db/src/configuration/store/tests/mod.rs b/crates/tracedecay-global-db/src/configuration/store/tests/mod.rs index 6591389b8c..5e1b7f7d9c 100644 --- a/crates/tracedecay-global-db/src/configuration/store/tests/mod.rs +++ b/crates/tracedecay-global-db/src/configuration/store/tests/mod.rs @@ -4,36 +4,32 @@ use super::read::validate_snapshot_registry_completeness; use super::revision::insert_revision; use super::{ ConfigurationAuditEvent, ConfigurationAuditEventKindV1, ConfigurationCommitV1, - ConfigurationError, ConfigurationMutationAuthority, ConfigurationMutationReceiptV1, + ConfigurationMutationAuthority, ConfigurationMutationReceiptV1, ConfigurationProtectedOperationV1, ConfigurationProtectedPlanRecordV1, ConfigurationRevisionId, ConfigurationRevisionRecordV1, ConfigurationSnapshotV1, ConfigurationValueV1, GlobalDbConfigurationControlStore, TestConnection, }; +use crate::configuration::contracts::ScopeRevalidationEvidenceV1; use crate::configuration::contracts::ports::ConfigurationControlStore; -use crate::configuration::contracts::{ - ConfigurationRollbackRequest, DirectConfigurationMutation, ScopeRevalidationEvidenceV1, -}; use crate::configuration::registry::ConfigurationRegistry; use crate::configuration::resolver::resolve_configuration; use crate::registered::RegisteredGlobalDbWriteTransaction; use crate::tests::harness::{HostAdmissionScope, HostAdmissionTestRuntimeV1}; use tracedecay_domain::configuration::{ - ACCESS_RULES_SETTING_KEY, AUTOMATION_SETTINGS_SETTING_KEY, AuthorityRef, AutomationSettingsV1, - CandidateDispositionV1, ConfigurationCandidateV1, ConfigurationGrantId, - ConfigurationGrantReceiptId, ConfigurationIdempotencyKey, ConfigurationLayerIdV1, - ConfigurationMutationEffectV1, ConfigurationMutationGrantReceiptV1, + ACCESS_RULES_SETTING_KEY, AuthorityRef, CandidateDispositionV1, ConfigurationCandidateV1, + ConfigurationGrantId, ConfigurationGrantReceiptId, ConfigurationIdempotencyKey, + ConfigurationLayerIdV1, ConfigurationMutationEffectV1, ConfigurationMutationGrantReceiptV1, ConfigurationMutationOperationV1, ConfigurationMutationSinkV1, INDEX_EXCLUDE_SETTING_KEY, - ProtectedApplyRequest, ProtectedChange, ProtectedChangePlan, RedactedConfigurationChangeV1, - RollbackModeV1, SOURCE_BINDINGS_SETTING_KEY, SYNC_WATCH_LINKED_WORKTREES_SETTING_KEY, - ScopeControlOperationV1, ScopeSourceBinding, SettingKey, SourceBindingId, SourceKindV1, - TELEMETRY_TIMINGS_SETTING_KEY, WORK_TOPOLOGY_POLICY_SETTING_KEY, + ProtectedChange, ProtectedChangePlan, RedactedConfigurationChangeV1, + SOURCE_BINDINGS_SETTING_KEY, SYNC_WATCH_LINKED_WORKTREES_SETTING_KEY, ScopeControlOperationV1, + ScopeSourceBinding, SettingKey, SourceBindingId, SourceKindV1, TELEMETRY_TIMINGS_SETTING_KEY, + WORK_TOPOLOGY_POLICY_SETTING_KEY, }; use tracedecay_domain::{ AccessPolicyDigest, ActorId, LocatorDigest, ProjectId, UtcMicros, canonical_sha256, }; use tracedecay_domain::test_fixtures::digest; -use tracedecay_store::configuration::ConfigurationRevisionStore; #[test] fn incomplete_snapshot_requires_reset_instead_of_default_repair() { @@ -53,272 +49,6 @@ fn incomplete_snapshot_requires_reset_instead_of_default_repair() { ); } -#[asupersync::test] -async fn retired_automation_lock_timeout_stays_retired_through_rollback() { - let (_directory, runtime, root) = Box::pin(global_setup()).await; - let key = SettingKey::new(AUTOMATION_SETTINGS_SETTING_KEY).unwrap(); - let mut stored = serde_json::to_value(AutomationSettingsV1::default()).unwrap(); - stored["tasks"]["memory_curator"]["stale_lock_secs"] = serde_json::json!(3600); - stored["tasks"]["session_reflector"]["stale_lock_secs"] = serde_json::Value::Null; - stored["tasks"]["skill_writer"]["stale_lock_secs"] = serde_json::json!(7200); - stored["timeout_secs"] = serde_json::json!(137); - let settings: AutomationSettingsV1 = serde_json::from_value(stored).unwrap(); - let mut effective_values = root.snapshot.effective_values.clone(); - effective_values.insert( - key.clone(), - ConfigurationValueV1::AutomationSettings(Box::new(settings.clone())), - ); - let legacy_revision: ConfigurationRevisionId = id("configuration.revision.legacy-lock-timeout"); - let mut provenance = root.snapshot.provenance.clone(); - provenance.insert( - key.clone(), - vec![ConfigurationCandidateV1 { - layer: direct_project_layer(), - revision_id: legacy_revision.clone(), - disposition: CandidateDispositionV1::Winning, - safe_reason: None, - }], - ); - let historical = ConfigurationRevisionRecordV1 { - revision_id: legacy_revision.clone(), - parent_revision_id: Some(root.revision_id.clone()), - snapshot: ConfigurationSnapshotV1::new(effective_values, provenance).unwrap(), - actor_id: id("actor.configuration.fixture"), - operation_kind: "direct_mutation".to_owned(), - created_at: UtcMicros(2), - }; - let historical_bytes = serde_json::to_vec(&historical.snapshot).unwrap(); - let db = runtime - .registered_database(HostAdmissionScope::Project) - .unwrap(); - let transaction = db.begin_write_transaction().await.unwrap(); - insert_revision(&transaction, &historical).await.unwrap(); - transaction.commit().await.unwrap(); - let store = GlobalDbConfigurationControlStore::new_registered(db); - assert_eq!(store.current().await.unwrap().snapshot, historical.snapshot); - assert!(matches!( - store - .converge_registered_registry_shape(&root.revision_id, UtcMicros(3)) - .await, - Err(ConfigurationError::RevisionConflict) - )); - - let converged = store - .converge_registered_registry_shape(&legacy_revision, UtcMicros(3)) - .await - .unwrap(); - let mut expected = settings; - expected.retire_lock_timeout(); - assert_ne!(converged.revision_id, legacy_revision); - assert_eq!( - converged.snapshot.effective_values[&key], - ConfigurationValueV1::AutomationSettings(Box::new(expected)) - ); - assert_eq!( - converged.snapshot.provenance, - historical.snapshot.provenance - ); - let retained = store - .read_revision(&legacy_revision) - .await - .unwrap() - .unwrap(); - retained.snapshot.validate().unwrap(); - assert_eq!( - serde_json::to_vec(&retained.snapshot).unwrap(), - historical_bytes - ); - let settled = store - .converge_registered_registry_shape(&converged.revision_id, UtcMicros(4)) - .await - .unwrap(); - assert_eq!(settled.revision_id, converged.revision_id); - - let rollback = ConfigurationRollbackRequest { - target_revision_id: legacy_revision.clone(), - mode: RollbackModeV1::AllOrNothing, - }; - assert_eq!( - store - .dry_run_rollback( - &control_authority( - ConfigurationMutationOperationV1::RollbackDryRun, - &converged.revision_id, - ), - &rollback, - UtcMicros(20), - ) - .await, - Err(ConfigurationError::PlanStale), - "retired fields alone cannot make a rollback change current behavior" - ); - - let ConfigurationValueV1::AutomationSettings(mut changed_settings) = - converged.snapshot.effective_values[&key].clone() - else { - panic!("automation setting must retain its registered type"); - }; - changed_settings.timeout_secs = 171; - let changed_value = ConfigurationValueV1::AutomationSettings(changed_settings); - let changed = store - .commit_direct( - &control_authority( - ConfigurationMutationOperationV1::DirectMutation, - &converged.revision_id, - ), - &DirectConfigurationMutation::Set { - layer: direct_project_layer(), - key: key.clone(), - value: Box::new(changed_value.clone()), - }, - &converged.revision_id, - ) - .await - .unwrap(); - let plan = store - .dry_run_rollback( - &control_authority( - ConfigurationMutationOperationV1::RollbackDryRun, - &changed.result_revision_id, - ), - &rollback, - UtcMicros(20), - ) - .await - .unwrap(); - assert_eq!(plan.redacted_changes.len(), 1); - assert_eq!(plan.redacted_changes[0].setting_key, key); - assert_eq!( - plan.redacted_changes[0].before_digest, - Some( - canonical_sha256(&("tracedecay.configuration.rollback-value.v1", &changed_value,)) - .unwrap() - ) - ); - assert_eq!( - plan.redacted_changes[0].after_digest, - Some( - canonical_sha256(&( - "tracedecay.configuration.rollback-value.v1", - &converged.snapshot.effective_values[&key], - )) - .unwrap() - ) - ); - - // A plan saved by an older release described the unprojected historical - // value. Do not apply a different change under that old confirmation. - let mut legacy_plan = plan.clone(); - legacy_plan.plan_id = id("configuration.plan.legacy-lock-timeout"); - legacy_plan.redacted_changes[0].after_digest = Some( - canonical_sha256(&( - "tracedecay.configuration.rollback-value.v1", - &historical.snapshot.effective_values[&key], - )) - .unwrap(), - ); - store - .save_change_plan(&ConfigurationProtectedPlanRecordV1 { - plan: legacy_plan.clone(), - operation: ConfigurationProtectedOperationV1::Rollback { - target_revision_id: legacy_revision.clone(), - mode: RollbackModeV1::AllOrNothing, - }, - }) - .await - .unwrap(); - let apply_authority = control_authority_with_key( - ConfigurationMutationOperationV1::RollbackApply, - &changed.result_revision_id, - Some(id("configuration.idempotency.retired-lock-rollback")), - ); - let mut request = ProtectedApplyRequest { - plan_id: legacy_plan.plan_id.clone(), - actor_id: id("actor.configuration.fixture"), - expected_base_revision_id: changed.result_revision_id.clone(), - operation_digest: plan.operation_digest.clone(), - idempotency_key: id("configuration.idempotency.retired-lock-rollback"), - }; - assert_eq!( - store - .apply_rollback( - &apply_authority, - &request, - &legacy_plan, - &evidence_for(&legacy_plan) - ) - .await, - Err(ConfigurationError::PlanStale) - ); - assert_eq!( - store.current().await.unwrap().revision_id, - changed.result_revision_id - ); - - request.plan_id = plan.plan_id.clone(); - let receipt = store - .apply_rollback(&apply_authority, &request, &plan, &evidence_for(&plan)) - .await - .unwrap(); - let restored = store.current().await.unwrap(); - assert_eq!(restored.revision_id, receipt.result_revision_id); - assert_ne!(restored.revision_id, legacy_revision); - assert_eq!(restored.snapshot, converged.snapshot); - let written = store - .read_revision(&restored.revision_id) - .await - .unwrap() - .unwrap(); - assert_eq!(written.parent_revision_id, Some(changed.result_revision_id)); - assert_eq!( - store - .apply_rollback(&apply_authority, &request, &plan, &evidence_for(&plan)) - .await - .unwrap(), - receipt, - "replay returns the same projected revision" - ); - let stale_request = ProtectedApplyRequest { - idempotency_key: id("configuration.idempotency.stale-lock-rollback"), - ..request.clone() - }; - let stale_authority = control_authority_with_key( - ConfigurationMutationOperationV1::RollbackApply, - &plan.base_revision_id, - Some(stale_request.idempotency_key.clone()), - ); - assert_eq!( - store - .apply_rollback( - &stale_authority, - &stale_request, - &plan, - &evidence_for(&plan), - ) - .await, - Err(ConfigurationError::PlanStale), - "a new application cannot use the base revision consumed by the rollback" - ); - assert_eq!( - store - .converge_registered_registry_shape(&restored.revision_id, UtcMicros(30)) - .await - .unwrap() - .revision_id, - restored.revision_id, - "rollback needs no further convergence" - ); - let retained = store - .read_revision(&legacy_revision) - .await - .unwrap() - .unwrap(); - assert_eq!( - serde_json::to_vec(&retained.snapshot).unwrap(), - historical_bytes - ); -} - #[asupersync::test] async fn linked_worktree_default_converges_into_existing_snapshot() { let (_directory, runtime, root) = Box::pin(global_setup()).await; @@ -437,92 +167,6 @@ async fn a_changed_default_converges_when_the_setting_was_never_overridden() { assert_eq!(reconverged.revision_id, converged.revision_id); } -/// A v0.1.0-beta.37 profile still carries `semantic.runtime.v1`. Opening it -/// on the current registry must drop that retired key instead of stalling the -/// project behind a reset verdict. -#[asupersync::test] -async fn retired_semantic_runtime_key_converges_out_of_a_beta37_snapshot() { - assert_retired_key_converges_out("semantic.runtime.v1", ConfigurationValueV1::Boolean(true)) - .await; -} - -/// Every release through v0.1.0-beta.50 persisted the -/// `sync.orphan_db_gc_days.v1` default (7 days). -#[asupersync::test] -async fn retired_orphan_db_gc_days_key_converges_out_of_a_beta50_snapshot() { - assert_retired_key_converges_out( - "sync.orphan_db_gc_days.v1", - ConfigurationValueV1::Unsigned(7), - ) - .await; -} - -/// Persisted prewarm settings converge through the retired-key authority. -#[asupersync::test] -async fn retired_diagnostics_prewarm_key_converges_without_reset() { - assert_retired_key_converges_out( - "diagnostics.prewarm.v1", - ConfigurationValueV1::Boolean(true), - ) - .await; -} - -async fn assert_retired_key_converges_out(raw_key: &str, value: ConfigurationValueV1) { - let (_directory, runtime, root) = Box::pin(global_setup()).await; - let retired = SettingKey::new(raw_key).unwrap(); - let mut effective_values = root.snapshot.effective_values.clone(); - let mut provenance = root.snapshot.provenance.clone(); - effective_values.insert(retired.clone(), value.clone()); - provenance.insert( - retired.clone(), - root.snapshot.provenance.values().next().unwrap().clone(), - ); - let historical_snapshot = ConfigurationSnapshotV1::new(effective_values, provenance).unwrap(); - let db = runtime - .registered_database(HostAdmissionScope::Project) - .unwrap(); - let transaction = db.begin_write_transaction().await.unwrap(); - transaction - .execute_batch( - "DROP TRIGGER configuration_revisions_immutable_update; - DROP TRIGGER configuration_entries_immutable_delete;", - ) - .await - .unwrap(); - let entry = serde_json::json!({ - "schema_version": 1, - "value": value, - "provenance": root.snapshot.provenance.values().next().unwrap(), - }) - .to_string(); - transaction - .execute( - "INSERT INTO configuration_entries ( - revision_id, key, layer_kind, layer_id, schema_revision, typed_value - ) VALUES (?1, ?2, 'default', NULL, 1, ?3)", - tracedecay_runtime_core::db::engine::params![ - root.revision_id.as_str(), - retired.as_str(), - entry - ], - ) - .await - .unwrap(); - point_revision_at_snapshot(&transaction, &root.revision_id, &historical_snapshot).await; - transaction.commit().await.unwrap(); - let store = GlobalDbConfigurationControlStore::new_registered(db); - - let converged = store - .converge_registered_registry_shape(&root.revision_id, UtcMicros(2)) - .await - .unwrap(); - - assert_ne!(converged.revision_id, root.revision_id); - assert!(!converged.snapshot.effective_values.contains_key(&retired)); - assert!(!converged.snapshot.provenance.contains_key(&retired)); - validate_snapshot_registry_completeness(&converged.snapshot).unwrap(); -} - /// Rewrites a committed revision to carry `snapshot`, the shape a store /// written by an older release holds. The caller drops the immutability /// trigger first. @@ -856,4 +500,3 @@ fn evidence_for(plan: &ProtectedChangePlan) -> ScopeRevalidationEvidenceV1 { mod control; mod persistence; mod receipt_writer; -mod retired_sync; diff --git a/crates/tracedecay-global-db/src/configuration/store/tests/persistence.rs b/crates/tracedecay-global-db/src/configuration/store/tests/persistence.rs index a4913c6b31..5c439f4d75 100644 --- a/crates/tracedecay-global-db/src/configuration/store/tests/persistence.rs +++ b/crates/tracedecay-global-db/src/configuration/store/tests/persistence.rs @@ -18,9 +18,8 @@ use crate::configuration::registry::ConfigurationRegistry; use crate::configuration::resolver::resolve_configuration; use tracedecay_domain::configuration::{ CodeIndexWorkerSelectionV1, ConfigurationIdempotencyKey, ConfigurationLayerIdV1, - ConfigurationMutationOperationV1, ConfigurationValueKindV1, DeprecationStateV1, - RestartRequirementV1, SettingDefinitionV1, SettingKey, SettingScopeV1, SettingSensitivityV1, - USER_CODE_INDEX_WORKERS_SETTING_KEY, USER_REPEATED_QUERY_HINTS_SETTING_KEY, + ConfigurationMutationOperationV1, SettingKey, USER_CODE_INDEX_WORKERS_SETTING_KEY, + USER_REPEATED_QUERY_HINTS_SETTING_KEY, }; #[asupersync::test] @@ -185,122 +184,6 @@ async fn worker_only_profile_store_converges_onto_the_profile_registry() { ); } -/// A profile store written while the worldwide counter shipped carries the -/// `user.upload_enabled.v1` opt-in, possibly enabled. It converges on the -/// first read: the retired key is dropped without any upload, the operator's -/// other values survive, and a second read finds nothing left to do. -#[asupersync::test] -async fn profile_store_carrying_the_retired_upload_setting_converges_and_keeps_other_values() { - let directory = tempfile::tempdir().unwrap(); - let profile_root = directory.path().join("profile"); - let runtime = crate::tests::harness::HostAdmissionTestRuntimeV1::profile(&profile_root) - .await - .unwrap(); - let db = runtime - .registered_database(HostAdmissionScope::Profile) - .unwrap(); - let profile_id = db.binding().shard_id.profile_id.clone(); - let upload_key = SettingKey::new("user.upload_enabled.v1").unwrap(); - let worker_key = SettingKey::new(USER_CODE_INDEX_WORKERS_SETTING_KEY).unwrap(); - assert!( - ConfigurationRegistry::profile() - .unwrap() - .definition(&upload_key) - .is_err(), - "the current profile registry must not register the retired key" - ); - let mut legacy_definitions = ConfigurationRegistry::profile() - .unwrap() - .definitions() - .cloned() - .collect::>(); - legacy_definitions.push(SettingDefinitionV1 { - key: upload_key.clone(), - schema_revision: crate::configuration::registry::CONFIGURATION_REGISTRY_SCHEMA_REVISION, - value_kind: ConfigurationValueKindV1::Boolean, - default_value: ConfigurationValueV1::Boolean(false), - sensitivity: SettingSensitivityV1::Public, - scope: SettingScopeV1::UserProfile, - restart_requirement: RestartRequirementV1::None, - deprecation: DeprecationStateV1::Active, - }); - let legacy = ConfigurationRegistry::from_definitions(legacy_definitions).unwrap(); - let initial_revision = id("configuration.profile.initial.v1"); - GlobalDbConfigurationControlStore::new_registered(db) - .initialize_canonical_with_registry( - &initial_revision, - &resolve_configuration(&legacy, &[]).unwrap(), - UtcMicros(1), - &legacy, - ) - .await - .unwrap(); - let layer = ConfigurationLayerIdV1::UserProfile { - profile_id: profile_id.clone(), - }; - let mut revision = initial_revision; - for (name, key, value) in [ - ( - "worker", - worker_key.clone(), - ConfigurationValueV1::CodeIndexWorkerSelection(CodeIndexWorkerSelectionV1::Exact { - workers: 8, - }), - ), - ( - "upload", - upload_key.clone(), - ConfigurationValueV1::Boolean(true), - ), - ] { - let authority = control_authority_with_key_for_layer( - ConfigurationMutationOperationV1::DirectMutation, - &revision, - Some( - ConfigurationIdempotencyKey::new(format!( - "configuration.idempotency.legacy-{name}" - )) - .unwrap(), - ), - layer.clone(), - ); - let transaction = db.begin_write_transaction().await.unwrap(); - let committed = super::super::mutation::commit_direct_in_transaction_with_registry( - &transaction, - &authority, - &DirectConfigurationMutation::Set { - layer: layer.clone(), - key, - value: Box::new(value), - }, - &revision, - &legacy, - ) - .await - .unwrap(); - transaction.commit().await.unwrap(); - revision = committed.current.revision_id; - } - - let store = super::super::ProfileConfigurationStore::new_registered(db, &profile_id).unwrap(); - let converged = store.read_or_initialize(UtcMicros(3)).await.unwrap(); - - assert_ne!(converged.revision_id, revision); - assert!( - !converged - .snapshot - .effective_values - .contains_key(&upload_key), - "the retired upload opt-in must be dropped, not carried" - ); - assert_eq!( - converged.code_index_workers().unwrap().selection, - CodeIndexWorkerSelectionV1::Exact { workers: 8 } - ); - let settled = store.read_or_initialize(UtcMicros(4)).await.unwrap(); - assert_eq!(settled.revision_id, converged.revision_id); -} - #[asupersync::test] async fn project_revision_store_rejects_profile_worker_snapshot() { let (_directory, runtime, root) = global_setup().await; diff --git a/crates/tracedecay-global-db/src/configuration/store/tests/retired_sync.rs b/crates/tracedecay-global-db/src/configuration/store/tests/retired_sync.rs deleted file mode 100644 index 09f59ae548..0000000000 --- a/crates/tracedecay-global-db/src/configuration/store/tests/retired_sync.rs +++ /dev/null @@ -1,221 +0,0 @@ -//! Released sync settings retire without changing supported policy or history. - -use super::super::mutation::commit_direct_in_transaction_with_registry; -use super::super::{ - ConfigurationControlStore, ConfigurationError, ConfigurationRevisionStore, - GlobalDbConfigurationControlStore, -}; -use super::{ - HostAdmissionScope, HostAdmissionTestRuntimeV1, control_authority, count, direct_project_layer, - global_setup, id, -}; -use crate::configuration::contracts::DirectConfigurationMutation; -use crate::configuration::registry::{ConfigurationRegistry, ConfigurationRegistryError}; -use crate::configuration::resolver::resolve_configuration; -use tracedecay_domain::UtcMicros; -use tracedecay_domain::configuration::{ - ConfigurationMutationOperationV1, ConfigurationSnapshotV1, ConfigurationValueKindV1, - ConfigurationValueV1, DeprecationStateV1, RestartRequirementV1, - SYNC_READ_COOLDOWN_SECS_SETTING_KEY, SettingDefinitionV1, SettingKey, SettingScopeV1, - SettingSensitivityV1, -}; - -// These defaults and descriptors shipped before the controls were retired. -const RELEASED_SYNC_SETTINGS: [(&str, u64); 2] = [ - ("sync.full_sync_escalation_files.v1", 500), - ("sync.max_concurrent_syncs.v1", 2), -]; - -#[asupersync::test] -async fn retired_sync_defaults_converge_without_reset_or_history_rewrite() { - assert_sync_retirement_preserves_history(false).await; -} - -#[asupersync::test] -async fn retired_sync_overrides_converge_without_losing_supported_policy() { - assert_sync_retirement_preserves_history(true).await; -} - -async fn assert_sync_retirement_preserves_history(override_retired: bool) { - let mut released = ConfigurationRegistry::core().unwrap(); - for (raw_key, default) in RELEASED_SYNC_SETTINGS { - released - .register(SettingDefinitionV1 { - key: SettingKey::new(raw_key).unwrap(), - schema_revision: 7, - value_kind: ConfigurationValueKindV1::Unsigned, - default_value: ConfigurationValueV1::Unsigned(default), - sensitivity: SettingSensitivityV1::Public, - scope: SettingScopeV1::Project, - restart_requirement: RestartRequirementV1::DaemonRestart, - deprecation: DeprecationStateV1::Active, - }) - .unwrap(); - } - let directory = tempfile::tempdir().unwrap(); - let profile_root = directory.path().join("profile"); - let project_root = directory.path().join("project"); - std::fs::create_dir_all(&project_root).unwrap(); - let runtime = HostAdmissionTestRuntimeV1::project( - &profile_root, - &project_root, - id("project.configuration-store.fixture"), - ) - .await - .unwrap(); - let db = runtime - .registered_database(HostAdmissionScope::Project) - .unwrap(); - let store = GlobalDbConfigurationControlStore::new_registered(db); - let initial_revision = id("configuration.revision.released-sync"); - store - .initialize_canonical_with_registry( - &initial_revision, - &resolve_configuration(&released, &[]).unwrap(), - UtcMicros(1), - &released, - ) - .await - .unwrap(); - let initial = store.current_revision().await.unwrap(); - - let cooldown = SettingKey::new(SYNC_READ_COOLDOWN_SECS_SETTING_KEY).unwrap(); - let mut mutations = vec![DirectConfigurationMutation::Set { - layer: direct_project_layer(), - key: cooldown.clone(), - value: Box::new(ConfigurationValueV1::Unsigned(83)), - }]; - if override_retired { - mutations.extend(RELEASED_SYNC_SETTINGS.into_iter().zip([900, 7]).map( - |((raw_key, _), value)| DirectConfigurationMutation::Set { - layer: direct_project_layer(), - key: SettingKey::new(raw_key).unwrap(), - value: Box::new(ConfigurationValueV1::Unsigned(value)), - }, - )); - } - let authority = control_authority( - ConfigurationMutationOperationV1::DirectMutation, - &initial_revision, - ); - let transaction = db.begin_write_transaction().await.unwrap(); - commit_direct_in_transaction_with_registry( - &transaction, - &authority, - &DirectConfigurationMutation::Batch { mutations }, - &initial_revision, - &released, - ) - .await - .unwrap(); - transaction.commit().await.unwrap(); - let historical = store.current_revision().await.unwrap(); - - let mut expected_values = historical.snapshot.effective_values.clone(); - let mut expected_provenance = historical.snapshot.provenance.clone(); - for ((raw_key, default), overridden) in RELEASED_SYNC_SETTINGS.into_iter().zip([900, 7]) { - let key = SettingKey::new(raw_key).unwrap(); - assert_eq!( - expected_values.remove(&key), - Some(ConfigurationValueV1::Unsigned(if override_retired { - overridden - } else { - default - })) - ); - assert!(expected_provenance.remove(&key).is_some()); - } - let expected = ConfigurationSnapshotV1::new(expected_values, expected_provenance).unwrap(); - - let converged = store - .converge_registered_registry_shape(&historical.revision_id, UtcMicros(20)) - .await - .unwrap(); - assert_ne!(converged.revision_id, historical.revision_id); - assert_eq!(converged.snapshot, expected); - assert_eq!( - converged.snapshot.effective_values[&cooldown], - ConfigurationValueV1::Unsigned(83) - ); - assert_eq!( - converged.snapshot.provenance[&cooldown], - historical.snapshot.provenance[&cooldown] - ); - let current = store.current_revision().await.unwrap(); - assert_eq!(current.revision_id, converged.revision_id); - assert_eq!( - current.parent_revision_id, - Some(historical.revision_id.clone()) - ); - assert_eq!(current.operation_kind, "registry_shape_convergence"); - assert_eq!( - store.read_revision(&historical.revision_id).await.unwrap(), - Some(historical) - ); - assert_eq!( - store.read_revision(&initial_revision).await.unwrap(), - Some(initial) - ); - assert_eq!( - store - .converge_registered_registry_shape(&converged.revision_id, UtcMicros(21)) - .await - .unwrap(), - converged, - "reopening the current shape must not create another revision" - ); -} - -#[asupersync::test] -async fn retired_sync_settings_are_absent_and_writes_are_rejected() { - let registry = ConfigurationRegistry::core().unwrap(); - let (_directory, runtime, root) = Box::pin(global_setup()).await; - let db = runtime - .registered_database(HostAdmissionScope::Project) - .unwrap(); - let store = GlobalDbConfigurationControlStore::new_registered(db); - let authority = control_authority( - ConfigurationMutationOperationV1::DirectMutation, - &root.revision_id, - ); - - for (raw_key, default) in RELEASED_SYNC_SETTINGS { - let key = SettingKey::new(raw_key).unwrap(); - assert!( - registry - .definitions() - .all(|definition| definition.key != key) - ); - assert!(matches!( - registry.definition(&key), - Err(ConfigurationRegistryError::UnknownSetting(rejected)) if rejected == key - )); - assert!(!root.snapshot.effective_values.contains_key(&key)); - assert!(!root.snapshot.provenance.contains_key(&key)); - - for mutation in [ - DirectConfigurationMutation::Set { - layer: direct_project_layer(), - key: key.clone(), - value: Box::new(ConfigurationValueV1::Unsigned(default)), - }, - DirectConfigurationMutation::Unset { - layer: direct_project_layer(), - key: key.clone(), - }, - ] { - assert_eq!( - store - .commit_direct(&authority, &mutation, &root.revision_id) - .await, - Err(ConfigurationError::Validation(format!( - "setting key is not registered: {raw_key}" - ))) - ); - assert_eq!(store.current_revision().await.unwrap(), root); - } - } - let read = db.read_snapshot().await.unwrap(); - assert_eq!(count(&read, "configuration_mutation_receipts").await, 0); - assert_eq!(count(&read, "configuration_audit_events").await, 0); -} diff --git a/crates/tracedecay-project/src/config/tests.rs b/crates/tracedecay-project/src/config/tests.rs index 4974e3fef7..98f7e06073 100644 --- a/crates/tracedecay-project/src/config/tests.rs +++ b/crates/tracedecay-project/src/config/tests.rs @@ -227,7 +227,7 @@ mod runtime_configuration_cutover { ConfigurationGrantReceiptId, ConfigurationIdempotencyKey, ConfigurationLayerIdV1, ConfigurationMutationEffectV1, ConfigurationMutationGrantReceiptV1, ConfigurationMutationOperationV1, ConfigurationMutationSinkV1, ConfigurationRevisionId, - ConfigurationValueV1, INDEX_EXCLUDE_SETTING_KEY, INDEX_NATIVE_GRAPH_ACTIVATION_SETTING_KEY, + ConfigurationValueV1, INDEX_NATIVE_GRAPH_ACTIVATION_SETTING_KEY, SOURCE_BINDINGS_SETTING_KEY, SYNC_AUTO_WATCH_SETTING_KEY, ScopeSourceBinding, SettingKey, SourceBindingId, SourceKindV1, TELEMETRY_TIMINGS_SETTING_KEY, }; @@ -245,7 +245,6 @@ mod runtime_configuration_cutover { use tracedecay_configuration::SyncConfig; use tracedecay_configuration::config::PinnedRuntimeConfiguration; use tracedecay_global_db::configuration::GlobalDbConfigurationControlStore; - use tracedecay_global_db::configuration::contracts::types::AuthorizedActor; use tracedecay_global_db::configuration::contracts::{ ConfigurationControlStore, ConfigurationMutationAuthority, DirectConfigurationMutation, }; @@ -795,105 +794,6 @@ mod runtime_configuration_cutover { assert_eq!(runtime.configuration_target(), current.target()); } - /// A release before write-time pattern checks stored `index.exclude.v1` - /// patterns it never compiled. Opening such a store keeps the - /// configuration, and so its repair, available; the stored pattern is left - /// unapplied and `get` names it with the actions that clear it. - #[asupersync::test] - async fn a_stored_uncompilable_index_pattern_is_a_typed_setting_finding() { - let profile = TempDir::new().expect("temporary profile root"); - let root = TempDir::new().expect("temporary project root"); - let project_id = project_id("project.configuration-uncompilable-exclude"); - tracedecay_runtime_core::storage::pin_fixture_repository_identity( - root.path(), - project_id.as_str(), - ) - .expect("write enrollment marker"); - let layout = tracedecay_runtime_core::storage::resolve_layout(root.path(), profile.path()) - .expect("resolve store layout"); - std::fs::create_dir_all(&layout.data_root).expect("create data root"); - let host_runtime = - HostAdmissionTestRuntimeV1::project(profile.path(), root.path(), project_id.clone()) - .await - .expect("open retained project runtime"); - let database = host_runtime - .registered_database_arc(tracedecay_sessions::admission::HostAdmissionScope::Project) - .expect("bind registered project database"); - crate::config::install_usecase_runtime_configuration_authority() - .expect("install the root runtime configuration read ports"); - - let target = crate::config::runtime_configuration_target_for_layout(root.path(), &layout) - .expect("configuration target"); - let exclude = SettingKey::new(INDEX_EXCLUDE_SETTING_KEY).unwrap(); - let revision = revision_id("configuration.revision.unchecked-exclude"); - let stored = resolve_configuration( - &ConfigurationRegistry::core().unwrap(), - &[ConfigurationLayerV1 { - layer: ConfigurationLayerIdV1::Project { - project_id: project_id.clone(), - }, - revision_id: revision.clone(), - entries: BTreeMap::from([ - ( - SettingKey::new(SOURCE_BINDINGS_SETTING_KEY).unwrap(), - ConfigurationValueV1::SourceBindings(vec![ - crate::config::daemon_project_source_binding(&target).unwrap(), - ]), - ), - ( - exclude.clone(), - ConfigurationValueV1::StringList(vec![ - "src/[abc".to_owned(), - "docs/**".to_owned(), - ]), - ), - ]), - }], - ) - .expect("read-time validation admits the stored pattern"); - GlobalDbConfigurationControlStore::new_registered(database.as_ref()) - .initialize_canonical(&revision, &stored, UtcMicros(1)) - .await - .expect("seed the store as the earlier release left it"); - - let (_, opened) = crate::config::open_runtime_configuration_for_registered_database( - root.path(), - &layout, - database, - ) - .await - .expect("an unapplied pattern must not refuse the configuration") - .into_parts(); - let (runtime, pinned) = - ProjectConfigurationRuntime::open(opened).expect("open project configuration runtime"); - assert_eq!(pinned.config().index_paths.exclude_patterns(), ["docs/**"]); - - let setting = runtime - .client() - .get( - AuthorizedActor { - actor_id: ActorId::new("actor.configuration-uncompilable-exclude").unwrap(), - }, - exclude, - ) - .await - .expect("the stored setting stays readable"); - let setting = serde_json::to_value(setting).unwrap(); - assert_eq!( - setting["effective_value"], - serde_json::json!({"kind": "string_list", "value": ["src/[abc", "docs/**"]}) - ); - assert_eq!( - setting["findings"], - serde_json::json!([{ - "kind": "invalid_index_path_pattern", - "pattern": "src/[abc", - "message": "unclosed character class; missing ']'", - "legal_actions": ["set", "unset"], - }]) - ); - } - /// One real journey over the production read surfaces: open (as the /// lifecycle does), cached reads through the root cache, the lower cache /// port, and the dashboard read port, a committed configuration change diff --git a/crates/tracedecay-session-memory/src/user_config.rs b/crates/tracedecay-session-memory/src/user_config.rs index ffb2d8b288..2eb6419447 100644 --- a/crates/tracedecay-session-memory/src/user_config.rs +++ b/crates/tracedecay-session-memory/src/user_config.rs @@ -2,7 +2,7 @@ //! //! All fields have defaults so a missing file or missing fields are handled //! gracefully. Keys other profile readers own (e.g. GitHub repositories) are -//! preserved; retired keys are dropped at load and erased by the next write. +//! preserved. use std::collections::BTreeMap; use std::fs; @@ -15,24 +15,6 @@ use tracedecay_domain::canonical_text::default_true; use tracedecay_automation::config::AutomationSettingsV1; use tracedecay_runtime_core::storage::{append_lock_path, retry_transient_file_op}; -/// Keys canonical `user.*` configuration settings own, and state of the -/// retired worldwide counter (its upload opt-in, pending amount and flush -/// timestamps) and status worldwide/flag decoration. They are never read from -/// this file; an older profile that still carries them loads normally and the -/// next write erases them. The pending amount is dropped without an upload. -const RETIRED_KEYS: [&str; 10] = [ - "upload_enabled", - "pending_upload", - "last_upload_at", - "last_flush_attempt_at", - "watcher_debounce", - "extraction_timeout_secs", - "last_worldwide_total", - "last_worldwide_fetch_at", - "cached_country_flags", - "last_flags_fetch_at", -]; - /// User-level tracedecay configuration. #[derive(Debug, Serialize, Deserialize)] pub struct UserConfig { @@ -267,14 +249,7 @@ impl UserConfig { /// silently turn a stored opt-out (dashboard, memory injection) back on /// and drop the tracked hosts. pub fn load(profile_root: &Path) -> std::result::Result { - read_profile_config::(profile_root).map(Self::without_retired_keys) - } - - fn without_retired_keys(mut self) -> Self { - for key in RETIRED_KEYS { - self.extra.remove(key); - } - self + read_profile_config::(profile_root) } /// Saves the user-level config file atomically. @@ -591,19 +566,14 @@ mod tests { } #[test] - fn save_erases_retired_keys_and_preserves_other_readers_keys() { + fn save_preserves_other_readers_keys() { let temp = TempDir::new().unwrap(); let profile = temp.path(); let path = config_path(profile); std::fs::create_dir_all(path.parent().unwrap()).unwrap(); std::fs::write( &path, - "upload_enabled = true\npending_upload = 4200\nlast_upload_at = 1711375100\n\ - last_flush_attempt_at = 1711375150\n\ - watcher_debounce = \"9s\"\nextraction_timeout_secs = 5\n\ - last_worldwide_total = 1000000\nlast_worldwide_fetch_at = 1711375200\n\ - cached_country_flags = [\"🇺🇸\", \"🇩🇪\"]\nlast_flags_fetch_at = 1711375200\n\ - future_key = \"keep-me\"\n[future_table]\nflag = true\n", + "future_key = \"keep-me\"\n[future_table]\nflag = true\n", ) .unwrap(); @@ -618,23 +588,6 @@ mod tests { assert!(saved.contains("[future_table]")); assert!(saved.contains("flag = true")); assert!(saved.contains("last_version_check_at = 3")); - for retired in [ - "upload_enabled", - "pending_upload", - "last_upload_at", - "last_flush_attempt_at", - "watcher_debounce", - "extraction_timeout_secs", - "last_worldwide_total", - "last_worldwide_fetch_at", - "cached_country_flags", - "last_flags_fetch_at", - ] { - assert!( - !saved.contains(retired), - "{retired} survived a write:\n{saved}" - ); - } } #[test] diff --git a/crates/tracedecay/tests/automation_runner_test/scheduler.rs b/crates/tracedecay/tests/automation_runner_test/scheduler.rs index a71baec96a..eb5d389028 100644 --- a/crates/tracedecay/tests/automation_runner_test/scheduler.rs +++ b/crates/tracedecay/tests/automation_runner_test/scheduler.rs @@ -1337,7 +1337,7 @@ fn config_requires_interval_secs_for_configured_interval_schedule() { } #[test] -fn config_validates_scheduler_idle_bound_and_rejects_retired_lock_timeout() { +fn config_validates_scheduler_idle_bound() { let patch = AutomationConfigPatch { memory_curator: AutomationTaskPatch { min_idle_secs: Some(Some(0)), @@ -1353,22 +1353,6 @@ fn config_validates_scheduler_idle_bound_and_rejects_retired_lock_timeout() { "zero min_idle_secs must retain its field-specific rejection: {error}" ); - for value in [ - serde_json::json!(0), - serde_json::json!(3600), - serde_json::Value::Null, - ] { - let error = serde_json::from_value::(serde_json::json!({ - "memory_curator": { "stale_lock_secs": value } - })) - .unwrap_err(); - assert!( - error - .to_string() - .contains("unknown field `stale_lock_secs`") - ); - } - // The active idle bound still accepts a nonzero value. let patch = AutomationConfigPatch { memory_curator: AutomationTaskPatch { @@ -1421,7 +1405,7 @@ async fn task_lock_reclaims_a_fresh_dead_pid_without_waiting_out_the_age_gate() assert!( lock.is_some(), - "a confirmed-dead owner must not block the next scheduler tick for stale_lock_secs" + "a confirmed-dead owner must not block the next scheduler tick" ); assert!(!lock_path.exists(), "a dead owner's lock file is retired"); drop(lock); diff --git a/dashboard/codegen/schemas/dashboard-contracts.schema.json b/dashboard/codegen/schemas/dashboard-contracts.schema.json index 9570cb9bf9..10069d14f9 100644 --- a/dashboard/codegen/schemas/dashboard-contracts.schema.json +++ b/dashboard/codegen/schemas/dashboard-contracts.schema.json @@ -11708,7 +11708,7 @@ ] }, "DoctorFindingFamilyV1": { - "description": "Stable Doctor finding families.\n\nThe initial list covers advisory findings from\nBrain, Explorer, Loom, Code, and Observatory, plus the legacy\n`core_doctor` checks (graph quick-check, temporal/migration health,\nconfiguration compatibility drift, code-index mount state, session ingest).\nEach family maps to one audited typed input surface. The set is kept small\nand honest; new families are added through a future versioned enum rather\nthan by widening the meaning of an existing variant.", + "description": "Stable Doctor finding families.\n\nThe initial list covers advisory findings from\nBrain, Explorer, Loom, Code, and Observatory, plus the daemon\ncore doctor checks (graph quick-check, temporal health, configuration\ndrift, code-index mount state, session ingest).\nEach family maps to one audited typed input surface. The set is kept small\nand honest; new families are added through a future versioned enum rather\nthan by widening the meaning of an existing variant.", "oneOf": [ { "const": "advisory", diff --git a/dashboard/src/contracts/decoders.ts b/dashboard/src/contracts/decoders.ts index 4359ff6b4b..202d42f67e 100644 --- a/dashboard/src/contracts/decoders.ts +++ b/dashboard/src/contracts/decoders.ts @@ -4153,9 +4153,9 @@ export const DoctorFamilyUnavailableReasonV1Schema: z.ZodUnion<[z.ZodLiteral<"un /** Stable Doctor finding families. The initial list covers advisory findings from -Brain, Explorer, Loom, Code, and Observatory, plus the legacy -`core_doctor` checks (graph quick-check, temporal/migration health, -configuration compatibility drift, code-index mount state, session ingest). +Brain, Explorer, Loom, Code, and Observatory, plus the daemon +core doctor checks (graph quick-check, temporal health, configuration +drift, code-index mount state, session ingest). Each family maps to one audited typed input surface. The set is kept small and honest; new families are added through a future versioned enum rather than by widening the meaning of an existing variant. */ diff --git a/docs/USER-GUIDE.md b/docs/USER-GUIDE.md index 4ba974aa97..96cb0aadf2 100644 --- a/docs/USER-GUIDE.md +++ b/docs/USER-GUIDE.md @@ -1253,25 +1253,12 @@ Network effects are separate from local indexing and retrieval. They can be disabled, unavailable, or denied without turning those states into successful local results. The available effects are described below. -### Worldwide token counter (retired) +### Token counter -TraceDecay no longer has a worldwide token counter and makes no counter network +There is no worldwide token counter and TraceDecay makes no counter network call. Token savings, costs, and usage stay local: `tracedecay current-counter`, `tracedecay reset-counter`, `tracedecay gain`, `tracedecay cost`, and the -dashboard are unchanged. - -`tracedecay enable-upload-counter` and `tracedecay disable-upload-counter` no -longer exist and fail as unknown subcommands. The `user.upload_enabled.v1` -setting and the dashboard's `upload_enabled` field are gone, so a configuration -read or patch that names them is refused. An older profile that still stores the -opt-in, a pending upload amount, or flush timestamps loads normally: the next -write erases them, and the pending amount is never uploaded. - -The hosted counter service was a Cloudflare Worker named `tracedecay-counter`, -backed by Upstash Redis. Nothing in this repository deploys or operates it, so -removing the client does not shut it down. Decommissioning it is a separate -maintainer action: delete the Worker and its Redis store from the Cloudflare -and Upstash accounts that host them. Its status is tracked on issue #3619. +dashboard. ### Version check diff --git a/plugin/chatgpt-extension/embedded/server.mjs b/plugin/chatgpt-extension/embedded/server.mjs index d1935713e9..4eb9d977a0 100644 --- a/plugin/chatgpt-extension/embedded/server.mjs +++ b/plugin/chatgpt-extension/embedded/server.mjs @@ -74,7 +74,7 @@ data: `;return i&&(o+=`id: ${i} `),o+=`data: ${JSON.stringify(r)} -`,e.enqueue(t.encode(o)),!0}catch(e){return this.onerror?.(e),!1}}handleUnsupportedRequest(){return this.onerror?.(Error("Method not allowed.")),Response.json({jsonrpc:"2.0",error:{code:-32e3,message:"Method not allowed."},id:null},{status:405,headers:{Allow:"GET, POST, DELETE","Content-Type":"application/json"}})}async handlePostRequest(e,t){try{var r,i;let o,n,a,s,d,c=e.headers.get("accept");if(!c?.includes("application/json")||!c.includes("text/event-stream"))return this.onerror?.(Error("Not Acceptable: Client must accept both application/json and text/event-stream")),this.createJsonErrorResponse(406,-32e3,"Not Acceptable: Client must accept both application/json and text/event-stream");if(r=e.headers.get("content-type"),"application/json"!==r&&"application/json"!==function(e){if(e)try{return lG.parse(e).type}catch{let t=(e.split(";",1)[0]??"").trim().toLowerCase();if(""===t||e.slice(t.length).includes(","))return;return t}}(r))return this.onerror?.(Error("Unsupported Media Type: Content-Type must be application/json")),this.createJsonErrorResponse(415,-32e3,"Unsupported Media Type: Content-Type must be application/json");if(t?.parsedBody===void 0)try{let t=await async function(e,t=4194304){if(Number(e.headers.get("content-length"))>t)return{tooLarge:!0};if(null===e.body)return{tooLarge:!1,text:""};let r=e.body.getReader(),i=new TextDecoder,o=0,n="";try{for(;;){let{done:e,value:a}=await r.read();if(e)break;if((o+=a.byteLength)>t)return{tooLarge:!0};n+=i.decode(a,{stream:!0})}}finally{r.releaseLock()}return{tooLarge:!1,text:n+i.decode()}}(e,this._maxRequestBodySize);if(t.tooLarge){let e=(i=this._maxRequestBodySize,`Payload Too Large: Request body must not exceed ${i} bytes`);return this.onerror?.(Error(e)),this.createJsonErrorResponse(413,-32e3,e)}o=JSON.parse(t.text)}catch(e){return this.onerror?.(e),this.createJsonErrorResponse(400,-32700,"Parse error: Invalid JSON")}else o=t.parsedBody;if(Array.isArray(o)&&o.length>100)return this.onerror?.(Error("Invalid Request: Batch must not exceed 100 messages")),this.createJsonErrorResponse(400,-32600,"Invalid Request: Batch must not exceed 100 messages");try{n=Array.isArray(o)?o.map(e=>aM.parse(e)):[aM.parse(o)]}catch(e){return this.onerror?.(e),this.createJsonErrorResponse(400,-32700,"Parse error: Invalid JSON-RPC message")}if(this._closed)return this.createJsonErrorResponse(404,-32001,"Session not found");let l=n.some(e=>aY.safeParse(e).success);if(l){if(this._initialized&&void 0!==this.sessionId)return this.onerror?.(Error("Invalid Request: Server already initialized")),this.createJsonErrorResponse(400,-32600,"Invalid Request: Server already initialized");if(n.length>1)return this.onerror?.(Error("Invalid Request: Only one initialization request is allowed")),this.createJsonErrorResponse(400,-32600,"Invalid Request: Only one initialization request is allowed");this.sessionId=this.sessionIdGenerator?.(),this._initialized=!0,this.sessionId&&this._onsessioninitialized&&await Promise.resolve(this._onsessioninitialized(this.sessionId))}if(!l){let t=this.validateSession(e);if(t)return t;let r=this.validateProtocolVersion(e);if(r)return r}if(this._closed)return this.createJsonErrorResponse(404,-32001,"Session not found");try{a=await this._checkScopeChallenge(n,t?.authInfo)}catch(e){return this.onerror?.(e),this.createJsonErrorResponse(500,-32603,"Internal server error")}if(a)return a;if(!n.some(e=>lp(e))){for(let r of n)this.onmessage?.(r,{authInfo:t?.authInfo,request:e});return new Response(null,{status:202})}let p=crypto.randomUUID(),u=n.find(e=>aY.safeParse(e).success),m=u?u.params.protocolVersion:e.headers.get("mcp-protocol-version")??"2025-03-26";if(this._enableJsonResponse)return new Promise(r=>{for(let e of(this._streamMapping.set(p,{resolveJson:r,cleanup:()=>{this._streamMapping.delete(p)}}),n))lp(e)&&this._requestToStreamMapping.set(e.id,p);for(let r of n)this.onmessage?.(r,{authInfo:t?.authInfo,request:e})});let f=new TextEncoder,h=new ReadableStream({start:e=>{s=e},cancel:()=>{void 0!==d&&clearInterval(d),this._streamMapping.get(p)?.controller===s&&this._streamMapping.delete(p)}}),y={"Content-Type":"text/event-stream","Cache-Control":"no-cache, no-transform",Connection:"keep-alive","X-Accel-Buffering":"no"};for(let e of(void 0!==this.sessionId&&(y["mcp-session-id"]=this.sessionId),n))lp(e)&&(this._streamMapping.set(p,{controller:s,encoder:f,cleanup:()=>{void 0!==d&&clearInterval(d),this._streamMapping.delete(p);try{s.close()}catch{}}}),this._requestToStreamMapping.set(e.id,p));for(let r of(await this.writePrimingEvent(s,f,p,m),n)){let i,o;lp(r)&&this._eventStore&&this.supportsEmptySSEData(m)&&(i=()=>{this.closeSSEStream(r.id)},o=()=>{this.closeStandaloneSSEStream()}),this.onmessage?.(r,{authInfo:t?.authInfo,request:e,closeSSEStream:i,closeStandaloneSSEStream:o})}return this._streamMapping.get(p)?.controller===s&&(d=this.startKeepAlive(s,f)),new Response(h,{status:200,headers:y})}catch(e){return this.onerror?.(e),this.createJsonErrorResponse(400,-32700,"Parse error",{data:String(e)})}}async handleDeleteRequest(e){let t=this.validateSession(e);if(t)return t;let r=this.validateProtocolVersion(e);if(r)return r;try{return await Promise.resolve(this._onsessionclosed?.(this.sessionId)),new Response(null,{status:200})}finally{await this.close()}}validateSession(e){if(void 0===this.sessionIdGenerator)return;if(!this._initialized)return this.onerror?.(Error("Bad Request: Server not initialized")),this.createJsonErrorResponse(400,-32e3,"Bad Request: Server not initialized");let t=e.headers.get("mcp-session-id");return t?t!==this.sessionId?(this.onerror?.(Error("Session not found")),this.createJsonErrorResponse(404,-32001,"Session not found")):void 0:(this.onerror?.(Error("Bad Request: Mcp-Session-Id header is required")),this.createJsonErrorResponse(400,-32e3,"Bad Request: Mcp-Session-Id header is required"))}validateProtocolVersion(e){let t=e.headers.get("mcp-protocol-version");if(null!==t&&!this._supportedProtocolVersions.includes(t)){let e=`Bad Request: Unsupported protocol version: ${t} (supported versions: ${this._supportedProtocolVersions.join(", ")})`;return this.onerror?.(Error(e)),this.createJsonErrorResponse(400,-32e3,e)}}async close(){if(!this._closed){for(let{cleanup:e}of(this._closed=!0,this._streamMapping.values()))e();this._streamMapping.clear(),this._requestResponseMap.clear(),this.onclose?.()}}closeSSEStream(e){let t=this._requestToStreamMapping.get(e);if(!t)return;let r=this._streamMapping.get(t);r&&r.cleanup()}closeStandaloneSSEStream(){let e=this._streamMapping.get(this._standaloneSseStreamId);e&&e.cleanup()}async send(e,t){let r=t?.relatedRequestId;if((aA.safeParse(e).success||aW.safeParse(e).success)&&(r=e.id),void 0===r){let t;if(aA.safeParse(e).success||aW.safeParse(e).success)throw Error("Cannot send a response on a standalone SSE stream unless resuming a previous client request");this._eventStore&&(t=await this._eventStore.storeEvent(this._standaloneSseStreamId,e));let r=this._streamMapping.get(this._standaloneSseStreamId);if(void 0===r)return;r.controller&&r.encoder&&(void 0===t||!r.replayedEventIds?.has(t))&&this.writeSSEEvent(r.controller,r.encoder,e,t);return}let i=this._requestToStreamMapping.get(r);if(!i)throw Error(`No connection established for request ID: ${String(r)}`);let o=this._streamMapping.get(i);if(!this._enableJsonResponse){let t;this._eventStore&&(t=await this._eventStore.storeEvent(i,e),o=this._streamMapping.get(i)),o?.controller&&o?.encoder&&(void 0===t||!o.replayedEventIds?.has(t))&&this.writeSSEEvent(o.controller,o.encoder,e,t)}if(aA.safeParse(e).success||aW.safeParse(e).success){this._requestResponseMap.set(r,e);let t=[...this._requestToStreamMapping.entries()].filter(([e,t])=>t===i).map(([e])=>e);if(t.every(e=>this._requestResponseMap.has(e))){if(!o){if(this._enableJsonResponse)throw Error(`No connection established for request ID: ${String(r)}`);if(!this._eventStore){for(let e of(this.onerror?.(Error(`Response for request ID ${String(r)} is undeliverable: per-request stream is disconnected and no eventStore is configured`)),t))this._requestResponseMap.delete(e),this._requestToStreamMapping.delete(e);return}for(let e of t)this._requestResponseMap.delete(e),this._requestToStreamMapping.delete(e);return}if(this._enableJsonResponse&&o.resolveJson){let e={"Content-Type":"application/json"};void 0!==this.sessionId&&(e["mcp-session-id"]=this.sessionId);let r=t.map(e=>this._requestResponseMap.get(e));1===r.length?o.resolveJson(Response.json(r[0],{status:200,headers:e})):o.resolveJson(Response.json(r,{status:200,headers:e})),o.cleanup()}else o.cleanup();for(let e of t)this._requestResponseMap.delete(e),this._requestToStreamMapping.delete(e)}}}};let u0=Symbol("swallowsErrorsAfterClose");var u2=class{_readBuffer;_started=!1;_closed=!1;constructor(e=N.stdin,t=N.stdout,r){this._stdin=e,this._stdout=t,this._readBuffer=new lB({maxBufferSize:r?.maxBufferSize})}onclose;onerror;onmessage;_ondata=e=>{try{this._readBuffer.append(e),this.processReadBuffer()}catch(e){this.onerror?.(e),this.close().catch(()=>{})}};_onerror=e=>{this.onerror?.(e)};_onstdouterror=e=>{this._closed||(this.onerror?.(e),this.close().catch(()=>{}))};_onstdinclose=()=>{this.close().catch(()=>{})};async start(){if(this._started)throw Error("StdioServerTransport already started! If using Server class, note that connect() calls start() automatically.");for(let e of(this._started=!0,this._stdout.listeners("error")))e[u0]&&this._stdout.off("error",e);(this._stdin.readableEnded||this._stdin.destroyed)&&setImmediate(this._onstdinclose),this._stdin.on("data",this._ondata),this._stdin.on("error",this._onerror),this._stdin.on("end",this._onstdinclose),this._stdin.on("close",this._onstdinclose),this._stdout.on("error",this._onstdouterror)}processReadBuffer(){for(;;)try{let e=this._readBuffer.readMessage();if(null===e)break;this.onmessage?.(e)}catch(e){this.onerror?.(e)}}async close(){this._closed||(this._closed=!0,this._stdin.off("data",this._ondata),this._stdin.off("error",this._onerror),this._stdin.off("end",this._onstdinclose),this._stdin.off("close",this._onstdinclose),this._onstdouterror[u0]=!0,0===this._stdin.listenerCount("data")&&this._stdin.pause(),this._readBuffer.clear(),this.onclose?.())}send(e){return this._closed?Promise.reject(Error("StdioServerTransport is closed")):new Promise((t,r)=>{let i=JSON.stringify(e)+"\n",o=!1,n=e=>{o||(o=!0,this._stdout.off("error",n),this._stdout.off("drain",a),r(e))},a=()=>{o||(o=!0,this._stdout.off("error",n),this._stdout.off("drain",a),t())};if(this._stdout.once("error",n),this._stdout.write(i)){if(o)return;o=!0,this._stdout.off("error",n),t()}else o||this._stdout.once("drain",a)})}},u4=class extends Error{constructor(e,t){super(e,t),this.name="RequestError"}};let u6=new Set(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","server","user-agent"]),u3=/^[!#$%&'*+\-.^_`|~\dA-Za-z]+$/,u9=e=>9===e||10===e||13===e||32===e,u5=e=>{if(!u9(e.charCodeAt(0))&&!u9(e.charCodeAt(e.length-1)))return e;let t=0,r=e.length;for(;tt&&u9(e.charCodeAt(r-1));)r--;return e.slice(t,r)},u8=/[\0\r\n]/,u7=globalThis.Headers,me=(e,t=u7)=>{let r=new t;for(let t=0;t{e.call(t,r,i,this)})}[Symbol.iterator](){return this.entries()}};Object.defineProperty(mt.prototype,Symbol.for("nodejs.util.inspect.custom"),{value:function(e,t,r){return`Headers (lightweight) ${r(Object.fromEntries(this),{...t,depth:null==e?null:e-1})}`}}),Object.setPrototypeOf(mt.prototype,u7.prototype);let mr=e=>globalThis.Headers===u7?new mt(e):me(e.rawHeaders,globalThis.Headers),mi=/^\/[!#$&-;=?-\[\]_a-z~]*$/,mo=/\/\.\.?(?:[/?#]|$)/,mn=/^[a-z0-9._-]+(?::(?:[1-5]\d{3,4}|[6-9]\d{3}))?$/,ma=global.Request;var ms=class extends ma{constructor(e,t){if("object"==typeof e&&mg in e){let r=void 0!==t&&"body"in t&&null!=t.body;if(e[mq]&&!r)throw TypeError("Cannot construct a Request with a Request object that has already been used.");e=e[mg]()}void 0!==t?.body?.getReader&&(t.duplex??="half"),super(e,t)}};let md=Symbol("wrapBodyStream"),mc=new Set(["latin1","binary","hex","base64","base64url"]),ml=Symbol("bodyBufferedBeforeDisconnect"),mp=Symbol("bodyBufferedLengthBeforeDisconnect"),mu=(e,t)=>Buffer.isBuffer(e)?e:Buffer.from(e,t??"utf8"),mm=e=>{let t;return!(e instanceof z)&&!!e.complete&&!!e.readableAborted&&"function"==typeof e.read&&(null===(t=e.readableEncoding)||mc.has(t))},mf=e=>{e.readableDidRead||!mm(e)||(e[mp]??=e.readableLength)},mh=(e,t)=>{let r;if(e.readableDidRead&&!t||!mm(e))return;if(void 0!==e[ml])return e[ml];let i=e.errored;if(i&&"ECONNRESET"!==i.code)r=i;else if(void 0!==e[mp]&&e.readableLength!==e[mp])r=mj();else{let i=t??[],o=e.read();null!==o&&i.push(mu(o,e.readableEncoding));let n=1===i.length?i[0]:Buffer.concat(i);r=n;let a=e.headers["content-length"];if("string"==typeof a&&/^\d+$/.test(a)){let e=Number(a);Number.isSafeInteger(e)&&n.length!==e&&(r=mj())}}return e[ml]=r,r},my=(e,t)=>{t instanceof Error?e.error(t):(t.length>0&&e.enqueue(t),e.close())},mg=Symbol("getRequestCache"),m_=Symbol("requestCache"),mv=Symbol("incomingKey"),mb=Symbol("urlKey"),m$=Symbol("methodKey"),mS=Symbol("headersKey"),mk=Symbol("abortControllerKey"),mw=Symbol("getAbortController"),mP=Symbol("abortRequest"),mV=Symbol("bodyBuffer"),mR=Symbol("bodyReadPromise"),mq=Symbol("bodyConsumedDirectly"),mI=Symbol("bodyLockReader"),mx=Symbol("abortReason"),mj=()=>TypeError("Body is unusable"),mC=new TextDecoder,mT=/^[!#$%&'*+\-.^_`|~0-9A-Za-z]+$/,mO=(e,t,r)=>{if(e[mq])return Promise.reject(mj());let i=e.method;if("GET"===i||"HEAD"===i)return e[mg]()[t]();let o=(e=>{if(!mT.test(e))return TypeError(`'${e}' is not a valid HTTP method.`);let t=e.toUpperCase();if("CONNECT"===t||"TRACK"===t||"TRACE"===t&&"TRACE"!==e)return TypeError(`'${e}' HTTP method is unsupported.`)})(i);if(o)return Promise.reject(o);if(e[m_]&&"TRACE"!==i)return e[m_][t]();let n=(e=>{if(e[mq])return Promise.reject(mj());e[mq]=!0})(e);if(n)return n;let a=mE(e);if(a){let t=Promise.resolve(r(a,e));return e[mV]=void 0,t}return mW(e).then(t=>{let i=r(t,e);return e[mV]=void 0,i})},mE=e=>{let t=e[mv];if("rawBody"in t&&t.rawBody instanceof Buffer)return t.rawBody},mA=(e,t)=>{if(t.errored)return t.errored;let r=e[mx];return void 0!==r?r instanceof Error?r:Error(String(r)):Error("Client connection prematurely closed.")},mW=e=>{if(e[mV])return Promise.resolve(e[mV]);if(e[mR])return e[mR];let t=e[mv];if(t.readableDidRead)return Promise.reject(mj());let r=mh(t);if(void 0!==r)return r instanceof Error?Promise.reject(r):(e[mV]=r,Promise.resolve(r));let i=new Promise((r,i)=>{let o=[],n=!1,a=e=>{n||(n=!0,u(),e())},s=n=>{let s=t.errored??n;return!!mm(t)&&(!s||"ECONNRESET"===s.code)&&(a(()=>{let a=mh(t,o);a instanceof Error?i(a):void 0===a?i(n??mA(e,t)):(e[mV]=a,r(a))}),!0)},d=e=>{o.push(mu(e,t.readableEncoding))},c=()=>{a(()=>{let t=1===o.length?o[0]:Buffer.concat(o);e[mV]=t,r(t)})},l=e=>{s(e)||a(()=>{i(e)})},p=()=>{t.readableEnded?c():s()||a(()=>{i(mA(e,t))})},u=()=>{t.off("data",d),t.off("end",c),t.off("error",l),t.off("close",p),e[mR]=void 0};t.on("data",d),t.on("end",c),t.on("error",l),t.on("close",p),queueMicrotask(()=>{!n&&(t.readableEnded?c():t.errored?l(t.errored):t.destroyed&&p())})});return e[mR]=i,i},mM={get method(){return this[m$]},get url(){return this[mb]},get headers(){return this[mS]||=mr(this[mv])},[mP](e){void 0===this[mx]&&(this[mx]=e);let t=this[mk];t&&!t.signal.aborted&&t.abort(e)},[mw](){return this[mk]||=new AbortController,void 0===this[mx]||this[mk].signal.aborted||this[mk].abort(this[mx]),this[mk]},[mg](){let e=this[mw]();if(this[m_])return this[m_];let t=this.method;if(this[mq]&&"GET"!==t&&"HEAD"!==t){this[mV]=void 0;let r={method:"TRACE"===t?"GET":t,headers:this.headers,signal:e.signal};"TRACE"!==t&&(r.body=new ReadableStream({start(e){e.close()}}),r.duplex="half");let i=new ms(this[mb],r);return"TRACE"===t&&Object.defineProperty(i,"method",{get:()=>"TRACE"}),this[m_]=i}return this[m_]=((e,t,r,i,o)=>{let n={method:e,headers:r,signal:o.signal};if("TRACE"===e){n.method="GET";let e=new ms(t,n);return Object.defineProperty(e,"method",{get:()=>"TRACE"}),e}if("GET"!==e&&"HEAD"!==e)if("rawBody"in i&&i.rawBody instanceof Buffer)n.body=new ReadableStream({start(e){e.enqueue(i.rawBody),e.close()}});else if(i[md]){let e;n.body=new ReadableStream({async pull(t){try{if(!e){let e=mh(i);if(void 0!==e)return void my(t,e)}e||=L.toWeb(i).getReader();let{done:r,value:o}=await e.read();r?t.close():t.enqueue(o)}catch(e){t.error(e)}}})}else{let e=mh(i);void 0!==e?n.body=new ReadableStream({start(t){my(t,e)}}):n.body=L.toWeb(i)}return new ms(t,n)})(this.method,this[mb],this.headers,this[mv],e)},get body(){if(!this[mq])return this[mg]().body;let e=this[mg]();return!this[mI]&&e.body&&(this[mI]=e.body.getReader()),e.body},get bodyUsed(){return!!this[mq]||!!this[m_]&&this[m_].bodyUsed}};Object.defineProperty(mM,"signal",{get(){return this[mw]().signal}}),["cache","credentials","destination","integrity","mode","redirect","referrer","referrerPolicy","keepalive"].forEach(e=>{Object.defineProperty(mM,e,{get(){return this[mg]()[e]}})}),["clone","formData"].forEach(e=>{Object.defineProperty(mM,e,{value:function(){if(this[mq]){if("clone"===e)throw mj();return Promise.reject(mj())}return this[mg]()[e]()}})}),Object.defineProperty(mM,"text",{value:function(){return mO(this,"text",e=>mC.decode(e))}}),Object.defineProperty(mM,"arrayBuffer",{value:function(){return mO(this,"arrayBuffer",e=>e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength))}}),Object.defineProperty(mM,"blob",{value:function(){return mO(this,"blob",(e,t)=>{let r=(t[mS]||=mr(t[mv])).get("content-type")||"";return new Response(e,r?{headers:{"content-type":r}}:void 0).blob()})}}),Object.defineProperty(mM,"json",{value:function(){return this[mq]?Promise.reject(mj()):this.text().then(JSON.parse)}}),Object.defineProperty(mM,Symbol.for("nodejs.util.inspect.custom"),{value:function(e,t,r){return`Request (lightweight) ${r({method:this.method,url:this.url,headers:this.headers,nativeRequest:this[m_]},{...t,depth:null==e?null:e-1})}`}}),Object.setPrototypeOf(mM,ms.prototype);let mN="text/plain; charset=UTF-8",mz=Symbol("responseCache"),mD=Symbol("getResponseCache"),mF=Symbol("cache"),mL=global.Response;var mU=class e{#c;#l;[mD](){let e=this[mF],t=e&&e[2]instanceof Headers?e[2]:void 0;return delete this[mF],this[mz]||=new mL(this.#c,t?{status:this.#l?.status,statusText:this.#l?.statusText,headers:t}:this.#l)}constructor(t,r){let i;if(this.#c=t,r instanceof mL){let t=r[mz];if(t){this.#l=t,this[mD]();return}this.#l=r instanceof e?r.#l:r,i=new Headers(r.headers)}else this.#l=r;(null==t||"string"==typeof t||void 0!==t?.getReader||t instanceof Blob||t instanceof Uint8Array)&&(this[mF]=[r?.status||200,t??null,i||r?.headers])}get headers(){let e=this[mF];return e?(e[2]instanceof Headers||(e[2]=new Headers(e[2]||(null===e[1]?void 0:{"content-type":mN}))),e[2]):this[mD]().headers}get status(){return this[mF]?.[0]??this[mD]().status}get ok(){let e=this.status;return e>=200&&e<300}};["body","bodyUsed","redirected","statusText","trailers","type","url"].forEach(e=>{Object.defineProperty(mU.prototype,e,{get(){return this[mD]()[e]}})}),["arrayBuffer","blob","clone","formData","json","text"].forEach(e=>{Object.defineProperty(mU.prototype,e,{value:function(){return this[mD]()[e]()}})}),Object.defineProperty(mU.prototype,Symbol.for("nodejs.util.inspect.custom"),{value:function(e,t,r){return`Response (lightweight) ${r({status:this.status,headers:this.headers,ok:this.ok,nativeResponse:this[mz]},{...t,depth:null==e?null:e-1})}`}}),Object.setPrototypeOf(mU,mL),Object.setPrototypeOf(mU.prototype,mL.prototype);let mH=/^https?:\/\/[!#-;=?-[\]_a-z~A-Z]+$/,mG=new Set([301,302,303,307,308]);function mB(e,t,r){let i=t=>{e.cancel(t).catch(()=>{})};return t.on("close",i),t.on("error",i),(r??e.read()).then(a,o),e.closed.finally(()=>{t.off("close",i),t.off("error",i)});function o(e){e&&t.destroy(e)}function n(){e.read().then(a,o)}function a({done:r,value:i}){try{if(r)t.end();else{if(t.write(i))return e.read().then(a,o);t.once("drain",n)}}catch(e){o(e)}}}function mK(e,t){if(e.locked)throw TypeError("ReadableStream is locked.");if(!t.destroyed)return mB(e.getReader(),t)}Object.defineProperty(mU,"redirect",{value:function(e,t=302){if(!mG.has(t))throw RangeError("Invalid status code");return new mU(null,{status:t,headers:{location:e instanceof URL?e.href:mH.test(e)?e:new URL(e).href}})},writable:!0,configurable:!0}),Object.defineProperty(mU,"json",{value:function(e,t){let r,i=JSON.stringify(e);if(void 0===i)throw TypeError("The data is not JSON serializable");let o=t?.headers;return o?(r=new Headers(o)).has("content-type")||r.set("content-type","application/json"):r={"content-type":"application/json"},new mU(i,{status:t?.status??200,statusText:t?.statusText,headers:r})},writable:!0,configurable:!0});let mJ=(e,t)=>{let r={};if(e instanceof Headers||(e=new Headers(e??void 0)),e.has("set-cookie")){let t=[];for(let[i,o]of e)"set-cookie"===i?t.push(o):r[i]=o;t.length>0&&(r["set-cookie"]=t)}else for(let[t,i]of e)r[t]=i;return t&&(r["content-type"]??=t),r},mZ=Symbol("outgoingEnded"),mQ=Symbol("incomingDraining"),mX=e=>{if(e.destroyed||e[mQ])return;if(e[mQ]=!0,e instanceof z){try{e.stream?.close?.(D.NGHTTP2_NO_ERROR)}catch{}return}let t=0,r=()=>{clearTimeout(o),e.off("data",n),e.off("end",r),e.off("error",r)},i=()=>{r();let t=e.socket;t&&!t.destroyed&&("function"==typeof t.destroySoon?t.destroySoon():"function"==typeof t.destroy&&t.destroy())},o=setTimeout(i,500);o.unref?.();let n=e=>{(t+=e.length)>0x4000000&&i()};e.on("data",n),e.on("end",r),e.on("error",r),e.resume()},mY=e=>new Response(null,{status:e instanceof Error&&("TimeoutError"===e.name||"TimeoutError"===e.constructor.name)?504:500}),m1=(e,t)=>{let r=e instanceof Error?e:Error("unknown error",{cause:e});"ERR_STREAM_PREMATURE_CLOSE"===r.code?console.info("The user aborted a request."):(console.error(e),t.headersSent||(t instanceof T&&(t._contentLength=null),t.writeHead(500,{"Content-Type":"text/plain"})),t.end(`Error: ${r.message}`),t.destroy(r))},m0=e=>{"flushHeaders"in e&&e.writable&&e.flushHeaders()},m2=(e,t,r)=>!(null!==e._contentLength||!e._hasBody||!e.useChunkedEncodingByDefault||e._removedContLen||!(t>=200)||204===t||304===t||e.hasHeader("content-length")||e.hasHeader("transfer-encoding")||e.hasHeader("trailer"))&&(e._contentLength=r,!0),m4=(e,t,r)=>{m2(e,t,r)?e.writeHead(t,{"Content-Type":mN}):e.writeHead(t,{"Content-Type":mN,"Content-Length":r})},m6=async(e,t)=>{let[r,i,o]=e[mF];if(!o){null===i?(t.writeHead(r),t.end()):"string"==typeof i?(m4(t,r,Buffer.byteLength(i)),t.end(i)):i instanceof Uint8Array?(m4(t,r,i.byteLength),t.end(i)):i instanceof Blob?(m4(t,r,i.size),t.end(new Uint8Array(await i.arrayBuffer()))):(t.writeHead(r,{"Content-Type":mN}),m0(t),await mK(i,t)?.catch(e=>m1(e,t))),t[mZ]?.();return}let n=!1,a=!1,s=!0;if(o instanceof Headers)n=o.has("content-length"),o=mJ(o,null===i?void 0:mN);else if(Array.isArray(o)){let e=new Headers(o);n=e.has("content-length"),o=mJ(e,null===i?void 0:mN)}else for(let e in a=!0,o){if(14===e.length&&"content-length"===e.toLowerCase()){n=!0;break}(17===e.length&&"transfer-encoding"===e.toLowerCase()||7===e.length&&"trailer"===e.toLowerCase())&&(s=!1)}if(!n){let e;"string"==typeof i?e=Buffer.byteLength(i):i instanceof Uint8Array?e=i.byteLength:i instanceof Blob&&(e=i.size),void 0===e||a&&s&&m2(t,r,e)||(a&&(o={...o}),o["Content-Length"]=e)}t.writeHead(r,o),null==i?t.end():"string"==typeof i||i instanceof Uint8Array?t.end(i):i instanceof Blob?t.end(new Uint8Array(await i.arrayBuffer())):(m0(t),await mK(i,t)?.catch(e=>m1(e,t))),t[mZ]?.()},m3=(e,t={})=>{let r=t.autoCleanupIncoming??!0;return!1!==t.overrideGlobalObjects&&global.Request!==ms&&(Object.defineProperty(global,"Request",{value:ms}),Object.defineProperty(global,"Response",{value:mU})),async(i,o)=>{let n,a,s=!1,d=!1,c=()=>{if(a&&!d){let e,t;d=!0,o.on("close",(e=a,t=s,()=>{i.errored?(mf(i),e[mP](i.errored.toString())):(!o.writableFinished||i instanceof z&&i.aborted)&&(mf(i),e[mP]("Client connection prematurely closed.")),t&&!i.readableEnded&&setTimeout(()=>{i.readableEnded||setTimeout(()=>{mX(i)})})}))}};try{let d;if(a=((e,t)=>{let r,i=Object.create(mM);i[mv]=e,i[m$]=(e=>{if("string"!=typeof e||0===e.length)return"GET";switch(e){case"DELETE":case"GET":case"HEAD":case"OPTIONS":case"PATCH":case"POST":case"PUT":case"QUERY":return e}let t=e.toUpperCase();switch(t){case"DELETE":case"GET":case"HEAD":case"OPTIONS":case"POST":case"PUT":return t;default:return e}})(e.method);let o=e.url||"";if("/"!==o[0]&&(o.startsWith("http://")||o.startsWith("https://"))){if(e instanceof z)throw new u4("Absolute URL for :path is not allowed in HTTP/2");try{i[mb]=new URL(o).href}catch(e){throw new u4("Invalid absolute URL",{cause:e})}return i}let n=(e instanceof z?e.authority:e.headers.host)||t;if(!n)throw new u4("Missing host header");if(e instanceof z){if("http"!==(r=e.scheme)&&"https"!==r)throw new u4("Unsupported scheme")}else r=e.socket&&e.socket.encrypted?"https":"http";try{i[mb]=((e,t,r)=>{let i=`${e}://${t}${r}`;if(mn.test(t)){if(0===r.length)return i+"/";if(47!==r.charCodeAt(0))throw new u4("Invalid URL");return!mi.test(r)||mo.test(r)?new URL(i).href:i}{let e=new URL(i);if(e.hostname.length!==t.length&&e.hostname!==(t.includes(":")?t.replace(/:\d+$/,""):t).toLowerCase())throw new u4("Invalid host header");return e.href}})(r,n,o)}catch(e){if(e instanceof u4)throw e;throw new u4("Invalid URL",{cause:e})}return i})(i,t.hostname),(s=r&&"GET"!==i.method&&"HEAD"!==i.method)&&(i[md]=!0,i instanceof z&&(o[mZ]=()=>{i.readableEnded||setTimeout(()=>{i.readableEnded||setTimeout(()=>{i.destroy(),o.destroy()})})})),d=n=e(a,{incoming:i,outgoing:o}),"function"!=typeof d.then&&(e=>{if(!(mF in e))return!1;let t=e[mF][1];return null===t||"string"==typeof t||t instanceof Uint8Array})(n))return s&&!i.readableEnded&&o.once("finish",()=>{i.readableEnded||mX(i)}),m6(n,o);c()}catch(e){if(n)return m1(e,o);if(t.errorHandler){if(c(),!(n=await t.errorHandler(a||e instanceof u4?e:new u4(e.message,{cause:e}))))return}else n=a?mY(e):new Response(null,{status:400})}try{return await (async(e,t,r={})=>{if("function"==typeof e.then)if(r.errorHandler)try{e=await e}catch(i){let t=await r.errorHandler(i);if(!t)return;e=t}else e=await e.catch(mY);if(mF in e)return m6(e,t);let i=mJ(e.headers,null===e.body?void 0:mN);if(e.body){let r,o=e.body.getReader(),n=[],a=!1;if("chunked"!==i["transfer-encoding"]){let e=2;for(let t=0;tPromise.resolve(void 0))])})(r).catch(e=>{console.error(e),a=!0});if(!i){if(1===t){await new Promise(e=>setTimeout(e)),e=3;continue}break}if(r=void 0,i.value&&n.push(i.value),i.done){a=!0;break}}!a||"content-length"in i||(i["content-length"]=n.reduce((e,t)=>e+t.length,0))}t.writeHead(e.status,i),n.forEach(e=>{t.write(e)}),a?t.end():(0===n.length&&m0(t),await mB(o,t,r))}else i["x-hono-already-sent"]||(t.writeHead(e.status,i),t.end());t[mZ]?.()})(n,o,t)}catch(e){return m1(e,o)}}};globalThis.CloseEvent??Event,globalThis.ErrorEvent??Event,Symbol("CONNECTION_SYMBOL_KEY"),Symbol("WAIT_FOR_WEBSOCKET_SYMBOL");var m9=class{_webStandardTransport;_requestListener;_requestContext=new WeakMap;constructor(e={}){this._webStandardTransport=new u1(e),this._requestListener=m3(async e=>{let t=this._requestContext.get(e);return this._webStandardTransport.handleRequest(e,{authInfo:t?.authInfo,parsedBody:t?.parsedBody})},{overrideGlobalObjects:!1})}get sessionId(){return this._webStandardTransport.sessionId}set onclose(e){this._webStandardTransport.onclose=e}get onclose(){return this._webStandardTransport.onclose}set onerror(e){this._webStandardTransport.onerror=e}get onerror(){return this._webStandardTransport.onerror}set onmessage(e){this._webStandardTransport.onmessage=e}get onmessage(){return this._webStandardTransport.onmessage}async start(){return this._webStandardTransport.start()}async close(){return this._webStandardTransport.close()}async send(e,t){return this._webStandardTransport.send(e,t)}setSupportedProtocolVersions(e){this._webStandardTransport.setSupportedProtocolVersions(e)}setScopeChallengeResolver(e){this._webStandardTransport.setScopeChallengeResolver(e)}async handleRequest(e,t,r){let i=e.auth;await m3(async e=>this._webStandardTransport.handleRequest(e,{authInfo:i,parsedBody:r}),{overrideGlobalObjects:!1})(e,t)}closeSSEStream(e){this._webStandardTransport.closeSSEStream(e)}closeStandaloneSSEStream(){this._webStandardTransport.closeStandaloneSSEStream()}};function m5(e=process.env){let t=e.TRACEDECAY_DATA_DIR;if(void 0!==t&&t.length>0)return E.resolve(t);let r="win32"===process.platform?e.USERPROFILE:e.HOME,i=void 0!==r&&r.length>0?r:U.homedir();return E.join(i,".tracedecay")}let m8=o7().min(1),m7=nz({pid:nP().int().nonnegative(),process_run_id:o7(),started_at_unix_secs:nP().int(),epoch:nP().int().nonnegative(),version:o7(),endpoint:nE(),http_application_endpoint:m8.nullable().optional(),auth_token:o7().min(1),profile_root:o7().min(1)});function fe(e){let t=e.http_application_endpoint;return null==t?null:`http://${t}`}function ft(e){let t=JSON.stringify(function e(t){return Array.isArray(t)?t.map(e):"object"==typeof t&&null!==t?Object.fromEntries(Object.entries(t).sort(([e],[t])=>et)).map(([t,r])=>[t,e(r)])):t}(e));if(void 0===t)throw TypeError("value is not canonical JSON");return t}function fr(e,t){if("object"!=typeof e||null===e||Array.isArray(e))throw TypeError(`malformed canonical schema: ${t} must be an object`);return e}function fi(e,t){switch(t){case"null":return null===e;case"boolean":return"boolean"==typeof e;case"integer":return"number"==typeof e&&Number.isSafeInteger(e);case"number":return"number"==typeof e&&Number.isFinite(e);case"string":return"string"==typeof e;case"array":return Array.isArray(e);case"object":return"object"==typeof e&&null!==e&&!Array.isArray(e);default:throw TypeError(`unsupported canonical schema type: ${t}`)}}function fo(e,t){if("object"!=typeof e||null===e||Array.isArray(e))throw TypeError(`malformed canonical envelope: ${t} must be an object`);return e}function fn(e,t){if("string"!=typeof e)throw TypeError(`malformed canonical envelope: ${t} must be a string`);return e}function fa(e,t){if("number"!=typeof e||!Number.isFinite(e))throw TypeError(`malformed canonical envelope: ${t} must be a finite number`);return e}function fs(e,t){if(!Array.isArray(e))throw TypeError(`malformed canonical envelope: ${t} must be an array`);return e}function fd(e,t){let r=fa(e,t);if(!Number.isSafeInteger(r))throw TypeError(`malformed canonical envelope: ${t} must be a safe integer`);return r}function fc(e,t){let r=fd(e,t);if(r<0)throw TypeError(`malformed canonical envelope: ${t} must be non-negative`);return r}let fl=new TextEncoder;function fp(e,t,r){let i=fn(e,t);if(0===i.length||i.trim()!==i||fl.encode(i).byteLength>r||/\p{Cc}/u.test(i))throw TypeError(`malformed canonical envelope: ${t} is not a bounded identifier`);return i}function fu(e,t,r,i,o,n,a,s,d){let c=fo(e,"success envelope");if(fn(c.binding_id,"binding_id")!==t)throw TypeError("malformed canonical envelope: binding mismatch");let l=fo(c.contract,"contract");if(fn(l.schema_id,"contract.schema_id")!==r||fa(l.schema_revision,"contract.schema_revision")!==i)throw TypeError("malformed canonical envelope: result contract mismatch");fn(c.request_id,"request_id"),fo(c.scope,"scope");let p=fo(c.outcome,"outcome"),u=fn(p.outcome,"outcome.outcome");return{...c,outcome:{...p,outcome:u,value:function(e,t,r,i,o,n,a){let s=fo(t,"outcome.value");if(!("payload"in s))throw TypeError("malformed canonical envelope: outcome.value.payload is required");if(("durable_effect"!==o||"required"!==n||"effect"!==e)&&("operation"!==o||"not_required"!==n||"evidence"!==e&&"preview"!==e))throw TypeError(`malformed canonical envelope: outcome ${e} is outside the operation receipt contract`);if(!function(e,t,r){let i=fo(e,"outcome.value.execution");if(fa(i.started_at,"execution.started_at"),fa(i.ended_at,"execution.ended_at"),!("effective_deadline"in i)||!("cancellation"in i))throw TypeError("malformed canonical envelope: receipt fields are required");let o=fo(i.budget,"execution.budget");fa(o.units_consumed,"budget.units_consumed"),fa(o.bytes_consumed,"budget.bytes_consumed"),fa(o.elapsed_micros,"budget.elapsed_micros");let n=fn(i.termination,"execution.termination");if(!t.includes(n))throw TypeError(`malformed canonical envelope: termination ${n} is not legal for this operation`);if(("cancelled"===n||"timed_out"===n)&&null===i.cancellation)throw TypeError("malformed canonical envelope: terminal cancellation observation is required");if(null!==i.cancellation){let e=fo(r,"operation.cancellation"),t=fn(e.mode,"operation.cancellation.mode"),o=fo(i.cancellation,"execution.cancellation"),a=fn(o.stage,"execution.cancellation.stage");if(fd(o.observed_at,"execution.cancellation.observed_at"),!["before_admission","before_read","during_read","before_effect","effect_in_flight","reconciling","after_commit"].includes(a))throw TypeError(`malformed canonical envelope: unknown cancellation stage ${a}`);if("not_cancellable"===t){if("timed_out"!==n)throw TypeError("malformed canonical envelope: non-cancellable operation returned cancellation evidence")}else if(!fs(e.points,"operation.cancellation.points").includes(a))throw TypeError(`malformed canonical envelope: cancellation stage ${a} is not legal for this operation`)}}(s.execution,r,i),"evidence"===e)fo(s.temporal,"temporal"),fo(s.authority,"authority"),fs(s.evidence_authorities,"evidence_authorities"),fo(s.coverage,"coverage"),fs(s.omissions,"omissions"),fs(s.scores,"scores"),fs(s.contributions,"contributions"),function(e){let t=fo(e,"outcome.value.page");if(fp(t.sort_contract_id,"page.sort_contract_id",192),1>fc(t.sort_revision,"page.sort_revision"))throw TypeError("malformed canonical envelope: page sort_revision must be positive");let r=null===t.total?null:fc(t.total,"page.total"),i=fc(t.returned,"page.returned");if(null!==r&&i>r)throw TypeError("malformed canonical envelope: page returned exceeds total");null!==t.cursor&&function(e){let t=fo(e,"page.cursor"),r=fn(t.kind,"page.cursor.kind");if("opaque"===r)fp(t.cursor,"page.cursor.cursor",4096);else throw TypeError(`malformed canonical envelope: unsupported page cursor kind ${r}`)}(t.cursor),null!==t.expires_at&&fd(t.expires_at,"page.expires_at")}(s.page);else if("preview"===e)fn(s.preview_id,"preview_id"),fn(s.preview_digest,"preview_digest"),fn(s.effect_class,"effect_class"),fo(s.authority,"authority"),fn(s.expected_state,"expected_state");else if("effect"===e)fn(s.effect_id,"effect_id"),fn(s.effect_class,"effect_class"),fn(s.idempotency_key,"idempotency_key"),fo(s.authority,"authority"),fn(s.expected_state,"expected_state"),fn(s.reconciliation,"reconciliation"),fo(s.receipt,"receipt");else throw TypeError(`malformed canonical envelope: unsupported outcome ${e}`);return{...s,payload:null===s.payload?null:a(s.payload)}}(u,p.value,o,n,a,s,d)}}}function fm(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}function ff(e){return"number"==typeof e&&Number.isSafeInteger(e)&&e>=0}function fh(e){return"number"==typeof e&&Number.isSafeInteger(e)}function fy(e,t){return"string"==typeof e&&e.length>0&&e.trim()===e&&fl.encode(e).byteLength<=t&&!/\p{Cc}/u.test(e)}async function fg(e){let t=await crypto.subtle.digest("SHA-256",fl.encode(ft(e)));return`sha256:${Array.from(new Uint8Array(t),e=>e.toString(16).padStart(2,"0")).join("")}`}function f_(e){return fm(e)&&"string"==typeof e.code&&"string"==typeof e.message}let fv={description:"Strongly typed algorithm-tagged integrity digest: `AccessPolicyDigest`.",type:"string"},fb={description:"Strongly typed canonical identity: `AccessRuleId`.",type:"string"},f$={description:"Strongly typed canonical identity: `ActorId`.",type:"string"},fS={description:"Strongly typed canonical identity: `AgentInstanceId`.",type:"string"},fk={enum:["memory_curator","session_reflector","skill_writer","combined_review","user_job"],type:"string"},fw={properties:{coverage:{$ref:"#/$defs/MetricCoverageV1"},current:{anyOf:[{$ref:"#/$defs/AnalyticsModeV1"},{type:"null"}]},transition_watermark:{type:["string","null"]},unavailable_reason:{type:["string","null"]}},required:["coverage"],type:"object"},fP={enum:["off","local_only","aggregate_share"],type:"string"},fV={oneOf:[{const:"project",description:"Analytics events of the resolved project.",type:"string"},{const:"all",description:"Analytics events of every registered project.",type:"string"}]},fR={description:"Strongly typed canonical identity: `AnalyzerEnvironmentVariable`.",type:"string"},fq={description:"Strongly typed canonical identity: `AnalyzerExecutableId`.",type:"string"},fI={oneOf:[{properties:{executable_id:{$ref:"#/$defs/AnalyzerExecutableId"},kind:{const:"built_in",type:"string"}},required:["kind","executable_id"],type:"object"},{properties:{executable_digest:{$ref:"#/$defs/ManifestDigest"},kind:{const:"approved_external",type:"string"}},required:["kind","executable_digest"],type:"object"}]},fx={description:"Strongly typed canonical identity: `AnalyzerLanguageId`.",type:"string"},fj={additionalProperties:!1,description:"One language's analyzer selection. Host registration may project only the\nnon-sensitive `language_id`/`enabled` pair; all other fields remain in the\nconfiguration authority.",properties:{arguments:{items:{type:"string"},type:"array"},enabled:{type:"boolean"},environment_allowlist:{items:{$ref:"#/$defs/AnalyzerEnvironmentVariable"},type:"array",uniqueItems:!0},executable:{$ref:"#/$defs/AnalyzerExecutableReferenceV1"},initialization_options:{additionalProperties:{$ref:"#/$defs/AnalyzerStructuredValueV1"},type:"object"},language_id:{$ref:"#/$defs/AnalyzerLanguageId"},privacy_class:{$ref:"#/$defs/AnalyzerPrivacyClassV1"},resource_limits:{$ref:"#/$defs/AnalyzerResourceLimitsV1"},restart_policy:{$ref:"#/$defs/AnalyzerRestartPolicyV1"},settings:{additionalProperties:{$ref:"#/$defs/AnalyzerStructuredValueV1"},type:"object"}},required:["language_id","enabled","executable","arguments","initialization_options","settings","environment_allowlist","privacy_class","resource_limits","restart_policy"],type:"object"},fC={enum:["non_sensitive","sensitive","restricted"],type:"string"},fT={additionalProperties:!1,properties:{maximum_memory_mib:{format:"uint32",minimum:0,type:"integer"},request_timeout_millis:{format:"uint64",minimum:0,type:"integer"},startup_timeout_millis:{format:"uint64",minimum:0,type:"integer"}},required:["maximum_memory_mib","startup_timeout_millis","request_timeout_millis"],type:"object"},fO={enum:["restart_on_configuration_change","manual_restart_only"],type:"string"},fE={additionalProperties:!1,description:"Canonical analyzer settings. A changed selection produces a new\nconfiguration revision/digest; cache invalidation remains owned elsewhere.",properties:{schema_version:{format:"uint16",maximum:65535,minimum:0,type:"integer"},selections:{items:{$ref:"#/$defs/AnalyzerLanguageSelectionV1"},type:"array"}},required:["schema_version","selections"],type:"object"},fA={description:"A structured analyzer option value. This deliberately excludes raw\nenvironment values, commands, credential material, and transport blobs.",oneOf:[{properties:{kind:{const:"boolean",type:"string"},value:{type:"boolean"}},required:["kind","value"],type:"object"},{properties:{kind:{const:"integer",type:"string"},value:{format:"int64",type:"integer"}},required:["kind","value"],type:"object"},{properties:{kind:{const:"text",type:"string"},value:{type:"string"}},required:["kind","value"],type:"object"},{properties:{kind:{const:"text_list",type:"string"},value:{items:{type:"string"},type:"array"}},required:["kind","value"],type:"object"},{properties:{kind:{const:"object",type:"string"},value:{additionalProperties:{$ref:"#/$defs/AnalyzerStructuredValueV1"},type:"object"}},required:["kind","value"],type:"object"}]},fW={description:"The structured facts behind a problem. Adapters read these fields; the\nproblem's `message` is only their one human rendering.",oneOf:[{additionalProperties:!1,description:"The worktree's code index is parked until the operator applies\n`remedy`; repeating the request cannot change the answer.",properties:{cause:{type:"string"},kind:{const:"parked",type:"string"},remedy:{type:"string"},retries_on_wake:{type:"boolean"}},required:["kind","cause","remedy","retries_on_wake"],type:"object"},{additionalProperties:!1,description:"A session refresh asked to begin from a source frontier the\ncommitted projection has already passed.",properties:{active:{format:"uint64",minimum:0,type:"integer"},committed:{format:"uint64",minimum:0,type:"integer"},kind:{const:"stale_refresh_frontier",type:"string"},requested:{format:"uint64",minimum:0,type:"integer"}},required:["kind","requested","committed","active"],type:"object"},{additionalProperties:!1,description:"A compare-and-swap request named `requested` in `field`, but the\nauthority holds `current`. Resending with `current` is a new request.",properties:{current:{format:"uint64",minimum:0,type:"integer"},field:{type:"string"},kind:{const:"stale_precondition",type:"string"},requested:{format:"uint64",minimum:0,type:"integer"}},required:["kind","field","requested","current"],type:"object"},{additionalProperties:!1,description:"A workflow step effect named placement digest `found`, but the step's\ncurrent placement is `expected`: the effect was settled against a\nplacement the run has since replaced.",properties:{expected:{type:"string"},found:{type:"string"},kind:{const:"workflow_placement_digest_stale",type:"string"}},required:["kind","expected","found"],type:"object"},{additionalProperties:!1,description:"A writer lock stayed held by other writers past its admission\ndeadline.",properties:{deadline_ms:{format:"uint64",minimum:0,type:"integer"},kind:{const:"lock_deadline",type:"string"},resource:{type:"string"}},required:["kind","resource","deadline_ms"],type:"object"},{additionalProperties:!1,description:"A persisted store whose shape this binary does not open. It is served\nin this typed state until the operator runs `remedy`, which deletes\nthe old data; nothing is migrated or backed up.",properties:{authority:{type:"string"},found_version:{format:"int64",type:["integer","null"]},kind:{const:"reset_required",type:"string"},reason:{type:"string"},remedy:{type:"string"},required_version:{format:"int64",type:["integer","null"]}},required:["kind","authority","reason","remedy"],type:"object"},{additionalProperties:!1,description:"No compiler runs automatically for the diagnostics scope: no tsconfig\nowns `file`, or, for a workspace read (`file` null), none exists under\nthe project root. `searched` lists the owner search's candidates,\nnearest first; it is empty for a workspace read or a file outside the\nproject root.",properties:{file:{type:["string","null"]},kind:{const:"diagnostics_unsupported",type:"string"},searched:{items:{$ref:"#/$defs/DiagnosticsSearchedTsconfigV1"},type:"array"}},required:["kind","searched"],type:"object"},{additionalProperties:!1,description:"The TypeScript `producer` has not published diagnostics for the\ncurrent code generation yet. `generation` is the last generation it\npublished, null when it has published none.",properties:{generation:{type:["string","null"]},kind:{const:"diagnostics_pending",type:"string"},producer:{type:"string"}},required:["kind","producer"],type:"object"},{additionalProperties:!1,description:"The code graph's engine or catalog was released for memory and was\nstill warming again when the read's budget ran out;\n`retry_after_millis` is the measured warm-up it still needs.",properties:{kind:{const:"code_graph_rewarming",type:"string"},retry_after_millis:{format:"uint64",minimum:0,type:"integer"}},required:["kind","retry_after_millis"],type:"object"},{additionalProperties:!1,description:"No TraceDecay daemon accepts connections on `socket`. `named_by` is\nthe environment variable that chose the socket, when one did;\n`service_unit` is what this client observed of the managed service.",properties:{kind:{const:"daemon_unreachable",type:"string"},named_by:{type:["string","null"]},service_unit:{$ref:"#/$defs/DaemonServiceUnitObservationV1"},socket:{type:"string"}},required:["kind","socket","service_unit"],type:"object"}]},fM={description:"Strongly typed canonical identity: `AttemptId`.",type:"string"},fN={description:"Authoritative scope of a source binding. A mutable path, label, or host\nprofile cannot be represented as authority.",oneOf:[{properties:{id:{$ref:"#/$defs/ProjectId"},kind:{const:"project",type:"string"}},required:["kind","id"],type:"object"},{properties:{id:{$ref:"#/$defs/UserProfileId"},kind:{const:"projectless_hermes",type:"string"}},required:["kind","id"],type:"object"}]},fz={additionalProperties:!1,description:"One exact application scope paired with its registered physical locator.\n\nThe scope remains the identity authority. The locator is retained only so\na later read or restart can reopen the exact registered root without an\nactive-graph or CWD fallback.",properties:{locator:{anyOf:[{$ref:"#/$defs/RegisteredRootLocatorV1"},{type:"null"}]},scope:{$ref:"#/$defs/ResolvedScope"}},required:["scope"],type:"object"},fD={additionalProperties:!1,description:"Immutable canonical set of exact roots admitted by their existing request\ncontexts. A registered locator participates only as frozen reopening\nevidence; its paired [`ResolvedScope`](crate::context::ResolvedScope) remains\nthe root identity authority.",properties:{actor_id:{$ref:"#/$defs/ActorId"},digest:{$ref:"#/$defs/ManifestDigest"},revision:{$ref:"#/$defs/ScopeSetRevision"},roots:{items:{$ref:"#/$defs/AuthorizedRoot"},type:"array"},scope_set_id:{$ref:"#/$defs/ScopeSetId"}},required:["scope_set_id","revision","actor_id","roots","digest"],type:"object"},fF={description:"A terminal automatic-fact receipt state.",enum:["applied","quarantined"],type:"string"},fL={oneOf:[{properties:{kind:{const:"disabled",type:"string"}},required:["kind"],type:"object"},{properties:{kind:{const:"eligible_only",type:"string"},maximum_per_run:{format:"uint16",maximum:65535,minimum:1,type:"integer"},minimum_idle_seconds:{format:"uint64",minimum:1,type:"integer"}},required:["kind","minimum_idle_seconds","maximum_per_run"],type:"object"}]},fU={enum:["disabled","codex_app_server"],type:"string"},fH={enum:["standalone","delegated_host"],type:"string"},fG={description:"The settled status every successful read in this family reports.",enum:["ok"],type:"string"},fB={description:"Which owner's automation schedulers a reconcile covers.",oneOf:[{const:"project",description:"The served project's scheduler, answered by the project's owner.",type:"string"},{const:"profile",description:"Every cached project scheduler of the profile, answered by the\ndaemon's profile owner.",type:"string"}]},fK={properties:{created_at:{type:"string"},kind:{type:"string"},path:{type:"string"},schema_version:{format:"uint32",minimum:0,type:"integer"},sha256:{type:"string"},summary:{type:["string","null"]}},required:["schema_version","kind","path","sha256","created_at"],type:"object"},fJ={description:"Automation run reads answer from the active project's ledger only.",enum:["active_project"],type:"string"},fZ={enum:["queued","running","succeeded","failed","skipped"],type:"string"},fQ={additionalProperties:!1,properties:{allow_job_commands:{type:"boolean"},backend:{$ref:"#/$defs/AutomationBackendV1"},combine_due_tasks:{type:"boolean"},enabled:{type:"boolean"},host_mode:{$ref:"#/$defs/AutomationHostModeV1"},model_id:{type:["string","null"]},scheduler_tick_secs:{format:"uint64",minimum:0,type:"integer"},schema_version:{format:"uint16",maximum:65535,minimum:0,type:"integer"},tasks:{$ref:"#/$defs/AutomationTaskSetV1"},timeout_secs:{format:"uint64",minimum:0,type:"integer"}},required:["schema_version","enabled","backend","host_mode","timeout_secs","scheduler_tick_secs","combine_due_tasks","allow_job_commands","tasks"],type:"object"},fX={additionalProperties:!1,properties:{memory_curator:{$ref:"#/$defs/AutomationTaskSettingsV1"},session_reflector:{$ref:"#/$defs/AutomationTaskSettingsV1"},skill_writer:{$ref:"#/$defs/AutomationTaskSettingsV1"}},required:["memory_curator","session_reflector","skill_writer"],type:"object"},fY={additionalProperties:!1,properties:{cooldown_secs:{format:"uint64",minimum:0,type:["integer","null"]},enabled:{type:"boolean"},interval_secs:{format:"uint64",minimum:0,type:["integer","null"]},min_idle_secs:{format:"uint64",minimum:0,type:["integer","null"]},schedule:{type:["string","null"]},session_evidence_budget_backoff_secs:{description:"Suppression window between session-evidence retrieval attempts while\nthe evidence budget stays exhausted. Unset uses the automation crate's\none-hour default. Distinct from `cooldown_secs`, which paces retries\nafter failed runs; budget exhaustion is a skip, not a failure.",format:"uint64",minimum:0,type:["integer","null"]}},required:["enabled"],type:"object"},f1={enum:["manual_cli","manual_mcp","dashboard","application","scheduler","host_receipt"],type:"string"},f0={description:"Strongly typed canonical identity: `BrainId`.",type:"string"},f2={oneOf:[{properties:{kind:{const:"reject",type:"string"}},required:["kind"],type:"object"},{properties:{kind:{const:"append_monotonic_ordinal",type:"string"},maximum_attempts:{format:"uint16",maximum:65535,minimum:1,type:"integer"}},required:["kind","maximum_attempts"],type:"object"}]},f4={oneOf:[{properties:{bytes:{format:"uint8",maximum:255,minimum:1,type:"integer"},kind:{const:"task_id_digest_prefix",type:"string"}},required:["kind","bytes"],type:"object"},{properties:{kind:{const:"repository_slug",type:"string"}},required:["kind"],type:"object"},{properties:{kind:{const:"work_class",type:"string"}},required:["kind"],type:"object"},{properties:{kind:{const:"monotonic_collision_ordinal",type:"string"}},required:["kind"],type:"object"}]},f6={enum:["hyphen","underscore","slash"],type:"string"},f3={additionalProperties:!1,properties:{collision:{$ref:"#/$defs/BranchCollisionPolicyV1"},components:{items:{$ref:"#/$defs/BranchNameComponentV1"},type:"array"},maximum_bytes:{format:"uint16",maximum:65535,minimum:1,type:"integer"},prefix:{$ref:"#/$defs/CanonicalGitRefPrefix"},separator:{$ref:"#/$defs/BranchNameSeparatorV1"}},required:["prefix","components","separator","maximum_bytes","collision"],type:"object"},f9={additionalProperties:!1,description:"A declared dependency edge; propagation direction remains an application\ndecision and is never inferred from this edge.",properties:{dependency:{$ref:"#/$defs/StackNodeId"},dependent:{$ref:"#/$defs/StackNodeId"}},required:["dependency","dependent"],type:"object"},f5={description:"Strongly typed canonical identity: `BranchStackId`.",type:"string"},f8={additionalProperties:!1,description:"One visible branch/ref at one immutable tip.",properties:{node_id:{$ref:"#/$defs/StackNodeId"},project_id:{$ref:"#/$defs/ProjectId"},reference:{$ref:"#/$defs/RefId"},repository_id:{$ref:"#/$defs/RepositoryId"},tip:{$ref:"#/$defs/CommitId"},worktree_id:{anyOf:[{$ref:"#/$defs/WorktreeId"},{type:"null"}]}},required:["node_id","project_id","repository_id","reference","tip"],type:"object"},f7={description:"Strongly typed canonical identity: `BranchStackRevisionId`.",type:"string"},he={additionalProperties:!1,description:"Immutable branch-stack projection at one exact inventory revision.",properties:{canonical_order:{items:{$ref:"#/$defs/StackNodeId"},type:"array"},digest:{$ref:"#/$defs/ManifestDigest"},edges:{items:{$ref:"#/$defs/BranchStackEdgeV1"},type:"array"},inventory_epoch:{$ref:"#/$defs/WorktreeInventoryEpoch"},inventory_snapshot_id:{$ref:"#/$defs/WorktreeInventorySnapshotId"},nodes:{items:{$ref:"#/$defs/BranchStackNodeV1"},type:"array"},revision_id:{$ref:"#/$defs/BranchStackRevisionId"},source:{$ref:"#/$defs/BranchStackSourceV1"},stack_id:{$ref:"#/$defs/BranchStackId"}},required:["stack_id","revision_id","inventory_snapshot_id","inventory_epoch","source","nodes","edges","canonical_order","digest"],type:"object"},ht={description:"Authoritative source that declared the exact stack topology.",enum:["explicit_declaration","accepted_task_branch_topology"],type:"string"},hr={enum:["no_branches","unbranched","independent_branches","local_stack"],type:"string"},hi={additionalProperties:!1,properties:{allowed:{items:{$ref:"#/$defs/BranchTopologyKindV1"},type:"array",uniqueItems:!0}},required:["allowed"],type:"object"},ho={description:"Strongly typed canonical identity: `CalibrationProfileId`.",type:"string"},hn={additionalProperties:!1,description:"Surface-owned query semantics. Page size remains an invocation control, but\ncontinuation is a request field so CLI, MCP, and HTTP callers all have the\nsame channel for spending a `next_cursor`.",properties:{cursor:{default:null,type:["string","null"]},order:{$ref:"#/$defs/RetrievalOrder"},projection:{$ref:"#/$defs/ResultProjection"}},required:["projection","order"],type:"object"},ha={additionalProperties:!1,properties:{observed_at:{$ref:"#/$defs/UtcMicros"},stage:{$ref:"#/$defs/CancellationStage"}},required:["stage","observed_at"],type:"object"},hs={description:"Exact stage at which cancellation or deadline state was observed.",enum:["before_admission","before_read","during_read","before_effect","effect_in_flight","reconciling","after_commit"],type:"string"},hd={additionalProperties:!1,description:"One retriever's scored contribution to a fused candidate. Every ranked\ncandidate retains every retriever's raw score domain, ordinal rank,\ncalibrated feature, weight, and weighted contribution.",properties:{calibrated_feature_micros:{format:"uint32",minimum:0,type:"integer"},calibration_profile_id:{$ref:"#/$defs/CalibrationProfileId"},ordinal_rank:{format:"uint32",minimum:0,type:"integer"},raw_score:{$ref:"#/$defs/FixedPointScore"},retriever:{$ref:"#/$defs/RetrieverKind"},retriever_revision:{$ref:"#/$defs/ComponentRevision"},score_domain:{$ref:"#/$defs/ScoreDomainId"},source_occurrence_id:{$ref:"#/$defs/SourceOccurrenceId"},weight_micros:{format:"uint32",minimum:0,type:"integer"},weighted_contribution_micros:{format:"uint64",minimum:0,type:"integer"}},required:["retriever","retriever_revision","source_occurrence_id","ordinal_rank","raw_score","score_domain","calibration_profile_id","calibrated_feature_micros","weight_micros","weighted_contribution_micros"],type:"object"},hc={description:"A validated full native Git ref name, such as `refs/heads/main`.",type:"string"},hl={description:"A validated ref/branch prefix. Branch naming accepts a short branch prefix\n(for example `tracedecay/`) while protected-ref selectors use full\n`refs/.../` prefixes.",type:"string"},hp={description:"Strongly typed canonical identity: `CapabilityId`.",type:"string"},hu={description:"Strongly typed canonical identity: `CatalogGenerationId`.",type:"string"},hm={description:"Strongly typed canonical identity: `ChangePlanId`.",type:"string"},hf={additionalProperties:!1,properties:{from_inclusive:{format:"int64",type:["integer","null"]},through_inclusive:{format:"int64",type:["integer","null"]}},type:"object"},hh={additionalProperties:!1,description:'Why co-change mining produced no answer, so an empty\n`missing_co_change_partners` does not read as "no partner is missing".',properties:{reason:{type:"string"},retryable:{type:"boolean"}},required:["reason","retryable"],type:"object"},hy={enum:["kind","language","path"],type:"string"},hg={description:"Strongly typed canonical identity: `CodeGenerationId`.",type:"string"},h_={description:"Freshness of the generation a verified graph read serves.",oneOf:[{properties:{state:{const:"current",type:"string"}},required:["state"],type:"object"},{properties:{rebuild_in_flight:{type:"boolean"},sealed_at:{$ref:"#/$defs/UtcMicros"},state:{const:"last_complete_stale",type:"string"}},required:["state","sealed_at","rebuild_in_flight"],type:"object"}]},hv={description:"A typed reason an otherwise active generation cannot make durable progress.",enum:["resident_memory","source_unavailable","artifact_store_unavailable","retry_backoff","publication_authority_corrupt"],type:"string"},hb={description:'A deterministic contract violation that parked background convergence.\n\nParked is not dead: the worker keeps re-observing the violation on its\nordinary wake cadence, so an operator fix (for example restoring an\nowner-private mode) is picked up on the next wake without a restart. The\nstate exists so `status`, doctor, and the dashboard report the violation\ntyped instead of an indefinite "warming".',properties:{blocked_reason:{anyOf:[{$ref:"#/$defs/CodeIndexBuildBlockedReasonV1"},{type:"null"}],description:"Stable class for callers that must decide whether new work is admissible."},observed_passes:{description:"Background passes that re-observed the violation since parking.",format:"uint64",minimum:0,type:"integer"},parked_at_micros:{description:"When the violation was first observed (microseconds since the Unix epoch).",format:"int64",type:"integer"},reason:{description:"Exact typed failure that parked convergence.",type:"string"},remediation:{description:"Operator action that clears the violation.",type:"string"},retries_on_wake:{description:"Whether the worker re-checks this violation on every ordinary wake.\nTrue for filesystem/contract violations an operator fix clears in\nplace; false for an abnormal task failure that only changed input (a\nnew sealed generation) retries.",type:"boolean"}},required:["reason","remediation","parked_at_micros","observed_passes","retries_on_wake"],type:"object"},h$={properties:{display_path:{description:"`git_path_bytes` decoded for display, invalid UTF-8 replaced.",type:"string"},git_path_bytes:{description:"The exact Git path bytes, which need not be UTF-8.",items:{format:"uint8",maximum:255,minimum:0,type:"integer"},type:"array"},reason:{$ref:"#/$defs/CodeIndexSourceOmissionReasonV1"}},required:["git_path_bytes","display_path","reason"],type:"object"},hS={description:"Sources a sealed snapshot captured but does not index.",properties:{count:{description:"Every omitted source in the snapshot.",format:"uint64",minimum:0,type:"integer"},sources:{description:"The first omitted sources in Git path order, at most\n[`CODE_INDEX_OMITTED_SOURCE_LIST_LIMIT`].",items:{$ref:"#/$defs/CodeIndexOmittedSourceV1"},type:"array"}},required:["count","sources"],type:"object"},hk={oneOf:[{description:"No logical path can carry the Git path: not UTF-8, a backslash, a\ncontrol character, or leading or trailing whitespace.",properties:{kind:{const:"unrepresentable_path",type:"string"}},required:["kind"],type:"object"},{description:"The privacy boundary withheld the file's bytes.",properties:{detail:{type:"string"},kind:{const:"privacy_withheld",type:"string"}},required:["kind","detail"],type:"object"}]},hw={description:"Closed staleness ladder for one mounted worktree.\n\nThe scheduler publishes one of these tokens. MCP, the dashboard, and the\nCLI must match the variant, not a hand-copied string, so a new ladder\nstate cannot appear at one caller and be missed at the others.",enum:["fresh","stale","indexing","refreshing","restoring","verifying","parked"],type:"string"},hP={description:"Profile-level worker-count intent for the process-wide code-index pool.\n`Automatic` delegates the concrete count to runtime resource admission;\n`Exact` persists an operator-requested positive worker count.",oneOf:[{additionalProperties:!1,properties:{mode:{const:"automatic",type:"string"}},required:["mode"],type:"object"},{additionalProperties:!1,properties:{mode:{const:"exact",type:"string"},workers:{format:"uint16",maximum:65535,minimum:0,type:"integer"}},required:["mode","workers"],type:"object"}]},hV={additionalProperties:!1,properties:{chunk:{anyOf:[{$ref:"#/$defs/CodeSearchChunkId"},{type:"null"}]},file:{$ref:"#/$defs/FileOccurrenceId"},path:{type:"string"},span:{$ref:"#/$defs/SourceSpan"},symbol:{anyOf:[{$ref:"#/$defs/SymbolOccurrenceId"},{type:"null"}]}},required:["file","path","span"],type:"object"},hR={additionalProperties:!1,description:"One immutable code-index generation inside the authorized single root.\nThe path prefix narrows a query but never establishes project identity.",properties:{generation:{$ref:"#/$defs/CodeGenerationId"},path_prefix:{type:["string","null"]}},required:["generation"],type:"object"},hq={description:"Strongly typed canonical identity: `CodeSearchChunkId`.",type:"string"},hI={description:"Strongly typed canonical identity: `CommitId`.",type:"string"},hx={enum:["promote","reject","insufficient_evidence"],type:"string"},hj={description:"Whether the bounded complexity walk over a symbol's body ran to the end.\n\nThe extractor stops walking a body once its traversal budget is spent. The\ncounters accumulated by then are lower bounds over the visited prefix, not\nfacts about the whole body, so every surface that prints, ranks, or\naggregates complexity must render this state instead of treating those\ncounters as exact.",oneOf:[{enum:["complete"],type:"string"},{const:"traversal_budget_exhausted",description:"The walk stopped when the traversal budget ran out.",type:"string"}]},hC={description:"Strongly typed canonical identity: `ComponentRevision`.",type:"string"},hT={description:"Strongly typed canonical identity: `ComponentVersion`.",type:"string"},hO={enum:["config_summary"],type:"string"},hE={additionalProperties:!1,description:"One entry per changed config file instead of one per config key.",properties:{config_keys:{format:"uint",minimum:0,type:"integer"},file:{type:"string"},kind:{$ref:"#/$defs/ConfigSummaryKindV1"}},required:["file","kind","config_keys"],type:"object"},hA={description:"Strongly typed canonical identity: `ConfigurationIdempotencyKey`.",type:"string"},hW={description:"A typed configuration layer identity. The default layer intentionally has\nno caller-controlled identifier.",oneOf:[{properties:{kind:{const:"default",type:"string"}},required:["kind"],type:"object"},{properties:{kind:{const:"user_profile",type:"string"},profile_id:{$ref:"#/$defs/UserProfileId"}},required:["kind","profile_id"],type:"object"},{properties:{kind:{const:"project",type:"string"},project_id:{$ref:"#/$defs/ProjectId"}},required:["kind","project_id"],type:"object"},{properties:{collection_id:{$ref:"#/$defs/QueryCollectionId"},kind:{const:"collection",type:"string"}},required:["kind","collection_id"],type:"object"}]},hM={description:"Strongly typed canonical identity: `ConfigurationReceiptId`.",type:"string"},hN={description:"Strongly typed canonical identity: `ConfigurationRevisionId`.",type:"string"},hz={description:"Strongly typed canonical identity: `ConfigurationSnapshotId`.",type:"string"},hD={description:"Values that the typed registry can accept.",oneOf:[{properties:{kind:{const:"boolean",type:"string"},value:{type:"boolean"}},required:["kind","value"],type:"object"},{properties:{kind:{const:"unsigned",type:"string"},value:{format:"uint64",minimum:0,type:"integer"}},required:["kind","value"],type:"object"},{properties:{kind:{const:"code_index_worker_selection",type:"string"},value:{$ref:"#/$defs/CodeIndexWorkerSelectionV1"}},required:["kind","value"],type:"object"},{properties:{kind:{const:"text",type:"string"},value:{type:"string"}},required:["kind","value"],type:"object"},{properties:{kind:{const:"string_list",type:"string"},value:{items:{type:"string"},type:"array"}},required:["kind","value"],type:"object"},{properties:{kind:{const:"source_bindings",type:"string"},value:{items:{$ref:"#/$defs/ScopeSourceBinding"},type:"array"}},required:["kind","value"],type:"object"},{properties:{kind:{const:"access_rules",type:"string"},value:{items:{$ref:"#/$defs/ScopeAccessRule"},type:"array"}},required:["kind","value"],type:"object"},{properties:{kind:{const:"analyzer_settings",type:"string"},value:{$ref:"#/$defs/AnalyzerSettingsV1"}},required:["kind","value"],type:"object"},{properties:{kind:{const:"work_topology_policy",type:"string"},value:{$ref:"#/$defs/WorkTopologyPolicyV1"}},required:["kind","value"],type:"object"},{properties:{kind:{const:"work_executable_bindings",type:"string"},value:{items:{$ref:"#/$defs/WorkExecutableBindingV1"},type:"array"}},required:["kind","value"],type:"object"},{properties:{kind:{const:"work_expertise_consent",type:"string"},value:{$ref:"#/$defs/WorkExpertiseConsentV1"}},required:["kind","value"],type:"object"},{properties:{kind:{const:"context_scout_settings",type:"string"},value:{$ref:"#/$defs/ContextScoutSettingsV1"}},required:["kind","value"],type:"object"},{properties:{kind:{const:"automation_settings",type:"string"},value:{$ref:"#/$defs/AutomationSettingsV1"}},required:["kind","value"],type:"object"},{properties:{kind:{const:"lcm_summarizer_executables",type:"string"},value:{$ref:"#/$defs/LcmSummarizerExecutablesV1"}},required:["kind","value"],type:"object"}]},hF={description:"Strongly typed algorithm-tagged integrity digest: `ContentDigest`.",type:"string"},hL={description:"What one caller `lexical_anchors` entry contributed to the response, in\ncaller order.",oneOf:[{additionalProperties:!1,description:"`matched` indexed rows carried the anchor; `admitted` result sites\ncarrying it are in this response, and `dropped` counts the sites the\nlexical lane admitted that a later stage removed, by reason.",properties:{admitted:{format:"uint64",minimum:0,type:"integer"},anchor:{type:"string"},dropped:{items:{$ref:"#/$defs/LexicalAnchorDropV1"},type:"array"},matched:{format:"uint64",minimum:0,type:"integer"},outcome:{const:"matched",type:"string"}},required:["outcome","anchor","matched","admitted"],type:"object"},{additionalProperties:!1,description:"No indexed row carries the anchor.",properties:{anchor:{type:"string"},outcome:{const:"unmatched",type:"string"}},required:["outcome","anchor"],type:"object"},{additionalProperties:!1,description:"The anchor's route did not serve; `coverage` names the lane state.",properties:{anchor:{type:"string"},outcome:{const:"not_served",type:"string"}},required:["outcome","anchor"],type:"object"}]},hU={enum:["explore","plan"],type:"string"},hH={additionalProperties:!1,description:"Exact opaque destination for one public Context Scout operation.\n\nThe daemon converts this transport-neutral address into its runtime value\nonly after catalog admission. Keeping the public wire here makes CLI, MCP,\nHTTP, and both SDKs share one generated schema authority.",properties:{agent_id:{items:{format:"uint8",maximum:255,minimum:0,type:"integer"},maxItems:16,minItems:16,type:"array"},logical_message_id:{items:{format:"uint8",maximum:255,minimum:0,type:"integer"},maxItems:16,minItems:16,type:"array"},profile_id:{items:{format:"uint8",maximum:255,minimum:0,type:"integer"},maxItems:16,minItems:16,type:"array"},project_id:{items:{format:"uint8",maximum:255,minimum:0,type:"integer"},maxItems:16,minItems:16,type:"array"},protected_session_id:{items:{format:"uint8",maximum:255,minimum:0,type:"integer"},maxItems:32,minItems:32,type:"array"},provider_id:{items:{format:"uint8",maximum:255,minimum:0,type:"integer"},maxItems:16,minItems:16,type:"array"},thread_id:{items:{format:"uint8",maximum:255,minimum:0,type:"integer"},maxItems:16,minItems:16,type:"array"},turn_id:{items:{format:"uint8",maximum:255,minimum:0,type:"integer"},maxItems:16,minItems:16,type:"array"}},required:["profile_id","provider_id","protected_session_id","thread_id","turn_id","agent_id","logical_message_id","project_id"],type:"object"},hG={enum:["retrieval","diagnostic","coordination","verification"],type:"string"},hB={additionalProperties:!1,description:"Public lease proof. It carries only opaque identities; the daemon resolves\nit back to the durable queue row before recording delivery.",properties:{envelope_id:{items:{format:"uint8",maximum:255,minimum:0,type:"integer"},maxItems:16,minItems:16,type:"array"},lease_expires_at:{$ref:"#/$defs/UtcMicros"},lease_id:{items:{format:"uint8",maximum:255,minimum:0,type:"integer"},maxItems:16,minItems:16,type:"array"},work:{$ref:"#/$defs/ContextScoutWorkV1"}},required:["work","envelope_id","lease_id","lease_expires_at"],type:"object"},hK={additionalProperties:!1,properties:{max_candidates:{format:"uint32",minimum:0,type:"integer"},max_evidence:{format:"uint32",minimum:0,type:"integer"},max_model_input_tokens:{format:"uint32",minimum:0,type:"integer"},max_model_output_tokens:{format:"uint32",minimum:0,type:"integer"},max_text_bytes:{format:"uint32",minimum:0,type:"integer"}},required:["max_candidates","max_evidence","max_text_bytes","max_model_input_tokens","max_model_output_tokens"],type:"object"},hJ={enum:["deterministic","configured_model"],type:"string"},hZ={enum:["active","paused","disabled"],type:"string"},hQ={enum:["codex_app_server"],type:"string"},hX={enum:["attempted","delayed","displayed","expanded","explicitly_accepted","explicitly_rejected","dismissed","expired_unseen","corrected","unknown"],type:"string"},hY={additionalProperties:!1,properties:{delivered_at:{$ref:"#/$defs/UtcMicros"},envelope_id:{items:{format:"uint8",maximum:255,minimum:0,type:"integer"},maxItems:16,minItems:16,type:"array"},outcome:{$ref:"#/$defs/ContextScoutDeliveryOutcomeV1"},receipt_id:{items:{format:"uint8",maximum:255,minimum:0,type:"integer"},maxItems:16,minItems:16,type:"array"}},required:["receipt_id","envelope_id","delivered_at","outcome"],type:"object"},h1={enum:["immediate","next_boundary","idle_window","on_request","suppressed"],type:"string"},h0={enum:["complete","partial","stale","cancelled","unavailable"],type:"string"},h2={additionalProperties:!1,properties:{anchor_ids:{items:{$ref:"#/$defs/RetrievalAnchorId"},type:"array"},availability:{$ref:"#/$defs/ContextScoutEvidenceAvailabilityV1"},claim_digest:{$ref:"#/$defs/ManifestDigest"},content_generation:{$ref:"#/$defs/CodeGenerationId"},session_window:{anyOf:[{$ref:"#/$defs/ContextScoutSessionWindowV1"},{type:"null"}],description:"Session turns a session-evidence suggestion was judged from. Absent for\ncode evidence."}},required:["content_generation","availability","anchor_ids","claim_digest"],type:"object"},h4={enum:["explicitly_accepted","explicitly_rejected","dismissed","corrected"],type:"string"},h6={additionalProperties:!1,properties:{kind:{$ref:"#/$defs/ContextScoutFeedbackKindV1"},receipt_id:{items:{format:"uint8",maximum:255,minimum:0,type:"integer"},maxItems:16,minItems:16,type:"array"}},required:["receipt_id","kind"],type:"object"},h3={description:"One user intent the Scout can recognize. The serialized keys are the\nhistorical hook hint category keys, so persisted hint analytics, hint\nsettlement, and evals keep one vocabulary.",enum:["search","semantic_search","file_read","tool_descriptor_read","broad_read","call_graph","impact","symbol_lookup","file_lookup","project_context","session_recall","atomic_edit","type_orientation","explore_subagent","subagent_start_context","build_diagnostics","review_changes","memory_store","edit_redundancy","unexpected_changes"],type:"string"},h9={additionalProperties:!1,description:"Operator configuration for the Context Scout intent pass.",properties:{action_fact_score_permille:{description:"Score a deterministic action fact contributes for its intent.",format:"uint16",maximum:65535,minimum:0,type:"integer"},enabled:{type:"boolean"},engine:{$ref:"#/$defs/DecisionEngineSettingsV1"},min_delivery_gap_secs:{format:"uint32",minimum:0,type:"integer"},prompt_lookup_deadline_ms:{format:"uint32",minimum:0,type:"integer"},questions:{items:{$ref:"#/$defs/IntentQuestionSettingsV1"},type:"array"},ttl_secs:{format:"uint32",minimum:0,type:"integer"},window:{$ref:"#/$defs/IntentWindowSettingsV1"}},required:["enabled","engine","window","questions","action_fact_score_permille","ttl_secs","min_delivery_gap_secs","prompt_lookup_deadline_ms"],type:"object"},h5={additionalProperties:!1,properties:{max_candidates:{format:"uint",minimum:0,type:"integer"},max_evidence:{format:"uint",minimum:0,type:"integer"},max_model_input_tokens:{format:"uint",minimum:0,type:"integer"},max_model_output_tokens:{format:"uint",minimum:0,type:"integer"},max_text_bytes:{format:"uint",minimum:0,type:"integer"}},required:["max_candidates","max_evidence","max_text_bytes","max_model_input_tokens","max_model_output_tokens"],type:"object"},h8={enum:["disabled","codex_app_server","unsupported","decision_engine"],type:"string"},h7={oneOf:[{enum:["not_requested","succeeded","disabled","unavailable","denied","disconnected","cancelled","deadline_exceeded","token_budget_exceeded","invalid_output"],type:"string"},{const:"backpressured",description:"The engine's concurrency bound was full; the request was not sent.",type:"string"}]},ye={additionalProperties:!1,properties:{actual_model:{type:["string","null"]},actual_provider:{type:["string","null"]},estimated_cost_microusd:{format:"uint64",minimum:0,type:["integer","null"]},input_tokens:{format:"uint64",minimum:0,type:["integer","null"]},output_tokens:{format:"uint64",minimum:0,type:["integer","null"]},requested_backend:{$ref:"#/$defs/ContextScoutModelBackendV1"}},required:["requested_backend"],type:"object"},yt={additionalProperties:!1,properties:{feedback:{anyOf:[{$ref:"#/$defs/ContextScoutFeedbackV1"},{type:"null"}]},receipt:{$ref:"#/$defs/ContextScoutDeliveryReceiptV1"},suggestion:{$ref:"#/$defs/ContextScoutSuggestionProjectionV1"}},required:["suggestion","receipt"],type:"object"},yr={oneOf:[{enum:["deterministic","model_assisted","deterministic_fallback"],type:"string"},{const:"decision_engine",description:"Produced by the session intent pass: decision-engine answers combined\nwith deterministic action facts.",type:"string"}]},yi={enum:["deterministic","configured_model"],type:"string"},yo={enum:["active","paused","disabled"],type:"string"},yn={additionalProperties:!1,description:"Exact bounded span of one session's transcript an intent pass read. The\nwindow body is never retained; only its digest and store-id bounds are.",properties:{first_store_id:{format:"int64",type:"integer"},last_store_id:{format:"int64",type:"integer"},message_count:{format:"uint16",maximum:65535,minimum:0,type:"integer"},newest_timestamp:{format:"int64",type:["integer","null"]},window_digest:{$ref:"#/$defs/ManifestDigest"}},required:["first_store_id","last_store_id","message_count","window_digest"],type:"object"},ya={additionalProperties:!1,description:"Canonical Context Scout control-plane value. Disabled is the only stock\nstate; deterministic or configured-model execution requires an explicit\nconfiguration revision.",properties:{intent:{anyOf:[{$ref:"#/$defs/ContextScoutIntentSettingsV1"},{type:"null"}],description:"Session intent pass. Absent means the Scout runs no intent pass; the\nfield is omitted from the canonical encoding so settings written before\nit existed keep their behavior digest."},limits:{$ref:"#/$defs/ContextScoutConfigurationLimitsV1"},mode:{$ref:"#/$defs/ContextScoutConfigurationModeV1"},model_id:{type:["string","null"]},model_path:{anyOf:[{$ref:"#/$defs/ContextScoutConfiguredModelPathV1"},{type:"null"}]},model_timeout_secs:{format:"uint64",minimum:0,type:["integer","null"]},schema_version:{format:"uint16",maximum:65535,minimum:0,type:"integer"},state:{$ref:"#/$defs/ContextScoutConfigurationStateV1"}},required:["schema_version","state","mode","limits"],type:"object"},ys={enum:["stored","duplicate","superseded"],type:"string"},yd={additionalProperties:!1,properties:{category:{$ref:"#/$defs/ContextScoutCategoryV1"},configuration_revision:{items:{format:"uint8",maximum:255,minimum:0,type:"integer"},maxItems:32,minItems:32,type:"array"},dedupe_key:{items:{format:"uint8",maximum:255,minimum:0,type:"integer"},maxItems:32,minItems:32,type:"array"},delivery_window:{$ref:"#/$defs/ContextScoutDeliveryWindowV1"},envelope_id:{items:{format:"uint8",maximum:255,minimum:0,type:"integer"},maxItems:16,minItems:16,type:"array"},evidence:{$ref:"#/$defs/ContextScoutEvidenceProjectionV1"},expires_at:{$ref:"#/$defs/UtcMicros"},model_outcome:{$ref:"#/$defs/ContextScoutModelOutcomeV1"},model_receipt:{anyOf:[{$ref:"#/$defs/ContextScoutModelReceiptV1"},{type:"null"}]},relevance_score:{format:"uint16",maximum:65535,minimum:0,type:"integer"},route:{$ref:"#/$defs/ContextScoutRouteV1"},suggestion_text:{type:"string"},work:{$ref:"#/$defs/ContextScoutWorkV1"}},required:["work","envelope_id","configuration_revision","delivery_window","route","model_outcome","dedupe_key","category","relevance_score","suggestion_text","evidence","expires_at"],type:"object"},yc={oneOf:[{enum:["disabled","paused","dirty_overlay","quiet_or_unreceptive","no_eligible_candidate","expired","duplicate","cancelled","model_output_invalid","evidence_partial","evidence_stale","evidence_unavailable"],type:"string"},{const:"pending_sibling",description:"A suggestion for the same session is already pending delivery.",type:"string"}]},yl={additionalProperties:!1,properties:{address:{$ref:"#/$defs/ContextScoutAddressV1"},generation:{format:"uint64",minimum:0,type:"integer"},input_watermark:{items:{format:"uint8",maximum:255,minimum:0,type:"integer"},maxItems:32,minItems:32,type:"array"}},required:["address","generation","input_watermark"],type:"object"},yp={properties:{authorized_scope_ref:{type:"string"},current:{type:"boolean"},estimated_cost:{items:{$ref:"#/$defs/MetricValueV1"},type:"array"},horizon:{$ref:"#/$defs/ObservabilityHorizonV1"},latency:{description:"Provider-backed operation latency, projected from the same retained\nPlan 26 operation-resource events as Observatory. Each entry keeps\nprovider/model identity explicit; `None` is a real uncorrelated state,\nnever a client-side guess.",items:{$ref:"#/$defs/ProviderLatencyReadModelV1"},type:"array"},observed_at_micros:{format:"int64",type:"integer"},pricing_revision:{type:["string","null"]},usage:{items:{$ref:"#/$defs/MetricValueV1"},type:"array"},watermark:{type:"string"}},required:["authorized_scope_ref","horizon","watermark","observed_at_micros","current","usage","estimated_cost","latency"],type:"object"},yu={description:"Which side of a file dependency the coupling report counts.",enum:["fan_in","fan_out"],type:"string"},ym={description:"Completeness is explicit; unknown never renders as clean.",enum:["complete","partial","unknown"],type:"string"},yf={additionalProperties:!1,properties:{completeness:{$ref:"#/$defs/CoverageCompleteness"},domain:{$ref:"#/$defs/EvidenceDomain"}},required:["domain","completeness"],type:"object"},yh={enum:["known","partial","stale","unknown","sampled","capped"],type:"string"},yy={description:"Strongly typed canonical identity: `CredentialReferenceId`.",type:"string"},yg={enum:["disabled","manual_receipt_only","fast_forward_only","merge_commit","cherry_pick_exact_commits"],type:"string"},y_={additionalProperties:!1,properties:{allow_cross_repository:{type:"boolean"},allowed_modes:{items:{$ref:"#/$defs/CrossMergeModeV1"},type:"array",uniqueItems:!0},default_mode:{$ref:"#/$defs/CrossMergeModeV1"}},required:["allowed_modes","default_mode","allow_cross_repository"],type:"object"},yv={description:"The managed daemon service unit as a client observed it, from the unit\nfile alone.",oneOf:[{additionalProperties:!1,properties:{state:{const:"not_installed",type:"string"}},required:["state"],type:"object"},{additionalProperties:!1,description:"The unit file could not be read.",properties:{error:{type:"string"},state:{const:"unobservable",type:"string"}},required:["state","error"],type:"object"},{additionalProperties:!1,description:"The unit file at `path` serves the socket `serves`.",properties:{path:{type:"string"},serves:{type:"string"},state:{const:"installed",type:"string"}},required:["state","path","serves"],type:"object"}]},yb={additionalProperties:!1,description:"One immutable deadline supplied by the caller or upstream admission layer.",properties:{expires_at:{$ref:"#/$defs/UtcMicros"}},required:["expires_at"],type:"object"},y$={additionalProperties:!1,description:"The decision engine the intent pass asks. There is no default endpoint or\nmodel; both come only from explicit operator configuration.",properties:{base_url:{type:"string"},max_concurrent:{format:"uint8",maximum:255,minimum:0,type:"integer"},max_state_bytes:{format:"uint32",minimum:0,type:"integer"},model:{type:["string","null"]},timeout_ms:{format:"uint32",minimum:0,type:"integer"}},required:["base_url","timeout_ms","max_concurrent","max_state_bytes"],type:"object"},yS={description:"Diagnostic severity. Source severity is preserved exactly; TraceDecay\nnever raises severity because several producers agree.",enum:["error","warning","information","hint"],type:"string"},yk={additionalProperties:!1,description:"One tsconfig location the diagnostics owner search checked.",properties:{path:{description:"Relative to the project root, forward-slash separated.",type:"string"},present:{description:"The config exists, but neither it nor its references include the\nfile.",type:"boolean"}},required:["path","present"],type:"object"},yw={description:"Whether Doctor observed all of a family's evidence sources.",oneOf:[{const:"complete",description:"Every relevant evidence source for the family was observed.",type:"string"},{const:"partial",description:"Some evidence sources were observed; others were omitted.",type:"string"},{const:"unknown",description:"Whether coverage is complete could not be determined.",type:"string"}]},yP={description:"Shape of the design-structure-matrix report.",enum:["stats","clusters","matrix"],type:"string"},yV={enum:["prevented","committed","unknown","not_applicable"],type:"string"},yR={enum:["exact_duplicate","superseded_overlap","repeated_investigation","duplicate_effect","not_duplicate","censored","unknown"],type:"string"},yq={description:"The stable effect classification of one application operation.\n\nGit index writes remain separate classes so policy cannot accidentally\nsubstitute one index mutation for another.",oneOf:[{enum:["read","preview","source_edit","git_index_stage","git_index_unstage","configuration_write","administrative"],type:"string"},{const:"spawns_process",description:"Runs a child process in the project (e.g. the project's test runner).",type:"string"},{const:"binds_server",description:"Binds a listening server in the daemon process.",type:"string"},{const:"schedules_work",description:"Queues work on a daemon-owned scheduler; the call answers with the\nscheduler's admission, not the finished work.",type:"string"},{const:"maintains_owner_state",description:"Maintains bookkeeping the daemon keeps for the project or profile it\nserves: resets a usage counter, records registry token accounting, or\nreconciles automation schedulers with the saved configuration. Each\nwrite settles within the call and answers its new state.",type:"string"},{const:"maintains_profile_state",description:"Reads and rewrites the daemon profile's own state: its project\nregistry, accounting ledgers, and session stores. Unlike bookkeeping,\nit includes long work, a registry collection or a transcript import,\nthat a cancelled call stops.",type:"string"},{const:"records_host_evidence",description:"Records a host's session evidence (transcripts, hook admissions,\nreceipts) in daemon-owned session stores.",type:"string"}]},yI={additionalProperties:!1,description:"Durable effect proof. It records identities and receipts, never credentials\nor arbitrary command text.",properties:{actor:{$ref:"#/$defs/ActorId"},catalog_digest:{$ref:"#/$defs/ManifestDigest"},committed_state:{anyOf:[{$ref:"#/$defs/ManifestDigest"},{type:"null"}]},configuration_digest:{$ref:"#/$defs/ManifestDigest"},effect_class:{$ref:"#/$defs/EffectClass"},expected_state:{$ref:"#/$defs/ManifestDigest"},external_proof:{anyOf:[{$ref:"#/$defs/RetrievalAnchorId"},{type:"null"}]},idempotency_key:{type:"string"},input_digest:{$ref:"#/$defs/ManifestDigest"},operation:{$ref:"#/$defs/UseCaseId"},outcome:{$ref:"#/$defs/EffectTermination"},policy_digest:{$ref:"#/$defs/ManifestDigest"},privacy_digest:{$ref:"#/$defs/ManifestDigest"},request_id:{type:"string"},scope:{$ref:"#/$defs/ResolvedScope"}},required:["operation","request_id","actor","scope","effect_class","idempotency_key","input_digest","expected_state","policy_digest","configuration_digest","catalog_digest","privacy_digest","outcome"],type:"object"},yx={description:"Durable effect receipt terminal state.",enum:["completed","cancelled","timed_out","failed","partial","effect_unknown"],type:"string"},yj={additionalProperties:!1,description:"Deterministic coverage fold input for an evidence packet.",properties:{completeness:{$ref:"#/$defs/CoverageCompleteness"},domains:{items:{$ref:"#/$defs/CoverageDomainState"},type:"array"},eligible:{format:"uint64",minimum:0,type:["integer","null"]},requested_domains:{items:{$ref:"#/$defs/EvidenceDomain"},type:"array"},returned:{format:"uint64",minimum:0,type:"integer"},visited:{format:"uint64",minimum:0,type:["integer","null"]}},required:["requested_domains","returned","completeness","domains"],type:"object"},yC={description:"Requested evidence domain for bounded coverage and omissions.",enum:["symbol","source","graph","test","temporal","anchor","operational","diagnostic"],type:"string"},yT={description:"Evidence role used by dedupe/diversity caps. Independent corroboration\nand contradictions are preserved.",enum:["primary","corroboration","contradiction","context"],type:"string"},yO={description:"The exact tiers, lexicographically ordered above all approximate\ncandidates. Fusion derives this only from a validated [`ExactAdmissionProof`].",enum:["exact_message","exact_literal_phrase","approximate"],type:"string"},yE={description:"The classification of one whole exact technical term. Whole exact terms\nand language-profiled subtokens are distinct fields.",enum:["whole_symbol","qualified_name","path","compiler_error_code","compiler_error_text","runtime_error_code","runtime_error_text","cli_flag","tool_name","configuration_key","commit_identifier"],type:"string"},yA={description:"Strongly typed canonical identity: `FactAssertionId`.",type:"string"},yW={enum:["general","user_pref","project","tool","decision","code_area"],type:"string"},yM={enum:["committed","idempotent_replay"],type:"string"},yN={oneOf:[{additionalProperties:!1,properties:{kind:{const:"profile",type:"string"}},required:["kind"],type:"object"},{additionalProperties:!1,properties:{kind:{const:"project",type:"string"},project_id:{$ref:"#/$defs/ProjectId"}},required:["kind","project_id"],type:"object"}]},yz={additionalProperties:!1,properties:{active_assertion_id:{anyOf:[{$ref:"#/$defs/FactAssertionId"},{type:"null"}]},committed_event_ids:{items:{$ref:"#/$defs/FactEventId"},type:"array"},disposition:{$ref:"#/$defs/FactCommitDispositionV1"},fact_id:{$ref:"#/$defs/FactId"},last_event_id:{$ref:"#/$defs/FactEventId"},owner:{$ref:"#/$defs/FactCommitOwnerV1"}},required:["disposition","fact_id","owner","committed_event_ids","last_event_id"],type:"object"},yD={description:"Strongly typed canonical identity: `FactEventId`.",type:"string"},yF={enum:["helpful","unhelpful"],type:"string"},yL={description:"Strongly typed canonical identity: `FactId`.",type:"string"},yU={oneOf:[{additionalProperties:!1,properties:{anchor_id:{$ref:"#/$defs/RetrievalAnchorId"},kind:{const:"evidence",type:"string"},stable_key:{$ref:"#/$defs/LocatorDigest"}},required:["kind","anchor_id","stable_key"],type:"object"},{additionalProperties:!1,properties:{kind:{const:"application",type:"string"},operation_id:{$ref:"#/$defs/ProvenanceId"}},required:["kind","operation_id"],type:"object"}]},yH={description:"Payload states that structurally cannot expose an available fact payload.",enum:["redacted","quarantined","retention_expired","deleted","unavailable","ambiguous"],type:"string"},yG={oneOf:[{additionalProperties:!1,properties:{fact:{$ref:"#/$defs/FactV1"},kind:{const:"available",type:"string"}},required:["kind","fact"],type:"object"},{additionalProperties:!1,properties:{fact:{$ref:"#/$defs/FactV1"},kind:{const:"superseded",type:"string"},superseded_by:{$ref:"#/$defs/FactId"}},required:["kind","fact","superseded_by"],type:"object"},{additionalProperties:!1,properties:{kind:{const:"unavailable",type:"string"},status:{$ref:"#/$defs/FactStatusV1"}},required:["kind","status"],type:"object"}]},yB={oneOf:[{additionalProperties:!1,properties:{kind:{const:"not_applicable",type:"string"}},required:["kind"],type:"object"},{additionalProperties:!1,properties:{kind:{const:"not_mounted",type:"string"}},required:["kind"],type:"object"},{additionalProperties:!1,properties:{expanded_fact_count:{format:"uint",minimum:0,type:"integer"},kind:{const:"complete",type:"string"},relation_count:{format:"uint",minimum:0,type:"integer"},root_count:{format:"uint",minimum:0,type:"integer"}},required:["kind","root_count","relation_count","expanded_fact_count"],type:"object"},{additionalProperties:!1,properties:{kind:{const:"degraded",type:"string"},reason:{$ref:"#/$defs/FactSearchGraphDegradationV1"}},required:["kind","reason"],type:"object"}]},yK={enum:["conflict","unavailable","budget_exhausted","deadline_exceeded"],type:"string"},yJ={additionalProperties:!1,properties:{fact:{$ref:"#/$defs/FactV1"},scores:{$ref:"#/$defs/FactSearchScoresV1"},why:{type:["string","null"]}},required:["fact","scores"],type:"object"},yZ={additionalProperties:!1,properties:{fts_score_millionths:{format:"uint32",minimum:0,type:"integer"},holographic_score_millionths:{format:"uint32",minimum:0,type:"integer"},jaccard_score_millionths:{format:"uint32",minimum:0,type:"integer"},score_millionths:{format:"uint32",minimum:0,type:"integer"},trust_score_millionths:{format:"uint32",minimum:0,type:"integer"}},required:["score_millionths","fts_score_millionths","jaccard_score_millionths","holographic_score_millionths","trust_score_millionths"],type:"object"},yQ={additionalProperties:!1,properties:{fact_id:{$ref:"#/$defs/FactId"},owner:{$ref:"#/$defs/FactCommitOwnerV1"},payload_access:{$ref:"#/$defs/FactPayloadAccessV1"},projected_as_of:{$ref:"#/$defs/UtcMicros"}},required:["owner","fact_id","payload_access","projected_as_of"],type:"object"},yX={additionalProperties:!1,properties:{access_count:{format:"uint64",minimum:0,type:"integer"},created_at:{$ref:"#/$defs/UtcMicros"},helpful_count:{format:"uint64",minimum:0,type:"integer"},last_feedback_at:{anyOf:[{$ref:"#/$defs/UtcMicros"},{type:"null"}]},last_recalled_at:{anyOf:[{$ref:"#/$defs/UtcMicros"},{type:"null"}]},last_retrieved_at:{anyOf:[{$ref:"#/$defs/UtcMicros"},{type:"null"}]},retrieval_count:{format:"uint64",minimum:0,type:"integer"},unhelpful_count:{format:"uint64",minimum:0,type:"integer"},updated_at:{$ref:"#/$defs/UtcMicros"}},required:["retrieval_count","access_count","helpful_count","unhelpful_count","created_at","updated_at"],type:"object"},yY={additionalProperties:!1,description:"Available fact projection. Unavailable payload states use\n[`FactProjectionV1::Unavailable`] and cannot fabricate payload fields.",properties:{active_assertion_id:{$ref:"#/$defs/FactAssertionId"},category:{$ref:"#/$defs/FactCategoryV1"},content:{type:"string"},entities:{items:{type:"string"},type:"array"},fact_id:{$ref:"#/$defs/FactId"},last_event_id:{$ref:"#/$defs/FactEventId"},metadata:{additionalProperties:!0,type:"object"},owner:{$ref:"#/$defs/FactCommitOwnerV1"},projected_as_of:{$ref:"#/$defs/UtcMicros"},source:{$ref:"#/$defs/FactIdentitySourceResultV1"},source_label:{type:["string","null"]},tags:{items:{type:"string"},type:"array"},telemetry:{$ref:"#/$defs/FactTelemetryV1"},trust_score_millionths:{format:"uint32",minimum:0,type:"integer"}},required:["owner","fact_id","content","category","tags","entities","trust_score_millionths","source","active_assertion_id","last_event_id","projected_as_of","telemetry","metadata"],type:"object"},y1={additionalProperties:!1,description:"Exact source-owned state for one advisory producer in a composed feedback\ncycle. The producer tag is part of the durable cycle result so consumers\nnever infer provenance from the position of an aggregate provider state.",properties:{producer:{$ref:"#/$defs/FeedbackDiagnosticProducerV1"},state:{$ref:"#/$defs/ProviderEvaluationStateV1"}},required:["producer","state"],type:"object"},y0={description:"Availability of the canonical baseline used to classify a current\ndiagnostic. An unavailable or partial baseline never upgrades a finding\nto `New`; only an authoritative `NoPriorBaseline` state may do so without\na baseline record.",oneOf:[{enum:["complete","partial","stale","unavailable"],type:"string"},{const:"no_prior_baseline",description:"The authoritative runtime confirmed that there is no prior saved\ngeneration to compare. This is authoritative empty history, not an\ninvented horizon and not unavailable/partial coverage.",type:"string"}]},y2={description:"Content identity distinguishes durable saved content from an authorized\nephemeral document overlay. Overlay identity is deliberately local to its\nowning session and cannot be made durable by converting it to a digest.",oneOf:[{properties:{file_digest:{$ref:"#/$defs/ManifestDigest"},generation_digest:{$ref:"#/$defs/ManifestDigest"},kind:{const:"saved_content",type:"string"}},required:["kind","generation_digest","file_digest"],type:"object"},{properties:{agent_id:{anyOf:[{$ref:"#/$defs/AgentInstanceId"},{type:"null"}]},document_version:{format:"uint64",minimum:0,type:"integer"},kind:{const:"ephemeral_overlay",type:"string"},overlay_digest:{$ref:"#/$defs/ManifestDigest"},owner_client_id:{$ref:"#/$defs/HostInstanceId"},session_id:{$ref:"#/$defs/SessionId"}},required:["kind","session_id","owner_client_id","document_version","overlay_digest"],type:"object"}]},y4={description:"Strongly typed canonical identity: `FeedbackCycleId`.",type:"string"},y6={enum:["clean","duplicate_noop","blocked","incomplete_coverage","stale_replan_required","budget_exceeded","cancelled","user_stop","daemon_unavailable"],type:"string"},y3={enum:["new","pre_existing","unknown"],type:"string"},y9={description:"Closed producer vocabulary for standard diagnostic projection.",enum:["code_diagnostic","git_hub_review","ci_localization","proximity"],type:"string"},y5={additionalProperties:!1,description:"Bounded code location used only to project an anchored advisory finding\ninto an editor. The finding's `retrieval_anchor_id` remains the evidence\nexpansion authority; this value carries no source body or provider payload.",properties:{code:{type:"string"},code_description_uri:{type:["string","null"]},file:{$ref:"#/$defs/FileOccurrenceId"},producer:{$ref:"#/$defs/FeedbackDiagnosticProducerV1"},safe_bounded_message:{type:"string"},severity:{$ref:"#/$defs/DiagnosticSeverityV1"},span:{$ref:"#/$defs/SourceSpan"},symbol:{anyOf:[{$ref:"#/$defs/SymbolOccurrenceId"},{type:"null"}]}},required:["file","span","code","severity","safe_bounded_message","producer"],type:"object"},y8={enum:["durable","session_only"],type:"string"},y7={description:"Strongly typed canonical identity: `FeedbackFindingId`.",type:"string"},ge={enum:["active","superseded","resolved","cleared"],type:"string"},gt={additionalProperties:!1,properties:{cycle_id:{$ref:"#/$defs/FeedbackCycleId"},expand_handle:{description:"Server-minted request handle for `feedback_expand`, present only when\nthe canonical finding has a retained retrieval anchor.",type:["string","null"]},finding:{$ref:"#/$defs/FeedbackFindingV1"},get_handle:{description:"Server-minted request handle for `feedback_get`; durable identity remains\n`finding.finding_id`.\n\nCursor identity types are deliberately absent from the generated schema\nsurface; the public wire form is the bounded opaque string.",type:"string"},result_id:{$ref:"#/$defs/FeedbackResultId"},scope:{$ref:"#/$defs/FeedbackScopeV1"}},required:["result_id","cycle_id","scope","finding","get_handle"],type:"object"},gr={additionalProperties:!1,description:"Reference-only post-edit feedback finding. The safe preview is bounded display framing,\nnever a source-text copy or a second diagnostic store.",properties:{classification:{$ref:"#/$defs/FeedbackDiagnosticClassificationV1"},diagnostic_projection:{anyOf:[{$ref:"#/$defs/FeedbackDiagnosticProjectionV1"},{type:"null"}]},finding_id:{$ref:"#/$defs/FeedbackFindingId"},lifecycle:{$ref:"#/$defs/FeedbackFindingLifecycleV1"},provider_state:{$ref:"#/$defs/ProviderEvaluationStateV1"},retrieval_anchor_id:{anyOf:[{$ref:"#/$defs/RetrievalAnchorId"},{type:"null"}]},safe_bounded_preview:{type:["string","null"]}},required:["finding_id","classification","lifecycle","provider_state"],type:"object"},gi={description:"Coverage state for graph impact and affected-test evidence. An empty impact\nset is clean only when its state is complete.",enum:["complete","partial","stale","unavailable"],type:"string"},go={additionalProperties:!1,description:"Reference-only graph and test impact for one feedback target. The owning\ngraph/query layer supplies these identities; this contract does not create\nanother graph, test map, or evidence store.",properties:{affected_callers:{items:{$ref:"#/$defs/SymbolOccurrenceId"},type:"array"},affected_files:{items:{$ref:"#/$defs/FileOccurrenceId"},type:"array"},affected_tests:{items:{$ref:"#/$defs/SymbolOccurrenceId"},type:"array"},affected_tests_state:{$ref:"#/$defs/FeedbackImpactStateV1"},evidence_anchors:{items:{$ref:"#/$defs/RetrievalAnchorId"},type:"array"},state:{$ref:"#/$defs/FeedbackImpactStateV1"},target:{$ref:"#/$defs/FeedbackTargetV1"}},required:["target","affected_files","affected_callers","affected_tests","evidence_anchors","state","affected_tests_state"],type:"object"},gn={description:"Strongly typed canonical identity: `FeedbackResultId`.",type:"string"},ga={additionalProperties:!1,description:"Exact repository scope used for a feedback evaluation. A path, current\nworking directory, repository display name, or mutable branch label is not\na substitute for this identity.",properties:{branch_ref:{type:"string"},head_commit_id:{$ref:"#/$defs/CommitId"},project_id:{$ref:"#/$defs/ProjectId"},repository_id:{$ref:"#/$defs/RepositoryId"},worktree_id:{$ref:"#/$defs/WorktreeId"}},required:["project_id","repository_id","worktree_id","branch_ref","head_commit_id"],type:"object"},gs={additionalProperties:!1,description:"Exact changed-code address for one single-root feedback evaluation. The\naddress carries canonical file/range/symbol identities, never a path or\nmutable line number.",properties:{file:{$ref:"#/$defs/FileOccurrenceId"},generation_id:{anyOf:[{$ref:"#/$defs/CodeGenerationId"},{type:"null"}]},span:{anyOf:[{$ref:"#/$defs/SourceSpan"},{type:"null"}]},symbol:{anyOf:[{$ref:"#/$defs/SymbolOccurrenceId"},{type:"null"}]}},required:["file"],type:"object"},gd={description:"Strongly typed canonical identity: `FileOccurrenceId`.",type:"string"},gc={description:"How `tracedecay_files` lays out its listing.",oneOf:[{const:"flat",description:"One file per line.",type:"string"},{const:"grouped",description:"Grouped by directory.",type:"string"}]},gl={description:"Deterministic fixed-point score in millionths. No floating point crosses\nthis boundary.",format:"uint64",minimum:0,type:"integer"},gp={description:"Compatibility state of one source/projection pair.",enum:["current","stale","incompatible","missing","unknown"],type:"string"},gu={additionalProperties:!1,description:"A candidate after contribution grouping and fixed-point fusion.",properties:{anchor_id:{$ref:"#/$defs/RetrievalAnchorId"},contributions:{items:{$ref:"#/$defs/CandidateContribution"},type:"array"},decisions:{items:{$ref:"#/$defs/RankingDecision"},type:"array"},exact_class:{$ref:"#/$defs/ExactClass"},freshness:{items:{$ref:"#/$defs/SourceFreshness"},type:"array"},logical_evidence_id:{$ref:"#/$defs/LogicalEvidenceId"},occurrences:{items:{$ref:"#/$defs/OccurrenceProvenance"},type:"array"},source_role:{$ref:"#/$defs/RetrievalSourceRoleV1",default:"production_other",description:"Strongest source role across the fused occurrences. Absent historical\ncandidates deserialize as a non-definition hit."},utility_micros:{format:"uint64",minimum:0,type:"integer"}},required:["anchor_id","logical_evidence_id","occurrences","exact_class","utility_micros","contributions","freshness","decisions"],type:"object"},gm={description:"Metric whose distribution the Gini report measures.",enum:["complexity","lines","fan_in","fan_out","members"],type:"string"},gf={description:"Unit the Gini report aggregates its metric over.",enum:["file","symbol"],type:"string"},gh={description:"Expected blob identity, or explicit absent-file state.",oneOf:[{enum:["absent_file"],type:"string"},{additionalProperties:!1,properties:{present:{$ref:"#/$defs/GitOidV1"}},required:["present"],type:"object"}]},gy={description:"Native change kind for one side (index or worktree) of a status entry,\nor for a whole-file diff record.",enum:["unmodified","modified","added","deleted","renamed","copied","type_changed","unmerged"],type:"string"},gg={additionalProperties:!1,description:"A symbol the exact base/head branch-generation comparison reports.",properties:{content_digest:{type:"string"},file:{type:"string"},id:{type:"string"},kind:{type:"string"},name:{type:"string"},qualified_name:{type:"string"}},required:["id","name","qualified_name","kind","file","content_digest"],type:"object"},g_={oneOf:[{additionalProperties:!1,description:"Caller-selected files: symbols may be unchanged or not yet edited.",properties:{kind:{const:"proposed_files",type:"string"}},required:["kind"],type:"object"},{additionalProperties:!1,properties:{base:{$ref:"#/$defs/GitOidV1"},head:{$ref:"#/$defs/GitOidV1"},kind:{const:"commit_range",type:"string"}},required:["kind","base","head"],type:"object"},{additionalProperties:!1,description:"Pinned HEAD (or empty tree) to the selected immutable index blobs.",properties:{head:{anyOf:[{$ref:"#/$defs/GitOidV1"},{type:"null"}]},kind:{const:"staged",type:"string"}},required:["kind"],type:"object"},{additionalProperties:!1,description:"Selected index blobs to captured working-tree bytes.",properties:{kind:{const:"working_tree",type:"string"}},required:["kind"],type:"object"},{additionalProperties:!1,description:"Net change from pinned HEAD (or empty tree), including untracked files.",properties:{head:{anyOf:[{$ref:"#/$defs/GitOidV1"},{type:"null"}]},kind:{const:"head_to_worktree",type:"string"}},required:["kind"],type:"object"}]},gv={additionalProperties:!1,description:"A verified-graph symbol a git-context read reports.",properties:{file:{type:"string"},id:{type:"string"},kind:{type:"string"},line:{format:"uint32",minimum:0,type:"integer"},name:{type:"string"}},required:["id","name","kind","file","line"],type:"object"},gb={additionalProperties:!1,description:"Typed coverage of a read-only Git result: the sorted, de-duplicated set\nof degradations observed while capturing it.",properties:{degradations:{items:{$ref:"#/$defs/GitDegradationV1"},type:"array"}},required:["degradations"],type:"object"},g$={description:"Typed coverage/degradation reasons for a read-only Git result. A result\ncarrying any degradation is truthful but not complete; callers must not\ntreat it as a clean full view.",oneOf:[{enum:["detached_head","unborn_branch","sparse_checkout","split_index","unreadable_state","unsupported_object_format","in_progress_operation","shallow_boundary","truncated_output"],type:"string"},{const:"ignored_collision",description:"Ignored content shares a directory with live tracked/untracked\nentries, so the untracked/ignored view may be collapsed by Git.",type:"string"},{const:"conflicted_state",description:"Unmerged index stages are present.",type:"string"},{const:"submodule_state",description:"Submodule entries exist; the adapter does not recurse into them.",type:"string"}]},gS={description:"A native Git file mode as stored in tree/index records (six octal digits,\ne.g. `100644`, `100755`, `120000` symlink, `160000` gitlink/submodule).",type:"string"},gk={description:"A changed file's semantic role.",enum:["config","docs","source","test"],type:"string"},gw={description:"Native HEAD state. Missing, unborn, and detached states are explicit,\nnever guessed.",oneOf:[{properties:{branch:{type:"string"},commit:{$ref:"#/$defs/GitOidV1"},state:{const:"attached",type:"string"}},required:["state","branch","commit"],type:"object"},{properties:{commit:{$ref:"#/$defs/GitOidV1"},state:{const:"detached",type:"string"}},required:["state","commit"],type:"object"},{properties:{branch:{type:"string"},state:{const:"unborn",type:"string"}},required:["state","branch"],type:"object"}]},gP={enum:["disabled","probe_private_preview"],type:"string"},gV={additionalProperties:!1,description:"Expected index entry state for compare-and-swap: blob identity (or\nabsent), mode, and unmerged-stage state. `unmerged_stage` is `None` for a\nmerged (stage-0) entry.",properties:{blob:{$ref:"#/$defs/GitBlobExpectationV1"},mode:{anyOf:[{$ref:"#/$defs/GitFileModeV1"},{type:"null"}]},unmerged_stage:{format:"uint8",maximum:255,minimum:0,type:["integer","null"]}},required:["blob"],type:"object"},gR={description:"Strongly typed canonical identity: `GitIndexPreviewId`.",type:"string"},gq={description:"The only native Git mutations represented by the index-transaction runtime. Generic Git execution,\nref rewrites, commits, merge/rebase/cherry-pick, push, and worktree writes are\ndeliberately absent.",enum:["stage_hunks","unstage_hunks"],type:"string"},gI={description:"A native Git object id (commit, tree, or blob), lowercase hex, SHA-1 or\nSHA-256 length. This is identity evidence only; it never authorizes\nobject reconstruction or traversal outside native Git.",type:"string"},gx={description:"In-progress native Git operation state, read from repository metadata.",enum:["none","merge","rebase","cherry_pick","revert","bisect","sequencer","unknown"],type:"string"},gj={description:"Whether a bounded page holds every answer or stopped at its limit.",enum:["complete","partial"],type:"string"},gC={enum:["complete"],type:"string"},gT={enum:["partial"],type:"string"},gO={enum:["unavailable"],type:"string"},gE={enum:["result_limit"],type:"string"},gA={additionalProperties:!1,properties:{branch:{type:["string","null"]},commit:{type:["string","null"]},worktree:{type:["string","null"]}},type:"object"},gW={description:"Flat public selector for an admitted Git diff scope.\n\nThis intentionally differs from [`tracedecay_domain::GitDiffScopeV1`]: MCP\nand CLI accept `scope`, `base`, and `head` as sibling fields, then\ntransport parsing builds the canonical domain scope after checking their\nlegal combinations.",enum:["working_tree","staged","commit_range"],type:"string"},gM={enum:["git"],type:"string"},gN={additionalProperties:!1,properties:{kind:{$ref:"#/$defs/GitToolErrorKindV1"},message:{type:"string"},operation:{$ref:"#/$defs/GitToolOperationV1"}},required:["kind","operation","message"],type:"object"},gz={additionalProperties:!1,description:"Git itself refused the refs, worktree status, or history the tool reads.",properties:{error:{$ref:"#/$defs/GitToolErrorV1"}},required:["error"],type:"object"},gD={description:"The git step that refused the read.",enum:["diff","status","log"],type:"string"},gF={additionalProperties:!1,properties:{binding_digest:{$ref:"#/$defs/ManifestDigest"},consumed_at:{$ref:"#/$defs/UtcMicros"},input_digest:{$ref:"#/$defs/ManifestDigest"},receipt_digest:{$ref:"#/$defs/ManifestDigest"},request_id:{type:"string"},token_digest:{$ref:"#/$defs/ManifestDigest"}},required:["binding_digest","token_digest","request_id","input_digest","consumed_at","receipt_digest"],type:"object"},gL={enum:["forbid_force_and_rebase"],type:"string"},gU={description:"Strongly typed canonical identity: `HostInstanceId`.",type:"string"},gH={description:"`HunkRef` operation direction: working tree to index, or index to\nHEAD/base. No other direction is encodable.",enum:["working_tree_to_index","index_to_head"],type:"string"},gG={additionalProperties:!1,description:"Immutable hunk identity for compare-and-swap. A hunk is identified by exact repository,\ndirection, path, expected base/index/worktree identity, normalized hunk\nheader, context and patch digests, and the preview that issued the\nreference, never by display ordinal or line number alone.\n\nquery mints these as read-only identity evidence only. Applying them is a\ndaemon Git mutation path and is not representable here.",properties:{attributes_digest:{anyOf:[{$ref:"#/$defs/ManifestDigest"},{type:"null"}],description:"Attributes/filter identity relevant to clean/smudge and EOL handling."},context_digest:{$ref:"#/$defs/ManifestDigest"},direction:{$ref:"#/$defs/HunkDirectionV1"},expected_base_blob:{$ref:"#/$defs/GitBlobExpectationV1"},expected_index_entry:{$ref:"#/$defs/GitIndexEntryExpectationV1"},expected_worktree_blob:{anyOf:[{$ref:"#/$defs/GitBlobExpectationV1"},{type:"null"}],description:"Expected working-tree identity when the operation reads the worktree:\na native content digest or explicit absent-file state. `None` means\nthe operation direction does not read the worktree."},expected_worktree_mode:{anyOf:[{$ref:"#/$defs/GitFileModeV1"},{type:"null"}]},hunk_header:{description:"Normalized `@@ -o,l +n,m @@` header text.",type:"string"},original_path:{description:"Old path for a rename or copy.",type:["string","null"]},patch_digest:{$ref:"#/$defs/ManifestDigest"},path:{type:"string"},preview_id:{type:"string"},repository:{$ref:"#/$defs/RepositoryId"},schema_version:{type:"string"},selected_line_bitmap:{description:"Selected hunk-line bitmap (little-endian word order, line 1 = bit 0\nof word 0). Full-hunk identity covers the larger old/new side so\ndeletion-only hunks remain representable.",items:{format:"uint64",minimum:0,type:"integer"},type:"array"},snapshot_digest:{$ref:"#/$defs/ManifestDigest"},worktree:{$ref:"#/$defs/WorktreeId"}},required:["repository","worktree","direction","path","expected_base_blob","expected_index_entry","hunk_header","context_digest","patch_digest","selected_line_bitmap","preview_id","schema_version","snapshot_digest"],type:"object"},gB={enum:["available","retained_but_unavailable","redacted","deleted","retention_expired","unauthorized","locked","unverifiable"],type:"string"},gK={additionalProperties:!1,description:"One yes/no question asked of the decision engine for one intent. The\nintent is a candidate when the engine's probability reaches\n`threshold_permille` and, when set, exceeds the runner-up by\n`margin_permille`.",properties:{instructions:{type:"string"},intent:{$ref:"#/$defs/ContextScoutIntentKindV1"},margin_permille:{format:"uint16",maximum:65535,minimum:0,type:["integer","null"]},threshold_permille:{format:"uint16",maximum:65535,minimum:0,type:"integer"}},required:["intent","instructions","threshold_permille"],type:"object"},gJ={additionalProperties:!1,description:"Bounds on the recent-session window one intent pass reads.",properties:{freshen_budget_ms:{description:"Time the pass may wait for the transcript store to ingest the newest\nturn before it reads the window as it stands.",format:"uint32",minimum:0,type:"integer"},max_age_secs:{format:"uint32",minimum:0,type:"integer"},max_bytes:{format:"uint32",minimum:0,type:"integer"},max_messages:{format:"uint8",maximum:255,minimum:0,type:"integer"},max_user_turns:{format:"uint8",maximum:255,minimum:0,type:"integer"}},required:["max_user_turns","max_messages","max_bytes","max_age_secs","freshen_budget_ms"],type:"object"},gZ={description:"p50/p95/p99 for one provider operation latency stage.",properties:{p50:{$ref:"#/$defs/MetricValueV1"},p95:{$ref:"#/$defs/MetricValueV1"},p99:{$ref:"#/$defs/MetricValueV1"}},required:["p50","p95","p99"],type:"object"},gQ={oneOf:[{properties:{state:{const:"ready",type:"string"}},required:["state"],type:"object"},{properties:{state:{const:"denied",type:"string"}},required:["state"],type:"object"},{properties:{state:{const:"cancelled",type:"string"}},required:["state"],type:"object"},{properties:{state:{const:"timed_out",type:"string"}},required:["state"],type:"object"},{properties:{reason:{type:"string"},state:{const:"unavailable",type:"string"}},required:["state","reason"],type:"object"},{properties:{diagnostic:{type:"string"},state:{const:"failed",type:"string"}},required:["state","diagnostic"],type:"object"}]},gX={additionalProperties:!1,properties:{limit:{format:"uint64",minimum:0,type:"integer"},offset:{format:"uint64",minimum:0,type:"integer"},returned_chars:{format:"uint64",minimum:0,type:"integer"},total_chars:{format:"uint64",minimum:0,type:"integer"},truncated:{type:"boolean"}},required:["offset","limit","returned_chars","total_chars","truncated"],type:"object"},gY={description:"Whether historical discovery, projection publication, and summary\nconvergence have all settled for everything the store's sources hold.",oneOf:[{const:"converging",description:"A stage still owes committed work.",type:"string"},{const:"converged",description:"The worker committed the last owed item and has nothing pending.",type:"string"},{const:"blocked",description:"Every runnable stage settled, but historical discovery is blocked.",type:"string"},{const:"unavailable",description:"No worker is serving the store.",type:"string"}]},g1={additionalProperties:!1,properties:{converged_at_unix_micros:{description:"When the latest convergence event was published.",format:"int64",type:["integer","null"]},epoch:{description:"Convergence events this worker has published; a larger value is a\nnewer event.",format:"uint64",minimum:0,type:"integer"},reason:{description:"The historical discovery blocker when `state` is `blocked`.",type:["string","null"]},state:{$ref:"#/$defs/LcmConvergenceStateV1"}},required:["state","epoch"],type:"object"},g0={description:"Whether the refresh worker that serves this store's temporal projection\nis current, still converging history, or not serving at all.",enum:["current","stale","unavailable"],type:"string"},g2={additionalProperties:!1,description:"The temporal projection's serving state at diagnosis time. A store whose\nschema is healthy can still have nothing to serve while history is being\nre-derived (for example on a fresh profile); this is where\nthat state is named instead of being read as absent data.",properties:{convergence:{$ref:"#/$defs/LcmConvergenceV1"},reason:{description:"Machine reason for a non-current state: `historical_convergence`,\n`historical_retry:`, `historical_blocked:`, or the worker\nunavailability (`worker_missing`, `worker_recovering`, `worker_stalled`,\n`worker_stopped`).",type:["string","null"]},state:{$ref:"#/$defs/LcmDoctorProjectionStateV1"},worker:{$ref:"#/$defs/RetrievalWorkerStatusV1"}},required:["state","worker","convergence"],type:"object"},g4={additionalProperties:!1,properties:{content:{type:"string"},content_hash:{type:"string"},message_id:{type:"string"},metadata_json:{type:["string","null"]},ordinal:{format:"int64",type:"integer"},payload_ref:{type:["string","null"]},provider:{type:"string"},role:{type:"string"},session_id:{type:"string"},storage_kind:{$ref:"#/$defs/LcmStorageKindV1"},store_id:{format:"int64",type:"integer"},timestamp:{format:"int64",type:["integer","null"]}},required:["provider","message_id","session_id","store_id","role","ordinal","content","content_hash","storage_kind"],type:"object"},g6={oneOf:[{properties:{freshness:{$ref:"#/$defs/TemporalFreshnessV1"},outcome:{const:"complete",type:"string"}},required:["outcome","freshness"],type:"object"},{properties:{freshness:{$ref:"#/$defs/TemporalFreshnessV1"},omitted:{format:"uint64",minimum:0,type:"integer"},outcome:{const:"partial",type:"string"}},required:["outcome","freshness","omitted"],type:"object"},{properties:{freshness:{$ref:"#/$defs/TemporalFreshnessV1"},outcome:{const:"stale",type:"string"}},required:["outcome","freshness"],type:"object"}]},g3={oneOf:[{properties:{kind:{const:"raw_message",type:"string"},store_id:{format:"int64",type:"integer"}},required:["kind","store_id"],type:"object"},{properties:{kind:{const:"summary_node",type:"string"},node_id:{type:"string"}},required:["kind","node_id"],type:"object"}]},g9={enum:["inline","external","canonical_occurrence"],type:"string"},g5={description:"One provider's summarizer executable: absent by default, or the exact\nabsolute path the operator configured with its optional tuning.",oneOf:[{properties:{state:{const:"unconfigured",type:"string"}},required:["state"],type:"object"},{properties:{canonical_path:{type:"string"},model:{description:"Model requested for summary turns; the provider default when absent.",type:["string","null"]},state:{const:"configured",type:"string"},timeout_secs:{description:"Wall-clock budget for one summary run, within\n[`LCM_SUMMARIZER_TIMEOUT_SECS_RANGE`]; the caller's default when absent.",format:"uint64",minimum:0,type:["integer","null"]}},required:["state","canonical_path"],type:"object"}]},g8={additionalProperties:!1,description:"The per-provider summarizer executables one configuration snapshot admits.",properties:{codex:{$ref:"#/$defs/LcmSummarizerExecutableV1",default:{state:"unconfigured"},description:"`codex`, driven over app-server JSON-RPC for Codex sessions."},cursor_agent:{$ref:"#/$defs/LcmSummarizerExecutableV1",default:{state:"unconfigured"},description:"`cursor-agent`, asked for a summary of Cursor sessions."}},type:"object"},g7={additionalProperties:!1,properties:{conversation_id:{type:"string"},created_at:{format:"int64",type:"integer"},depth:{format:"int64",type:"integer"},expand_hint:{type:["string","null"]},metadata_json:{type:["string","null"]},node_id:{type:"string"},provider:{type:"string"},session_id:{type:"string"},source_refs:{items:{$ref:"#/$defs/LcmSourceRefV1"},type:"array"},source_time_end:{format:"int64",type:["integer","null"]},source_time_start:{format:"int64",type:["integer","null"]},source_token_count:{format:"int64",type:"integer"},summary_hash:{type:"string"},summary_text:{type:"string"},summary_token_count:{format:"int64",type:"integer"}},required:["node_id","provider","conversation_id","session_id","depth","summary_text","summary_hash","source_refs","summary_token_count","source_token_count","created_at"],type:"object"},_e={additionalProperties:!1,properties:{anchors:{items:{type:"string"},type:"array"},authorized_root:{type:["string","null"]},coverage:{$ref:"#/$defs/TemporalCoverageV1"},explanations:{items:{$ref:"#/$defs/TemporalExplanationV1"},type:"array"},next_cursor:{type:["string","null"]},omissions:{items:{$ref:"#/$defs/TemporalOmissionV1"},type:"array"},source_coverage:{items:{$ref:"#/$defs/SessionSourceCoverageV1"},type:"array"},watermarks:{$ref:"#/$defs/TemporalWatermarksV1"}},required:["anchors","watermarks","coverage","explanations"],type:"object"},_t={description:"Why a site the lexical lane admitted for a caller anchor is absent from\nthe response.",oneOf:[{const:"diversity_cap",description:"Collapsed as a duplicate or held back by the per-file diversity cap.",type:"string"},{const:"outside_page",description:"Ranked, but outside the returned page: an earlier page, or behind\n`next_cursor`.",type:"string"},{const:"not_hydrated",description:"On the page, but late hydration returned no source for it.",type:"string"},{const:"out_of_scope",description:"Outside the caller's scope prefix.",type:"string"}]},_r={additionalProperties:!1,description:"Anchor sites one serving stage removed from the response.",properties:{reason:{$ref:"#/$defs/LexicalAnchorDropReasonV1"},sites:{format:"uint64",minimum:0,type:"integer"}},required:["reason","sites"],type:"object"},_i={description:"Strongly typed algorithm-tagged integrity digest: `LocatorDigest`.",type:"string"},_o={description:"Strongly typed canonical identity: `LogicalCopyClusterId`.",type:"string"},_n={description:"Strongly typed canonical identity: `LogicalEvidenceId`.",type:"string"},_a={enum:["global","project"],type:"string"},_s={properties:{absorbed_into:{type:["string","null"]},activated_at:{format:"int64",type:["integer","null"]},archived_reason:{type:["string","null"]},category:{type:"string"},checksum:{type:"string"},created_at:{format:"int64",type:"integer"},id:{type:"string"},materialization_scope:{$ref:"#/$defs/ManagedSkillMaterializationScope"},pinned:{type:"boolean"},provenance:{$ref:"#/$defs/ManagedSkillProvenance"},routing_description:{type:"string"},state:{$ref:"#/$defs/ManagedSkillState"},summary:{type:"string"},targets:{default:["cursor","codex","claude","agents","opencode","kimi","kiro","hermes"],items:{$ref:"#/$defs/SkillInstallTarget"},type:"array"},title:{type:"string"},updated_at:{format:"int64",type:"integer"}},required:["id","title","summary","routing_description","category","state","pinned","checksum","created_at","updated_at","provenance"],type:"object"},_d={properties:{actor:{type:"string"},run_id:{type:["string","null"]},source:{$ref:"#/$defs/ManagedSkillSource"}},required:["source","actor"],type:"object"},_c={enum:["automation_run","user","import"],type:"string"},_l={enum:["active","disabled","archived"],type:"string"},_p={description:"Strongly typed algorithm-tagged integrity digest: `ManifestDigest`.",type:"string"},_u={description:"The only Git histories this product operation can create.",enum:["fast_forward","two_parent_merge","cherry_pick_exact_commits"],type:"string"},_m={enum:["project","user"],type:"string"},_f={enum:["all","parents_only","subagents_only"],type:"string"},_h={enum:["all","direct_user","tool_result"],type:"string"},_y={properties:{calibration_revision:{type:"string"},cohort_revision:{type:"string"},drift_valid:{type:"boolean"},estimator_revision:{type:"string"},support:{format:"uint64",minimum:0,type:"integer"}},required:["estimator_revision","calibration_revision","cohort_revision","support","drift_valid"],type:"object"},_g={properties:{descriptor_revision:{type:"string"},eligible_population:{type:"string"}},required:["descriptor_revision","eligible_population"],type:"object"},__={properties:{censored:{format:"uint64",minimum:0,type:"integer"},completed:{format:"uint64",minimum:0,type:"integer"},eligible:{description:"Exact denominator cardinality. `None` means the denominator is unknown.",format:"uint64",minimum:0,type:["integer","null"]},excluded:{format:"uint64",minimum:0,type:"integer"},observed:{format:"uint64",minimum:0,type:"integer"},state:{$ref:"#/$defs/CoverageStateV1"},unknown:{format:"uint64",minimum:0,type:"integer"}},required:["observed","completed","censored","unknown","excluded","state"],type:"object"},_v={enum:["measurement","association","calibrated_prediction"],type:"string"},_b={properties:{projector_revision:{type:"string"},source:{$ref:"#/$defs/MetricSourceV1"},source_revision:{type:"string"},watermark:{type:"string"}},required:["source","source_revision","projector_revision","watermark"],type:"object"},_$={enum:["observability_envelope","feedback_observations","provider_usage_observation","savings_ledger"],type:"string"},_S={properties:{baseline_watermark:{type:["string","null"]},delta:{format:"double",type:["number","null"]},horizon:{$ref:"#/$defs/ObservabilityHorizonV1"}},required:["horizon"],type:"object"},_k={properties:{lower:{format:"double",type:["number","null"]},reason:{type:["string","null"]},upper:{format:"double",type:["number","null"]}},type:"object"},_w={properties:{calibration:{anyOf:[{$ref:"#/$defs/MetricCalibrationV1"},{type:"null"}]},cohort:{$ref:"#/$defs/MetricCohortV1"},coverage:{$ref:"#/$defs/MetricCoverageV1"},denominator:{type:"string"},denominator_value:{format:"uint64",minimum:0,type:["integer","null"]},descriptor_revision:{type:"string"},evidence_class:{$ref:"#/$defs/MetricEvidenceClassV1"},metric:{type:"string"},provenance:{$ref:"#/$defs/MetricProvenanceV1"},temporal:{$ref:"#/$defs/MetricTemporalV1"},unavailable_reason:{type:["string","null"]},uncertainty:{$ref:"#/$defs/MetricUncertaintyV1"},unit:{type:"string"},value:{description:"Aggregate value. It is absent whenever its denominator or coverage is\ninsufficient; observed lower bounds remain available in `coverage`.",format:"double",type:["number","null"]}},required:["descriptor_revision","metric","unit","denominator","coverage","evidence_class","provenance","cohort","temporal","uncertainty"],type:"object"},_P={additionalProperties:!1,description:"A file that historically changes with `partner_of` but is missing from the\nchange set under review, e.g. a migration beside its schema.",properties:{co_changes:{description:"Commits that changed both `partner_of` and `file`.",format:"uint64",minimum:0,type:"integer"},file:{type:"string"},partner_of:{type:"string"},partner_of_changes:{description:"Commits that changed `partner_of`.",format:"uint64",minimum:0,type:"integer"}},required:["file","partner_of","co_changes","partner_of_changes"],type:"object"},_V={additionalProperties:!1,description:"Frozen continuation identity shared by all participating roots.",properties:{digest:{$ref:"#/$defs/ManifestDigest"},next_page:{format:"uint64",minimum:1,type:"integer"},order_digest:{$ref:"#/$defs/ManifestDigest"},query_digest:{$ref:"#/$defs/ManifestDigest"},root_cursors:{items:{$ref:"#/$defs/RootScopeOutcomeV1_for_Nullable_string"},type:"array"},root_generations:{items:{$ref:"#/$defs/RootScopeOutcomeV1_for_Nullable_RootGenerationV1"},type:"array"},scope_set_digest:{$ref:"#/$defs/ManifestDigest"}},required:["scope_set_digest","root_generations","root_cursors","query_digest","order_digest","next_page","digest"],type:"object"},_R={description:"Strongly typed canonical identity: `NativeIntegrationApprovalId`.",type:"string"},_q={description:"Explicit direction of one integration. Stack meaning is never inferred.",enum:["propagate_dependency_to_dependent","land_dependent_into_dependency","integrate_independent_branch"],type:"string"},_I={description:"Truthful preview classification. Only `MechanicalIntegrationEligible`\ncarries apply-eligible evidence.",oneOf:[{properties:{detail:{$ref:"#/$defs/MechanicalIntegrationModeV1"},state:{const:"mechanical_integration_eligible",type:"string"}},required:["state","detail"],type:"object"},{properties:{state:{const:"already_integrated",type:"string"}},required:["state"],type:"object"},{properties:{detail:{properties:{conflict_digest:{$ref:"#/$defs/ManifestDigest"}},required:["conflict_digest"],type:"object"},state:{const:"native_conflict",type:"string"}},required:["state","detail"],type:"object"},{properties:{detail:{properties:{evidence_digest:{$ref:"#/$defs/ManifestDigest"}},required:["evidence_digest"],type:"object"},state:{const:"semantic_review_required",type:"string"}},required:["state","detail"],type:"object"},{properties:{detail:{properties:{reason:{$ref:"#/$defs/NativeIntegrationUnavailabilityV1"}},required:["reason"],type:"object"},state:{const:"partial",type:"string"}},required:["state","detail"],type:"object"},{properties:{detail:{properties:{reason:{$ref:"#/$defs/NativeIntegrationUnavailabilityV1"}},required:["reason"],type:"object"},state:{const:"unavailable",type:"string"}},required:["state","detail"],type:"object"}]},_x={description:"Strongly typed canonical identity: `NativeIntegrationPreviewId`.",type:"string"},_j={additionalProperties:!1,description:"Canonical stack-snapshot proof returned by `stack_snapshot` and consumed\nverbatim by preflight.",properties:{authorized_scope_set_digest:{$ref:"#/$defs/ManifestDigest"},authorized_scope_set_id:{$ref:"#/$defs/ScopeSetId"},authorized_scope_set_revision:{$ref:"#/$defs/ScopeSetRevision"},destination:{$ref:"#/$defs/ResolvedScope"},grant_digest:{$ref:"#/$defs/ManifestDigest"},inventory_epoch:{$ref:"#/$defs/WorktreeInventoryEpoch"},inventory_snapshot_id:{$ref:"#/$defs/WorktreeInventorySnapshotId"},policy_digest:{$ref:"#/$defs/ManifestDigest"},selection:{$ref:"#/$defs/NativeIntegrationSelectionBindingV1"},source:{$ref:"#/$defs/ResolvedScope"}},required:["source","destination","authorized_scope_set_id","authorized_scope_set_revision","authorized_scope_set_digest","inventory_snapshot_id","inventory_epoch","selection","grant_digest","policy_digest"],type:"object"},_C={description:"Canonically sealed selection passed to the topology authority.\n\n`stack_snapshot` requests carry declaration content; its boundary seals\nthat declaration into this proof, and preflight accepts the proof verbatim.\nThe topology authority never discovers roots or edges.",oneOf:[{properties:{binding:{properties:{declared_revision:{$ref:"#/$defs/BranchStackRevisionV1"},destination_node_id:{$ref:"#/$defs/StackNodeId"},direction:{$ref:"#/$defs/NativeIntegrationDirectionV1"},revision_digest:{$ref:"#/$defs/ManifestDigest"},revision_id:{$ref:"#/$defs/BranchStackRevisionId"},source_node_id:{$ref:"#/$defs/StackNodeId"},stack_id:{$ref:"#/$defs/BranchStackId"}},required:["stack_id","revision_id","revision_digest","declared_revision","source_node_id","destination_node_id","direction"],type:"object"},kind:{const:"declared_stack_edge",type:"string"}},required:["kind","binding"],type:"object"},{properties:{binding:{properties:{destination_ref:{$ref:"#/$defs/RefId"},proposal_digest:{$ref:"#/$defs/ManifestDigest"},source_ref:{$ref:"#/$defs/RefId"}},required:["proposal_digest","source_ref","destination_ref"],type:"object"},kind:{const:"independent_branch",type:"string"}},required:["kind","binding"],type:"object"}]},_T={description:"The only truthful terminal outcomes after recovery.",enum:["committed","aborted_no_change","rolled_back","needs_inspection"],type:"string"},_O={description:"Strongly typed canonical identity: `NativeIntegrationTransactionId`.",type:"string"},_E={description:"Why a preflight cannot authorize apply.",enum:["partial_evidence","stale_scope","denied","native_state_unavailable","reset_required","durability_uncertain","unsupported_hooks","signing_required","destination_occupied"],type:"string"},_A={description:"A target selected by exact registered identity. Repository inventory names\none repository; cleanup names one worktree within that repository.",oneOf:[{properties:{kind:{const:"repository",type:"string"},project_id:{$ref:"#/$defs/ProjectId"},repository_id:{$ref:"#/$defs/RepositoryId"}},required:["kind","project_id","repository_id"],type:"object"},{properties:{kind:{const:"worktree",type:"string"},project_id:{$ref:"#/$defs/ProjectId"},repository_id:{$ref:"#/$defs/RepositoryId"},worktree_id:{$ref:"#/$defs/WorktreeId"}},required:["kind","project_id","repository_id","worktree_id"],type:"object"}]},_W={additionalProperties:!1,properties:{body:{format:"uint64",minimum:0,type:"integer"},full_file:{format:"uint64",minimum:0,type:"integer"}},required:["body","full_file"],type:"object"},_M={properties:{since_micros:{format:"int64",type:"integer"},until_micros:{format:"int64",type:"integer"}},required:["since_micros","until_micros"],type:"object"},_N={additionalProperties:!1,description:"Stable logical identity of one provider observation source.\n\nThe session identity is provider-native evidence. The physical file identity\nis represented separately by [`ObservationSourceGenerationV1`].",properties:{provider:{$ref:"#/$defs/ProviderId"},session_id:{$ref:"#/$defs/SessionId"},source_key:{anyOf:[{$ref:"#/$defs/SessionId"},{type:"null"}]}},required:["provider","session_id"],type:"object"},_z={properties:{analytics_mode:{$ref:"#/$defs/AnalyticsModeReadModelV1"},authorized_scope_ref:{type:"string"},comparison:{$ref:"#/$defs/PerformanceComparisonReadModelV1"},current:{type:"boolean"},horizon:{$ref:"#/$defs/ObservabilityHorizonV1"},metrics:{items:{$ref:"#/$defs/MetricValueV1"},type:"array"},observed_at_micros:{format:"int64",type:"integer"},rejected_arguments:{$ref:"#/$defs/RejectedArgumentAnalyticsV1"},watermark:{type:"string"}},required:["authorized_scope_ref","horizon","watermark","observed_at_micros","current","metrics","analytics_mode","comparison","rejected_arguments"],type:"object"},_D={additionalProperties:!1,description:"Structured occurrence provenance retained through fusion. Fusion\npreserves each exact `(source_occurrence_id, retriever_evidence_anchor)`\npair; parallel unassociated provenance vectors are forbidden.",properties:{evidence_role:{$ref:"#/$defs/EvidenceRole"},file_occurrence_id:{anyOf:[{$ref:"#/$defs/FileOccurrenceId"},{type:"null"}]},freshness:{$ref:"#/$defs/SourceFreshness"},logical_copy_cluster_id:{anyOf:[{$ref:"#/$defs/LogicalCopyClusterId"},{type:"null"}]},logical_copy_evidence_anchor:{anyOf:[{$ref:"#/$defs/RetrievalAnchorId"},{type:"null"}]},repository_id:{anyOf:[{$ref:"#/$defs/RepositoryId"},{type:"null"}]},retriever_evidence_anchor:{$ref:"#/$defs/RetrievalAnchorId"},session_or_thread_id:{anyOf:[{$ref:"#/$defs/SessionOrThreadId"},{type:"null"}]},source_namespace:{$ref:"#/$defs/SourceNamespace"},source_occurrence_id:{$ref:"#/$defs/SourceOccurrenceId"}},required:["source_occurrence_id","retriever_evidence_anchor","source_namespace","evidence_role","freshness"],type:"object"},_F={additionalProperties:!1,description:"Bounded work accounting supplied by an owning port or transaction.",properties:{bytes_consumed:{format:"uint64",minimum:0,type:"integer"},elapsed_micros:{format:"uint64",minimum:0,type:"integer"},units_consumed:{format:"uint64",minimum:0,type:"integer"}},required:["units_consumed","bytes_consumed","elapsed_micros"],type:"object"},_L={additionalProperties:!1,description:"Canonical operation evidence. An admitted failure remains represented here\nrather than being replaced by a transport exception.",properties:{budget:{$ref:"#/$defs/OperationBudgetUsage"},cancellation:{anyOf:[{$ref:"#/$defs/CancellationObservation"},{type:"null"}]},effective_deadline:{$ref:"#/$defs/Deadline"},ended_at:{$ref:"#/$defs/UtcMicros"},started_at:{$ref:"#/$defs/UtcMicros"},termination:{$ref:"#/$defs/OperationTermination"}},required:["started_at","ended_at","effective_deadline","budget","termination"],type:"object"},_U={description:"Terminal state after an operation has been admitted.",enum:["completed","cancelled","timed_out","failed","unavailable","partial","effect_unknown"],type:"string"},_H={additionalProperties:!1,description:"Bounded opaque page request. Resume authorization occurs before an adapter\ndecodes or hydrates the cursor.",properties:{cursor:{description:"Opaque resume token. The identifier type is deliberately absent from the\ngenerated schema surface, so the public wire form is its bounded string.",type:["string","null"]},page_size:{format:"uint32",minimum:0,type:"integer"}},required:["page_size"],type:"object"},_G={properties:{baseline_build:{type:["string","null"]},candidate_build:{type:["string","null"]},configuration:{type:["string","null"]},corpus:{type:["string","null"]},coverage:{$ref:"#/$defs/MetricCoverageV1"},disposition:{$ref:"#/$defs/ComparisonDispositionV1"},eligible_outcomes:{format:"uint64",minimum:0,type:["integer","null"]},environment:{type:["string","null"]},oracle:{type:["string","null"]},paired_outcomes:{format:"uint64",minimum:0,type:["integer","null"]},platform:{type:["string","null"]},regression_observed:{type:["boolean","null"]},rollback_profile:{type:["string","null"]},unavailable_reason:{type:["string","null"]},workload:{type:["string","null"]}},required:["disposition","coverage"],type:"object"},_B={oneOf:[{enum:["brief"],type:"string"},{const:"symbols",description:"Exact changed-symbol enumeration, with its existing continuation cursor.",type:"string"}]},_K={description:"Whether the served code generation is known current at serve time.",enum:["fresh","possibly_stale"],type:"string"},_J={additionalProperties:!1,description:"The indexing state behind a `possibly_stale` verdict: the served\ngeneration, the scheduler's latest sealed generation, its staleness-ladder\nstate, and the lanes that answered from an older generation. `summary` is\nthe one-line rendering agents read.",properties:{latest_generation:{type:["string","null"]},parked:{anyOf:[{$ref:"#/$defs/CodeIndexConvergenceParkedV1"},{type:"null"}],description:"The park holding convergence until the operator applies its remedy.\nNo wake retries it, so repeating the request cannot change the answer."},reason:{type:["string","null"]},rebuild_in_flight:{type:["boolean","null"]},served_generation:{type:["string","null"]},stale_lanes:{items:{type:"string"},type:"array"},staleness_state:{anyOf:[{$ref:"#/$defs/CodeIndexStalenessStateV1"},{type:"null"}]},summary:{type:"string"}},required:["summary"],type:"object"},_Z={enum:["complete"],type:"string"},_Q={additionalProperties:!1,properties:{freshness:{anyOf:[{$ref:"#/$defs/PrimitiveSearchFreshnessV1"},{type:"null"}],description:"The worktree verdict a served graph read opens with."},message:{type:"string"},node_id:{type:"string"},reason_code:{type:"string"},status:{type:"string"},suggestions:{description:"Nearest served symbols by edit distance to the requested id, by id,\nsimple name, or qualified name.",items:{$ref:"#/$defs/PrimitiveSymbolLocationV1"},type:"array"}},required:["status","reason_code","node_id","message"],type:"object"},_X={enum:["full","partial"],type:"string"},_Y={additionalProperties:!1,description:"Freshness verdict carried by every search and context response. `indexing`\nis present exactly when the state is `possibly_stale`.",properties:{indexing:{anyOf:[{$ref:"#/$defs/PrimitiveIndexingStateV1"},{type:"null"}]},state:{$ref:"#/$defs/PrimitiveFreshnessStateV1"}},required:["state"],type:"object"},_1={additionalProperties:!1,properties:{language:{type:["string","null"]},provider:{type:["string","null"]},reason:{type:"string"}},required:["reason"],type:"object"},_0={additionalProperties:!1,properties:{end_line:{format:"uint32",minimum:0,type:"integer"},file:{type:"string"},kind:{type:"string"},name:{type:"string"},node_id:{type:"string"},qualified_name:{type:"string"},start_line:{format:"uint32",minimum:0,type:"integer"},unavailable_fields:{items:{type:"string"},type:"array"}},required:["node_id","name","qualified_name","kind","file","start_line","end_line","unavailable_fields"],type:"object"},_2={additionalProperties:!1,properties:{detail:{type:"string"},reason_code:{type:"string"},retryable:{type:"boolean"},status:{$ref:"#/$defs/PrimitiveUnavailableStatusV1"}},required:["status","reason_code","retryable","detail"],type:"object"},_4={enum:["unavailable"],type:"string"},_6={description:"Strongly typed canonical identity: `ProjectId`.",type:"string"},_3={properties:{alias_count:{format:"uint",minimum:0,type:"integer"},artifact_count:{format:"uint",minimum:0,type:"integer"},branches:{items:{type:"string"},type:"array"},canonical_root:{type:"string"},default_branch:{description:"Repository default branch recorded at registration.",type:["string","null"]},head_branch:{description:"Branch the checkout's HEAD names now; `None` when HEAD is detached or\nno checkout of this project could be read.",type:["string","null"]},is_active:{type:["boolean","null"]},kind:{type:"string"},label:{type:"string"},last_seen_at:{format:"int64",type:"integer"},project_id:{type:"string"},project_root:{type:"string"},store_count:{format:"uint",minimum:0,type:"integer"}},required:["project_id","label","project_root","canonical_root","kind","branches","store_count","artifact_count","alias_count","last_seen_at"],type:"object"},_9={properties:{project_count:{format:"uint",minimum:0,type:"integer"},repo_count:{format:"uint",minimum:0,type:"integer"},truncated:{type:"boolean"}},required:["project_count","repo_count","truncated"],type:"object"},_5={properties:{branches:{items:{type:"string"},type:"array"},git_common_dir:{type:["string","null"]},label:{type:"string"},project_count:{format:"uint",minimum:0,type:"integer"},projects:{items:{$ref:"#/$defs/ProjectRegistryEntry"},type:"array"}},required:["label","project_count","branches","projects"],type:"object"},_8={description:"Strongly typed canonical identity: `ProjectionGenerationId`.",type:"string"},_7={description:"Strongly typed canonical identity: `ProposalId`.",type:"string"},ve={enum:["reject","require_human_approval_and_independent_review"],type:"string"},vt={additionalProperties:!1,properties:{disposition:{$ref:"#/$defs/ProtectedRefDispositionV1"},selector:{$ref:"#/$defs/ProtectedRefSelectorV1"}},required:["selector","disposition"],type:"object"},vr={oneOf:[{properties:{kind:{const:"native_default_branch",type:"string"}},required:["kind"],type:"object"},{properties:{kind:{const:"exact",type:"string"},value:{$ref:"#/$defs/CanonicalGitRefNameV1"}},required:["kind","value"],type:"object"},{properties:{kind:{const:"prefix",type:"string"},value:{$ref:"#/$defs/CanonicalGitRefPrefix"}},required:["kind","value"],type:"object"}]},vi={description:"Strongly typed canonical identity: `ProvenanceId`.",type:"string"},vo={description:"Complete provider states remain distinct. Empty findings are clean only\nwhen every requested provider completed with complete supported coverage.",enum:["supported_completed_complete","unsupported","absent","indexing","stale","cancelled","timed_out","failed","partial","unavailable"],type:"string"},vn={description:"Strongly typed canonical identity: `ProviderId`.",type:"string"},va={description:"One provider/model cohort in the Costs latency read model.\n\nThe percentile cells are ordinary canonical metrics so every value carries\nits exact unit, horizon, denominator, coverage/censoring, and projector\nprovenance. Identity provenance is kept separately because latency is\nmeasured by `OperationResourceObservedV1`, while provider/model identity\nmay be joined from an exact `ProviderUsageObservationV1` request/session.",properties:{first_progress:{$ref:"#/$defs/LatencyDistributionReadModelV1"},identity_provenance:{$ref:"#/$defs/MetricProvenanceV1"},identity_unavailable_reason:{type:["string","null"]},model:{type:["string","null"]},provider:{type:["string","null"]},queue:{$ref:"#/$defs/LatencyDistributionReadModelV1"},service:{$ref:"#/$defs/LatencyDistributionReadModelV1"},start:{$ref:"#/$defs/LatencyDistributionReadModelV1"},terminal:{$ref:"#/$defs/LatencyDistributionReadModelV1"}},required:["identity_provenance","queue","start","first_progress","service","terminal"],type:"object"},vs={properties:{canonical_root:{type:"string"},created_at:{format:"int64",type:"integer"},default_branch:{description:"Repository default branch recorded at registration.",type:["string","null"]},display_root:{type:"string"},git_common_dir:{type:["string","null"]},head_branch:{description:"Branch the checkout's HEAD names now; `None` when HEAD is detached or\nno checkout of this project could be read.",type:["string","null"]},is_active:{type:["boolean","null"]},label:{type:"string"},last_seen_at:{format:"int64",type:"integer"},project_id:{type:"string"},project_root:{type:"string"}},required:["project_id","label","project_root","display_root","canonical_root","created_at","last_seen_at"],type:"object"},vd={enum:["owner_receipt","locally_measured","estimated","unknown"],type:"string"},vc={description:"Strongly typed canonical identity: `QueryCollectionId`.",type:"string"},vl={description:"Which endpoint of each counted edge the rank report ranks.",enum:["incoming","outgoing"],type:"string"},vp={description:"Relationship the rank report counts.",enum:["implements","extends","calls","uses","contains","annotates","type_of","returns","receives"],type:"string"},vu={additionalProperties:!1,description:"One recorded ranking decision. Explanations are rendered from this\nprovenance, never reconstructed from a final scalar score.",properties:{detail:{type:"string"},evidence_anchor:{anyOf:[{$ref:"#/$defs/RetrievalAnchorId"},{type:"null"}]},kind:{$ref:"#/$defs/RankingDecisionKind"},policy_anchor:{anyOf:[{$ref:"#/$defs/RetrievalAnchorId"},{type:"null"}]},retriever:{anyOf:[{$ref:"#/$defs/RetrieverKind"},{type:"null"}]}},required:["kind","detail"],type:"object"},vm={description:"The decision kinds the pipeline must record.",enum:["exact_tier_admission","same_source_duplicate_collapse","logical_copy_representative_selection","contradiction_preservation","diversity_cap","comparator_provenance","fallback"],type:"string"},vf={description:"Strongly typed canonical identity: `RefId`.",type:"string"},vh={additionalProperties:!1,description:"Exact registered root locator retained with an authorized scope.\n\n`canonical_root` is routing evidence for the already-resolved\n[`ResolvedScope`]. It cannot replace or manufacture that scope identity.",properties:{canonical_root:{type:"string"},profile:{$ref:"#/$defs/SharedProfileStoreLocatorV1"},project_id:{$ref:"#/$defs/ProjectId"}},required:["project_id","profile","canonical_root"],type:"object"},vy={description:"Frequency and rate projection for dispatcher rejected-argument observations.\n\nCounts may be known while `rejection_rate` stays absent: Plan 26 forbids\nfabricating a rate when the eligible-attempt denominator is unknown.",properties:{coverage:{$ref:"#/$defs/MetricCoverageV1"},eligible_attempts:{format:"uint64",minimum:0,type:["integer","null"]},groups:{items:{$ref:"#/$defs/RejectedArgumentGroupV1"},type:"array"},projector_revision:{type:"string"},redacted_name_count:{format:"uint64",minimum:0,type:"integer"},rejected_total:{format:"uint64",minimum:0,type:["integer","null"]},rejection_rate:{format:"double",type:["number","null"]},unavailable_reason:{type:["string","null"]},watermark:{type:"string"}},required:["coverage","projector_revision","watermark","redacted_name_count","groups"],type:"object"},vg={description:"Closed error class for a rejected surface argument.",enum:["missing","invalid_shape","out_of_bounds","unsupported","unauthorized","stale","unknown"],type:"string"},v_={description:"One surface \xd7 operation \xd7 argument \xd7 error-class cell in the rejected-argument view.",properties:{argument:{$ref:"#/$defs/RejectedArgumentNameV1"},count:{format:"uint64",minimum:0,type:"integer"},error_class:{$ref:"#/$defs/RejectedArgumentErrorClassV1"},operation:{type:"string"},rate:{description:"Eligible-attempt rate for this cell. Absent when the attempt\ndenominator or coverage is insufficient.",format:"double",type:["number","null"]},surface:{$ref:"#/$defs/RejectedArgumentSurfaceV1"}},required:["surface","operation","argument","error_class","count"],type:"object"},vv={description:"Normalized rejected-argument name. Raw flags, values, and tokens never\nenter this vocabulary.",enum:["request_body","pagination","request_handle","operation","lifecycle","unknown"],type:"string"},vb={description:"Transport that rejected a surface argument. Unknown preserves missing\nattribution instead of inventing cli/mcp/http.",enum:["cli","mcp","http","unknown"],type:"string"},v$={description:"Strongly typed canonical identity: `RepositoryId`.",type:"string"},vS={oneOf:[{properties:{kind:{const:"all_authorized",type:"string"}},required:["kind"],type:"object"},{properties:{kind:{const:"allowlist",type:"string"},repositories:{items:{$ref:"#/$defs/RepositoryId"},type:"array",uniqueItems:!0}},required:["kind","repositories"],type:"object"}]},vk={enum:["successful_terminal"],type:"string"},vw={additionalProperties:!1,properties:{capability_id:{$ref:"#/$defs/CapabilityId"},expectation:{$ref:"#/$defs/RequiredCheckExpectationV1"},maximum_age_seconds:{format:"uint32",minimum:1,type:"integer"}},required:["capability_id","expectation","maximum_age_seconds"],type:"object"},vP={additionalProperties:!1,description:"The resolved configuration scope is one exact project/repository/worktree root.\n\nPaths, CWDs, labels, and mutable branch spellings are deliberately absent.",properties:{project_id:{$ref:"#/$defs/ProjectId"},reference:{anyOf:[{$ref:"#/$defs/RefId"},{type:"null"}]},repository_id:{$ref:"#/$defs/RepositoryId"},scope_digest:{$ref:"#/$defs/ManifestDigest"},worktree_id:{$ref:"#/$defs/WorktreeId"}},required:["project_id","repository_id","worktree_id","scope_digest"],type:"object"},vV={description:"Bounded output projection chosen by a concrete use case.",enum:["summary","evidence","references_only"],type:"string"},vR={additionalProperties:!1,properties:{code:{type:"string"},kind:{type:["string","null"]},maximum:{format:"uint",minimum:0,type:["integer","null"]},message:{type:"string"},observed:{format:"uint",minimum:0,type:["integer","null"]},reason:{type:["string","null"]},retryable:{type:["boolean","null"]}},required:["code","message"],type:"object"},vq={enum:["aborted","budget_exhausted","busy","cancelled","complete","complete_zero","cursor_manifest_limit_exceeded","deadline_exceeded","deleted","denied","error","failed","joined","locked","not_found","ok","partial","recorded","redacted","running","stale","started","unavailable","unsupported_filter","wrong_scope"],type:"string"},vI={anyOf:[{format:"uint64",minimum:0,type:"integer"},{type:"string"}],description:"The temporal filter intentionally retains the established integer-or-text\nwire form (Unix timestamps, RFC3339, and relative expressions)."},vx={description:"Strongly typed canonical identity: `RetrievalAnchorId`.",type:"string"},vj={description:"Stable semantic ordering; adapters may not replace it with transport order.",enum:["relevance","source_position","temporal_descending","stable_identity"],type:"string"},vC={additionalProperties:!1,properties:{order:{$ref:"#/$defs/RetrievalOrder"},page:{$ref:"#/$defs/PageRequest"},projection:{$ref:"#/$defs/ResultProjection"},temporal:{$ref:"#/$defs/TemporalModeV1"}},required:["temporal","page","projection","order"],type:"object"},vT={description:"Source-role evidence used at lane admission and fusion.\n\nA production definition outranks a test-file hit for the same symbol even\nwhen the test has a higher measured score. Non-definition production hits\ncompete with test hits on measured scores so comments and references do\nnot crowd out relevant tests.",oneOf:[{const:"production_definition",description:"Non-test path whose name or signature matched the query.",type:"string"},{const:"production_other",description:"Non-test path that is not a name or signature definition match.",type:"string"},{const:"test_reference",description:"Hit under a test path.",type:"string"}]},vO={additionalProperties:!1,properties:{backlog:{format:"uint",minimum:0,type:"integer"},blocker:{type:["string","null"]},last_progress_at_unix_micros:{format:"int64",type:["integer","null"]},retry_class:{type:["string","null"]}},required:["backlog"],type:"object"},vE={description:"Runtime-backed retrieval lanes. Each lane is independently testable,\ndisableable, budgeted, and attributable; one lane is never an alias over\nanother.",enum:["exact_literal","lexical","graph","temporal","task_session","diagnostic"],type:"string"},vA={oneOf:[{properties:{kind:{const:"none",type:"string"}},required:["kind"],type:"object"},{properties:{count:{format:"uint16",maximum:65535,minimum:1,type:"integer"},kind:{const:"independent_review_count",type:"string"}},required:["kind","count"],type:"object"},{properties:{kind:{const:"code_owner_and_independent_review",type:"string"}},required:["kind"],type:"object"}]},vW={enum:["no_review","independent_review","standard_pull_requests","git_hub_stacked_pull_requests"],type:"string"},vM={additionalProperties:!1,properties:{allowed:{items:{$ref:"#/$defs/ReviewTopologyKindV1"},type:"array",uniqueItems:!0},github_stacked_prs:{$ref:"#/$defs/GitHubStackedPullRequestPolicyV1"}},required:["allowed","github_stacked_prs"],type:"object"},vN={additionalProperties:!1,description:"Immutable collection and stack revisions for one exact resolved root.",properties:{collection_revision:{$ref:"#/$defs/ManifestDigest"},generation_digest:{$ref:"#/$defs/ManifestDigest"},scope_digest:{$ref:"#/$defs/ManifestDigest"},stack_revision:{$ref:"#/$defs/ManifestDigest"}},required:["scope_digest","collection_revision","stack_revision","generation_digest"],type:"object"},vz={additionalProperties:!1,description:"One typed outcome pinned to the digest of an exact resolved root.",properties:{outcome:{$ref:"#/$defs/ScopeOutcome_for_Nullable_RootGenerationV1"},scope_digest:{$ref:"#/$defs/ManifestDigest"}},required:["scope_digest","outcome"],type:"object"},vD={additionalProperties:!1,description:"One typed outcome pinned to the digest of an exact resolved root.",properties:{outcome:{$ref:"#/$defs/ScopeOutcome_for_Nullable_string"},scope_digest:{$ref:"#/$defs/ManifestDigest"}},required:["scope_digest","outcome"],type:"object"},vF={enum:["allow","deny"],type:"string"},vL={description:"Strongly typed canonical identity: `RunId`.",type:"string"},vU={additionalProperties:!1,properties:{degraded_row:{type:["string","null"]},progress:{anyOf:[{$ref:"#/$defs/SchemaConvergenceProgressV1"},{type:"null"}]},stage:{$ref:"#/$defs/SchemaConvergenceStageV1"},started_at_micros:{format:"int64",type:"integer"},state:{$ref:"#/$defs/SchemaConvergenceStateV1"},store:{type:"string"}},required:["store","stage","state","started_at_micros"],type:"object"},vH={oneOf:[{additionalProperties:!1,properties:{done:{format:"uint64",minimum:0,type:"integer"},remaining:{format:"uint64",minimum:0,type:"integer"},unit:{const:"rows",type:"string"}},required:["unit","done","remaining"],type:"object"},{additionalProperties:!1,properties:{done:{format:"uint64",minimum:0,type:"integer"},remaining:{format:"uint64",minimum:0,type:"integer"},unit:{const:"pages",type:"string"}},required:["unit","done","remaining"],type:"object"}]},vG={enum:["registered_schema"],type:"string"},vB={enum:["pending_schema_migration","released_shape_convergence_in_progress","degraded","completed"],type:"string"},vK={additionalProperties:!1,description:"Restrictive policy input. An allow never grants capabilities absent from\nthe independently authorized capability set passed to the resolver.",properties:{authority:{$ref:"#/$defs/AuthorityRef"},capabilities:{items:{$ref:"#/$defs/CapabilityId"},type:"array",uniqueItems:!0},effect:{$ref:"#/$defs/RuleEffect"},expires_at:{anyOf:[{$ref:"#/$defs/UtcMicros"},{type:"null"}]},rule_id:{$ref:"#/$defs/AccessRuleId"},subject:{$ref:"#/$defs/ScopeAccessSubjectV1"}},required:["rule_id","subject","authority","capabilities","effect"],type:"object"},vJ={additionalProperties:!1,description:"Typed rule selectors. Unset dimensions match all values at that dimension,\nbut at least one dimension must be constrained. Free-form paths, labels,\ncollection names, and branch names are deliberately absent.",properties:{actor:{anyOf:[{$ref:"#/$defs/ActorId"},{type:"null"}]},operation:{anyOf:[{$ref:"#/$defs/ScopeControlOperationV1"},{type:"null"}]},source_kind:{anyOf:[{$ref:"#/$defs/SourceKindV1"},{type:"null"}]}},type:"object"},vZ={enum:["read","source_bind","source_rebind","source_unbind","access_rule_upsert","access_rule_remove","replace_topology_policy","rollback"],type:"string"},vQ={description:"Truthful outcome for one authorized root or an aggregate over roots.\n\n`Denied` and `Unavailable` carry no value and therefore cannot be confused\nwith a successful empty result.",oneOf:[{properties:{outcome:{const:"exact",type:"string"},value:{anyOf:[{$ref:"#/$defs/RootGenerationV1"},{type:"null"}]}},required:["outcome","value"],type:"object"},{properties:{outcome:{const:"partial",type:"string"},value:{properties:{reason:{$ref:"#/$defs/ScopePartialReasonV1"},value:{anyOf:[{$ref:"#/$defs/RootGenerationV1"},{type:"null"}]}},required:["reason"],type:"object"}},required:["outcome","value"],type:"object"},{properties:{outcome:{const:"denied",type:"string"}},required:["outcome"],type:"object"},{properties:{outcome:{const:"unavailable",type:"string"},value:{properties:{reason:{$ref:"#/$defs/ScopeUnavailableReasonV1"}},required:["reason"],type:"object"}},required:["outcome","value"],type:"object"}]},vX={description:"Truthful outcome for one authorized root or an aggregate over roots.\n\n`Denied` and `Unavailable` carry no value and therefore cannot be confused\nwith a successful empty result.",oneOf:[{properties:{outcome:{const:"exact",type:"string"},value:{type:["string","null"]}},required:["outcome","value"],type:"object"},{properties:{outcome:{const:"partial",type:"string"},value:{properties:{reason:{$ref:"#/$defs/ScopePartialReasonV1"},value:{type:["string","null"]}},required:["reason"],type:"object"}},required:["outcome","value"],type:"object"},{properties:{outcome:{const:"denied",type:"string"}},required:["outcome"],type:"object"},{properties:{outcome:{const:"unavailable",type:"string"},value:{properties:{reason:{$ref:"#/$defs/ScopeUnavailableReasonV1"}},required:["reason"],type:"object"}},required:["outcome","value"],type:"object"}]},vY={description:"Typed explanation for a root that returned usable but incomplete data.",enum:["incomplete","stale","budget_exceeded","root_denied","root_unavailable"],type:"string"},v1={description:"Stable identity of one authorized scope-set record.",type:"string"},v0={description:"Monotonic optimistic-concurrency revision of one scope set.",format:"uint64",minimum:1,type:"integer"},v2={additionalProperties:!1,description:"A source-to-authority binding. It stores only the source kind, a redacted\nlocator digest, and the pre-resolved authority reference.",properties:{authority:{$ref:"#/$defs/AuthorityRef"},binding_id:{$ref:"#/$defs/SourceBindingId"},source_kind:{$ref:"#/$defs/SourceKindV1"},source_locator_digest:{$ref:"#/$defs/LocatorDigest"}},required:["binding_id","source_kind","source_locator_digest","authority"],type:"object"},v4={description:"Typed explanation for a root that could not return usable data.",enum:["authority_unavailable","root_missing","store_unavailable"],type:"string"},v6={description:"Strongly typed canonical identity: `ScoreDomainId`.",type:"string"},v3={additionalProperties:!1,description:"Reference-only filesystem locator. The raw path is sealed outside this\ncontract; only the privacy-bound locator digest and sealed-value digest are\nrepresentable here.",properties:{locator_digest:{$ref:"#/$defs/LocatorDigest"},sealed_value_digest:{$ref:"#/$defs/ManifestDigest"}},required:["locator_digest","sealed_value_digest"],type:"object"},v9={additionalProperties:!1,properties:{knowledge:{$ref:"#/$defs/ClosedUtcIntervalV1"},valid:{$ref:"#/$defs/ValidCoverageIntervalV1"}},required:["knowledge","valid"],type:"object"},v5={oneOf:[{properties:{kind:{const:"caught_up",type:"string"}},required:["kind"],type:"object"},{properties:{kind:{const:"projection_behind_source",type:"string"},lag:{format:"uint64",minimum:0,type:"integer"}},required:["kind","lag"],type:"object"},{properties:{kind:{const:"source_behind_target",type:"string"},lag:{format:"uint64",minimum:0,type:"integer"}},required:["kind","lag"],type:"object"},{properties:{kind:{const:"projection_and_source_behind",type:"string"},projection_lag:{format:"uint64",minimum:0,type:"integer"},source_lag:{format:"uint64",minimum:0,type:"integer"}},required:["kind","projection_lag","source_lag"],type:"object"},{properties:{kind:{const:"locked",type:"string"}},required:["kind"],type:"object"},{properties:{kind:{const:"redacted",type:"string"}},required:["kind"],type:"object"},{properties:{kind:{const:"retention_withheld",type:"string"}},required:["kind"],type:"object"},{properties:{kind:{const:"unavailable",type:"string"}},required:["kind"],type:"object"}]},v8={additionalProperties:!1,properties:{mode:{$ref:"#/$defs/TemporalModeV1"}},required:["mode"],type:"object"},v7={enum:["fresh","stale","partial","locked","redacted","retention_withheld","unavailable"],type:"string"},be={description:"Strongly typed canonical identity: `SessionId`.",type:"string"},bt={description:"Strongly typed canonical identity: `SessionOrThreadId`.",type:"string"},br={additionalProperties:!1,properties:{committed_through:{format:"uint64",minimum:0,type:"integer"},observed_through:{format:"uint64",minimum:0,type:"integer"}},required:["observed_through","committed_through"],type:"object"},bi={additionalProperties:!1,properties:{committed_batches:{format:"uint64",minimum:0,type:"integer"},committed_records:{format:"uint64",minimum:0,type:"integer"},coverage:{$ref:"#/$defs/TemporalCoverageV1"},frontier:{$ref:"#/$defs/SessionRefreshFrontierResultV1"},operation_id:{type:"string"},session_id:{type:"string"},source_coverage:{items:{$ref:"#/$defs/SessionSourceCoverageV1"},type:"array"},updated_at:{format:"int64",type:"integer"}},required:["operation_id","session_id","frontier","coverage","committed_batches","committed_records","updated_at"],type:"object"},bo={additionalProperties:!1,properties:{coverage:{$ref:"#/$defs/TemporalCoverageV1"},failure_code:{type:["string","null"]},frontier:{$ref:"#/$defs/SessionRefreshFrontierResultV1"},operation_id:{type:"string"},session_id:{type:"string"},source_coverage:{items:{$ref:"#/$defs/SessionSourceCoverageV1"},type:"array"},state:{$ref:"#/$defs/SessionRefreshTerminalStateResultV1"},terminal_at:{format:"int64",type:"integer"}},required:["operation_id","session_id","frontier","coverage","state","terminal_at"],type:"object"},bn={enum:["complete","failed","cancelled"],type:"string"},ba={description:"Structural budget boundary that rejected a session retrieval request.\nThese causes are non-retryable request corrections; concurrent permit or\nqueue pressure remains a separate capacity-saturation failure.",enum:["request_result_limit","request_hydration_limit","request_context_bytes","request_candidate_bytes","request_record_bytes","request_hydration_bytes","estimator_version_mismatch","execution_work_exhausted","candidate_read_exhausted","record_read_exhausted","kernel_result_limit","participant_manifest_participants","participant_manifest_canonical_bytes","cursor_manifest_limit","hydration_bytes","context_bytes","context_tokens"],type:"string"},bs={additionalProperties:!1,properties:{committed_frontier:{format:"uint64",minimum:0,type:"integer"},covered_intervals:{items:{$ref:"#/$defs/SessionCoverageIntervalV1"},type:"array"},missing_intervals:{items:{$ref:"#/$defs/SessionCoverageIntervalV1"},type:"array"},observed_frontier:{format:"uint64",minimum:0,type:"integer"},reason:{$ref:"#/$defs/SessionCoverageReasonV1"},request:{$ref:"#/$defs/SessionCoverageRequestV1"},source_id:{type:"string"},state:{$ref:"#/$defs/SessionCoverageStateV1"},target_watermark:{format:"uint64",minimum:0,type:"integer"}},required:["source_id","observed_frontier","committed_frontier","target_watermark","request","covered_intervals","missing_intervals","state","reason"],type:"object"},bd={description:"Typed configuration key. Keys are lowercase, dotted product identifiers;\nuntyped host/adapter keys are not representable.",type:"string"},bc={additionalProperties:!1,description:"Logical and verified physical identity of the shared Profile shard.\n\nBrain and profile IDs select the shard; the verified store locator binds its\nphysical store. Lease incarnations and authority epochs remain runtime fences.",properties:{brain_id:{$ref:"#/$defs/BrainId"},profile_id:{$ref:"#/$defs/UserProfileId"},store_id:{type:"string"}},required:["brain_id","profile_id","store_id"],type:"object"},bl={additionalProperties:!1,properties:{complete:{type:"boolean"},family_digest:{$ref:"#/$defs/ManifestDigest"},match_class:{$ref:"#/$defs/SimilarMatchClassV1"},member_count:{format:"uint",minimum:0,type:"integer"},members:{items:{$ref:"#/$defs/SimilarOccurrenceV1"},type:"array"},next_cursor:{type:["string","null"]},normalization_revision:{format:"uint16",maximum:65535,minimum:0,type:"integer"},representative_payload_digest:{$ref:"#/$defs/ManifestDigest"}},required:["match_class","normalization_revision","family_digest","representative_payload_digest","member_count","members","complete"],type:"object"},bp={enum:["conservative_exact","rename_normalized_exact"],type:"string"},bu={additionalProperties:!1,properties:{body_span:{$ref:"#/$defs/SourceSpan"},path:{type:"string"},project_id:{$ref:"#/$defs/ProjectId"},repository_id:{$ref:"#/$defs/RepositoryId"},snapshot_digest:{$ref:"#/$defs/ManifestDigest"},source_generation:{$ref:"#/$defs/CodeGenerationId"},symbol_occurrence_id:{$ref:"#/$defs/SymbolOccurrenceId"},worktree_id:{anyOf:[{$ref:"#/$defs/WorktreeId"},{type:"null"}]}},required:["project_id","repository_id","source_generation","snapshot_digest","symbol_occurrence_id","path","body_span"],type:"object"},bm={properties:{evidence:{default:[],items:{type:"string"},type:"array"},improvement:{type:"boolean"},priority:{type:"string"},reason:{type:"string"},recommendation:{type:"string"},skill_id:{type:"string"}},required:["skill_id","improvement","recommendation","reason","priority"],type:"object"},bf={enum:["cursor","codex","claude","agents","opencode","kimi","kiro","hermes"],type:"string"},bh={properties:{evidence:{default:[],items:{type:"string"},type:"array"},reason:{type:"string"},recommendation:{type:"string"},skill_id:{type:"string"},stale:{type:"boolean"}},required:["skill_id","stale","recommendation","reason"],type:"object"},by={description:"One skill's durable usage counters. The ledger stores one per skill; a\nsummary is the same record merged with the skill's current metadata.",properties:{activated_at:{description:"When the skill last transitioned into the active state; mirrors the\nmanaged skill metadata so outcome scoring works from summaries alone.",format:"int64",type:["integer","null"]},category:{type:["string","null"]},created_by:{type:["string","null"]},first_seen_at:{format:"int64",type:"integer"},imported_analytics_events:{description:"Import keys that already counted toward this skill. They are not a\nstore-wide set: each key names this skill, so another skill must not\nshare the write.",items:{type:"string"},type:"array",uniqueItems:!0},last_activity_at:{format:"int64",type:"integer"},last_patched_at:{format:"int64",type:["integer","null"]},last_used_at:{format:"int64",type:["integer","null"]},last_viewed_at:{format:"int64",type:["integer","null"]},patch_count:{format:"uint64",minimum:0,type:"integer"},pinned:{type:"boolean"},provenance_source:{anyOf:[{$ref:"#/$defs/ManagedSkillSource"},{type:"null"}]},schema_version:{format:"uint32",minimum:0,type:"integer"},skill_id:{type:"string"},state:{anyOf:[{$ref:"#/$defs/ManagedSkillState"},{type:"null"}]},targets:{default:[],items:{type:"string"},type:"array"},title:{type:["string","null"]},use_count:{format:"uint64",minimum:0,type:"integer"},use_count_at_activation:{format:"uint64",minimum:0,type:["integer","null"]},view_count:{format:"uint64",minimum:0,type:"integer"},view_count_at_activation:{description:"View/use totals captured at activation time so activity since activation\nis an exact delta rather than a heuristic.",format:"uint64",minimum:0,type:["integer","null"]}},required:["schema_version","skill_id","pinned","view_count","use_count","patch_count","first_seen_at","last_activity_at"],type:"object"},bg={description:"Strongly typed canonical identity: `SourceBindingId`.",type:"string"},b_={additionalProperties:!1,description:"Source freshness is source- and retriever-specific: there is no global\nage-decay multiplier. Missing, stale, incompatible, and current are\ndistinct states.",properties:{compatibility:{$ref:"#/$defs/FreshnessCompatibilityV1"},generation_lag:{format:"uint64",minimum:0,type:["integer","null"]},observed_at:{$ref:"#/$defs/UtcMicros"},policy_revision:{$ref:"#/$defs/ComponentRevision"},projection_watermark:{format:"uint64",minimum:0,type:["integer","null"]},source_generation:{format:"uint64",minimum:0,type:["integer","null"]},source_instance:{$ref:"#/$defs/SourceInstanceKey"},source_namespace:{$ref:"#/$defs/SourceNamespace"},source_watermark:{format:"uint64",minimum:0,type:["integer","null"]}},required:["source_namespace","source_instance","observed_at","compatibility","policy_revision"],type:"object"},bv={description:"Strongly typed canonical identity: `SourceInstanceKey`.",type:"string"},bb={enum:["claude","codex","cursor","git_hub","hermes","kiro"],type:"string"},b$={description:"Strongly typed canonical identity: `SourceNamespace`.",type:"string"},bS={description:"Strongly typed canonical identity: `SourceOccurrenceId`.",type:"string"},bk={additionalProperties:!1,description:"Byte range inside one sanitized source file. Mutable line numbers are\nnever part of identity.",properties:{end_byte:{format:"uint64",minimum:0,type:"integer"},start_byte:{format:"uint64",minimum:0,type:"integer"}},required:["start_byte","end_byte"],type:"object"},bw={description:"Strongly typed canonical identity: `SourceStoreId`.",type:"string"},bP={description:"Strongly typed canonical identity: `StackDeliveryWatermarkId`.",type:"string"},bV={description:"Strongly typed canonical identity: `StackNodeId`.",type:"string"},bR={description:"Strongly typed canonical identity: `StackSignalId`.",type:"string"},bq={additionalProperties:!1,description:"Exact base/head symbol comparison was unavailable; the git evidence beside\nit is still the answer.",properties:{reason:{type:"string"},retryable:{type:"boolean"},status:{$ref:"#/$defs/GitReadUnavailableV1"}},required:["status","reason","retryable"],type:"object"},bI={additionalProperties:!1,description:"Optional narrowing inside the immutable project/repository/worktree scope\ncarried by [`RequestContext`]. A path prefix never establishes identity or\nauthorization.",properties:{path_prefix:{type:["string","null"]}},type:"object"},bx={description:"Strongly typed canonical identity: `SymbolOccurrenceId`.",type:"string"},bj={additionalProperties:!1,properties:{end_line:{format:"uint32",minimum:0,type:"integer"},file:{type:"string"},is_async:{type:"boolean"},kind:{type:"string"},line:{description:"One-based user-facing line.",format:"uint32",minimum:0,type:"integer"},name:{type:"string"},node_id:{type:"string"},qualified_name:{type:"string"},score:{format:"double",type:["number","null"]},signature:{type:["string","null"]}},required:["node_id","name","qualified_name","kind","file","line","end_line","is_async"],type:"object"},bC={additionalProperties:!1,properties:{depth:{format:"uint32",minimum:0,type:["integer","null"]},dispatch_from:{type:["string","null"]},dispatch_via_trait:{type:"boolean"},edge_kind:{type:"string"},symbol:{$ref:"#/$defs/SymbolPrimitiveRecord"}},required:["symbol","edge_kind","dispatch_via_trait"],type:"object"},bT={additionalProperties:!1,properties:{anchor_id:{$ref:"#/$defs/RetrievalAnchorId"},evidence_digest:{$ref:"#/$defs/ManifestDigest"},link_id:{type:"string"},observed_at:{$ref:"#/$defs/UtcMicros"},revision:{format:"uint64",minimum:0,type:"integer"},task_id:{$ref:"#/$defs/TaskId"}},required:["link_id","revision","task_id","anchor_id","evidence_digest","observed_at"],type:"object"},bO={additionalProperties:!1,properties:{definition_id:{$ref:"#/$defs/WorkflowDefinitionId"},definition_version:{format:"uint64",minimum:1,type:"integer"},from_actor_id:{$ref:"#/$defs/ActorId"},project_id:{$ref:"#/$defs/ProjectId"},repository_id:{$ref:"#/$defs/RepositoryId"},run_id:{$ref:"#/$defs/RunId"},step_id:{$ref:"#/$defs/WorkflowStepId"},task_id:{$ref:"#/$defs/TaskId"},thread_id:{$ref:"#/$defs/ThreadId"},to_actor_id:{$ref:"#/$defs/ActorId"},worktree_id:{$ref:"#/$defs/WorktreeId"}},required:["project_id","repository_id","worktree_id","definition_id","definition_version","step_id","task_id","thread_id","run_id","from_actor_id","to_actor_id"],type:"object"},bE={description:"Strongly typed canonical identity: `TaskId`.",type:"string"},bA={additionalProperties:!1,properties:{hidden:{format:"uint64",minimum:0,type:"integer"},redacted:{format:"uint64",minimum:0,type:"integer"},unknown:{format:"uint64",minimum:0,type:"integer"},visible:{format:"uint64",minimum:0,type:"integer"}},required:["visible","hidden","unknown","redacted"],type:"object"},bW={additionalProperties:!1,properties:{anchor:{type:"string"},summary:{type:"string"}},required:["anchor","summary"],type:"object"},bM={oneOf:[{properties:{state:{const:"fresh",type:"string"}},required:["state"],type:"object"},{properties:{generation_lag:{format:"uint64",minimum:0,type:"integer"},state:{const:"stored",type:"string"}},required:["state","generation_lag"],type:"object"},{properties:{generation_lag:{format:"uint64",minimum:0,type:"integer"},state:{const:"partial",type:"string"}},required:["state","generation_lag"],type:"object"}]},bN={description:"Requested temporal interpretation.",oneOf:[{additionalProperties:!1,properties:{kind:{const:"current",type:"string"}},required:["kind"],type:"object"},{additionalProperties:!1,properties:{cutoff:{$ref:"#/$defs/UtcMicros"},kind:{const:"as_of",type:"string"}},required:["kind","cutoff"],type:"object"},{additionalProperties:!1,properties:{kind:{const:"evolution",type:"string"}},required:["kind"],type:"object"},{additionalProperties:!1,properties:{kind:{const:"forensic",type:"string"}},required:["kind"],type:"object"}]},bz={additionalProperties:!1,properties:{anchor:{type:"string"},rank:{format:"uint32",minimum:0,type:"integer"},reason:{$ref:"#/$defs/HydrationStateResultV1"}},required:["rank","anchor","reason"],type:"object"},bD={additionalProperties:!1,properties:{generation:{format:"uint64",minimum:0,type:"integer"},index:{format:"uint64",minimum:0,type:"integer"},projection:{format:"uint64",minimum:0,type:"integer"},source:{format:"uint64",minimum:0,type:"integer"},summary:{format:"uint64",minimum:0,type:"integer"}},required:["generation","source","projection","index","summary"],type:"object"},bF={description:"Strongly typed canonical identity: `ThreadId`.",type:"string"},bL={additionalProperties:!1,description:"What a token budget did to an answer. `est_tokens` is the kept rows.\n`over_ceiling` means a single row was larger than its section quota and\nwas kept anyway.",properties:{budget_tokens:{format:"uint32",minimum:0,type:"integer"},est_tokens:{format:"uint32",minimum:0,type:"integer"},over_ceiling:{type:"boolean"},sections:{items:{$ref:"#/$defs/TokenBudgetSectionV1"},type:"array"}},required:["budget_tokens","est_tokens","over_ceiling","sections"],type:"object"},bU={additionalProperties:!1,description:"One section a token budget kept or cut.",properties:{section:{type:"string"},shown:{format:"uint32",minimum:0,type:"integer"},total:{format:"uint32",minimum:0,type:"integer"}},required:["section","total","shown"],type:"object"},bH={additionalProperties:!1,properties:{maximum_active_per_repository:{format:"uint16",maximum:65535,minimum:1,type:"integer"},maximum_global_active:{format:"uint16",maximum:65535,minimum:1,type:"integer"},maximum_parallel_per_task:{format:"uint16",maximum:65535,minimum:1,type:"integer"},maximum_stack_depth:{format:"uint16",maximum:65535,minimum:1,type:"integer"}},required:["maximum_active_per_repository","maximum_parallel_per_task","maximum_global_active","maximum_stack_depth"],type:"object"},bG={enum:["reject","require_explicit_human_approval","require_human_approval_and_independent_review"],type:"string"},bB={additionalProperties:!1,properties:{cleanliness:{$ref:"#/$defs/WorktreeCleanlinessRequirementV1"},maximum_preflight_age_seconds:{format:"uint32",minimum:1,type:"integer"},require_fresh_preflight:{type:"boolean"},review:{$ref:"#/$defs/ReviewRequirementV1"},tests:{items:{$ref:"#/$defs/RequiredCheckV1"},type:"array"}},required:["cleanliness","tests","review","require_fresh_preflight","maximum_preflight_age_seconds"],type:"object"},bK={enum:["critical_only","lifecycle","verbose"],type:"string"},bJ={description:"Risky construct the pattern scan looks for.",enum:["unwrap","expect","panic","todo","unimplemented","unsafe_block"],type:"string"},bZ={description:"Stable, canonical catalog identity for `UseCaseId`.",type:"string"},bQ={description:"Strongly typed canonical identity: `UserProfileId`.",type:"string"},bX={description:"UTC timestamp represented as microseconds from the Unix epoch.",format:"int64",type:"integer"},bY={oneOf:[{properties:{interval:{$ref:"#/$defs/ClosedUtcIntervalV1"},kind:{const:"known",type:"string"}},required:["kind","interval"],type:"object"},{properties:{kind:{const:"unknown",type:"string"}},required:["kind"],type:"object"}]},b1={additionalProperties:!1,description:"One exact verified graph snapshot identity.",properties:{event_sequence:{format:"uint64",minimum:0,type:"integer"},graph_version:{format:"uint64",minimum:0,type:"integer"},recovered_graph_digest:{$ref:"#/$defs/ManifestDigest"},source_watermark:{additionalProperties:{format:"uint64",minimum:0,type:"integer"},type:"object"}},required:["graph_version","event_sequence","source_watermark","recovered_graph_digest"],type:"object"},b0={additionalProperties:!1,properties:{criterion_id:{type:"string"},description:{type:"string"},evidence_required:{type:"boolean"}},required:["criterion_id","description","evidence_required"],type:"object"},b2={enum:["never","on_request"],type:"string"},b4={description:"Strongly typed canonical identity: `WorkArtifactId`.",type:"string"},b6={additionalProperties:!1,properties:{artifact_id:{$ref:"#/$defs/WorkArtifactId"},byte_length:{format:"uint64",minimum:0,type:"integer"},digest:{$ref:"#/$defs/ManifestDigest"}},required:["artifact_id","digest","byte_length"],type:"object"},b3={additionalProperties:!1,description:"Sealed terminal evidence for one provider attempt. The digest of this\nrecord is the evidence digest carried by [`WorkTerminalEvidenceV1`] and by\nthe `RuntimeEvidenceRef` attached to the Work projection, so the receipt\nin Work always names an inspectable record.",properties:{actual_route:{anyOf:[{$ref:"#/$defs/WorkProviderRouteV1"},{type:"null"}]},identity:{$ref:"#/$defs/WorkAttemptIdentityV1"},observed_at:{$ref:"#/$defs/UtcMicros"},outcome:{$ref:"#/$defs/WorkAttemptProviderOutcomeV1"},provider_fallback:{anyOf:[{$ref:"#/$defs/WorkProviderFallbackRecordV1"},{type:"null"}],description:"Present only when the pinned preferred backend was disqualified before\nstartup. `None` means the attempt ran on its first-choice backend."},provider_session:{anyOf:[{$ref:"#/$defs/ObservationSourceIdentityV1"},{type:"null"}],description:"Native provider-qualified session/thread identity, when the provider\nreported one. Admission cannot supply this value and no fallback is\nfabricated."},requested_route:{$ref:"#/$defs/WorkProviderRouteV1"},stderr:{anyOf:[{$ref:"#/$defs/WorkAttemptStreamSummaryV1"},{type:"null"}]},stdout:{anyOf:[{$ref:"#/$defs/WorkAttemptStreamSummaryV1"},{type:"null"}]}},required:["identity","requested_route","outcome","observed_at"],type:"object"},b9={additionalProperties:!1,properties:{attempt_id:{$ref:"#/$defs/AttemptId"},run_id:{$ref:"#/$defs/RunId"},task_id:{$ref:"#/$defs/TaskId"}},required:["task_id","run_id","attempt_id"],type:"object"},b5={description:"How much of the authorized attempt set one page covers.",oneOf:[{additionalProperties:!1,description:"Every attempt after the page start was returned; zero returned is the\nexplicit empty authorized result, not a concealment.",properties:{coverage:{const:"complete",type:"string"},returned:{format:"uint32",minimum:0,type:"integer"}},required:["coverage","returned"],type:"object"},{additionalProperties:!1,description:"The page cap was reached; `resume` continues under the same verified\ntopology generation.",properties:{coverage:{const:"capped",type:"string"},remaining:{format:"uint32",minimum:0,type:"integer"},resume:{$ref:"#/$defs/WorkAttemptListCursorV1"},returned:{format:"uint32",minimum:0,type:"integer"}},required:["coverage","returned","remaining","resume"],type:"object"}]},b8={description:"Opaque resume point for the next page of one attempt-list-family read,\nbound to the operation and `page_size` that minted it and pinned to the\nverified topology generation the page was read under.",type:"string"},b7={additionalProperties:!1,properties:{completed:{format:"uint64",minimum:0,type:"integer"},total:{format:"uint64",minimum:0,type:"integer"}},required:["completed","total"],type:"object"},$e={additionalProperties:!1,properties:{accepted_proposal:{$ref:"#/$defs/ProposalId",description:"Exact accepted proposal the attempt was admitted against. A superseded\nor cleared proposal is a different binding, not a compatible refresh."},event_sequence:{description:"Exact immutable product event that verified this graph version.",format:"uint64",minimum:0,type:"integer"},graph_version:{format:"uint64",minimum:0,type:"integer"},recovered_graph_digest:{$ref:"#/$defs/ManifestDigest",description:"Digest of the graph recovered and verified at admission."},source_watermark:{additionalProperties:{format:"uint64",minimum:0,type:"integer"},description:"Source-frontier identity preserved from the verified product graph.",type:"object"}},required:["graph_version","event_sequence","source_watermark","recovered_graph_digest","accepted_proposal"],type:"object"},$t={description:"How one provider attempt ended, as observed by the daemon runtime.",oneOf:[{properties:{code:{format:"int32",type:"integer"},outcome:{const:"exited",type:"string"}},required:["outcome","code"],type:"object"},{properties:{outcome:{const:"signalled",type:"string"},signal:{format:"int32",type:"integer"}},required:["outcome","signal"],type:"object"},{properties:{outcome:{const:"timed_out",type:"string"}},required:["outcome"],type:"object"},{properties:{outcome:{const:"cancelled",type:"string"}},required:["outcome"],type:"object"},{properties:{outcome:{const:"provider_unavailable",type:"string"},state:{$ref:"#/$defs/WorkProviderAvailabilityV1"}},required:["outcome","state"],type:"object"},{properties:{channel:{$ref:"#/$defs/WorkAttemptStreamChannelV1"},outcome:{const:"stream_overflow",type:"string"}},required:["outcome","channel"],type:"object"},{properties:{outcome:{const:"launch_failed",type:"string"}},required:["outcome"],type:"object"},{description:"The provider started but its typed protocol session did not reach a\nterminal answer: a malformed, out-of-order, oversized, or lost frame.\nPlan 32 requires such a stream to seal failed evidence rather than a\ntext-scraped success.",properties:{outcome:{const:"protocol_failed",type:"string"}},required:["outcome"],type:"object"}]},$r={additionalProperties:!1,properties:{artifacts:{items:{$ref:"#/$defs/WorkArtifactRefV1"},type:"array"},evidence:{anyOf:[{$ref:"#/$defs/WorkAttemptEvidenceRecordV1"},{type:"null"}]},identity:{$ref:"#/$defs/WorkAttemptIdentityV1"}},required:["identity","artifacts"],type:"object"},$i={enum:["leased","running","cancellation_requested","cancellation_acknowledged","cancellation_escalated","recovery_required","succeeded","failed","timed_out","cancelled"],type:"string"},$o={enum:["stdout","stderr"],type:"string"},$n={additionalProperties:!1,description:"Bounded summary of one captured provider stream.",properties:{byte_length:{format:"uint64",minimum:0,type:"integer"},digest:{$ref:"#/$defs/ManifestDigest"},truncated:{type:"boolean"}},required:["byte_length","truncated","digest"],type:"object"},$a={additionalProperties:!1,description:"The verified Work topology snapshot one attempt-list page was read under.",properties:{generation:{description:"The verified graph generation the topology snapshot is published under.",type:"string"},task_count:{description:"The number of tasks in the verified topology.",format:"uint32",minimum:0,type:"integer"}},required:["generation","task_count"],type:"object"},$s={properties:{actual_route:{anyOf:[{$ref:"#/$defs/WorkProviderRouteV1"},{type:"null"}]},artifacts:{items:{$ref:"#/$defs/WorkArtifactRefV1"},type:"array"},cancellation:{$ref:"#/$defs/WorkCancellationStateV1"},execution:{$ref:"#/$defs/WorkExecutionEnvelopeV1"},identity:{$ref:"#/$defs/WorkAttemptIdentityV1"},lease:{$ref:"#/$defs/WorkLeaseFenceV1"},progress:{anyOf:[{$ref:"#/$defs/WorkAttemptProgressV1"},{type:"null"}]},projection_binding:{$ref:"#/$defs/WorkAttemptProjectionBindingV1"},recovery:{$ref:"#/$defs/WorkRecoveryStateV1"},requested_route:{$ref:"#/$defs/WorkProviderRouteV1"},state:{$ref:"#/$defs/WorkAttemptStateV1"},terminal:{anyOf:[{$ref:"#/$defs/WorkTerminalEvidenceV1"},{type:"null"}]}},required:["identity","projection_binding","execution","lease","state","artifacts","cancellation","recovery","requested_route"],type:"object"},$d={additionalProperties:!1,properties:{acknowledged_at:{$ref:"#/$defs/UtcMicros"},request:{$ref:"#/$defs/WorkCancellationRequestV1"}},required:["request","acknowledged_at"],type:"object"},$c={additionalProperties:!1,properties:{acknowledgement:{$ref:"#/$defs/WorkCancellationAcknowledgementV1"},escalated_at:{$ref:"#/$defs/UtcMicros"}},required:["acknowledgement","escalated_at"],type:"object"},$l={description:"Strongly typed canonical identity: `WorkCancellationRequestId`.",type:"string"},$p={additionalProperties:!1,properties:{request_id:{$ref:"#/$defs/WorkCancellationRequestId"},requested_at:{$ref:"#/$defs/UtcMicros"}},required:["request_id","requested_at"],type:"object"},$u={oneOf:[{properties:{state:{const:"none",type:"string"}},required:["state"],type:"object"},{properties:{state:{const:"requested",type:"string"},value:{$ref:"#/$defs/WorkCancellationRequestV1"}},required:["state","value"],type:"object"},{properties:{state:{const:"acknowledged",type:"string"},value:{$ref:"#/$defs/WorkCancellationAcknowledgementV1"}},required:["state","value"],type:"object"},{properties:{state:{const:"escalated",type:"string"},value:{$ref:"#/$defs/WorkCancellationEscalationV1"}},required:["state","value"],type:"object"}]},$m={description:"Strongly typed canonical identity: `WorkCommandId`.",type:"string"},$f={description:"Where a configured route places task content.",enum:["local","tenant","external"],type:"string"},$h={additionalProperties:!1,properties:{topology_generation:{$ref:"#/$defs/WorkTopologyGenerationRefV1"},work_generation:{$ref:"#/$defs/ProjectionGenerationId"}},required:["work_generation","topology_generation"],type:"object"},$y={additionalProperties:!1,properties:{cost_micros:{format:"uint64",minimum:0,type:["integer","null"]},coverage:{$ref:"#/$defs/CoverageStateV1"},effect_count:{format:"uint64",minimum:0,type:["integer","null"]},effect_outcome:{$ref:"#/$defs/DuplicateEffectOutcomeV1"},evidence:{$ref:"#/$defs/QuantityEvidenceClassV1"},test_count:{format:"uint64",minimum:0,type:["integer","null"]},token_count:{format:"uint64",minimum:0,type:["integer","null"]},wall_micros:{format:"uint64",minimum:0,type:["integer","null"]}},required:["evidence","effect_outcome","coverage"],type:"object"},$g={description:"Effect semantics admitted for one provider attempt.",enum:["observational","intercepted","compound_non_repeatable"],type:"string"},$_={description:"Declared effort class of a configured route.",enum:["minimal","standard","extended"],type:"string"},$v={enum:["deny","allowlisted"],type:"string"},$b={oneOf:[{additionalProperties:!1,properties:{cursor:{type:"string"},kind:{const:"anchor",type:"string"},link_id:{type:"string"}},required:["kind","link_id","cursor"],type:"object"},{additionalProperties:!1,properties:{continuation:{$ref:"#/$defs/WorkTaskSessionContinuationV1"},kind:{const:"task_session",type:"string"}},required:["kind","continuation"],type:"object"}]},$$={additionalProperties:!1,description:"One immutable evidence frontier. Local code/session evidence and live Git\nevidence each carry their own frontier; the evaluator never merges,\nsubstitutes, or advances one from the other.",properties:{digest:{$ref:"#/$defs/ManifestDigest"},watermark:{$ref:"#/$defs/UtcMicros"}},required:["watermark","digest"],type:"object"},$S={additionalProperties:!1,description:"Exact on-disk executable selected for one opaque executable identity.\n\nThe path is configuration data, never a lookup hint. Runtime admission\ncanonicalizes it again and verifies the file bytes against\n`executable.artifact_digest` before returning an executable binding.",properties:{canonical_path:{type:"string"},capabilities:{items:{$ref:"#/$defs/WorkExecutableCapabilityV1"},type:"array"},executable:{$ref:"#/$defs/WorkExecutableReference"},routes:{items:{$ref:"#/$defs/WorkRouteCandidateV1"},type:"array"}},required:["executable","canonical_path","capabilities","routes"],type:"object"},$k={description:"One executable capability admitted by a configured artifact binding.\n\nThe closed variants bind a provider backend to its exact wire protocol.\nCallers cannot claim an arbitrary backend/protocol combination.",enum:["claude_code_stream_json","codex_app_server_json_rpc","codex_cli_exec_json"],type:"string"},$w={additionalProperties:!1,properties:{artifact_digest:{$ref:"#/$defs/ManifestDigest"},executable_id:{type:"string"}},required:["executable_id","artifact_digest"],type:"object"},$P={additionalProperties:!1,description:"Exact immutable provider admission attached to the durable Work attempt.\n\nCallers name typed route and scope facts, never argv, environment entries,\nor executable paths. The daemon resolves the registered executable only\nafter this envelope has been persisted and admitted to the canonical queue.",properties:{attempt_identity:{$ref:"#/$defs/WorkAttemptIdentityV1"},cancellation_generation:{format:"uint64",minimum:0,type:"integer"},commit:{$ref:"#/$defs/CommitId"},effect_state:{$ref:"#/$defs/WorkEffectStateV1"},execution_snapshot:{$ref:"#/$defs/WorkExecutionSnapshot"},instructions:{description:"Exact provider instructions admitted with this attempt. The adapter\ndelivers these bytes verbatim on the provider's typed input channel;\nthey are never interpolated into argv or an ambient prompt source.",type:"string"},operation:{$ref:"#/$defs/WorkflowOperationRef"},project_id:{$ref:"#/$defs/ProjectId"},projection_binding:{$ref:"#/$defs/WorkAttemptProjectionBindingV1"},reference:{anyOf:[{$ref:"#/$defs/RefId"},{type:"null"}]},repository_id:{$ref:"#/$defs/RepositoryId"},worktree_id:{$ref:"#/$defs/WorktreeId"},worktree_root:{type:"string"}},required:["attempt_identity","projection_binding","operation","execution_snapshot","project_id","repository_id","worktree_id","worktree_root","commit","instructions","cancellation_generation","effect_state"],type:"object"},$V={additionalProperties:!1,properties:{max_concurrency:{format:"uint32",minimum:0,type:"integer"},max_input_tokens:{format:"uint64",minimum:0,type:"integer"},max_output_tokens:{format:"uint64",minimum:0,type:"integer"},max_protocol_bytes:{format:"uint64",minimum:0,type:"integer"},max_stderr_bytes:{format:"uint64",minimum:0,type:"integer"},max_stdout_bytes:{format:"uint64",minimum:0,type:"integer"}},required:["max_input_tokens","max_output_tokens","max_stdout_bytes","max_stderr_bytes","max_protocol_bytes","max_concurrency"],type:"object"},$R={additionalProperties:!1,description:"Immutable provider and topology authority pinned for exactly one Work\nexecution. Every constraint the execution is governed by is named here;\nnothing in this value is an opaque stand-in that a reader must resolve\nagainst a mutable store.",properties:{approval:{$ref:"#/$defs/WorkApprovalPolicy"},backend:{$ref:"#/$defs/WorkProviderBackendV1"},configuration_revision_id:{$ref:"#/$defs/ConfigurationRevisionId"},configuration_snapshot_id:{$ref:"#/$defs/ConfigurationSnapshotId"},credential_references:{items:{$ref:"#/$defs/CredentialReferenceId"},type:"array",uniqueItems:!0},deadline:{$ref:"#/$defs/UtcMicros"},effective_behavior_digest:{$ref:"#/$defs/ManifestDigest"},egress:{$ref:"#/$defs/WorkEgressPolicy"},environment_allowlist:{items:{type:"string"},type:"array",uniqueItems:!0},executable:{$ref:"#/$defs/WorkExecutableReference"},fallback:{$ref:"#/$defs/WorkFallbackTopology"},filesystem:{$ref:"#/$defs/WorkFilesystemPolicy"},limits:{$ref:"#/$defs/WorkExecutionLimits"},model:{type:"string"},protocol:{$ref:"#/$defs/WorkProviderProtocol"},resolution_provenance_digest:{$ref:"#/$defs/ManifestDigest"},route:{$ref:"#/$defs/WorkProviderRouteV1"},sandbox:{$ref:"#/$defs/WorkSandboxPolicy"},topology:{$ref:"#/$defs/WorkTopologyPolicyV1",description:"See [`WorkExecutionSnapshotInput::topology`]. Validated on construction,\nso an admitted snapshot can never pin a topology that weakens the\nprotected-ref floor or permits a native integration without its gates."}},required:["configuration_revision_id","configuration_snapshot_id","effective_behavior_digest","resolution_provenance_digest","route","backend","protocol","model","executable","sandbox","approval","filesystem","egress","environment_allowlist","credential_references","limits","deadline","fallback","topology"],type:"object"},$q={enum:["language","framework","architecture","testing","operations","security","domain"],type:"string"},$I={additionalProperties:!1,description:"Explicit, expiring consent for ephemeral expertise context.\n\nUser-profile and project authorization are separate registered settings;\nWork requires both and uses only their category intersection.",properties:{allowed_categories:{items:{$ref:"#/$defs/WorkExpertiseCategoryV1"},type:"array",uniqueItems:!0},enabled:{type:"boolean"},expires_at:{anyOf:[{$ref:"#/$defs/UtcMicros"},{type:"null"}]},granted_at:{anyOf:[{$ref:"#/$defs/UtcMicros"},{type:"null"}]},schema_version:{format:"uint16",maximum:65535,minimum:0,type:"integer"}},required:["schema_version","enabled","allowed_categories"],type:"object"},$x={oneOf:[{additionalProperties:!1,properties:{kind:{const:"disabled",type:"string"}},required:["kind"],type:"object"},{additionalProperties:!1,properties:{executable:{$ref:"#/$defs/WorkExecutableReference"},kind:{const:"codex_cli",type:"string"},route:{$ref:"#/$defs/WorkProviderRouteV1"}},required:["kind","route","executable"],type:"object"}]},$j={format:"uint64",minimum:0,title:"WorkFenceEpochV1",type:"integer"},$C={enum:["read_only","workspace_write"],type:"string"},$T={oneOf:[{additionalProperties:!1,properties:{item:{$ref:"#/$defs/WorkItemV1"},kind:{const:"task_added",type:"string"}},required:["kind","item"],type:"object"},{additionalProperties:!1,properties:{initiative:{$ref:"#/$defs/WorkInitiativeV1"},item:{$ref:"#/$defs/WorkItemV1"},kind:{const:"task_created",type:"string"},milestone:{$ref:"#/$defs/WorkMilestoneV1"},plan:{$ref:"#/$defs/WorkPlanV1"}},required:["kind","initiative","plan","milestone","item"],type:"object"},{additionalProperties:!1,properties:{decided_at:{$ref:"#/$defs/UtcMicros"},disposition:{$ref:"#/$defs/WorkProposalDispositionV1"},kind:{const:"relation_replan_decided",type:"string"},proposal:{$ref:"#/$defs/WorkRelationReplanProposalV1"}},required:["kind","proposal","disposition","decided_at"],type:"object"},{additionalProperties:!1,properties:{applied_at:{$ref:"#/$defs/UtcMicros"},kind:{const:"task_relations_replanned",type:"string"},proposal_id:{$ref:"#/$defs/ProposalId"}},required:["kind","proposal_id","applied_at"],type:"object"},{additionalProperties:!1,properties:{evidence:{$ref:"#/$defs/TaskEvidenceLinkV1"},kind:{const:"evidence_linked",type:"string"},task_id:{$ref:"#/$defs/TaskId"}},required:["kind","task_id","evidence"],type:"object"},{additionalProperties:!1,properties:{decided_at:{$ref:"#/$defs/UtcMicros"},disposition:{$ref:"#/$defs/WorkProposalDispositionV1"},kind:{const:"proposal_decided",type:"string"},proposal:{$ref:"#/$defs/WorkProposalV1"}},required:["kind","proposal","disposition","decided_at"],type:"object"},{additionalProperties:!1,properties:{accepted_at:{$ref:"#/$defs/UtcMicros"},kind:{const:"proposal_accepted",type:"string"},proposal:{$ref:"#/$defs/WorkProposalV1"}},required:["kind","proposal","accepted_at"],type:"object"},{additionalProperties:!1,properties:{admitted_at:{$ref:"#/$defs/UtcMicros"},based_on_version:{format:"uint64",minimum:0,type:"integer"},kind:{const:"execution_admitted",type:"string"},task_id:{$ref:"#/$defs/TaskId"}},required:["kind","task_id","based_on_version","admitted_at"],type:"object"},{additionalProperties:!1,properties:{based_on_version:{format:"uint64",minimum:0,type:"integer"},identity:{$ref:"#/$defs/WorkAttemptIdentityV1"},kind:{const:"accepted_attempt_linked",type:"string"},linked_at:{$ref:"#/$defs/UtcMicros"},task_id:{$ref:"#/$defs/TaskId"}},required:["kind","task_id","based_on_version","identity","linked_at"],type:"object"},{additionalProperties:!1,properties:{accepted_at:{$ref:"#/$defs/UtcMicros"},evidence_by_criterion:{additionalProperties:{type:"string"},type:"object"},kind:{const:"task_accepted",type:"string"},task_id:{$ref:"#/$defs/TaskId"}},required:["kind","task_id","evidence_by_criterion","accepted_at"],type:"object"},{additionalProperties:!1,properties:{handoff:{$ref:"#/$defs/WorkHandoffV1"},kind:{const:"handoff_recorded",type:"string"}},required:["kind","handoff"],type:"object"}]},$O={additionalProperties:!1,description:"One attempt on the evidence frontier: exactly which attempt, in which\nstate, backed by which sealed evidence digest (when the attempt has\nreported one). No lease or fence is part of the frontier. Those are\nruntime authority, not checkpoint evidence.",properties:{evidence_digest:{anyOf:[{$ref:"#/$defs/ManifestDigest"},{type:"null"}],description:"The digest of the sealed terminal evidence record, when the attempt\nhas one. `None` is the typed not-yet-reported state."},identity:{$ref:"#/$defs/WorkAttemptIdentityV1"},state:{$ref:"#/$defs/WorkAttemptStateV1"}},required:["identity","state"],type:"object"},$E={additionalProperties:!1,description:"The exact work/evidence frontier one handoff records.",properties:{attempts:{description:"The evidence frontier: every attempt the issuer knows about, in\nstable identity order.",items:{$ref:"#/$defs/WorkHandoffAttemptFrontierV1"},type:"array"},blockers:{description:"What is blocking progress. Bounded, non-empty entries.",items:{type:"string"},type:"array"},legal_actions:{description:"The actions the issuer believes are legal next steps.",items:{type:"string"},type:"array"},lineage:{$ref:"#/$defs/WorkHandoffLineageV1"},task_id:{$ref:"#/$defs/TaskId"},unknowns:{description:"What the issuer does not know yet. Bounded, non-empty entries.",items:{type:"string"},type:"array"},work_version:{description:"The exact Work version the frontier was cut at.",format:"uint64",minimum:0,type:"integer"}},required:["task_id","work_version","attempts","unknowns","blockers","legal_actions","lineage"],type:"object"},$A={additionalProperties:!1,description:"Who issued this frontier and what it supersedes.",properties:{issued_at:{$ref:"#/$defs/UtcMicros"},issued_by:{$ref:"#/$defs/ActorId"},prior_frontier_digest:{anyOf:[{$ref:"#/$defs/ManifestDigest"},{type:"null"}],description:"The canonical digest of the frontier this one supersedes, when the\ntask has been handed off before. `None` states a first handoff."}},required:["issued_by","issued_at"],type:"object"},$W={additionalProperties:!1,properties:{evidence_frontier:{items:{type:"string"},type:"array",uniqueItems:!0},from_actor:{$ref:"#/$defs/ActorId"},handed_off_at:{$ref:"#/$defs/UtcMicros"},handoff_id:{type:"string"},task_id:{$ref:"#/$defs/TaskId"},to_actor:{$ref:"#/$defs/ActorId"},unknowns:{items:{type:"string"},type:"array",uniqueItems:!0}},required:["handoff_id","task_id","from_actor","to_actor","evidence_frontier","unknowns","handed_off_at"],type:"object"},$M={additionalProperties:!1,properties:{initiative_id:{type:"string"},milestone_id:{type:"string"},plan_id:{type:"string"}},required:["initiative_id","plan_id","milestone_id"],type:"object"},$N={additionalProperties:!1,properties:{created_at:{$ref:"#/$defs/UtcMicros"},id:{type:"string"},title:{type:"string"}},required:["id","title","created_at"],type:"object"},$z={additionalProperties:!1,properties:{acceptance_criteria:{items:{$ref:"#/$defs/WorkAcceptanceCriterionV1"},type:"array"},causal_candidates:{items:{$ref:"#/$defs/TaskId"},type:"array",uniqueItems:!0},created_at:{$ref:"#/$defs/UtcMicros"},deadline:{anyOf:[{$ref:"#/$defs/UtcMicros"},{type:"null"}]},dependencies:{items:{$ref:"#/$defs/TaskId"},type:"array",uniqueItems:!0},effort:{format:"uint32",minimum:0,type:"integer"},hierarchy:{$ref:"#/$defs/WorkHierarchyV1"},informational_relations:{items:{$ref:"#/$defs/TaskId"},type:"array",uniqueItems:!0},scheduled_at:{anyOf:[{$ref:"#/$defs/UtcMicros"},{type:"null"}]},task_id:{$ref:"#/$defs/TaskId"},title:{type:"string"},updated_at:{$ref:"#/$defs/UtcMicros"}},required:["task_id","hierarchy","title","dependencies","informational_relations","causal_candidates","acceptance_criteria","effort","created_at","updated_at"],type:"object"},$D={additionalProperties:!1,properties:{accepted_at:{anyOf:[{$ref:"#/$defs/UtcMicros"},{type:"null"}]},accepted_attempts:{items:{$ref:"#/$defs/WorkAttemptIdentityV1"},type:"array"},accepted_criteria:{additionalProperties:{type:"string"},type:"object"},accepted_proposal:{anyOf:[{$ref:"#/$defs/ProposalId"},{type:"null"}]},accepted_route:{anyOf:[{$ref:"#/$defs/WorkRouteDecisionV1"},{type:"null"}]},archived_at:{anyOf:[{$ref:"#/$defs/UtcMicros"},{type:"null"}]},evidence_links:{items:{type:"string"},type:"array",uniqueItems:!0},execution_admitted_at:{anyOf:[{$ref:"#/$defs/UtcMicros"},{type:"null"}]},handoffs:{items:{$ref:"#/$defs/WorkHandoffV1"},type:"array"},input:{$ref:"#/$defs/WorkItemInputV1"}},required:["input","evidence_links","accepted_criteria","accepted_attempts","handoffs"],type:"object"},$F={description:"A job task key: `[a-z0-9-]`, 1 to 48 bytes. Identities derive from it.",type:"string"},$L={additionalProperties:!1,properties:{epoch:{$ref:"#/$defs/WorkFenceEpochV1"},lease_id:{$ref:"#/$defs/WorkLeaseId"}},required:["lease_id","epoch"],type:"object"},$U={description:"Strongly typed canonical identity: `WorkLeaseId`.",type:"string"},$H={additionalProperties:!1,properties:{created_at:{$ref:"#/$defs/UtcMicros"},id:{type:"string"},plan_id:{type:"string"},title:{type:"string"}},required:["id","plan_id","title","created_at"],type:"object"},$G={description:"Ordinal band. Never a probability, never a scalar score.\n\nBands are ordered `Lowest` .. `Highest`. Comparison is the only operation\nconsumers perform over them, so no weighted sum can be reconstructed from\na recorded decision.",enum:["lowest","low","moderate","high","highest"],type:"string"},$B={description:"Closed set of conditions that block admission or removal.",oneOf:[{const:"dirty_tracked_files",description:"Tracked files differ from the index or HEAD.",type:"string"},{const:"untracked_data",description:"Untracked data is present in the target.",type:"string"},{const:"unique_commits",description:"The target holds commits reachable from nowhere else.",type:"string"},{const:"active_holder",description:"Another admitted placement holds this target.",type:"string"},{const:"unresolved_effect",description:"An effect against this placement is unresolved.",type:"string"},{const:"unacknowledged_receipt",description:"A receipt produced against this placement is unacknowledged.",type:"string"},{const:"uncertain_pull_request",description:"A pull request produced from this placement is in an uncertain state.",type:"string"},{const:"shared_ref",description:"A ref in this target is shared with another holder.",type:"string"},{const:"missing_anchor",description:"A retrieval or evidence anchor this placement referenced is missing.",type:"string"},{const:"stale_scope",description:"The authorized scope no longer matches the placement.",type:"string"},{const:"authorization_lost",description:"Authorization for this placement was lost.",type:"string"},{const:"target_unreadable",description:"The target could not be read, so its state is unknown.",type:"string"},{const:"network_required",description:"The placement declared itself network-free but the action needs network.",type:"string"}],title:"WorkPlacementBlockerV1"},$K={additionalProperties:!1,description:"Which run a placement belongs to. Placement never redefines TaskId.",properties:{run_id:{$ref:"#/$defs/RunId"},task_id:{$ref:"#/$defs/TaskId"}},required:["task_id","run_id"],title:"WorkPlacementIdentityV1",type:"object"},$J={description:"The supported placement choices, and only those.",oneOf:[{const:"no_managed_placement",description:"TraceDecay manages no checkout for this run. No-Git work is first class.",type:"string"},{const:"clean_in_place",description:"The caller's own strictly clean checkout, explicitly acknowledged.",type:"string"},{const:"linked_worktree",description:"A linked worktree of the same repository.",type:"string"},{const:"isolated_clone",description:"An isolated local clone.",type:"string"}],title:"WorkPlacementKindV1"},$Z={description:"The durable state of one admitted placement.",oneOf:[{const:"admitted",description:"The placement holds its target.",type:"string"},{const:"released",description:"The placement gave its target up cleanly. Nothing was deleted by this\ntransition; removal is a separate cleanup preflight.",type:"string"},{const:"quarantined",description:"The placement was retained because removal is blocked.",type:"string"}],title:"WorkPlacementStateV1"},$Q={additionalProperties:!1,description:"The exact placement a caller asked for.",properties:{in_place_acknowledged:{description:"Set only for `CleanInPlace`: the caller states it accepts running in\nits own checkout. Acknowledgement is explicit, never inferred.",type:"boolean"},kind:{$ref:"#/$defs/WorkPlacementKindV1"},network_free:{description:"The placement declares it needs no network. Declared, not detected.",type:"boolean"},root:{description:"Absolute root, present exactly when the kind manages one.",type:["string","null"]}},required:["kind","in_place_acknowledged","network_free"],title:"WorkPlacementTargetV1",type:"object"},$X={additionalProperties:!1,description:"One run's durable placement relation.",properties:{authority_version:{format:"uint64",minimum:0,type:"integer"},blockers:{items:{$ref:"#/$defs/WorkPlacementBlockerV1"},type:"array",uniqueItems:!0},identity:{$ref:"#/$defs/WorkPlacementIdentityV1"},retention_eligible_at:{anyOf:[{$ref:"#/$defs/UtcMicros"},{type:"null"}],description:"When retention makes this placement *eligible* for a fresh cleanup\npreflight. Eligibility is not delete authority."},state:{$ref:"#/$defs/WorkPlacementStateV1"},target:{$ref:"#/$defs/WorkPlacementTargetV1"},transitioned_at:{$ref:"#/$defs/UtcMicros"}},required:["identity","target","state","authority_version","transitioned_at","blockers"],title:"WorkPlacementV1",type:"object"},$Y={additionalProperties:!1,properties:{created_at:{$ref:"#/$defs/UtcMicros"},id:{type:"string"},initiative_id:{type:"string"},title:{type:"string"}},required:["id","initiative_id","title","created_at"],type:"object"},$1={oneOf:[{additionalProperties:!1,properties:{kind:{const:"project",type:"string"},project_id:{$ref:"#/$defs/ProjectId"}},required:["kind","project_id"],type:"object"},{additionalProperties:!1,properties:{kind:{const:"repository",type:"string"},project_id:{$ref:"#/$defs/ProjectId"},repository_id:{$ref:"#/$defs/RepositoryId"}},required:["kind","project_id","repository_id"],type:"object"}]},$0={additionalProperties:!1,properties:{anchor_id:{$ref:"#/$defs/RetrievalAnchorId"},evidence_digest:{$ref:"#/$defs/ManifestDigest"},source_store_id:{$ref:"#/$defs/SourceStoreId"}},required:["source_store_id","anchor_id","evidence_digest"],type:"object"},$2={oneOf:[{additionalProperties:!1,properties:{graph:{$ref:"#/$defs/WorkProductGraphV1"},kind:{const:"created",type:"string"}},required:["kind","graph"],type:"object"},{additionalProperties:!1,properties:{change:{$ref:"#/$defs/WorkGraphChangeV1"},kind:{const:"changed",type:"string"}},required:["kind","change"],type:"object"}]},$4={additionalProperties:!1,properties:{actor_id:{$ref:"#/$defs/ActorId"},authorized_relation_scopes:{items:{$ref:"#/$defs/WorkProductAuthorizedRelationScopeV1"},type:"array"},canonical_input_digest:{$ref:"#/$defs/ManifestDigest"},catalog_generation_id:{$ref:"#/$defs/CatalogGenerationId"},causation_event_id:{type:["string","null"]},command_id:{$ref:"#/$defs/WorkCommandId"},configuration_revision_id:{$ref:"#/$defs/ConfigurationRevisionId"},event_id:{type:"string"},evidence:{items:{$ref:"#/$defs/WorkProductEventEvidenceV1"},type:"array"},expected_graph_version:{format:"uint64",minimum:0,type:["integer","null"]},occurred_at:{$ref:"#/$defs/UtcMicros"},owner_scope:{$ref:"#/$defs/WorkProductProfileScopeV1"},payload:{$ref:"#/$defs/WorkProductEventPayloadV1"},policy_revision_id:{type:"string"},result_graph_version:{format:"uint64",minimum:0,type:"integer"},sequence:{format:"uint64",minimum:0,type:"integer"},source_watermark:{additionalProperties:{format:"uint64",minimum:0,type:"integer"},type:"object"}},required:["event_id","sequence","actor_id","owner_scope","authorized_relation_scopes","result_graph_version","command_id","canonical_input_digest","evidence","source_watermark","occurred_at","policy_revision_id","configuration_revision_id","catalog_generation_id","payload"],type:"object"},$6={oneOf:[{additionalProperties:!1,properties:{authority:{const:"no_prior_graph",type:"string"}},required:["authority"],type:"object"},{additionalProperties:!1,properties:{authority:{const:"verified",type:"string"},verified_version:{$ref:"#/$defs/VerifiedWorkGraphVersionV1"}},required:["authority","verified_version"],type:"object"}]},$3={additionalProperties:!1,properties:{evidence:{items:{$ref:"#/$defs/TaskEvidenceLinkV1"},type:"array"},initiatives:{items:{$ref:"#/$defs/WorkInitiativeV1"},type:"array"},items:{items:{$ref:"#/$defs/WorkItemV1"},type:"array"},milestones:{items:{$ref:"#/$defs/WorkMilestoneV1"},type:"array"},plans:{items:{$ref:"#/$defs/WorkPlanV1"},type:"array"},proposal_decisions:{items:{$ref:"#/$defs/WorkProposalDecisionV1"},type:"array"},relation_replan_decisions:{items:{$ref:"#/$defs/WorkRelationReplanDecisionV1"},type:"array"},version:{format:"uint64",minimum:0,type:"integer"}},required:["version","initiatives","plans","milestones","items","proposal_decisions","relation_replan_decisions","evidence"],type:"object"},$9={additionalProperties:!1,properties:{causation_event_id:{type:["string","null"]},command_id:{$ref:"#/$defs/WorkCommandId"},evidence:{items:{$ref:"#/$defs/WorkProductEventEvidenceV1"},type:"array"},expected_authority:{$ref:"#/$defs/WorkProductExpectedAuthorityV1"},occurred_at:{$ref:"#/$defs/UtcMicros"},revisions:{$ref:"#/$defs/WorkProductRevisionPinsV1"}},required:["expected_authority","command_id","evidence","occurred_at","revisions"],type:"object"},$5={additionalProperties:!1,properties:{event:{$ref:"#/$defs/WorkProductEventV1"},replayed:{type:"boolean"},verified_graph_version:{$ref:"#/$defs/VerifiedWorkGraphVersionV1"}},required:["event","verified_graph_version","replayed"],type:"object"},$8={additionalProperties:!1,properties:{brain_id:{$ref:"#/$defs/BrainId"},profile_id:{$ref:"#/$defs/UserProfileId"}},required:["brain_id","profile_id"],type:"object"},$7={oneOf:[{properties:{initiative_id:{type:"string"},kind:{const:"initiative_contains_plan",type:"string"},plan_id:{type:"string"}},required:["kind","initiative_id","plan_id"],type:"object"},{properties:{kind:{const:"plan_contains_milestone",type:"string"},milestone_id:{type:"string"},plan_id:{type:"string"}},required:["kind","plan_id","milestone_id"],type:"object"},{properties:{kind:{const:"milestone_contains_task",type:"string"},milestone_id:{type:"string"},task_id:{$ref:"#/$defs/TaskId"}},required:["kind","milestone_id","task_id"],type:"object"},{properties:{dependency:{$ref:"#/$defs/TaskId"},dependent:{$ref:"#/$defs/TaskId"},kind:{const:"gates",type:"string"}},required:["kind","dependency","dependent"],type:"object"},{properties:{kind:{const:"informational",type:"string"},source:{$ref:"#/$defs/TaskId"},target:{$ref:"#/$defs/TaskId"}},required:["kind","source","target"],type:"object"},{properties:{cause:{$ref:"#/$defs/TaskId"},effect:{$ref:"#/$defs/TaskId"},kind:{const:"causal_candidate",type:"string"}},required:["kind","cause","effect"],type:"object"},{properties:{kind:{const:"evidence",type:"string"},link_id:{type:"string"},task_id:{$ref:"#/$defs/TaskId"}},required:["kind","task_id","link_id"],type:"object"},{properties:{identity:{$ref:"#/$defs/WorkAttemptIdentityV1"},kind:{const:"accepted_attempt",type:"string"},task_id:{$ref:"#/$defs/TaskId"}},required:["kind","task_id","identity"],type:"object"},{properties:{handoff_id:{type:"string"},kind:{const:"handoff",type:"string"},task_id:{$ref:"#/$defs/TaskId"}},required:["kind","task_id","handoff_id"],type:"object"},{properties:{kind:{const:"proposal_decision",type:"string"},proposal_id:{$ref:"#/$defs/ProposalId"},task_id:{$ref:"#/$defs/TaskId"}},required:["kind","task_id","proposal_id"],type:"object"}]},Se={additionalProperties:!1,properties:{catalog_generation_id:{$ref:"#/$defs/CatalogGenerationId"},configuration_revision_id:{$ref:"#/$defs/ConfigurationRevisionId"},policy_revision_id:{type:"string"}},required:["policy_revision_id","configuration_revision_id","catalog_generation_id"],type:"object"},St={description:"The exact owner-relative relation set selected for a canonical Work graph.\n\nThis identity lives in the domain because attempt admission must retain\nit byte-for-byte through provider settlement. Reconstructing it from a\nproject context would conflate explicit no-Git work with a scoped\nrepository relation.",oneOf:[{properties:{selection:{const:"profile_owned_no_git",type:"string"}},required:["selection"],type:"object"},{properties:{relation_scopes:{items:{$ref:"#/$defs/WorkProductAuthorizedRelationScopeV1"},type:"array",uniqueItems:!0},selection:{const:"relations",type:"string"}},required:["selection","relation_scopes"],type:"object"}]},Sr={additionalProperties:!1,properties:{decided_at:{$ref:"#/$defs/UtcMicros"},disposition:{$ref:"#/$defs/WorkProposalDispositionV1"},proposal:{$ref:"#/$defs/WorkProposalV1"}},required:["proposal","disposition","decided_at"],type:"object"},Si={enum:["accepted","rejected","superseded"],type:"string"},So={additionalProperties:!1,properties:{based_on_version:{format:"uint64",minimum:0,type:"integer"},children:{items:{$ref:"#/$defs/WorkProposedChildV1"},type:"array"},configuration_digest:{$ref:"#/$defs/ManifestDigest"},evidence_digest:{$ref:"#/$defs/ManifestDigest"},explanation:{type:"string"},proposal_id:{$ref:"#/$defs/ProposalId"},route:{$ref:"#/$defs/WorkRouteDecisionV1"},shape:{$ref:"#/$defs/WorkShapeAssessmentV1"},sizing:{$ref:"#/$defs/WorkSizingV1"},task_id:{$ref:"#/$defs/TaskId"}},required:["proposal_id","task_id","based_on_version","shape","sizing","children","route","explanation","evidence_digest","configuration_digest"],type:"object"},Sn={additionalProperties:!1,properties:{dependencies:{items:{$ref:"#/$defs/TaskId"},type:"array",uniqueItems:!0},effort:{format:"uint32",minimum:0,type:"integer"},task_id:{$ref:"#/$defs/TaskId"},title:{type:"string"}},required:["task_id","title","effort","dependencies"],type:"object"},Sa={description:"Typed provider availability observed at negotiation. These are product\nstates, not transport errors: each one names why the configured native\nprovider could not run, without inventing a fallback.",oneOf:[{const:"absent",description:"No executable binding is configured for the pinned executable identity.",type:"string"},{const:"stale",description:"The configured binding no longer matches the pinned reference.",type:"string"},{const:"unsupported",description:"The configured binding does not admit the pinned backend/protocol.",type:"string"},{const:"digest_mismatch",description:"The on-disk executable bytes do not match the pinned digest.",type:"string"},{const:"unavailable",description:"The configured executable could not be read or is not executable.",type:"string"}]},Ss={description:"Provider protocol selected by the pinned Work configuration snapshot.",enum:["claude_code_cli","codex_app_server","codex_cli"],type:"string"},Sd={additionalProperties:!1,description:'Why an admitted attempt did not run on the backend its pinned execution\nsnapshot preferred.\n\nPlan 32 (`docs/plans/tracedecay-v2/32-dynamic-workflow-runtime-and-sdk.md`,\n"Native provider execution") admits the Codex CLI "only when app-server is\nunsupported or absent before session start and the pinned Plan 20 snapshot\nexplicitly allows that fallback", and the plan index requires that fallback\nto be "reported rather than hidden". This record is that report: it names\nthe preferred backend, the typed state that disqualified it, and the\nconfiguration-bounded fallback that was selected, so a fallback run can\nnever be read as a first choice.\n\nIt is also written when the fallback itself was refused, so a denial keeps\nboth failures instead of collapsing them into one state.',properties:{fallback_backend:{$ref:"#/$defs/WorkProviderBackendV1",description:"The backend named by the snapshot's configured fallback topology."},fallback_route:{$ref:"#/$defs/WorkProviderRouteV1",description:"The route that fallback runs on."},fallback_state:{anyOf:[{$ref:"#/$defs/WorkProviderAvailabilityV1"},{type:"null"}],description:"`None` when the fallback actually started; `Some(state)` when the\nfallback was itself refused."},preferred_backend:{$ref:"#/$defs/WorkProviderBackendV1",description:"The backend the pinned snapshot named first."},preferred_route:{$ref:"#/$defs/WorkProviderRouteV1",description:"The route that backend would have run on."},preferred_state:{$ref:"#/$defs/WorkProviderAvailabilityV1",description:"Why the preferred backend could not be used."}},required:["preferred_backend","preferred_route","preferred_state","fallback_backend","fallback_route"],type:"object"},Sc={enum:["claude_stream_json","codex_app_server_json_rpc","codex_exec_json"],type:"string"},Sl={description:"Strongly typed canonical identity: `WorkProviderRouteId`.",type:"string"},Sp={additionalProperties:!1,properties:{provider_id:{$ref:"#/$defs/ProviderId"},route_id:{$ref:"#/$defs/WorkProviderRouteId"}},required:["provider_id","route_id"],type:"object"},Su={oneOf:[{properties:{state:{const:"fresh",type:"string"}},required:["state"],type:"object"},{properties:{checkpoint:{anyOf:[{$ref:"#/$defs/WorkArtifactRefV1"},{type:"null"}]},source_attempt_id:{$ref:"#/$defs/AttemptId"},state:{const:"resumed",type:"string"}},required:["state","source_attempt_id"],type:"object"},{properties:{reason:{$ref:"#/$defs/WorkRestartReasonV1"},source_attempt_id:{$ref:"#/$defs/AttemptId"},state:{const:"restarted",type:"string"}},required:["state","source_attempt_id","reason"],type:"object"},{description:"The attempt cannot continue and must be recovered. A first attempt\nlost before it ever resumed anything has no predecessor, so the source\nis absent rather than pointing at the attempt itself.",properties:{observed_at:{$ref:"#/$defs/UtcMicros"},reason:{$ref:"#/$defs/WorkRestartReasonV1"},source_attempt_id:{anyOf:[{$ref:"#/$defs/AttemptId"},{type:"null"}],default:null},state:{const:"recovery_required",type:"string"}},required:["state","reason","observed_at"],type:"object"}]},Sm={additionalProperties:!1,properties:{decided_at:{$ref:"#/$defs/UtcMicros"},disposition:{$ref:"#/$defs/WorkProposalDispositionV1"},proposal:{$ref:"#/$defs/WorkRelationReplanProposalV1"}},required:["proposal","disposition","decided_at"],type:"object"},Sf={additionalProperties:!1,properties:{based_on_version:{format:"uint64",minimum:0,type:"integer"},causal_candidates:{items:{$ref:"#/$defs/TaskId"},type:"array",uniqueItems:!0},dependencies:{items:{$ref:"#/$defs/TaskId"},type:"array",uniqueItems:!0},informational_relations:{items:{$ref:"#/$defs/TaskId"},type:"array",uniqueItems:!0},payload_digest:{$ref:"#/$defs/ManifestDigest"},proposal_id:{$ref:"#/$defs/ProposalId"},task_id:{$ref:"#/$defs/TaskId"}},required:["proposal_id","task_id","based_on_version","dependencies","informational_relations","causal_candidates","payload_digest"],type:"object"},Sh={enum:["lease_lost","provider_unavailable","process_lost","failure_observed"],type:"string"},Sy={enum:["runtime_failure","restart_recovery_required"],type:"string"},Sg={additionalProperties:!1,description:"A selector into the owning runtime-terminal evidence authority.\n\n`evidence_ref` is an opaque local reference. The Work retry owner resolves\nit through [`WorkRetryEvidencePortV1`]; callers never submit the evidence\ndigest, outcome, or observation time that decides eligibility.",properties:{cause:{$ref:"#/$defs/WorkRetryCauseV1"},evidence_ref:{type:"string"},source:{$ref:"#/$defs/WorkRetrySourceV1"}},required:["source","cause","evidence_ref"],type:"object"},S_={enum:["runtime"],type:"string"},Sv={additionalProperties:!1,description:"One eligible route supplied by the authorized configuration snapshot.\n\nThe application filters these candidates by the current request grant and\nverifies the exact pinned executable before policy evaluates them.",properties:{autonomy:{$ref:"#/$defs/WorkOrdinalBandV1"},content_location:{$ref:"#/$defs/WorkContentLocationClassV1"},correctness:{$ref:"#/$defs/WorkOrdinalBandV1"},cost:{$ref:"#/$defs/WorkOrdinalBandV1"},declared_budget_ceiling:{format:"uint64",minimum:0,type:"integer"},effort:{$ref:"#/$defs/WorkEffortClassV1"},evidence_quality:{$ref:"#/$defs/WorkOrdinalBandV1"},execution:{$ref:"#/$defs/WorkRouteExecutionProfileV1"},latency:{$ref:"#/$defs/WorkOrdinalBandV1"},model_id:{type:"string"},provider_capability_id:{type:"string"},route_id:{type:"string"},sensitive_data_fitness:{$ref:"#/$defs/WorkOrdinalBandV1"}},required:["route_id","provider_capability_id","model_id","effort","declared_budget_ceiling","content_location","correctness","sensitive_data_fitness","latency","cost","autonomy","evidence_quality","execution"],type:"object"},Sb={oneOf:[{properties:{alternatives:{items:{$ref:"#/$defs/WorkProviderRouteV1"},type:"array"},decision:{const:"selected",type:"string"},exclusions:{items:{type:"string"},type:"array",uniqueItems:!0},fallback:{type:"string"},recommended:{$ref:"#/$defs/WorkProviderRouteV1"}},required:["decision","recommended","alternatives","exclusions","fallback"],type:"object"},{properties:{decision:{const:"abstained",type:"string"},reason:{type:"string"}},required:["decision","reason"],type:"object"}]},S$={additionalProperties:!1,description:"Complete execution constraints configured for one provider route.\n\nThe route candidate is the configuration authority for these values. Work\nadmission copies them into the immutable execution snapshot; provider\nadapters never supply defaults.",properties:{approval:{$ref:"#/$defs/WorkApprovalPolicy"},credential_references:{items:{$ref:"#/$defs/CredentialReferenceId"},type:"array",uniqueItems:!0},egress:{$ref:"#/$defs/WorkEgressPolicy"},environment_allowlist:{items:{type:"string"},type:"array",uniqueItems:!0},fallback:{$ref:"#/$defs/WorkFallbackTopology"},filesystem:{$ref:"#/$defs/WorkFilesystemPolicy"},limits:{$ref:"#/$defs/WorkExecutionLimits"},maximum_duration_micros:{description:"Maximum elapsed time from execution admission to provider completion.",format:"uint64",minimum:0,type:"integer"},sandbox:{$ref:"#/$defs/WorkSandboxPolicy"}},required:["sandbox","approval","filesystem","egress","environment_allowlist","credential_references","limits","maximum_duration_micros","fallback"],type:"object"},SS={description:"A monotonically versioned control authority.",format:"uint64",minimum:0,title:"WorkRunControlAuthorityV1",type:"integer"},Sk={description:"Why a run was paused or resumed. A closed vocabulary keeps the reason out\nof free text so it can be read by a projection without being a prompt.",oneOf:[{const:"operator_request",description:"An authorized operator asked for the transition.",type:"string"},{const:"human_wait",description:"The run is waiting on a human approval or answer.",type:"string"},{const:"budget_exhausted",description:"The shared budget ledger is exhausted for now.",type:"string"},{const:"recovery",description:"Recovery or failover is reconciling the run.",type:"string"}],title:"WorkRunControlReasonV1"},Sw={description:'The published control state of one run.\n\nThere is no `Cancelled` here: cancellation is an attempt-level authority\nowned through the lease fence, and duplicating it as a run state would\ncreate a second place a run could be "over".',oneOf:[{const:"running",description:"New reservations are admitted.",type:"string"},{const:"paused",description:"New reservations are fenced; committed evidence is preserved.",type:"string"}],title:"WorkRunControlStateV1"},SP={additionalProperties:!1,description:"The run's deadline as of the last control transition.\n\n`remaining_micros` is the authority; `deadline` is the absolute instant that\nremaining resolves to while the run is running. Both are recorded so a\nreader never has to recompute one from a clock it does not trust.",properties:{checkpoint_at:{$ref:"#/$defs/UtcMicros",description:"The instant the checkpoint was taken."},deadline:{$ref:"#/$defs/UtcMicros",description:"The absolute deadline the run is measured against right now."},remaining_micros:{description:"Micros left against that deadline at `checkpoint_at`. Never negative,\nand never larger than the value the previous checkpoint carried.",format:"int64",type:"integer"}},required:["deadline","remaining_micros","checkpoint_at"],title:"WorkRunDeadlineCheckpointV1",type:"object"},SV={enum:["required"],type:"string"},SR={enum:["ordinal","heuristic","calibrated_range"],type:"string"},Sq={additionalProperties:!1,properties:{ambiguity:{format:"uint8",maximum:255,minimum:0,type:"integer"},blast_radius:{format:"uint8",maximum:255,minimum:0,type:"integer"},complexity:{format:"uint8",maximum:255,minimum:0,type:"integer"},integration_overhead:{format:"uint8",maximum:255,minimum:0,type:"integer"},score_kind:{$ref:"#/$defs/WorkScoreKindV1"}},required:["score_kind","complexity","ambiguity","blast_radius","integration_overhead"],type:"object"},SI={additionalProperties:!1,properties:{coverage:{type:"string"},high:{format:"uint32",minimum:0,type:"integer"},likely:{format:"uint32",minimum:0,type:"integer"},low:{format:"uint32",minimum:0,type:"integer"},score_kind:{$ref:"#/$defs/WorkScoreKindV1"}},required:["score_kind","low","likely","high","coverage"],type:"object"},Sx={additionalProperties:!1,description:"Succeeded sources grouped by the exact artifact digest list they produced.\nGroups are ordered largest first; smaller groups are the minority\nevidence, and more than one group is the disagreement, preserved as\nstructure instead of being resolved by fiat.",properties:{artifacts:{description:"The artifact digest list every source in this group produced.",items:{$ref:"#/$defs/ManifestDigest"},type:"array"},sources:{description:"The concurring sources, in the caller's requested order.",items:{$ref:"#/$defs/WorkAttemptIdentityV1"},type:"array"}},required:["artifacts","sources"],type:"object"},Sj={description:"Why a synthesis request was answered with the unsynthesized set instead\nof an admitted attempt.",oneOf:[{const:"no_citable_sources",description:"No source contributed a citable artifact: every source failed, was\ncancelled, timed out, is still unknown, or succeeded without\ndeclaring artifacts. There is nothing a synthesis could truthfully\ncite.",type:"string"}]},SC={additionalProperties:!1,description:"One immutable source envelope: which attempt, and what it truthfully\ncontributed at admission time.",properties:{outcome:{$ref:"#/$defs/WorkSynthesisSourceOutcomeV1"},source:{$ref:"#/$defs/WorkAttemptIdentityV1"}},required:["source","outcome"],type:"object"},ST={description:"One sibling attempt's terminal contribution, captured verbatim from the\nWork authority at admission time.",oneOf:[{description:"The source succeeded; its declared artifact digests, in declaration\norder, are the evidence a synthesis may cite.",properties:{artifacts:{items:{$ref:"#/$defs/ManifestDigest"},type:"array"},outcome:{const:"succeeded",type:"string"}},required:["outcome","artifacts"],type:"object"},{description:"The source failed; its sealed terminal evidence digest is preserved\nso the failure stays visible in the synthesis record.",properties:{evidence:{$ref:"#/$defs/ManifestDigest"},outcome:{const:"failed",type:"string"}},required:["outcome","evidence"],type:"object"},{description:"The source timed out; preserved like a failure.",properties:{evidence:{$ref:"#/$defs/ManifestDigest"},outcome:{const:"timed_out",type:"string"}},required:["outcome","evidence"],type:"object"},{description:"The source was cancelled; preserved like a failure.",properties:{evidence:{$ref:"#/$defs/ManifestDigest"},outcome:{const:"cancelled",type:"string"}},required:["outcome","evidence"],type:"object"},{description:"The source has not reached a terminal state. The unknown is preserved\nas an unknown; it contributes no citable evidence and is never\nguessed at.",properties:{outcome:{const:"unknown",type:"string"},state:{$ref:"#/$defs/WorkAttemptStateV1"}},required:["outcome","state"],type:"object"}]},SO={additionalProperties:!1,description:"The ordered, digest-sealed source envelope set a synthesis admission\nconsumed. Reordering or mutating any envelope changes the digest, so a\nreplayed or tampered set is distinguishable from the admitted one.",properties:{set_digest:{$ref:"#/$defs/ManifestDigest",description:"Canonical digest over the ordered envelopes."},sources:{description:"The envelopes, exactly in the caller's requested order.",items:{$ref:"#/$defs/WorkSynthesisSourceEnvelopeV1"},type:"array"}},required:["sources","set_digest"],type:"object"},SE={additionalProperties:!1,properties:{attempt:{$ref:"#/$defs/WorkAttemptIdentityV1"},binding:{description:"Binds the continuation to the retrieve-evidence operation and the\nresult-shaping request fields the envelope does not echo.",type:"string"},participant_epoch:{$ref:"#/$defs/ManifestDigest"},ranking_cursor:{type:["string","null"]},source:{$ref:"#/$defs/ObservationSourceIdentityV1"},temporal_cursor:{type:["string","null"]},verified_version:{$ref:"#/$defs/VerifiedWorkGraphVersionV1"}},required:["verified_version","attempt","source","participant_epoch","binding"],type:"object"},SA={oneOf:[{properties:{evidence_digest:{$ref:"#/$defs/ManifestDigest"},observed_at:{$ref:"#/$defs/UtcMicros"},outcome:{const:"succeeded",type:"string"}},required:["outcome","evidence_digest","observed_at"],type:"object"},{properties:{evidence_digest:{$ref:"#/$defs/ManifestDigest"},observed_at:{$ref:"#/$defs/UtcMicros"},outcome:{const:"failed",type:"string"}},required:["outcome","evidence_digest","observed_at"],type:"object"},{properties:{evidence_digest:{$ref:"#/$defs/ManifestDigest"},observed_at:{$ref:"#/$defs/UtcMicros"},outcome:{const:"timed_out",type:"string"}},required:["outcome","evidence_digest","observed_at"],type:"object"},{properties:{evidence_digest:{$ref:"#/$defs/ManifestDigest"},observed_at:{$ref:"#/$defs/UtcMicros"},outcome:{const:"cancelled",type:"string"}},required:["outcome","evidence_digest","observed_at"],type:"object"}]},SW={description:"Strongly typed algorithm-tagged integrity digest: `WorkTopologyGenerationRefV1`.",type:"string"},SM={additionalProperties:!1,description:"Complete V1 policy. Partial values are intentionally impossible: callers\nmust provide the entire policy and validation rejects adapter-local defaults.",properties:{branch_naming:{$ref:"#/$defs/BranchNamingPolicyV1"},branch_topology:{$ref:"#/$defs/BranchTopologyPolicyV1"},concurrency:{$ref:"#/$defs/TopologyConcurrencyPolicyV1"},cross_merge:{$ref:"#/$defs/CrossMergePolicyV1"},escalation:{$ref:"#/$defs/TopologyEscalationPolicyV1"},gates:{$ref:"#/$defs/TopologyGatePolicyV1"},history_rewrite:{$ref:"#/$defs/HistoryRewritePolicyV1"},notifications:{$ref:"#/$defs/TopologyNotificationLevelV1"},placement:{$ref:"#/$defs/WorktreePlacementModeV1"},protected_refs:{items:{$ref:"#/$defs/ProtectedRefRuleV1"},type:"array"},retention:{$ref:"#/$defs/WorktreeRetentionPolicyV1"},review_topology:{$ref:"#/$defs/ReviewTopologyPolicyV1"},roots:{items:{$ref:"#/$defs/WorktreeRootPolicyV1"},type:"array"},schema_version:{format:"uint16",maximum:65535,minimum:0,type:"integer"}},required:["schema_version","placement","roots","branch_topology","review_topology","branch_naming","concurrency","cross_merge","gates","protected_refs","history_rewrite","escalation","retention","notifications"],type:"object"},SN={additionalProperties:!1,properties:{definition_id:{$ref:"#/$defs/WorkflowDefinitionId"},definition_version:{format:"uint64",minimum:0,type:"integer"},pinned_catalog_digest:{$ref:"#/$defs/ManifestDigest",description:"Must equal the live Work executable catalog digest. Validation and\nactivation report the current digest when this pin is stale."},pinned_configuration_digest:{$ref:"#/$defs/ManifestDigest"},pinned_policy_digest:{$ref:"#/$defs/ManifestDigest"},project_id:{$ref:"#/$defs/ProjectId"},steps:{items:{$ref:"#/$defs/WorkflowStep"},type:"array"}},required:["definition_id","definition_version","project_id","steps","pinned_policy_digest","pinned_configuration_digest","pinned_catalog_digest"],type:"object"},Sz={description:"Strongly typed canonical identity: `WorkflowDefinitionId`.",type:"string"},SD={additionalProperties:!1,properties:{max_width:{format:"uint32",minimum:0,type:"integer"}},required:["max_width"],type:"object"},SF={description:"Strongly typed canonical identity: `WorkflowOperationRef`.",type:"string"},SL={description:"Strongly typed canonical identity: `WorkflowOutputName`.",type:"string"},SU={additionalProperties:!1,properties:{output_name:{$ref:"#/$defs/WorkflowOutputName"},producer_step_id:{$ref:"#/$defs/WorkflowStepId"}},required:["producer_step_id","output_name"],type:"object"},SH={additionalProperties:!1,properties:{fan_out:{anyOf:[{$ref:"#/$defs/WorkflowFanOut"},{type:"null"}]},inputs:{items:{$ref:"#/$defs/WorkflowOutputReference"},type:"array"},operation:{$ref:"#/$defs/WorkflowOperationRef"},outputs:{items:{$ref:"#/$defs/WorkflowOutputName"},type:"array"},predecessors:{items:{$ref:"#/$defs/WorkflowStepId"},type:"array",uniqueItems:!0},step_id:{$ref:"#/$defs/WorkflowStepId"}},required:["step_id","operation","predecessors","inputs","outputs"],type:"object"},SG={description:"Strongly typed canonical identity: `WorkflowStepId`.",type:"string"},SB={additionalProperties:!1,description:"A provider's claim that one artifact of a fan-out output synthesizes its\nsibling source artifacts.",properties:{cited_source_digests:{description:"Content digests of every source artifact the synthesis consumed.",items:{$ref:"#/$defs/ManifestDigest"},type:"array",uniqueItems:!0},output_name:{$ref:"#/$defs/WorkflowOutputName",description:"The fan-out output the synthesis belongs to."},synthesis_attempt:{$ref:"#/$defs/WorkAttemptIdentityV1",description:"The attempt that produced the synthesis artifact inside that output."}},required:["output_name","synthesis_attempt","cited_source_digests"],type:"object"},SK={enum:["require_clean","allow_untracked_only_for_preflight","read_only_preflight_only"],type:"string"},SJ={description:"Strongly typed canonical identity: `WorktreeId`.",type:"string"},SZ={description:"Monotonic epoch of the worktree inventory frozen into a stack revision.",format:"uint64",minimum:0,type:"integer"},SQ={description:"Strongly typed canonical identity: `WorktreeInventorySnapshotId`.",type:"string"},SX={oneOf:[{properties:{kind:{const:"existing_worktree_only",type:"string"}},required:["kind"],type:"object"},{properties:{kind:{const:"sibling_of_primary_checkout",type:"string"}},required:["kind"],type:"object"},{properties:{kind:{const:"repository_local_root",type:"string"}},required:["kind"],type:"object"},{properties:{kind:{const:"configured_root",type:"string"},root_id:{type:"string"}},required:["kind","root_id"],type:"object"}]},SY={additionalProperties:!1,properties:{abandoned_retention_seconds:{format:"uint64",minimum:1,type:["integer","null"]},automatic_gc:{$ref:"#/$defs/AutomaticWorktreeGcV1"},maximum_retained_per_repository:{format:"uint16",maximum:65535,minimum:1,type:["integer","null"]},terminal_retention_seconds:{format:"uint64",minimum:1,type:["integer","null"]}},required:["automatic_gc"],type:"object"},S1={additionalProperties:!1,properties:{locator:{$ref:"#/$defs/SensitiveFilesystemLocatorV1"},maximum_active_worktrees:{format:"uint16",maximum:65535,minimum:1,type:"integer"},repository_scope:{$ref:"#/$defs/RepositoryPlacementScopeV1"},root_id:{type:"string"}},required:["root_id","locator","repository_scope","maximum_active_worktrees"],type:"object"},S0=[{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,title:"ActiveProjectSurfaceRequestV1",type:"object"},{$defs:{ActiveProjectBranchV1:{additionalProperties:!1,properties:{branch_drifted:{type:"boolean"},branch_resolution:{type:"string"},current_branch:{type:["string","null"]},open_active_branch:{type:["string","null"]},serving_branch:{type:["string","null"]},tracked_branch_count:{format:"uint",minimum:0,type:"integer"},warnings:{items:{type:"string"},type:"array"}},required:["branch_resolution","branch_drifted","tracked_branch_count","warnings"],type:"object"},ActiveProjectResolutionSourceV1:{enum:["active_project"],type:"string"},ActiveProjectStorageV1:{additionalProperties:!1,properties:{class:{type:"string"},data_root:{type:"string"},graph_db_exists:{type:"boolean"},graph_db_path:{type:"string"},graph_db_size_bytes:{format:"uint64",minimum:0,type:"integer"},lcm_payload_root:{type:"string"},mode:{type:"string"},response_handle_root:{type:"string"},sessions_db_path:{type:"string"}},required:["class","mode","data_root","graph_db_path","graph_db_exists","graph_db_size_bytes","sessions_db_path","response_handle_root","lcm_payload_root"],type:"object"}},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"The resolved active project of this MCP session.",properties:{branch:{$ref:"#/$defs/ActiveProjectBranchV1"},project_id:{type:["string","null"]},project_root:{type:"string"},repository_id:{type:"string"},resolution_source:{$ref:"#/$defs/ActiveProjectResolutionSourceV1"},scope_prefix:{type:["string","null"]},storage:{$ref:"#/$defs/ActiveProjectStorageV1"}},required:["repository_id","project_root","resolution_source","storage","branch"],title:"ActiveProjectResultV1",type:"object"},{$defs:{AdminCliScopeV1:{description:"What a cost or analytics action reads: the served project's ledgers and\nsessions, or the whole profile's.",enum:["project","profile"],type:"string"}},$schema:"https://json-schema.org/draft/2020-12/schema",oneOf:[{additionalProperties:!1,description:"Savings and provider-usage cost over `range` (`today`, `7d`, ...).",properties:{action:{const:"cost_summary",type:"string"},range:{type:"string"},scope:{$ref:"#/$defs/AdminCliScopeV1"}},required:["action","range","scope"],type:"object"},{additionalProperties:!1,description:"Import every host's transcripts into the project's session store.",properties:{action:{const:"sessions_import",type:"string"}},required:["action"],type:"object"},{additionalProperties:!1,description:"Converge project sessions with Git history.",properties:{action:{const:"sessions_git_sync",type:"string"},dry_run:{type:"boolean"},limit_sessions:{format:"uint",minimum:0,type:"integer"},since:{format:"int64",type:"integer"}},required:["action","since","limit_sessions","dry_run"],type:"object"},{additionalProperties:!1,properties:{action:{const:"sessions_sync_status",type:"string"},idempotency_key:{type:"string"}},required:["action","idempotency_key"],type:"object"},{additionalProperties:!1,properties:{action:{const:"sessions_sync_cancel",type:"string"},idempotency_key:{type:"string"}},required:["action","idempotency_key"],type:"object"},{additionalProperties:!1,properties:{action:{const:"sessions_unfinished",type:"string"},limit:{format:"uint",minimum:0,type:"integer"}},required:["action","limit"],type:"object"},{additionalProperties:!1,description:"Import hook analytics JSONL into the accounting ledger.",properties:{action:{const:"analytics_sync",type:"string"},scope:{$ref:"#/$defs/AdminCliScopeV1"}},required:["action","scope"],type:"object"},{additionalProperties:!1,properties:{action:{const:"analytics_diagnostics",type:"string"},all:{type:"boolean"},no_sync:{type:"boolean"},scope:{$ref:"#/$defs/AdminCliScopeV1"}},required:["action","scope","all","no_sync"],type:"object"},{additionalProperties:!1,description:"Record the served project's saved-token total.",properties:{action:{const:"registry_update",type:"string"},tokens:{format:"uint64",minimum:0,type:"integer"}},required:["action","tokens"],type:"object"},{additionalProperties:!1,properties:{action:{const:"registry_list",type:"string"},limit:{format:"uint",minimum:0,type:"integer"},project_arg:{description:"Checkout to mark active when the caller's connection names no\nproject.",type:["string","null"]},query:{type:["string","null"]}},required:["action","limit"],type:"object"},{additionalProperties:!1,properties:{action:{const:"registry_context",type:"string"},project_arg:{description:"Project path or alias; the caller's project when omitted.",type:["string","null"]}},required:["action"],type:"object"},{additionalProperties:!1,properties:{action:{const:"registry_empty",type:"string"}},required:["action"],type:"object"},{additionalProperties:!1,properties:{action:{const:"registry_project_tokens",type:"string"},project_args:{items:{type:"string"},type:"array"}},required:["action","project_args"],type:"object"},{additionalProperties:!1,description:"Plan, or with `apply` execute, collection of registry rows whose\ncheckout is gone.",properties:{action:{const:"registry_gc",type:"string"},apply:{type:"boolean"},prefix:{type:["string","null"]}},required:["action","apply"],type:"object"},{additionalProperties:!1,description:"One project's storage (`project_id` with `project_root`), or one page\nof the profile's.",properties:{action:{const:"storage_report",type:"string"},cursor:{default:null,type:["string","null"]},limit:{default:8,format:"uint",minimum:0,type:"integer"},project_id:{type:["string","null"]},project_root:{type:["string","null"]}},required:["action"],type:"object"},{additionalProperties:!1,properties:{action:{const:"gain_query",type:"string"},history:{type:"boolean"},project_arg:{type:["string","null"]},since:{format:"int64",type:"integer"}},required:["action","since","history"],type:"object"}],title:"AdminCliSurfaceRequestV1"},{$defs:{AdminCliAnalyticsImportV1:{additionalProperties:!1,properties:{imported:{format:"uint64",minimum:0,type:"integer"},sources:{description:"One row per hook JSONL source: `path`, `imported`, `skipped`, `error`.",items:!0,type:"array"}},required:["imported","sources"],type:"object"},AdminCliCostSummaryV1:{additionalProperties:!1,properties:{range:{type:"string"},summary:{$ref:"#/$defs/AdminCliCostTotalsV1"},today:{$ref:"#/$defs/AdminCliCostTodayV1"}},required:["range","summary","today"],type:"object"},AdminCliCostTodayV1:{additionalProperties:!1,properties:{provider_usage:!0},required:["provider_usage"],type:"object"},AdminCliCostTotalsV1:{additionalProperties:!1,properties:{efficiency_ratio:{description:"Saved over saved-plus-consumed; null when consumption is unmeasured.",format:"double",type:["number","null"]},provider_usage:{description:"The provider-usage cost summary as the session memory prices it."},tokens_saved:{format:"uint64",minimum:0,type:"integer"}},required:["provider_usage","tokens_saved"],type:"object"},AdminCliGainDayV1:{additionalProperties:!1,properties:{calls:{format:"uint64",minimum:0,type:"integer"},day:{description:"Start-of-day epoch seconds (UTC).",format:"int64",type:"integer"},saved_tokens:{format:"uint64",minimum:0,type:"integer"}},required:["day","saved_tokens","calls"],type:"object"},AdminCliGainHistoryV1:{additionalProperties:!1,properties:{history:{items:{$ref:"#/$defs/AdminCliGainDayV1"},type:"array"}},required:["history"],type:"object"},AdminCliGainTotalV1:{additionalProperties:!1,properties:{calls:{format:"uint64",minimum:0,type:"integer"},saved_tokens:{format:"uint64",minimum:0,type:"integer"}},required:["saved_tokens","calls"],type:"object"},AdminCliProjectTokenTotalV1:{additionalProperties:!1,description:"A project whose ledger could not be read reports a null total and the\nreason, never a measured zero.",properties:{error:{type:["string","null"]},project:{type:"string"},tokens:{format:"uint64",minimum:0,type:["integer","null"]}},required:["project"],type:"object"},AdminCliProjectTokensV1:{additionalProperties:!1,properties:{projects:{items:{$ref:"#/$defs/AdminCliProjectTokenTotalV1"},type:"array"}},required:["projects"],type:"object"},AdminCliRegistryContextV1:{oneOf:[{additionalProperties:!1,properties:{aliases:{description:"Alias rows exactly as the registry serializes them.",items:!0,type:"array"},profile_id:{type:"string"},project:{$ref:"#/$defs/PublicCodeProject"},status:{const:"ok",type:"string"},stores:{description:"Store rows exactly as the registry serializes them.",items:!0,type:"array"}},required:["status","profile_id","project","aliases","stores"],type:"object"},{additionalProperties:!1,description:"The call named no project and its connection has none.",properties:{project:{type:"null"},status:{const:"invalid",type:"string"}},required:["status","project"],type:"object"},{additionalProperties:!1,properties:{project:{type:"null"},status:{const:"not_found",type:"string"}},required:["status","project"],type:"object"}]},AdminCliRegistryEmptyV1:{additionalProperties:!1,properties:{empty:{type:"boolean"}},required:["empty"],type:"object"},AdminCliRegistryGcV1:{additionalProperties:!1,description:"The registry collection plan, with its deletion counters filled when it\nwas applied.",properties:{apply:{type:"boolean"},candidate_count:{format:"uint",minimum:0,type:"integer"},candidate_paths:{items:{type:"string"},type:"array"},candidates:{description:"Registry project rows exactly as the registry serializes them.",items:!0,type:"array"},code_project_candidate_count:{format:"uint",minimum:0,type:"integer"},deleted_code_project_count:{format:"uint",minimum:0,type:"integer"},deleted_count:{format:"uint",minimum:0,type:"integer"},deleted_storage_project_count:{format:"uint",minimum:0,type:"integer"},metadata_candidate_count:{format:"uint",minimum:0,type:"integer"},prefix:{type:["string","null"]},protected_code_project_count:{format:"uint",minimum:0,type:"integer"},protected_code_projects:{items:!0,type:"array"},storage_project_candidate_count:{format:"uint",minimum:0,type:"integer"},storage_project_candidates:{items:{type:"string"},type:"array"}},required:["apply","candidate_count","metadata_candidate_count","code_project_candidate_count","storage_project_candidate_count","protected_code_project_count","deleted_count","deleted_code_project_count","deleted_storage_project_count","candidate_paths","candidates","protected_code_projects","storage_project_candidates"],type:"object"},AdminCliRegistryListV1:{oneOf:[{additionalProperties:!1,properties:{limit:{format:"uint",minimum:0,type:"integer"},project_tree:{items:{$ref:"#/$defs/ProjectRepoGroup"},type:"array"},projects:{items:{$ref:"#/$defs/PublicCodeProject"},type:"array"},query:{type:["string","null"]},status:{const:"ok",type:"string"},summary:{$ref:"#/$defs/ProjectRegistrySummary"},truncated:{type:"boolean"}},required:["status","limit","truncated","summary","project_tree","projects"],type:"object"}]},AdminCliRegistryUpdateV1:{additionalProperties:!1,properties:{current:{format:"uint64",minimum:0,type:"integer"},previous:{description:"The total before this write; null when the ledger could not be read.",format:"uint64",minimum:0,type:["integer","null"]},previous_error:{type:["string","null"]}},required:["current"],type:"object"},AdminCliSessionSyncV1:{description:"The daemon session-sync owner's answer.",oneOf:[{additionalProperties:!1,properties:{accepted_at:{$ref:"#/$defs/UtcMicros"},idempotency_key:{type:"string"},operation_id:{type:"string"},status:{const:"accepted",type:"string"}},required:["status","operation_id","idempotency_key","accepted_at"],type:"object"},{additionalProperties:!1,description:"An identical sync was already running; this call joined it.",properties:{accepted_at:{$ref:"#/$defs/UtcMicros"},idempotency_key:{type:"string"},operation_id:{type:"string"},status:{const:"joined",type:"string"}},required:["status","operation_id","idempotency_key","accepted_at"],type:"object"},{additionalProperties:!1,properties:{coalesced_primary:{type:["string","null"]},completed_at:{$ref:"#/$defs/UtcMicros"},coverage:{items:{$ref:"#/$defs/SessionSyncSourceCoverageV1"},type:"array"},failure_codes:{items:{type:"string"},type:"array"},idempotency_key:{type:"string"},operation_id:{type:"string"},source:{$ref:"#/$defs/SessionSyncSourceV1"},source_frontiers:{items:{$ref:"#/$defs/SessionSyncSourceFrontierV1"},type:"array"},stats:{$ref:"#/$defs/SessionSyncStatsV1"},status:{const:"complete",type:"string"},termination:{$ref:"#/$defs/OperationTermination"}},required:["status","operation_id","idempotency_key","source","termination","stats","coverage","source_frontiers","failure_codes","completed_at"],type:"object"},{additionalProperties:!1,properties:{status:{const:"cancelled",type:"string"}},required:["status"],type:"object"},{additionalProperties:!1,properties:{status:{const:"deadline_exceeded",type:"string"}},required:["status"],type:"object"},{additionalProperties:!1,properties:{status:{const:"wrong_scope",type:"string"}},required:["status"],type:"object"},{additionalProperties:!1,properties:{reason_code:{type:"string"},status:{const:"unavailable",type:"string"}},required:["status","reason_code"],type:"object"}]},AdminCliStorageReportV1:{additionalProperties:!1,description:"One storage report page, or one project's report.",properties:{code_generation_retention:{items:!0,type:"array"},code_generation_retention_availability:{items:!0,type:"array"},coverage:!0,full_profile_size:!0,global_db_bytes:{format:"uint64",minimum:0,type:"integer"},profile_root:{type:"string"},stores:{description:"Report rows exactly as the retention report serializes them.",items:!0,type:"array"},unregistered_bytes:{format:"uint64",minimum:0,type:"integer"},unregistered_dir_count:{format:"uint",minimum:0,type:"integer"},user_sessions_db_bytes:{default:0,format:"uint64",minimum:0,type:"integer"}},required:["profile_root","stores","code_generation_retention","code_generation_retention_availability","unregistered_dir_count","unregistered_bytes","global_db_bytes","coverage"],type:"object"},AdminCliUnfinishedSessionsV1:{additionalProperties:!1,properties:{items:{description:"Workflow state rows exactly as the session store serializes them.",items:!0,type:"array"}},required:["items"],type:"object"},OperationTermination:_U,ProjectRegistryEntry:_3,ProjectRegistrySummary:_9,ProjectRepoGroup:_5,PublicCodeProject:vs,SessionSyncCoverageV1:{oneOf:[{properties:{outcome:{const:"complete",type:"string"}},required:["outcome"],type:"object"},{properties:{deferred_units:{format:"uint64",minimum:0,type:"integer"},outcome:{const:"partial",type:"string"}},required:["outcome","deferred_units"],type:"object"},{properties:{admitted_units:{format:"uint64",minimum:0,type:"integer"},outcome:{const:"backpressured",type:"string"},rejected_units:{format:"uint64",minimum:0,type:"integer"}},required:["outcome","admitted_units","rejected_units"],type:"object"}]},SessionSyncSourceCoverageV1:{properties:{coverage:{$ref:"#/$defs/SessionSyncCoverageV1"},store_scope:{type:"string"}},required:["store_scope","coverage"],type:"object"},SessionSyncSourceFrontierV1:{description:"Exact canonical observation cursor committed by one source/store authority.",properties:{committed_cursor_json:{type:"string"},scope_json:{type:"string"},source_json:{type:"string"},store_scope:{type:"string"}},required:["store_scope","source_json","scope_json","committed_cursor_json"],type:"object"},SessionSyncSourceV1:{description:"The command that started a session sync, without its options.",oneOf:[{const:"import_transcripts",description:"Hands its remaining historical catch-up to the background refresh\nworkers.",type:"string"},{const:"synchronize_git",description:"A bounded foreground pass; nothing resumes its unfinished coverage.",type:"string"}]},SessionSyncStatsV1:{properties:{commits_attributed:{format:"uint64",minimum:0,type:"integer"},messages_imported:{format:"uint64",minimum:0,type:"integer"},sessions_imported:{format:"uint64",minimum:0,type:"integer"},sessions_scanned:{format:"uint64",minimum:0,type:"integer"},skipped:{format:"uint64",minimum:0,type:"integer"},spans_written:{format:"uint64",minimum:0,type:"integer"}},required:["sessions_imported","messages_imported","sessions_scanned","spans_written","commits_attributed","skipped"],type:"object"},UtcMicros:bX},$schema:"https://json-schema.org/draft/2020-12/schema",anyOf:[{$ref:"#/$defs/AdminCliCostSummaryV1"},{$ref:"#/$defs/AdminCliSessionSyncV1"},{$ref:"#/$defs/AdminCliUnfinishedSessionsV1"},{$ref:"#/$defs/AdminCliAnalyticsImportV1"},{$ref:"#/$defs/AdminCliRegistryUpdateV1"},{$ref:"#/$defs/AdminCliRegistryListV1"},{$ref:"#/$defs/AdminCliRegistryContextV1"},{$ref:"#/$defs/AdminCliRegistryEmptyV1"},{$ref:"#/$defs/AdminCliProjectTokensV1"},{$ref:"#/$defs/AdminCliRegistryGcV1"},{$ref:"#/$defs/AdminCliStorageReportV1"},{$ref:"#/$defs/AdminCliGainHistoryV1"},{$ref:"#/$defs/AdminCliGainTotalV1"},{description:"The diagnostics report is the analytics bridge's open document; it\ndecodes last so it never claims another action's body."}],description:"One action's answer.",title:"AdminCliResultV1"},{$defs:{AutomaticFactReceiptStateV1:fF,AutomationReconcileScope:fB},$schema:"https://json-schema.org/draft/2020-12/schema",description:"Every action is a struct variant: an internally tagged unit variant would\nignore keys beside its tag instead of refusing them.",oneOf:[{additionalProperties:!1,description:"Read the project's local usage counter.",properties:{action:{const:"counter_get",type:"string"}},required:["action"],type:"object"},{additionalProperties:!1,description:"Reset the project's local usage counter to zero.",properties:{action:{const:"counter_reset",type:"string"}},required:["action"],type:"object"},{additionalProperties:!1,description:"Record the project's saved-token total in the profile registry and\nread it back beside the other projects' total.",properties:{action:{const:"status_accounting",type:"string"}},required:["action"],type:"object"},{additionalProperties:!1,description:"List terminal automatic-fact receipts.",properties:{action:{const:"automatic_fact_receipt_list",type:"string"},limit:{format:"uint",minimum:0,type:"integer"},state:{anyOf:[{$ref:"#/$defs/AutomaticFactReceiptStateV1"},{type:"null"}],description:"Only receipts in this state (default: every state)."}},required:["action","limit"],type:"object"},{additionalProperties:!1,description:"Read one automatic-fact receipt by its apply id.",properties:{action:{const:"automatic_fact_receipt_view",type:"string"},id:{type:"string"}},required:["action","id"],type:"object"},{additionalProperties:!1,description:"Reconcile automation schedulers with the saved configuration.",properties:{action:{const:"automation_reconcile",type:"string"},scope:{$ref:"#/$defs/AutomationReconcileScope"}},required:["action","scope"],type:"object"}],title:"AdminProjectSurfaceRequestV1"},{$defs:{AdminProjectCounterResetV1:{additionalProperties:!1,properties:{reset:{description:"Always true: a reset that did not settle is a refusal.",type:"boolean"}},required:["reset"],type:"object"},AdminProjectCounterV1:{additionalProperties:!1,properties:{counter:{format:"uint64",minimum:0,type:"integer"}},required:["counter"],type:"object"},AdminProjectStatusAccountingV1:{additionalProperties:!1,properties:{global_tokens_saved:{description:"Tokens the profile's other projects saved; null when they saved none.",format:"uint64",minimum:0,type:["integer","null"]},tokens_saved:{format:"uint64",minimum:0,type:"integer"}},required:["tokens_saved"],type:"object"},AutomaticFactAddRequestV1:{additionalProperties:!1,description:"The add-fact request an automatic apply recorded.",properties:{category:{$ref:"#/$defs/FactCategoryV1"},content:{type:"string"},entities:{items:{type:"string"},type:"array"},metadata:!0,source_label:{type:["string","null"]},tags:{items:{type:"string"},type:"array"},trust:{format:"double",type:"number"}},required:["content","category","tags","entities","trust","metadata"],type:"object"},AutomaticFactEvidenceV1:{additionalProperties:!1,description:"Automation evidence retained with the receipt.",properties:{evidence_hash:{type:["string","null"]},item:!0,validation:!0},type:"object"},AutomaticFactReceiptAvailabilityV1:{oneOf:[{additionalProperties:!1,properties:{state:{const:"available",type:"string"}},required:["state"],type:"object"}]},AutomaticFactReceiptListV1:{additionalProperties:!1,properties:{availability:{$ref:"#/$defs/AutomaticFactReceiptAvailabilityV1"},count:{format:"uint",minimum:0,type:"integer"},next_after_apply_id:{description:"Continue after this apply id; null on the last page.",type:["string","null"]},receipts:{items:{$ref:"#/$defs/AutomaticFactReceiptV1"},type:"array"}},required:["availability","count","receipts"],type:"object"},AutomaticFactReceiptStateV1:fF,AutomaticFactReceiptV1:{additionalProperties:!1,description:"One terminal automatic-fact apply receipt.",properties:{add_fact_request:{$ref:"#/$defs/AutomaticFactAddRequestV1"},applied_fact_id:{description:"Present when the fact was applied.",type:["string","null"]},apply_id:{type:"string"},evidence:{$ref:"#/$defs/AutomaticFactEvidenceV1"},operation_id:{type:"string"},quarantine_reason:{description:"Present when the fact was quarantined.",type:["string","null"]},recorded_at_micros:{format:"int64",type:"integer"},state:{$ref:"#/$defs/AutomaticFactReceiptStateV1"}},required:["apply_id","state","operation_id","add_fact_request","evidence","recorded_at_micros"],type:"object"},AutomaticFactReceiptViewV1:{additionalProperties:!1,properties:{receipt:{$ref:"#/$defs/AutomaticFactReceiptV1"}},required:["receipt"],type:"object"},AutomationReconcileScope:fB,AutomationSchedulerOwnerReconcileOutcome:{additionalProperties:!1,properties:{graph_db_path:{type:"string"},outcome:{$ref:"#/$defs/AutomationSchedulerReconcileOutcome"},project_id:{type:["string","null"]},scope_prefix:{type:["string","null"]},store_root:{type:"string"}},required:["store_root","graph_db_path","outcome"],type:"object"},AutomationSchedulerReconcileOutcome:{description:"What reconciling one automation scheduler did.",enum:["started","running_notified","exiting","finished","retiring","not_configured","lifecycle_inactive","owner_unavailable"],type:"string"},FactCategoryV1:yW,ProfileAutomationReconcileReport:{additionalProperties:!1,description:"Every cached project scheduler of the profile, reconciled.",properties:{cached_owners:{format:"uint",minimum:0,type:"integer"},outcomes:{items:{$ref:"#/$defs/AutomationSchedulerOwnerReconcileOutcome"},type:"array"},scope:{$ref:"#/$defs/AutomationReconcileScope",description:"Always `profile`."},uncached_projects:{$ref:"#/$defs/UncachedProjectReconcileOutcome"}},required:["scope","cached_owners","outcomes","uncached_projects"],type:"object"},ProjectAutomationReconcileReport:{additionalProperties:!1,description:"The served project's scheduler reconcile.",properties:{outcome:{$ref:"#/$defs/AutomationSchedulerReconcileOutcome"},scope:{$ref:"#/$defs/AutomationReconcileScope",description:"Always `project`."}},required:["scope","outcome"],type:"object"},UncachedProjectReconcileOutcome:{description:"A project whose scheduler is not cached reconciles when it next starts.",enum:["deferred_until_project_startup"],type:"string"}},$schema:"https://json-schema.org/draft/2020-12/schema",anyOf:[{$ref:"#/$defs/AdminProjectCounterV1"},{$ref:"#/$defs/AdminProjectCounterResetV1"},{$ref:"#/$defs/AdminProjectStatusAccountingV1"},{$ref:"#/$defs/AutomaticFactReceiptListV1"},{$ref:"#/$defs/AutomaticFactReceiptViewV1"},{$ref:"#/$defs/ProjectAutomationReconcileReport"},{$ref:"#/$defs/ProfileAutomationReconcileReport"}],description:"One action's result, in the shape the action has always answered.",title:"AdminProjectResultV1"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"`tracedecay_admin_sync` takes no arguments: it reconciles the served\nproject.",title:"AdminSyncSurfaceRequestV1",type:"object"},{$defs:{AdminSyncAdmissionV1:{description:"The code-index scheduler's admission of the reconcile.",oneOf:[{enum:["queued"],type:"string"},{const:"not_applicable",description:"Code indexing does not apply to this project.",type:"string"}]},AdminSyncReconcileScopeV1:{description:"What the reconcile covers.",enum:["authoritative_project"],type:"string"}},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{project_root:{type:"string"},reconcile_scope:{$ref:"#/$defs/AdminSyncReconcileScopeV1"},status:{$ref:"#/$defs/AdminSyncAdmissionV1"}},required:["reconcile_scope","status","project_root"],title:"AdminSyncResultV1",type:"object"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{depth:{description:"Maximum dependency traversal depth (default: 5, at most 10).",format:"uint32",minimum:0,type:["integer","null"]},files:{description:"List of changed file paths to analyze.",items:{type:"string"},type:"array"},filter:{description:"Custom glob pattern for test files (default: common test patterns).",type:["string","null"]}},required:["files"],title:"AffectedSurfaceRequestV1",type:"object"},{$defs:{AffectedRankingMetadataV1:{additionalProperties:!1,properties:{compatibility_field:{type:"string"},distance:{type:"string"},recommended_proximity:{items:{type:"string"},type:"array"},strategy:{type:"string"}},required:["strategy","distance","recommended_proximity","compatibility_field"],type:"object"},CodeIndexBuildBlockedReasonV1:hv,CodeIndexConvergenceParkedV1:hb,CodeIndexStalenessStateV1:hw,PrimitiveFreshnessStateV1:_K,PrimitiveIndexingStateV1:_J,PrimitiveSearchFreshnessV1:_Y,RankedAffectedTestV1:{additionalProperties:!1,properties:{distance:{format:"uint",minimum:0,type:"integer"},path:{type:"string"},proximity:{type:"string"},rank:{format:"uint",minimum:0,type:"integer"}},required:["path","rank","distance","proximity"],type:"object"}},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{affected_tests:{items:{type:"string"},type:"array"},changed_files:{items:{type:"string"},type:"array"},count:{format:"uint",minimum:0,type:"integer"},freshness:{anyOf:[{$ref:"#/$defs/PrimitiveSearchFreshnessV1"},{type:"null"}],description:"The worktree verdict a served graph read opens with."},ranked_tests:{items:{$ref:"#/$defs/RankedAffectedTestV1"},type:"array"},ranking_metadata:{$ref:"#/$defs/AffectedRankingMetadataV1"},recommended_tests:{description:"Tests within two dependency hops of a changed file.",items:{type:"string"},type:"array"}},required:["changed_files","affected_tests","count","ranked_tests","recommended_tests","ranking_metadata"],title:"AffectedResultV1",type:"object"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"Opaque daemon-minted handle accepted by the first feedback read invocation.",properties:{request_handle:{type:"string"}},required:["request_handle"],title:"FeedbackHandleRequestV1",type:"object"},{$defs:{AgentInstanceId:fS,CodeGenerationId:hg,CommitId:hI,FeedbackContentIdentityV1:y2,FeedbackCycleId:y4,FeedbackImpactStateV1:gi,FeedbackResultId:gn,FeedbackScopeV1:ga,FeedbackTargetV1:gs,FileOccurrenceId:gd,HostInstanceId:gU,ManifestDigest:_p,ProjectId:_6,RepositoryId:v$,RetrievalAnchorId:vx,SessionId:be,SourceSpan:bk,SymbolOccurrenceId:bx,WorktreeId:SJ},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"Canonical affected-tests projection returned by `affected_tests`.",properties:{affected_tests:{items:{$ref:"#/$defs/SymbolOccurrenceId"},type:"array"},content_identity:{anyOf:[{$ref:"#/$defs/FeedbackContentIdentityV1"},{type:"null"}]},cycle_id:{$ref:"#/$defs/FeedbackCycleId"},evidence_anchors:{items:{$ref:"#/$defs/RetrievalAnchorId"},type:"array"},result_id:{$ref:"#/$defs/FeedbackResultId"},scope:{$ref:"#/$defs/FeedbackScopeV1"},state:{anyOf:[{$ref:"#/$defs/FeedbackImpactStateV1"},{type:"null"}]},target:{anyOf:[{$ref:"#/$defs/FeedbackTargetV1"},{type:"null"}]}},required:["result_id","cycle_id","scope","affected_tests","evidence_anchors"],title:"CanonicalAffectedTestsProjectionV1",type:"object"},{$defs:{AnalyticsScopeV1:fV,AnalyticsSectionV1:{enum:["tools","hints","facts","automation"],type:"string"}},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{scope:{anyOf:[{$ref:"#/$defs/AnalyticsScopeV1"},{type:"null"}],description:'"project" (default) scopes analytics_events to the resolved project;\n"all" reports across every registered project.'},section:{anyOf:[{$ref:"#/$defs/AnalyticsSectionV1"},{type:"null"}],description:"Optional filter to a single section. Omit to return all sections."},window_days:{description:"Lookback window in days for events and automation runs (default: 14,\n1-365).",format:"uint32",maximum:365,minimum:1,type:["integer","null"]}},title:"AnalyticsSurfaceRequestV1",type:"object"},{$defs:{AnalyticsAutomationJobOutcomesV1:{additionalProperties:!1,properties:{failed:{format:"int64",type:"integer"},job:{type:"string"},other:{format:"int64",type:"integer"},skipped:{format:"int64",type:"integer"},succeeded:{format:"int64",type:"integer"}},required:["job","succeeded","failed","skipped","other"],type:"object"},AnalyticsAutomationOutcomesV1:{additionalProperties:!1,description:"`available` is always `true`.",properties:{available:{type:"boolean"},by_job:{items:{$ref:"#/$defs/AnalyticsAutomationJobOutcomesV1"},type:"array"},dashboard_root:{type:"string"},records_considered:{format:"uint",minimum:0,type:"integer"},records_in_window:{format:"uint",minimum:0,type:"integer"},records_truncated:{type:"boolean"}},required:["available","dashboard_root","records_considered","records_in_window","records_truncated","by_job"],type:"object"},AnalyticsAutomationSectionV1:{anyOf:[{$ref:"#/$defs/AnalyticsAutomationOutcomesV1"},{$ref:"#/$defs/AnalyticsLedgerUnavailableV1"},{$ref:"#/$defs/AnalyticsSectionUnavailableV1"}],description:"The automation run outcomes of the resolved project's ledger, or why the\nledger is unavailable."},AnalyticsCanonicalCallNameV1:{additionalProperties:!1,description:"A recorded event name that resolved to a canonical tool under another\nspelling.",properties:{calls:{format:"int64",type:"integer"},canonical_tool_name:{type:"string"},errors:{format:"int64",type:"integer"},event_name:{type:"string"}},required:["event_name","canonical_tool_name","calls","errors"],type:"object"},AnalyticsEventCallNameV1:{additionalProperties:!1,description:"A recorded event name with no advertised canonical tool.",properties:{calls:{format:"int64",type:"integer"},errors:{format:"int64",type:"integer"},event_name:{type:"string"}},required:["event_name","calls","errors"],type:"object"},AnalyticsFactFunnelV1:{additionalProperties:!1,description:"`available` is always `true`.",properties:{available:{type:"boolean"},facts:{format:"uint64",minimum:0,type:"integer"},facts_rated:{format:"uint64",minimum:0,type:"integer"},facts_retrieved:{format:"uint64",minimum:0,type:"integer"},helpful_feedback:{format:"uint64",minimum:0,type:"integer"},project_root:{type:"string"},retrievals:{format:"uint64",minimum:0,type:"integer"},unhelpful_feedback:{format:"uint64",minimum:0,type:"integer"}},required:["available","project_root","facts","retrievals","facts_retrieved","helpful_feedback","unhelpful_feedback","facts_rated"],type:"object"},AnalyticsFactsSectionV1:{anyOf:[{$ref:"#/$defs/AnalyticsFactFunnelV1"},{$ref:"#/$defs/AnalyticsProjectSectionUnavailableV1"},{$ref:"#/$defs/AnalyticsSectionUnavailableV1"}],description:"The fact-store funnel of the resolved project, or why it is unavailable.\n\nThe variants are distinguished by their exact field sets, so each one\ndenies unknown fields and the most specific shape is tried first."},AnalyticsHintCategoryV1:{properties:{category:{type:"string"},emitted:{format:"int64",type:"integer"},followed:{format:"int64",type:"integer"},ignored:{format:"int64",type:"integer"},suppressed:{format:"int64",type:"integer"}},required:["category","emitted","followed","ignored","suppressed"],type:"object"},AnalyticsHintsPayloadV1:{properties:{available:{type:"boolean"},by_category:{items:{$ref:"#/$defs/AnalyticsHintCategoryV1"},type:"array"},error:{default:null,type:["string","null"]},source:{type:"string"}},required:["available","source","by_category"],type:"object"},AnalyticsLedgerUnavailableV1:{additionalProperties:!1,description:"The ledger exists but failed to read. `available` is always `false`.",properties:{available:{type:"boolean"},dashboard_root:{type:"string"},reason:{type:"string"}},required:["available","reason","dashboard_root"],type:"object"},AnalyticsModeReadModelV1:fw,AnalyticsModeV1:fP,AnalyticsProjectSectionUnavailableV1:{additionalProperties:!1,description:"A project-scoped section whose store failed to read. `available` is\nalways `false`.",properties:{available:{type:"boolean"},project_root:{type:"string"},reason:{type:"string"}},required:["available","reason","project_root"],type:"object"},AnalyticsReportStatusV1:{description:"The settled status of an analytics report.",enum:["ok"],type:"string"},AnalyticsScopeV1:fV,AnalyticsSectionUnavailableV1:{additionalProperties:!1,description:"A section the report could not read. `available` is always `false`.",properties:{available:{type:"boolean"},reason:{type:"string"}},required:["available","reason"],type:"object"},AnalyticsTierCountsV1:{additionalProperties:!1,properties:{calls:{format:"int64",type:"integer"},errors:{format:"int64",type:"integer"},tier:{type:"string"}},required:["tier","calls","errors"],type:"object"},AnalyticsToolsSectionV1:{additionalProperties:!1,properties:{aliased_call_names:{items:{$ref:"#/$defs/AnalyticsCanonicalCallNameV1"},type:"array"},available:{type:"boolean"},available_defined_tool_count:{format:"uint",minimum:0,type:"integer"},bound_internal_call_names:{items:{$ref:"#/$defs/AnalyticsEventCallNameV1"},type:"array"},called_available_defined_tool_count:{format:"uint",minimum:0,type:"integer"},raw_distinct_event_name_count:{format:"uint",minimum:0,type:"integer"},tiers:{items:{$ref:"#/$defs/AnalyticsTierCountsV1"},type:"array"},top_tools:{items:{$ref:"#/$defs/AnalyticsTopToolV1"},type:"array"},unknown_or_retired_call_names:{items:{$ref:"#/$defs/AnalyticsEventCallNameV1"},type:"array"},zero_call_available_defined_tools:{$ref:"#/$defs/AnalyticsZeroCallToolsV1"}},required:["available","tiers","top_tools","raw_distinct_event_name_count","called_available_defined_tool_count","available_defined_tool_count","aliased_call_names","bound_internal_call_names","unknown_or_retired_call_names","zero_call_available_defined_tools"],type:"object"},AnalyticsTopToolV1:{additionalProperties:!1,properties:{calls:{format:"int64",type:"integer"},errors:{format:"int64",type:"integer"},tier:{type:"string"},tool_name:{type:"string"}},required:["tool_name","tier","calls","errors"],type:"object"},AnalyticsZeroCallToolsV1:{additionalProperties:!1,properties:{count:{format:"uint",minimum:0,type:"integer"},sample:{items:{type:"string"},type:"array"},sample_truncated:{type:"boolean"}},required:["count","sample","sample_truncated"],type:"object"},ComparisonDispositionV1:hx,CostsReadModelV1:yp,CoverageStateV1:yh,LatencyDistributionReadModelV1:gZ,MetricCalibrationV1:_y,MetricCohortV1:_g,MetricCoverageV1:__,MetricEvidenceClassV1:_v,MetricProvenanceV1:_b,MetricSourceV1:_$,MetricTemporalV1:_S,MetricUncertaintyV1:_k,MetricValueV1:_w,ObservabilityHorizonV1:_M,ObservatoryReadModelV1:_z,PerformanceComparisonReadModelV1:_G,ProviderLatencyReadModelV1:va,RejectedArgumentAnalyticsV1:vy,RejectedArgumentErrorClassV1:vg,RejectedArgumentGroupV1:v_,RejectedArgumentNameV1:vv,RejectedArgumentSurfaceV1:vb},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{automation:{anyOf:[{$ref:"#/$defs/AnalyticsAutomationSectionV1"},{type:"null"}]},costs:{anyOf:[{$ref:"#/$defs/CostsReadModelV1"},{type:"null"}],description:"Present only when no section filter was requested."},event_count:{format:"int64",type:"integer"},event_count_truncated:{type:"boolean"},facts:{anyOf:[{$ref:"#/$defs/AnalyticsFactsSectionV1"},{type:"null"}]},hints:{anyOf:[{$ref:"#/$defs/AnalyticsHintsPayloadV1"},{type:"null"}]},observatory:{anyOf:[{$ref:"#/$defs/ObservatoryReadModelV1"},{type:"null"}],description:"Present only when no section filter was requested."},project_id:{description:'The canonical analytics project key; `None` for `scope: "all"`.',type:["string","null"]},project_root:{type:"string"},scope:{$ref:"#/$defs/AnalyticsScopeV1"},since:{format:"int64",type:"integer"},status:{$ref:"#/$defs/AnalyticsReportStatusV1"},tools:{anyOf:[{$ref:"#/$defs/AnalyticsToolsSectionV1"},{type:"null"}]},window_days:{format:"uint32",minimum:0,type:"integer"}},required:["status","scope","project_root","window_days","since","event_count","event_count_truncated"],title:"AnalyticsResultV1",type:"object"},{$defs:{ManifestDigest:_p,NativeIntegrationApprovalId:_R,NativeIntegrationPreviewId:_x,NativeIntegrationTransactionId:_O},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"Exact one-use apply request.\n\nApply accepts only an unexpired preview identity/digest plus a one-use\ncontent-bound approval. Arbitrary Git arguments, caller-supplied paths,\nSHAs, patches, commit lists, messages, environment, or config are\nunrepresentable.",properties:{approval_digest:{$ref:"#/$defs/ManifestDigest"},approval_id:{$ref:"#/$defs/NativeIntegrationApprovalId"},preview_digest:{$ref:"#/$defs/ManifestDigest"},preview_id:{$ref:"#/$defs/NativeIntegrationPreviewId"},transaction_id:{$ref:"#/$defs/NativeIntegrationTransactionId"}},required:["preview_id","preview_digest","approval_id","approval_digest","transaction_id"],title:"NativeIntegrationApplySurfaceRequest",type:"object"},{$defs:{ActorId:f$,BranchStackEdgeV1:f9,BranchStackId:f5,BranchStackNodeV1:f8,BranchStackRevisionId:f7,BranchStackRevisionV1:he,BranchStackSourceV1:ht,CapabilityId:hp,CodeGenerationId:hg,CommitId:hI,ContentDigest:hF,GitOidV1:gI,GitOperationStateV1:gx,ManifestDigest:_p,MechanicalIntegrationModeV1:_u,NativeIntegrationAnalysisAnchorV1:{additionalProperties:!1,description:"Source-local anchor for a semantic conflict finding.",properties:{generation_id:{$ref:"#/$defs/CodeGenerationId"},logical_path:{type:"string"},source_span:{$ref:"#/$defs/SourceSpan"}},required:["generation_id","logical_path","source_span"],type:"object"},NativeIntegrationAnalysisCoverageV1:{description:"Completeness of one independently evaluated semantic evidence lane.",enum:["complete","partial","unsupported"],type:"string"},NativeIntegrationAnalysisGapV1:{description:"Why one semantic evidence lane cannot authorize integration.",enum:["parser_failure","unresolved_required_edge","withheld_source","stale_evidence","unsupported_language","dynamic_schema","unbound_migration_order","capacity_unavailable","authority_unavailable"],type:"string"},NativeIntegrationAnalysisLaneV1:{additionalProperties:!1,description:"Coverage and exact gaps for one independently evaluated analysis lane.",properties:{coverage:{$ref:"#/$defs/NativeIntegrationAnalysisCoverageV1"},gaps:{items:{$ref:"#/$defs/NativeIntegrationAnalysisGapV1"},type:"array"}},required:["coverage","gaps"],type:"object"},NativeIntegrationAnalysisReportV1:{additionalProperties:!1,description:"Daemon-produced semantic evidence for one exact native candidate tree.",properties:{analyzer_revision:{type:"string"},candidate:{$ref:"#/$defs/NativeIntegrationGenerationBindingV1"},conflicts:{items:{$ref:"#/$defs/NativeIntegrationSemanticConflictV1"},type:"array"},destination:{$ref:"#/$defs/NativeIntegrationGenerationBindingV1"},digest:{$ref:"#/$defs/ManifestDigest"},graph:{$ref:"#/$defs/NativeIntegrationAnalysisLaneV1"},merge_base:{$ref:"#/$defs/NativeIntegrationGenerationBindingV1"},migrations:{$ref:"#/$defs/NativeIntegrationAnalysisLaneV1"},schema:{$ref:"#/$defs/NativeIntegrationAnalysisLaneV1"},source:{$ref:"#/$defs/NativeIntegrationGenerationBindingV1"},tests:{$ref:"#/$defs/NativeIntegrationAnalysisLaneV1"}},required:["merge_base","source","destination","candidate","graph","tests","schema","migrations","conflicts","analyzer_revision","digest"],type:"object"},NativeIntegrationApprovalId:_R,NativeIntegrationDirectionV1:_q,NativeIntegrationGenerationBindingV1:{additionalProperties:!1,description:"One immutable code-generation binding used by native integration analysis.",properties:{content_identity:{$ref:"#/$defs/ContentDigest"},generation_id:{$ref:"#/$defs/CodeGenerationId"},project_id:{$ref:"#/$defs/ProjectId"},reference:{anyOf:[{$ref:"#/$defs/RefId"},{type:"null"}]},repository_id:{$ref:"#/$defs/RepositoryId"},seal_digest:{$ref:"#/$defs/ManifestDigest"},snapshot_digest:{$ref:"#/$defs/ManifestDigest"},source_revision:{anyOf:[{$ref:"#/$defs/GitOidV1"},{type:"null"}]},source_tree:{$ref:"#/$defs/GitOidV1"},worktree_id:{anyOf:[{$ref:"#/$defs/WorktreeId"},{type:"null"}]}},required:["generation_id","project_id","repository_id","snapshot_digest","content_identity","source_tree","seal_digest"],type:"object"},NativeIntegrationPhaseV1:{description:"Durable transaction phase. `RefCommitStarted` is the cancellation boundary.",enum:["prepared","candidate_verified","ref_commit_started","final_state_verification","terminal"],type:"string"},NativeIntegrationPreviewDispositionV1:_I,NativeIntegrationPreviewId:_x,NativeIntegrationSealedStackSnapshotV1:_j,NativeIntegrationSelectionBindingV1:_C,NativeIntegrationSemanticConflictKindV1:{description:"Static conflict class produced from canonical generation evidence.",enum:["divergent_symbol","signature_dependent","test_write_interaction","divergent_schema","migration_order"],type:"string"},NativeIntegrationSemanticConflictV1:{additionalProperties:!1,description:"One deterministic conflict finding with source evidence from both branches.",properties:{destination:{$ref:"#/$defs/NativeIntegrationAnalysisAnchorV1"},evidence_digest:{$ref:"#/$defs/ManifestDigest"},kind:{$ref:"#/$defs/NativeIntegrationSemanticConflictKindV1"},source:{$ref:"#/$defs/NativeIntegrationAnalysisAnchorV1"}},required:["kind","source","destination","evidence_digest"],type:"object"},NativeIntegrationSnapshotProjectionV1:{additionalProperties:!1,description:"Bounded projection of one frozen selection.",properties:{destination_ref:{$ref:"#/$defs/RefId"},frozen_at:{$ref:"#/$defs/UtcMicros"},inventory_epoch:{$ref:"#/$defs/WorktreeInventoryEpoch"},project_id:{$ref:"#/$defs/ProjectId"},repository_id:{$ref:"#/$defs/RepositoryId"},selection_digest:{$ref:"#/$defs/ManifestDigest"},source_ref:{$ref:"#/$defs/RefId"}},required:["selection_digest","project_id","repository_id","source_ref","destination_ref","inventory_epoch","frozen_at"],type:"object"},NativeIntegrationStatusProjectionV1:{additionalProperties:!1,description:"Bounded projection of one durable transaction status.",properties:{cancellation_requested:{type:"boolean"},destination_ref:{$ref:"#/$defs/RefId"},phase:{$ref:"#/$defs/NativeIntegrationPhaseV1"},phase_revision:{format:"uint64",minimum:0,type:"integer"},preview_digest:{$ref:"#/$defs/ManifestDigest"},preview_id:{$ref:"#/$defs/NativeIntegrationPreviewId"},repository_id:{$ref:"#/$defs/RepositoryId"},terminal_outcome:{anyOf:[{$ref:"#/$defs/NativeIntegrationTerminalOutcomeV1"},{type:"null"}]},transaction_id:{$ref:"#/$defs/NativeIntegrationTransactionId"},updated_at:{$ref:"#/$defs/UtcMicros"}},required:["transaction_id","preview_id","preview_digest","repository_id","destination_ref","phase","phase_revision","cancellation_requested","updated_at"],type:"object"},NativeIntegrationSurfaceUnavailableV1:{description:"Why a native-integration operation produced no advancing state.\n\nEvery variant is read-only and truthful. None of them authorizes apply, and\na denied or absent target is reported indistinguishably from an unavailable\nauthority so no identity, path, count, or topology leaks.",oneOf:[{enum:["partial","stale","denied","reset_required","durability_uncertain","cancelled","approval_conflict","transaction_conflict","recovery_required","needs_inspection","unknown_transaction"],type:"string"},{const:"authority_unmounted",description:"No native-integration runtime authority is mounted for this daemon.",type:"string"}]},NativeIntegrationTerminalOutcomeV1:_T,NativeIntegrationTransactionId:_O,NativeIntegrationUnavailabilityV1:_E,NativeWorktreeSurfaceResultV1:{oneOf:[{oneOf:[{properties:{coverage:{$ref:"#/$defs/WorktreeCoverageV1"},digest:{$ref:"#/$defs/ManifestDigest"},entries:{items:{$ref:"#/$defs/WorktreeInventoryEntryV1"},type:"array"},epoch:{$ref:"#/$defs/WorktreeInventoryEpoch"},observed_at:{$ref:"#/$defs/UtcMicros"},scope_set_digest:{$ref:"#/$defs/ManifestDigest"},scope_set_id:{$ref:"#/$defs/ScopeSetId"},scope_set_revision:{$ref:"#/$defs/ScopeSetRevision"},snapshot_id:{$ref:"#/$defs/WorktreeInventorySnapshotId"},state:{const:"snapshot",type:"string"}},required:["state","scope_set_id","scope_set_revision","scope_set_digest","snapshot_id","epoch","entries","coverage","observed_at","digest"],type:"object"},{properties:{state:{const:"stale",type:"string"}},required:["state"],type:"object"},{properties:{state:{const:"denied",type:"string"}},required:["state"],type:"object"},{properties:{state:{const:"unavailable",type:"string"}},required:["state"],type:"object"}],properties:{operation:{const:"inventory",type:"string"}},required:["operation"],type:"object"},{oneOf:[{properties:{clean:{$ref:"#/$defs/WorktreeObservationV1",description:"Whether Git status contains no tracked or untracked changes."},head:{anyOf:[{$ref:"#/$defs/GitOidV1"},{type:"null"}]},holder:{$ref:"#/$defs/WorktreeObservationV1"},inspection_digest:{$ref:"#/$defs/ManifestDigest"},kind:{anyOf:[{$ref:"#/$defs/WorktreeKindV1"},{type:"null"}]},locked:{$ref:"#/$defs/WorktreeObservationV1"},observed_at:{$ref:"#/$defs/UtcMicros"},operation_state:{anyOf:[{$ref:"#/$defs/GitOperationStateV1"},{type:"null"}]},presence:{$ref:"#/$defs/WorktreePresenceV1"},reference:{anyOf:[{$ref:"#/$defs/RefId"},{type:"null"}]},state:{const:"inspection",type:"string"},target:{$ref:"#/$defs/NativeWorktreeTargetV1"},unique_data:{$ref:"#/$defs/WorktreeObservationV1"},worktree_id:{$ref:"#/$defs/WorktreeId"}},required:["state","target","presence","worktree_id","clean","locked","holder","unique_data","observed_at","inspection_digest"],type:"object"},{properties:{state:{const:"stale",type:"string"}},required:["state"],type:"object"},{properties:{state:{const:"foreign",type:"string"}},required:["state"],type:"object"},{properties:{state:{const:"denied",type:"string"}},required:["state"],type:"object"},{properties:{state:{const:"unavailable",type:"string"}},required:["state"],type:"object"}],properties:{operation:{const:"inspection",type:"string"}},required:["operation"],type:"object"},{oneOf:[{properties:{confirmation_digest:{$ref:"#/$defs/ManifestDigest"},confirmed_at:{$ref:"#/$defs/UtcMicros"},inspection_digest:{$ref:"#/$defs/ManifestDigest"},state:{const:"confirmed",type:"string"},target:{$ref:"#/$defs/NativeWorktreeTargetV1"}},required:["state","target","inspection_digest","confirmation_digest","confirmed_at"],type:"object"},{properties:{state:{const:"stale",type:"string"}},required:["state"],type:"object"},{properties:{state:{const:"denied",type:"string"}},required:["state"],type:"object"},{properties:{state:{const:"needs_inspection",type:"string"}},required:["state"],type:"object"},{properties:{state:{const:"unavailable",type:"string"}},required:["state"],type:"object"}],properties:{operation:{const:"confirmation",type:"string"}},required:["operation"],type:"object"},{$ref:"#/$defs/WorktreeCleanupRemovalV1",properties:{operation:{const:"removal",type:"string"}},required:["operation"],type:"object"},{$ref:"#/$defs/WorktreeCleanupReconciliationV1",properties:{operation:{const:"reconciliation",type:"string"}},required:["operation"],type:"object"}]},NativeWorktreeTargetV1:_A,ProjectId:_6,RefId:vf,RepositoryId:v$,ResolvedScope:vP,ScopeSetId:v1,ScopeSetRevision:v0,SourceSpan:bk,StackNodeId:bV,UtcMicros:bX,WorktreeCleanupReconciliationV1:{oneOf:[{properties:{confirmation_digest:{$ref:"#/$defs/ManifestDigest"},observed_at:{$ref:"#/$defs/UtcMicros"},state:{const:"removed",type:"string"}},required:["state","confirmation_digest","observed_at"],type:"object"},{properties:{state:{const:"still_present",type:"string"}},required:["state"],type:"object"},{properties:{state:{const:"durability_uncertain",type:"string"}},required:["state"],type:"object"},{properties:{state:{const:"stale",type:"string"}},required:["state"],type:"object"},{properties:{state:{const:"denied",type:"string"}},required:["state"],type:"object"},{properties:{state:{const:"unavailable",type:"string"}},required:["state"],type:"object"}]},WorktreeCleanupRemovalV1:{oneOf:[{properties:{confirmation_digest:{$ref:"#/$defs/ManifestDigest"},observed_at:{$ref:"#/$defs/UtcMicros"},state:{const:"removed",type:"string"}},required:["state","confirmation_digest","observed_at"],type:"object"},{properties:{confirmation_digest:{$ref:"#/$defs/ManifestDigest"},observed_at:{$ref:"#/$defs/UtcMicros"},state:{const:"already_removed",type:"string"}},required:["state","confirmation_digest","observed_at"],type:"object"},{properties:{state:{const:"denied",type:"string"}},required:["state"],type:"object"},{properties:{state:{const:"stale",type:"string"}},required:["state"],type:"object"},{properties:{state:{const:"durability_uncertain",type:"string"}},required:["state"],type:"object"},{properties:{state:{const:"unavailable",type:"string"}},required:["state"],type:"object"}]},WorktreeCoverageV1:{enum:["complete","partial"],type:"string"},WorktreeId:SJ,WorktreeInventoryEntryV1:{additionalProperties:!1,properties:{clean:{$ref:"#/$defs/WorktreeObservationV1",description:"Whether Git status contains no tracked or untracked changes."},evidence_digest:{$ref:"#/$defs/ManifestDigest"},head:{anyOf:[{$ref:"#/$defs/GitOidV1"},{type:"null"}]},holder:{$ref:"#/$defs/WorktreeObservationV1"},kind:{anyOf:[{$ref:"#/$defs/WorktreeKindV1"},{type:"null"}]},locked:{$ref:"#/$defs/WorktreeObservationV1"},observed_at:{$ref:"#/$defs/UtcMicros"},operation:{anyOf:[{$ref:"#/$defs/GitOperationStateV1"},{type:"null"}]},presence:{$ref:"#/$defs/WorktreePresenceV1"},reference:{anyOf:[{$ref:"#/$defs/RefId"},{type:"null"}]},target:{$ref:"#/$defs/NativeWorktreeTargetV1"},unique_data:{$ref:"#/$defs/WorktreeObservationV1"},worktree_id:{anyOf:[{$ref:"#/$defs/WorktreeId"},{type:"null"}]}},required:["target","presence","clean","locked","holder","unique_data","observed_at","evidence_digest"],type:"object"},WorktreeInventoryEpoch:SZ,WorktreeInventorySnapshotId:SQ,WorktreeKindV1:{description:"Native Git worktree kind visible to an authorized caller.",enum:["main","linked","bare"],type:"string"},WorktreeObservationV1:{enum:["yes","no","unknown"],type:"string"},WorktreePresenceV1:{description:"Presence is intentionally not a bool: stale, unavailable and foreign are\npolicy-safe states with different reconciliation consequences.",enum:["present","stale","unavailable","foreign"],type:"string"}},$schema:"https://json-schema.org/draft/2020-12/schema",description:"One typed result for every native-integration surface operation.",oneOf:[{additionalProperties:!1,description:"Frozen selection summary plus the exact sealed proof preflight accepts.",properties:{outcome:{const:"stack_snapshot",type:"string"},sealed_snapshot:{$ref:"#/$defs/NativeIntegrationSealedStackSnapshotV1"},selection:{$ref:"#/$defs/NativeIntegrationSnapshotProjectionV1"}},required:["outcome","selection","sealed_snapshot"],type:"object"},{additionalProperties:!1,description:"Bounded projection of one immutable preview.\n\nCandidate trees, conflict bodies, and ordered commit objects stay behind the\npreview digest: the surface reports identity, classification, and expiry so\na caller can approve exactly this preview and nothing else.",properties:{analysis:{anyOf:[{$ref:"#/$defs/NativeIntegrationAnalysisReportV1"},{type:"null"}]},created_at:{$ref:"#/$defs/UtcMicros"},disposition:{$ref:"#/$defs/NativeIntegrationPreviewDispositionV1"},expires_at:{$ref:"#/$defs/UtcMicros"},ordered_commit_count:{format:"uint32",minimum:0,type:"integer"},outcome:{const:"preview",type:"string"},preview_digest:{$ref:"#/$defs/ManifestDigest"},preview_id:{$ref:"#/$defs/NativeIntegrationPreviewId"},selection:{$ref:"#/$defs/NativeIntegrationSnapshotProjectionV1"}},required:["outcome","preview_id","preview_digest","selection","disposition","ordered_commit_count","created_at","expires_at"],type:"object"},{additionalProperties:!1,description:"Bounded projection of one issued one-use approval.\n\nThe approval digest is the caller's proof-of-issuance handle for apply;\nthe preview binding and expiry are audit metadata. No preview body,\ncandidate tree, or commit content crosses this boundary.",properties:{approval_digest:{$ref:"#/$defs/ManifestDigest"},approval_id:{$ref:"#/$defs/NativeIntegrationApprovalId"},capability:{$ref:"#/$defs/CapabilityId"},expires_at:{$ref:"#/$defs/UtcMicros"},issued_at:{$ref:"#/$defs/UtcMicros"},outcome:{const:"approval",type:"string"},preview_digest:{$ref:"#/$defs/ManifestDigest"},preview_id:{$ref:"#/$defs/NativeIntegrationPreviewId"},principal:{$ref:"#/$defs/ActorId"},transaction_id:{$ref:"#/$defs/NativeIntegrationTransactionId",description:"Daemon-minted identity consumed verbatim by apply, status, and cancel."}},required:["outcome","transaction_id","approval_id","preview_id","preview_digest","principal","capability","issued_at","expires_at","approval_digest"],type:"object"},{additionalProperties:!1,description:"Bounded projection of one durable terminal receipt.\n\nThe receipt digest and final ref/tree identity are audit metadata; no patch,\nworktree body, or source content crosses this boundary.",properties:{completed_at:{$ref:"#/$defs/UtcMicros"},final_ref_tip:{type:"string"},final_tree:{type:"string"},outcome:{const:"receipt",type:"string"},receipt_digest:{$ref:"#/$defs/ManifestDigest"},status:{$ref:"#/$defs/NativeIntegrationStatusProjectionV1"},terminal_outcome:{$ref:"#/$defs/NativeIntegrationTerminalOutcomeV1"}},required:["outcome","status","terminal_outcome","final_ref_tip","final_tree","completed_at","receipt_digest"],type:"object"},{additionalProperties:!1,description:"Bounded projection of one durable transaction status.",properties:{cancellation_requested:{type:"boolean"},destination_ref:{$ref:"#/$defs/RefId"},outcome:{const:"status",type:"string"},phase:{$ref:"#/$defs/NativeIntegrationPhaseV1"},phase_revision:{format:"uint64",minimum:0,type:"integer"},preview_digest:{$ref:"#/$defs/ManifestDigest"},preview_id:{$ref:"#/$defs/NativeIntegrationPreviewId"},repository_id:{$ref:"#/$defs/RepositoryId"},terminal_outcome:{anyOf:[{$ref:"#/$defs/NativeIntegrationTerminalOutcomeV1"},{type:"null"}]},transaction_id:{$ref:"#/$defs/NativeIntegrationTransactionId"},updated_at:{$ref:"#/$defs/UtcMicros"}},required:["outcome","transaction_id","preview_id","preview_digest","repository_id","destination_ref","phase","phase_revision","cancellation_requested","updated_at"],type:"object"},{description:"Cancellation disposition. After the native commit point the committed\nreceipt is returned instead of a cancellation claim.",oneOf:[{enum:["cancellation_requested","commit_point_passed"],type:"string"},{properties:{already_terminal:{$ref:"#/$defs/NativeIntegrationTerminalOutcomeV1"}},required:["already_terminal"],type:"object"}],properties:{outcome:{const:"cancellation",type:"string"}},required:["outcome"],type:"object"},{$ref:"#/$defs/NativeWorktreeSurfaceResultV1",properties:{outcome:{const:"worktree",type:"string"}},required:["outcome"],type:"object"},{properties:{outcome:{const:"unavailable",type:"string"},reason:{$ref:"#/$defs/NativeIntegrationSurfaceUnavailableV1"}},required:["outcome","reason"],type:"object"}],title:"NativeIntegrationSurfaceResultV1"},{$defs:{ManifestDigest:_p,NativeIntegrationPreviewId:_x},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"Exact approval-issuance request (the owner-decided sixth operation).\n\nThe caller names one unexpired preview by exact identity *and* digest;\napproving an identity without its content digest is unrepresentable. The\ndaemon mints the one-use approval bound to the requesting principal, the\napply capability, the current grant lineage, and a bounded expiry, none\nof which the caller can choose.",properties:{preview_digest:{$ref:"#/$defs/ManifestDigest"},preview_id:{$ref:"#/$defs/NativeIntegrationPreviewId"}},required:["preview_id","preview_digest"],title:"NativeIntegrationApproveSurfaceRequest",type:"object"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"Exact public input accepted by `tracedecay_ast_grep_rewrite`.",properties:{dry_run:{default:!1,type:"boolean"},expected_state:{description:"Exact `preview_digest`/`expected_state` returned by the dry run. Apply\nre-resolves the typed plan and rejects any candidate-state drift.",type:["string","null"]},idempotency_key:{type:["string","null"]},path:{type:"string"},pattern:{type:"string"},rewrite:{type:"string"},verify:{default:!1,type:"boolean"}},required:["path","pattern","rewrite"],title:"AstGrepRewriteSurfaceRequestV1",type:"object"},{$defs:{ActorId:f$,AstGrepResult:{description:"Result of an ast-grep rewrite operation.",properties:{diff:{description:"Bounded preview of the would-be change. Populated only on a successful\ndry run; `None` for real edits and for failures.",type:["string","null"]},dry_run:{description:"True when this was a dry run: the rewrite was resolved but nothing was\nwritten.",type:"boolean"},file_path:{type:"string"},message:{type:"string"},pattern:{type:"string"},rewrite:{type:"string"},success:{type:"boolean"}},required:["success","file_path","pattern","rewrite","message"],type:"object"},AuthorityReceipt:{additionalProperties:!1,description:"Proof that this request crossed the current authorization boundary.",properties:{authorized_scope_digest:{$ref:"#/$defs/ManifestDigest"},disclosure:{$ref:"#/$defs/DisclosureClass"},grant_digest:{$ref:"#/$defs/ManifestDigest"},grant_id:{type:"string"},grant_revision:{format:"uint64",minimum:0,type:"integer"},policy:{$ref:"#/$defs/PolicyDecisionRef"},revalidated_at:{$ref:"#/$defs/UtcMicros"}},required:["grant_id","grant_revision","grant_digest","authorized_scope_digest","disclosure","policy","revalidated_at"],type:"object"},CancellationObservation:ha,CancellationStage:hs,ComponentVersion:hT,Deadline:yb,DisclosureClass:{description:"Disclosure ceiling carried by an immutable grant and revalidated at sinks.",enum:["metadata","evidence","sensitive"],type:"string"},EditResult:{description:"Result of a single string replacement edit.",properties:{diff:{description:"Bounded preview diff of the would-be change. Populated only on a\nsuccessful dry run; `None` for real edits and for failures.",type:["string","null"]},dry_run:{description:"True when this was a dry run: validation, spans, and the resulting\ncontent were all computed, but nothing was written to disk.",type:"boolean"},file_path:{type:"string"},matched_str:{type:"string"},message:{type:"string"},new_str:{type:"string"},replaced_span:{description:"The exact source text that was replaced. For `replace_symbol` this is\nthe item's full span, including any leading doc-comment / attribute\nblock, so callers can recover its docs/attrs if the replacement\ndropped them; for `str_replace` it is the matched `old_str` text.\n`None` only on a failed edit, where nothing was resolved to replace.",type:["string","null"]},success:{type:"boolean"}},required:["success","file_path","matched_str","new_str","message"],type:"object"},EffectClass:yq,EffectReceipt:yI,EffectResult:{additionalProperties:!1,description:"Result of an admitted effect. `EffectUnknown` remains a receipt state and\ncannot be remapped into a pre-admission problem.",properties:{authority:{$ref:"#/$defs/AuthorityReceipt"},effect_class:{$ref:"#/$defs/EffectClass"},effect_id:{type:"string"},execution:{$ref:"#/$defs/OperationReceipt"},expected_state:{$ref:"#/$defs/ManifestDigest"},idempotency_key:{type:"string"},payload:{anyOf:[{$ref:"#/$defs/SourceEditDurableEffectPayloadV1"},{type:"null"}]},receipt:{$ref:"#/$defs/EffectReceipt"},reconciliation:{$ref:"#/$defs/ReconciliationState"}},required:["effect_id","effect_class","idempotency_key","authority","expected_state","execution","reconciliation","receipt"],type:"object"},EffectTermination:yx,InsertResult:{description:"Result of an insert-at operation.",properties:{anchor_line:{format:"uint32",minimum:0,type:"integer"},before:{type:"boolean"},content:{type:"string"},diff:{description:"Bounded preview diff of the would-be change. Populated only on a\nsuccessful dry run; `None` for real edits and for failures.",type:["string","null"]},dry_run:{description:"True when this was a dry run: the insertion point was resolved and the\nresulting content computed, but nothing was written to disk.",type:"boolean"},file_path:{type:"string"},message:{type:"string"},success:{type:"boolean"}},required:["success","file_path","anchor_line","content","before","message"],type:"object"},ManifestDigest:_p,MoveHint:{description:"One evidence-based, actionable finding produced by the `move_symbol` impact\nengine. Each hint points at a concrete file/line and carries a suggestion\nthe caller (or a follow-up refactor) can act on. Hints are derived from graph\nedges (callers/callees) and parse-level facts (identifiers, `use` lines,\nmodule declarations), never speculative noise.",properties:{detail:{description:"Human-readable description of what the move breaks or affects.",type:"string"},file:{description:"File the finding concerns (the caller's file, the destination, or the\nsource), project-relative.",type:"string"},kind:{description:"Taxonomy tag: `caller_reference`, `dependency_broken`, `import_needed`,\n`visibility_required`, `collision`, `module_missing`, `cycle_risk`,\n`orphaned_import`, or `cfg_context`.",type:"string"},line:{description:"1-based line the finding concerns, when a specific site is known.",format:"uint32",minimum:0,type:["integer","null"]},suggestion:{description:"The exact change to make (e.g. a `use` line to add, a path to rewrite, a\nvisibility to escalate). `None` when no single mechanical fix applies.",type:["string","null"]}},required:["kind","file","detail"],type:"object"},MoveResult:{description:"Result of a `move_symbol` operation: the moved span, a dry-run diff of the\nsource + destination files, and the centerpiece, the impact report of\neverything the move breaks or that needs attention.",properties:{applied_imports:{description:"`use` lines auto-inserted at the destination because the moved body's\ndependency on them was unambiguous. Reported so the caller sees exactly\nwhat the move added.",items:{type:"string"},type:"array"},dest_file:{type:"string"},diff:{description:"Combined preview diff of the source (removal) and destination (insertion)\nfiles. Populated on a successful dry run; `None` for real moves.",type:["string","null"]},dry_run:{description:"True when this was a dry run: spans, the destination shape, and the\nimpact report were all computed, but nothing was written to disk.",type:"boolean"},impact:{description:"The impact report: every actionable finding. Empty on a truly clean\nmove.",items:{$ref:"#/$defs/MoveHint"},type:"array"},message:{type:"string"},moved_span:{description:"The exact source span that was moved, including its leading\ndoc-comment / attribute block. `None` on failure.",type:["string","null"]},source_file:{type:"string"},success:{type:"boolean"},symbol:{description:"The resolved symbol that was (or would be) moved, `name (kind)`.",type:"string"}},required:["success","symbol","source_file","dest_file","message"],type:"object"},MultiEditResult:{description:"Result of a multi-string replacement edit.",properties:{applied_count:{format:"uint",minimum:0,type:"integer"},diff:{description:"Bounded preview diff of the would-be change. Populated only on a\nsuccessful dry run; `None` for real edits and for failures.",type:["string","null"]},dry_run:{description:"True when this was a dry run: replacements were validated and the\nresulting content computed, but nothing was written to disk.",type:"boolean"},file_path:{type:"string"},message:{type:"string"},success:{type:"boolean"}},required:["success","file_path","applied_count","message"],type:"object"},OperationBudgetUsage:_F,OperationReceipt:_L,OperationTermination:_U,PolicyDecisionRef:{additionalProperties:!1,description:"A policy decision pinned into a receipt or provider identity.",properties:{decision_id:{type:"string"},digest:{$ref:"#/$defs/ManifestDigest"},evaluator_revision:{$ref:"#/$defs/ComponentVersion"},revision:{format:"uint64",minimum:0,type:"integer"}},required:["decision_id","revision","digest","evaluator_revision"],type:"object"},ProjectId:_6,ReconciliationState:{description:"Reconciliation state retained after an admitted effect.",enum:["pending","reconciled","failed"],type:"string"},RefId:vf,RenameDispositionCountsV1:{additionalProperties:!1,properties:{blocked:{format:"uint",minimum:0,type:"integer"},changed:{format:"uint",minimum:0,type:"integer"},skipped:{format:"uint",minimum:0,type:"integer"},unchanged:{format:"uint",minimum:0,type:"integer"}},required:["changed","unchanged","skipped","blocked"],type:"object"},RenameFileEditV1:{additionalProperties:!1,description:"One file a rename changed (or would change), with the exact bound-site count.",properties:{file:{type:"string"},replaced_count:{format:"uint",minimum:0,type:"integer"}},required:["file","replaced_count"],type:"object"},RenameHazardKindV1:{enum:["invalid_identifier","stale_evidence","ambiguous_symbol","namespace_collision","changed_resolution","shadowing","unsupported_syntax","macro_expansion","generated_source","overlapping_site"],type:"string"},RenameHazardV1:{additionalProperties:!1,properties:{blocking:{type:"boolean"},kind:{$ref:"#/$defs/RenameHazardKindV1"},message:{type:"string"},site_id:{type:["string","null"]}},required:["kind","blocking","message"],type:"object"},RenameImpactV1:{additionalProperties:!1,properties:{affected_files:{items:{type:"string"},type:"array"},affected_tests:{items:{type:"string"},type:"array"},callers:{items:{type:"string"},type:"array"},reexports:{items:{type:"string"},type:"array"}},required:["callers","reexports","affected_files","affected_tests"],type:"object"},RenameProtectedValueCategoryV1:{enum:["wire_value","serialized_name","sql_identifier","persisted_name","schema_epoch","hash_domain","protocol_name","contract_snapshot","string_literal","byte_literal"],type:"string"},RenameProtectedValueV1:{additionalProperties:!1,description:"A byte-exact stable value deliberately preserved by the rename.",properties:{category:{$ref:"#/$defs/RenameProtectedValueCategoryV1"},end_byte:{format:"uint64",minimum:0,type:"integer"},exact_bytes:{type:"string"},file:{type:"string"},site_id:{type:"string"},start_byte:{format:"uint64",minimum:0,type:"integer"}},required:["site_id","file","start_byte","end_byte","category","exact_bytes"],type:"object"},RenameResult:{description:"The same typed payload is serialized by application, CLI, and MCP paths.",properties:{diff:{type:["string","null"]},dispositions:{$ref:"#/$defs/RenameDispositionCountsV1"},dry_run:{type:"boolean"},files:{items:{$ref:"#/$defs/RenameFileEditV1"},type:"array"},graph_revision:{anyOf:[{$ref:"#/$defs/ManifestDigest"},{type:"null"}],description:"Digest of the admitted generation, exact target, same-name symbols,\nand graph edges used to classify bound and protected sites."},hazards:{items:{$ref:"#/$defs/RenameHazardV1"},type:"array"},impact:{$ref:"#/$defs/RenameImpactV1"},message:{type:"string"},new_name:{type:"string"},old_name:{type:"string"},plan_digest:{anyOf:[{$ref:"#/$defs/ManifestDigest"},{type:"null"}],description:"Digest of the complete typed site/hazard/protected-value manifest."},preview_digest:{anyOf:[{$ref:"#/$defs/ManifestDigest"},{type:"null"}],description:"Exact candidate-state digest that apply must echo as `expected_state`."},preview_id:{anyOf:[{$ref:"#/$defs/ManifestDigest"},{type:"null"}],description:"Digest-addressed identity of the bound symbol plus proposed name."},protected_values:{items:{$ref:"#/$defs/RenameProtectedValueV1"},type:"array"},reference_count:{format:"uint",minimum:0,type:"integer"},repository_revision:{default:null,description:"Current Git HEAD when the worktree has one; dirty bytes remain bound by\n`preview_digest` independently of this revision.",type:["string","null"]},sites:{items:{$ref:"#/$defs/RenameSiteV1"},type:"array"},success:{type:"boolean"},symbol:{description:"Qualified name of the renamed symbol at plan time.",type:"string"}},required:["success","symbol","old_name","new_name","reference_count","dispositions","impact","message"],type:"object"},RenameSiteDispositionV1:{enum:["changed","unchanged","skipped","blocked"],type:"string"},RenameSiteKindV1:{enum:["declaration","import","reexport","qualified_path","unqualified_path","annotation","generic_argument","constructor","pattern","trait_declaration","trait_implementation","resolved_call","inherent_method","enum_variant","test","example","documentation","protected_value","unresolved_text"],type:"string"},RenameSiteV1:{additionalProperties:!1,description:"One exact old-name occurrence and the rename planner's disposition.",properties:{disposition:{$ref:"#/$defs/RenameSiteDispositionV1"},end_byte:{format:"uint64",minimum:0,type:"integer"},expected_bytes:{type:"string"},file:{type:"string"},kind:{$ref:"#/$defs/RenameSiteKindV1"},line:{format:"uint32",minimum:0,type:"integer"},reason:{type:"string"},replacement_bytes:{type:"string"},site_id:{type:"string"},source_node_id:{description:"Canonical source `SymbolOccurrenceId` that attested this site.",type:["string","null"]},start_byte:{format:"uint64",minimum:0,type:"integer"}},required:["site_id","kind","disposition","file","line","start_byte","end_byte","expected_bytes","replacement_bytes","reason"],type:"object"},RepositoryId:v$,ResolvedScope:vP,RetrievalAnchorId:vx,SourceEditCancelledResultV1:{description:"Terminal payload when cancellation is observed before an edit commits.",properties:{cancelled:{type:"boolean"},message:{type:"string"},success:{type:"boolean"}},required:["success","cancelled","message"],type:"object"},SourceEditDiagnosticV1:{properties:{code:{type:"string"},line:{format:"uint32",minimum:0,type:"integer"},message:{type:"string"}},required:["line","code","message"],type:"object"},SourceEditDurableEffectPayloadV1:{additionalProperties:!1,description:"Body-free source-edit evidence retained inside durable effect receipts.\n\nThis payload intentionally contains no caller-supplied edit text, preview\ndiff, moved span, import, diagnostic, or impact detail. It is also the\nexact replay outcome, so replay never fabricates a live edit body.",properties:{before:{type:["boolean","null"]},cancelled:{type:"boolean"},change_count:{format:"uint",minimum:0,type:["integer","null"]},durable_metadata_only:{type:"boolean"},effect_unknown:{type:"boolean"},failed:{type:"boolean"},files:{items:{type:"string"},type:"array"},finding_count:{format:"uint",minimum:0,type:["integer","null"]},import_count:{format:"uint",minimum:0,type:["integer","null"]},line:{format:"uint32",minimum:0,type:["integer","null"]},message:{type:"string"},observed_state:{anyOf:[{$ref:"#/$defs/ManifestDigest"},{type:"null"}],description:"Exact candidate-file observation from an inspection attempt."},operation:{$ref:"#/$defs/UseCaseId"},reconciled:{type:"boolean"},success:{type:"boolean"},timed_out:{type:"boolean"}},required:["operation","success","files","failed","cancelled","timed_out","effect_unknown","reconciled","durable_metadata_only","message"],type:"object"},SourceEditEffectUnknownResultV1:{description:"Terminal payload when publication may have occurred and inspection is required.",properties:{effect_unknown:{type:"boolean"},message:{type:"string"},success:{type:"boolean"}},required:["success","effect_unknown","message"],type:"object"},SourceEditFailedResultV1:{description:"Terminal payload when an edit is refused before it can publish an effect.",properties:{failed:{type:"boolean"},message:{type:"string"},success:{type:"boolean"}},required:["success","failed","message"],type:"object"},SourceEditReconciledResultV1:{description:"Terminal payload returned by explicit reconciliation.",properties:{message:{type:"string"},reconciled:{type:"boolean"},success:{type:"boolean"}},required:["success","reconciled","message"],type:"object"},SourceEditTimedOutResultV1:{description:"Terminal payload when an edit deadline expires before commit.",properties:{message:{type:"string"},success:{type:"boolean"},timed_out:{type:"boolean"}},required:["success","timed_out","message"],type:"object"},SourceEditVerificationStateV1:{enum:["clean","errors","unavailable","failed","cancelled"],type:"string"},SourceEditVerificationV1:{properties:{error_count:{format:"uint",minimum:0,type:"integer"},first_errors:{items:{$ref:"#/$defs/SourceEditDiagnosticV1"},type:"array"},message:{type:["string","null"]},state:{$ref:"#/$defs/SourceEditVerificationStateV1"},verdict:{type:"string"},warning_count:{format:"uint",minimum:0,type:"integer"}},required:["state","verdict","error_count","warning_count","first_errors"],type:"object"},UseCaseId:bZ,UtcMicros:bX,WorktreeId:SJ},$schema:"https://json-schema.org/draft/2020-12/schema",anyOf:[{$ref:"#/$defs/SourceEditDurableEffectPayloadV1"},{$ref:"#/$defs/EditResult"},{$ref:"#/$defs/MultiEditResult"},{$ref:"#/$defs/InsertResult"},{$ref:"#/$defs/AstGrepResult"},{$ref:"#/$defs/MoveResult"},{$ref:"#/$defs/RenameResult"},{$ref:"#/$defs/SourceEditFailedResultV1"},{$ref:"#/$defs/SourceEditCancelledResultV1"},{$ref:"#/$defs/SourceEditTimedOutResultV1"},{$ref:"#/$defs/SourceEditEffectUnknownResultV1"},{$ref:"#/$defs/SourceEditReconciledResultV1"}],description:"Canonical result returned directly by every source-edit use case.",properties:{effect:{anyOf:[{$ref:"#/$defs/EffectResult"},{type:"null"}]},expected_state:{$ref:"#/$defs/ManifestDigest"},predicted_state:{anyOf:[{$ref:"#/$defs/ManifestDigest"},{type:"null"}]},replayed:{type:"boolean"},verification:{anyOf:[{$ref:"#/$defs/SourceEditVerificationV1"},{type:"null"}]}},required:["expected_state","replayed"],title:"SourceEditSurfaceResultV1",type:"object"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{lang:{description:"Optional language key to force (e.g. 'rust', 'typescript', 'python').\nOmit to auto-detect each file from its extension.",type:["string","null"]},max_results:{description:"Maximum number of matches to return (default: 50, max: 200).",format:"uint32",minimum:0,type:["integer","null"]},path_glob:{description:"Optional glob restricting which files are searched, matched against\nproject-relative paths (e.g. 'src/**/*.rs').",type:["string","null"]},pattern:{description:"ast-grep structural pattern (SGPattern syntax), e.g.\n'reserve_stock($$$)' or 'Result<$T, $E>'.",type:"string"}},required:["pattern"],title:"AstGrepSearchSurfaceRequestV1",type:"object"},{$defs:{AstGrepSearchMatchV1:{additionalProperties:!1,properties:{column:{format:"uint32",minimum:0,type:"integer"},file:{type:"string"},lang:{type:"string"},line:{format:"uint32",minimum:0,type:"integer"},line_text:{type:"string"},match:{type:"string"}},required:["file","line","column","lang","match","line_text"],type:"object"},CodeIndexBuildBlockedReasonV1:hv,CodeIndexConvergenceParkedV1:hb,CodeIndexStalenessStateV1:hw,PrimitiveFreshnessStateV1:_K,PrimitiveIndexingStateV1:_J,PrimitiveSearchFreshnessV1:_Y},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{files_scanned:{format:"uint64",minimum:0,type:"integer"},freshness:{anyOf:[{$ref:"#/$defs/PrimitiveSearchFreshnessV1"},{type:"null"}],description:"The worktree verdict a served graph read opens with."},match_count:{format:"uint64",minimum:0,type:"integer"},results:{items:{$ref:"#/$defs/AstGrepSearchMatchV1"},type:"array"},truncated:{type:"boolean"}},required:["results","match_count","files_scanned","truncated"],title:"AstGrepSearchResultV1",type:"object"},{$defs:{AutomationRunArtifactKind:{enum:["traces","feedback","generated_evals","validation_gate","optimizer_diagnosis","codex_handoff"],type:"string"}},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{kind:{$ref:"#/$defs/AutomationRunArtifactKind",description:"Artifact kind to read."},run_id:{description:"Automation run id to inspect.",type:"string"}},required:["run_id","kind"],title:"AutomationRunArtifactViewSurfaceRequestV1",type:"object"},{$defs:{AutomationReadStatusV1:fG,AutomationRunArtifact:fK},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{artifact:{$ref:"#/$defs/AutomationRunArtifact"},payload:{description:"The hash-verified artifact document, as the run wrote it."},run_id:{type:"string"},status:{$ref:"#/$defs/AutomationReadStatusV1"}},required:["status","run_id","artifact","payload"],title:"AutomationRunArtifactViewResultV1",type:"object"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{limit:{description:"Maximum run records to return (default: 50, max: 200).",format:"uint32",maximum:200,minimum:1,type:["integer","null"]}},title:"AutomationRunListSurfaceRequestV1",type:"object"},{$defs:{AgentTaskKind:fk,AutomationReadStatusV1:fG,AutomationRunListEntryV1:{additionalProperties:!1,description:"One run as the list shows it: the ledger record's identity, outcome and\nartifact kinds, without the artifact payloads or operation bodies.",properties:{accepted_count:{format:"uint",minimum:0,type:"integer"},artifact_kinds:{items:{type:"string"},type:"array"},backend:{type:"string"},completed_at:{type:"string"},error:{type:["string","null"]},model:{type:["string","null"]},rejected_count:{format:"uint",minimum:0,type:"integer"},reviewed_count:{format:"uint",minimum:0,type:"integer"},run_id:{type:"string"},skipped_count:{format:"uint",minimum:0,type:"integer"},started_at:{type:"string"},status:{$ref:"#/$defs/AutomationRunStatus"},task:{$ref:"#/$defs/AgentTaskKind"},task_key:{type:["string","null"]},trigger:{$ref:"#/$defs/AutomationTrigger"}},required:["run_id","task","trigger","backend","status","reviewed_count","accepted_count","rejected_count","skipped_count","started_at","completed_at","artifact_kinds"],type:"object"},AutomationRunPageCompletenessV1:{description:"Whether a run page read every ledger row it examined.",oneOf:[{const:"known",description:"Every examined row decoded.",type:"string"},{const:"partial",description:"The page skipped malformed rows or more runs exist past it.",type:"string"}]},AutomationRunScopeV1:fJ,AutomationRunStatus:fZ,AutomationTrigger:f1},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{completeness:{$ref:"#/$defs/AutomationRunPageCompletenessV1"},count:{format:"uint",minimum:0,type:"integer"},has_more:{type:"boolean"},limit:{format:"uint32",minimum:0,type:"integer"},malformed_row_count:{format:"uint",minimum:0,type:"integer"},runs:{items:{$ref:"#/$defs/AutomationRunListEntryV1"},type:"array"},scope:{$ref:"#/$defs/AutomationRunScopeV1"},status:{$ref:"#/$defs/AutomationReadStatusV1"}},required:["status","scope","runs","count","limit","has_more","malformed_row_count","completeness"],title:"AutomationRunListResultV1",type:"object"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{run_id:{description:"Exact automation run id to inspect.",minLength:1,type:"string"}},required:["run_id"],title:"AutomationRunViewSurfaceRequestV1",type:"object"},{$defs:{AgentTaskFailureClass:{oneOf:[{enum:["retryable","permanent","timeout","unavailable","denied","disconnected","malformed_output"],type:"string"},{const:"input_too_large",description:"The backend refused the request because it exceeds its input or\ncontext-window limit.",type:"string"}]},AgentTaskKind:fk,AgentTaskRetryAttempt:{properties:{attempt:{format:"uint32",minimum:0,type:"integer"},backoff_millis:{format:"uint64",minimum:0,type:"integer"},failure_classification:{anyOf:[{$ref:"#/$defs/AgentTaskFailureClass"},{type:"null"}]},succeeded:{type:"boolean"}},required:["attempt","succeeded","backoff_millis"],type:"object"},AutomationReadStatusV1:fG,AutomationRunArtifact:fK,AutomationRunLedgerRecord:{properties:{accepted_count:{format:"uint",minimum:0,type:"integer"},applied_ops:!0,artifacts:{items:{$ref:"#/$defs/AutomationRunArtifact"},type:"array"},backend:{type:"string"},backend_attempt_count:{default:0,format:"uint",minimum:0,type:"integer"},backend_attempts:{items:{$ref:"#/$defs/AgentTaskRetryAttempt"},type:"array"},backend_identity:{description:"The durable backend/configuration identity this run executed under.\n\nA settled deterministic failure stays suppressed only while this\nmatches the identity now configured, so the scheduler can re-admit the\ntask the moment the backend or configuration changes. Records written\nbefore this field existed carry `None` and never suppress: an\nunidentified failure cannot be shown to have failed under the current\nidentity.",type:["string","null"]},completed_at:{type:"string"},completed_at_micros:{format:"int64",type:["integer","null"]},error:{type:["string","null"]},error_classification:{anyOf:[{$ref:"#/$defs/AgentTaskFailureClass"},{type:"null"}]},error_retryable:{type:["boolean","null"]},evidence_hash:{type:["string","null"]},fallback_status:{type:["string","null"]},host_mode:{type:["string","null"]},input_hash:{type:["string","null"]},model:{type:["string","null"]},output_hash:{type:["string","null"]},prompt_version:{type:["string","null"]},proposed_ops:!0,rejected_count:{format:"uint",minimum:0,type:"integer"},rejected_ops:!0,report_ref:!0,response_schema:!0,reviewed_count:{default:0,format:"uint",minimum:0,type:"integer"},run_id:{type:"string"},schema_version:{format:"uint32",minimum:0,type:"integer"},session_evidence_budget_stage:{anyOf:[{$ref:"#/$defs/SessionRetrievalBudgetStageV1"},{type:"null"}],description:"Exhausted retrieval boundary of a `session_evidence_budget_exhausted`\nskip; present exactly on those skips."},skipped_count:{default:0,format:"uint",minimum:0,type:"integer"},started_at:{type:"string"},status:{$ref:"#/$defs/AutomationRunStatus"},strict_json:{type:["boolean","null"]},task:{$ref:"#/$defs/AgentTaskKind"},task_key:{type:["string","null"]},trigger:{$ref:"#/$defs/AutomationTrigger"},validation_report:!0},required:["schema_version","run_id","trigger","task","backend","status","accepted_count","rejected_count","started_at","completed_at"],type:"object"},AutomationRunScopeV1:fJ,AutomationRunStatus:fZ,AutomationTrigger:f1,SessionRetrievalBudgetStageV1:ba},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{run:{$ref:"#/$defs/AutomationRunLedgerRecord"},scope:{$ref:"#/$defs/AutomationRunScopeV1"},status:{$ref:"#/$defs/AutomationReadStatusV1"}},required:["status","scope","run"],title:"AutomationRunViewResultV1",type:"object"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{base:{description:"Base local branch name (e.g. 'main').",type:"string"},cursor:{description:"Authenticated continuation cursor returned by the preceding exact\nbranch-diff page.",type:["string","null"]},file:{description:"Optional file path filter, only show diffs for symbols in this file.",type:["string","null"]},head:{description:"Head local branch name (e.g. 'feature/foo'). Defaults to the current\nbranch.",type:["string","null"]},kind:{description:"Optional kind filter, only show diffs for this symbol kind (e.g.\n'function', 'struct').",type:["string","null"]},limit:{description:"Maximum combined added, removed, and changed results (default: 100,\nat most 256).",format:"uint32",minimum:0,type:["integer","null"]}},required:["base"],title:"BranchDiffSurfaceRequestV1",type:"object"},{$defs:{BranchDiffCompleteV1:{additionalProperties:!1,properties:{base:{type:"string"},base_generation:{type:"string"},base_revision:{type:"string"},base_tree:{type:"string"},changes:{items:{$ref:"#/$defs/BranchSymbolChangeV1"},type:"array"},freshness:{anyOf:[{$ref:"#/$defs/PrimitiveSearchFreshnessV1"},{type:"null"}],description:"The worktree verdict a served graph read opens with."},head:{type:"string"},head_generation:{type:"string"},head_revision:{type:"string"},head_tree:{type:"string"},status:{$ref:"#/$defs/GitReadCompleteV1"},summary:{$ref:"#/$defs/BranchDiffSummaryV1"},total_changes:{format:"uint",minimum:0,type:"integer"}},required:["status","base","head","base_revision","base_tree","head_revision","head_tree","base_generation","head_generation","total_changes","summary","changes"],type:"object"},BranchDiffPartialV1:{additionalProperties:!1,properties:{base:{type:"string"},base_generation:{type:"string"},base_revision:{type:"string"},base_tree:{type:"string"},changes:{items:{$ref:"#/$defs/BranchSymbolChangeV1"},type:"array"},freshness:{anyOf:[{$ref:"#/$defs/PrimitiveSearchFreshnessV1"},{type:"null"}],description:"The worktree verdict a served graph read opens with."},head:{type:"string"},head_generation:{type:"string"},head_revision:{type:"string"},head_tree:{type:"string"},next_cursor:{type:"string"},reason:{$ref:"#/$defs/GitResultLimitV1"},status:{$ref:"#/$defs/GitReadPartialV1"},summary:{$ref:"#/$defs/BranchDiffSummaryV1"},total_changes:{format:"uint",minimum:0,type:"integer"}},required:["status","reason","base","head","base_revision","base_tree","head_revision","head_tree","base_generation","head_generation","total_changes","next_cursor","summary","changes"],type:"object"},BranchDiffReferenceUnavailableV1:{additionalProperties:!1,description:"Either branch of `base..head` does not resolve to a local commit.",properties:{base_or_head:{description:"The requested range, `base..head`.",type:"string"},reason:{type:"string"},retryable:{type:"boolean"},status:{$ref:"#/$defs/GitReadUnavailableV1"}},required:["status","base_or_head","reason","retryable"],type:"object"},BranchDiffSummaryV1:{additionalProperties:!1,properties:{added:{format:"uint",minimum:0,type:"integer"},changed:{format:"uint",minimum:0,type:"integer"},removed:{format:"uint",minimum:0,type:"integer"}},required:["added","removed","changed"],type:"object"},BranchDiffUnavailableV1:{additionalProperties:!1,description:"No sealed code-index generations compare the two branches' commits.",properties:{base:{type:"string"},base_generation:{type:["string","null"]},base_revision:{type:"string"},head:{type:"string"},head_generation:{type:["string","null"]},head_revision:{type:"string"},reason:{type:"string"},retryable:{type:"boolean"},status:{$ref:"#/$defs/GitReadUnavailableV1"}},required:["status","base","head","base_revision","head_revision","reason","retryable"],type:"object"},BranchSymbolChangeV1:{oneOf:[{additionalProperties:!1,properties:{change:{const:"added",type:"string"},symbol:{$ref:"#/$defs/BranchSymbolV1"}},required:["change","symbol"],type:"object"},{additionalProperties:!1,properties:{change:{const:"removed",type:"string"},symbol:{$ref:"#/$defs/BranchSymbolV1"}},required:["change","symbol"],type:"object"},{additionalProperties:!1,properties:{base:{$ref:"#/$defs/BranchSymbolV1"},change:{const:"changed",type:"string"},head:{$ref:"#/$defs/BranchSymbolV1"}},required:["change","base","head"],type:"object"}]},BranchSymbolV1:{additionalProperties:!1,description:"A symbol in one branch's sealed generation.",properties:{content_digest:{type:"string"},file:{type:"string"},file_identity:{type:"string"},file_occurrence_id:{type:"string"},kind:{type:"string"},name:{type:"string"},qualified_name:{type:"string"},symbol_identity:{type:"string"},symbol_occurrence_id:{type:"string"}},required:["symbol_identity","symbol_occurrence_id","file_identity","file_occurrence_id","name","qualified_name","kind","file","content_digest"],type:"object"},CodeIndexBuildBlockedReasonV1:hv,CodeIndexConvergenceParkedV1:hb,CodeIndexStalenessStateV1:hw,GitReadCompleteV1:gC,GitReadPartialV1:gT,GitReadUnavailableV1:gO,GitResultLimitV1:gE,PrimitiveFreshnessStateV1:_K,PrimitiveIndexingStateV1:_J,PrimitiveSearchFreshnessV1:_Y},$schema:"https://json-schema.org/draft/2020-12/schema",anyOf:[{$ref:"#/$defs/BranchDiffCompleteV1"},{$ref:"#/$defs/BranchDiffPartialV1"},{$ref:"#/$defs/BranchDiffUnavailableV1"},{$ref:"#/$defs/BranchDiffReferenceUnavailableV1"}],title:"BranchDiffResultV1"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{cursor:{description:"Continuation cursor returned as `next_cursor` by the preceding page\nwith the same `limit`.",type:["string","null"]},limit:{description:"Maximum local refs to return (default: 100, at most 128).",format:"uint32",minimum:0,type:["integer","null"]}},title:"BranchListSurfaceRequestV1",type:"object"},{$defs:{BranchListPageV1:{additionalProperties:!1,properties:{examined:{format:"uint",minimum:0,type:"integer"},freshness:{anyOf:[{$ref:"#/$defs/PrimitiveSearchFreshnessV1"},{type:"null"}],description:"The worktree verdict a served graph read opens with."},limit:{format:"uint",minimum:0,type:"integer"},next_cursor:{type:["string","null"]},reason:{anyOf:[{$ref:"#/$defs/GitReferenceLimitV1"},{type:"null"}]},snapshot_count:{format:"uint",minimum:0,type:"integer"},snapshots:{items:{$ref:"#/$defs/BranchSnapshotEntryV1"},type:"array"},status:{$ref:"#/$defs/GitPageStatusV1"}},required:["status","snapshot_count","examined","limit","snapshots"],type:"object"},BranchReadUnavailableV1:{additionalProperties:!1,description:"A local branch read refused before any snapshot was taken.",properties:{reason:{type:"string"},retryable:{type:"boolean"},status:{$ref:"#/$defs/GitReadUnavailableV1"}},required:["status","reason","retryable"],type:"object"},BranchSnapshotEntryV1:{additionalProperties:!1,properties:{branch:{type:"string"},source_revision:{type:"string"},source_tree:{type:"string"}},required:["branch","source_revision","source_tree"],type:"object"},CodeIndexBuildBlockedReasonV1:hv,CodeIndexConvergenceParkedV1:hb,CodeIndexStalenessStateV1:hw,GitPageStatusV1:gj,GitReadUnavailableV1:gO,GitReferenceLimitV1:{enum:["reference_limit"],type:"string"},PrimitiveFreshnessStateV1:_K,PrimitiveIndexingStateV1:_J,PrimitiveSearchFreshnessV1:_Y},$schema:"https://json-schema.org/draft/2020-12/schema",anyOf:[{$ref:"#/$defs/BranchListPageV1"},{$ref:"#/$defs/BranchReadUnavailableV1"}],title:"BranchListResultV1"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{branch:{description:"Exact local branch name to search.",type:"string"},cursor:{description:"Authenticated continuation cursor returned by the preceding exact\nbranch-search page.",type:["string","null"]},limit:{description:"Maximum number of results to return (default: 10, at most 500).",format:"uint32",minimum:0,type:["integer","null"]},query:{description:"Search query string to match against symbol names.",type:"string"}},required:["branch","query"],title:"BranchSearchSurfaceRequestV1",type:"object"},{$defs:{BranchReferenceUnavailableV1:{additionalProperties:!1,description:"The named branch does not resolve to a local commit.",properties:{branch:{type:"string"},reason:{type:"string"},retryable:{type:"boolean"},status:{$ref:"#/$defs/GitReadUnavailableV1"}},required:["status","branch","reason","retryable"],type:"object"},BranchSearchHitV1:{additionalProperties:!1,properties:{branch:{type:"string"},candidate:{$ref:"#/$defs/RankedCandidate"},code_generation:{type:"string"},kind:{type:["string","null"]},name:{type:["string","null"]},path:{type:["string","null"]},qualified_name:{type:["string","null"]},source_reference:{type:"string"},source_revision:{type:"string"},source_tree:{type:"string"}},required:["candidate","branch","source_reference","source_revision","source_tree","code_generation"],type:"object"},BranchSearchPageV1:{additionalProperties:!1,properties:{branch:{type:"string"},code_generation:{type:"string"},freshness:{anyOf:[{$ref:"#/$defs/PrimitiveSearchFreshnessV1"},{type:"null"}],description:"The worktree verdict a served graph read opens with."},next_cursor:{type:["string","null"]},reason:{anyOf:[{$ref:"#/$defs/GitResultLimitV1"},{type:"null"}]},results:{items:{$ref:"#/$defs/BranchSearchHitV1"},type:"array"},source_reference:{type:"string"},source_revision:{type:"string"},source_tree:{type:"string"},status:{$ref:"#/$defs/GitPageStatusV1"}},required:["status","branch","source_reference","source_revision","source_tree","code_generation","results"],type:"object"},BranchSearchUnavailableV1:{additionalProperties:!1,description:"No sealed code-index generation answers for the branch's commit.",properties:{branch:{type:"string"},code_generation:{type:["string","null"]},reason:{type:"string"},retryable:{type:"boolean"},source_revision:{type:"string"},status:{$ref:"#/$defs/GitReadUnavailableV1"}},required:["status","branch","source_revision","reason","retryable"],type:"object"},CalibrationProfileId:ho,CandidateContribution:hd,CodeIndexBuildBlockedReasonV1:hv,CodeIndexConvergenceParkedV1:hb,CodeIndexStalenessStateV1:hw,ComponentRevision:hC,EvidenceRole:yT,ExactClass:yO,FileOccurrenceId:gd,FixedPointScore:gl,FreshnessCompatibilityV1:gp,FusedCandidate:gu,GitPageStatusV1:gj,GitReadUnavailableV1:gO,GitResultLimitV1:gE,LogicalCopyClusterId:_o,LogicalEvidenceId:_n,OccurrenceProvenance:_D,PrimitiveFreshnessStateV1:_K,PrimitiveIndexingStateV1:_J,PrimitiveSearchFreshnessV1:_Y,RankedCandidate:{additionalProperties:!1,description:"A fused candidate with its final deterministic ordinal.",properties:{candidate:{$ref:"#/$defs/FusedCandidate"},final_ordinal:{format:"uint32",minimum:0,type:"integer"}},required:["candidate","final_ordinal"],type:"object"},RankingDecision:vu,RankingDecisionKind:vm,RepositoryId:v$,RetrievalAnchorId:vx,RetrievalSourceRoleV1:vT,RetrieverKind:vE,ScoreDomainId:v6,SessionOrThreadId:bt,SourceFreshness:b_,SourceInstanceKey:bv,SourceNamespace:b$,SourceOccurrenceId:bS,UtcMicros:bX},$schema:"https://json-schema.org/draft/2020-12/schema",anyOf:[{$ref:"#/$defs/BranchSearchPageV1"},{$ref:"#/$defs/BranchSearchUnavailableV1"},{$ref:"#/$defs/BranchReferenceUnavailableV1"}],title:"BranchSearchResultV1"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{qualified_name:{description:"The exact qualified name to look up.",type:"string"}},required:["qualified_name"],title:"ByQualifiedNameSurfaceRequestV1",type:"object"},{$defs:{PrimitiveSymbolLocationV1:_0},$schema:"https://json-schema.org/draft/2020-12/schema",description:"Every indexed symbol sharing one qualified name (overloads, generics,\nseparate impl blocks).",items:{$ref:"#/$defs/PrimitiveSymbolLocationV1"},title:"ByQualifiedNameResultV1",type:"array"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{from_node_id:{type:"string"},maximum_depth:{default:8,format:"uint32",minimum:0,type:"integer"},to_node_id:{type:"string"}},required:["from_node_id","to_node_id"],title:"CallChainPrimitiveRequest",type:"object"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{edge_kinds:{items:{type:"string"},type:"array"},node_ids:{items:{type:"string"},type:"array"}},required:["node_ids","edge_kinds"],title:"CallChainPrimitiveResult",type:"object"},{$defs:{NativeIntegrationTransactionId:_O},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{transaction_id:{$ref:"#/$defs/NativeIntegrationTransactionId"}},required:["transaction_id"],title:"NativeIntegrationCancelSurfaceRequest",type:"object"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{from_ref:{description:"Starting git ref (commit, branch, tag).",type:"string"},to_ref:{description:"Ending git ref (commit, branch, tag).",type:"string"}},required:["from_ref","to_ref"],title:"ChangelogSurfaceRequestV1",type:"object"},{$defs:{ChangelogCompleteV1:{additionalProperties:!1,properties:{base_generation:{type:"string"},changed_file_count:{format:"uint",minimum:0,type:"integer"},changed_files:{items:{type:"string"},type:"array"},freshness:{anyOf:[{$ref:"#/$defs/PrimitiveSearchFreshnessV1"},{type:"null"}],description:"The worktree verdict a served graph read opens with."},from_ref:{type:"string"},head_generation:{type:"string"},status:{$ref:"#/$defs/GitReadCompleteV1"},symbol_changes_coverage:{$ref:"#/$defs/SymbolChangesCompleteV1"},symbols_added:{items:{$ref:"#/$defs/GitComparedSymbolV1"},type:"array"},symbols_modified:{items:{$ref:"#/$defs/GitComparedSymbolV1"},type:"array"},symbols_removed:{items:{$ref:"#/$defs/GitComparedSymbolV1"},type:"array"},to_ref:{type:"string"}},required:["status","from_ref","to_ref","changed_file_count","changed_files","base_generation","head_generation","symbols_added","symbols_removed","symbols_modified","symbol_changes_coverage"],type:"object"},ChangelogPartialV1:{additionalProperties:!1,description:"The tree diff without symbol changes: the refs are not both exact local\nbranches with sealed generations.",properties:{changed_file_count:{format:"uint",minimum:0,type:"integer"},changed_files:{items:{type:"string"},type:"array"},freshness:{anyOf:[{$ref:"#/$defs/PrimitiveSearchFreshnessV1"},{type:"null"}],description:"The worktree verdict a served graph read opens with."},from_ref:{type:"string"},status:{$ref:"#/$defs/GitReadPartialV1"},symbol_changes_coverage:{$ref:"#/$defs/SymbolChangesUnavailableV1"},symbols_added:{items:{$ref:"#/$defs/GitComparedSymbolV1"},type:"array"},symbols_modified:{items:{$ref:"#/$defs/GitComparedSymbolV1"},type:"array"},symbols_removed:{items:{$ref:"#/$defs/GitComparedSymbolV1"},type:"array"},to_ref:{type:"string"}},required:["status","from_ref","to_ref","changed_file_count","changed_files","symbols_added","symbols_removed","symbols_modified","symbol_changes_coverage"],type:"object"},CodeIndexBuildBlockedReasonV1:hv,CodeIndexConvergenceParkedV1:hb,CodeIndexStalenessStateV1:hw,GitComparedSymbolV1:gg,GitReadCompleteV1:gC,GitReadPartialV1:gT,GitReadUnavailableV1:gO,GitToolErrorKindV1:gM,GitToolErrorV1:gN,GitToolFailureV1:gz,GitToolOperationV1:gD,PrimitiveFreshnessStateV1:_K,PrimitiveIndexingStateV1:_J,PrimitiveSearchFreshnessV1:_Y,SymbolChangesCompleteV1:{additionalProperties:!1,properties:{status:{$ref:"#/$defs/GitReadCompleteV1"}},required:["status"],type:"object"},SymbolChangesUnavailableV1:bq},$schema:"https://json-schema.org/draft/2020-12/schema",anyOf:[{$ref:"#/$defs/ChangelogCompleteV1"},{$ref:"#/$defs/ChangelogPartialV1"},{$ref:"#/$defs/GitToolFailureV1"}],title:"ChangelogResultV1"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{limit:{description:"Maximum number of cycles to report, largest first (default: 25, max:\n200). The response always states the total detected and how many were\nomitted.",format:"uint32",minimum:0,type:["integer","null"]},member_limit:{description:"Maximum member files listed per reported cycle (default: 12, max:\n200). Each entry states its true member_count and\nomitted_member_count.",format:"uint32",minimum:0,type:["integer","null"]}},title:"CircularSurfaceRequestV1",type:"object"},{$defs:{CircularCycleV1:{additionalProperties:!1,description:"One reported file cycle: the members that fit the member bound, plus the\ncomponent's true size so the omission is stated rather than hidden.",properties:{member_count:{format:"uint64",minimum:0,type:"integer"},members:{items:{type:"string"},type:"array"},omitted_member_count:{format:"uint64",minimum:0,type:"integer"}},required:["members","member_count","omitted_member_count"],type:"object"},CodeIndexBuildBlockedReasonV1:hv,CodeIndexConvergenceParkedV1:hb,CodeIndexStalenessStateV1:hw,PrimitiveFreshnessStateV1:_K,PrimitiveIndexingStateV1:_J,PrimitiveSearchFreshnessV1:_Y},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{cycle_count:{format:"uint64",minimum:0,type:"integer"},cycles:{items:{$ref:"#/$defs/CircularCycleV1"},type:"array"},freshness:{anyOf:[{$ref:"#/$defs/PrimitiveSearchFreshnessV1"},{type:"null"}],description:"The worktree verdict a served graph read opens with."},limit:{format:"uint64",minimum:0,type:"integer"},member_limit:{format:"uint64",minimum:0,type:"integer"},omitted_cycle_count:{format:"uint64",minimum:0,type:"integer"},reported_cycle_count:{format:"uint64",minimum:0,type:"integer"}},required:["cycle_count","reported_cycle_count","omitted_cycle_count","limit","member_limit","cycles"],title:"CircularResultV1",type:"object"},{$defs:{CallableCodeSurfaceMeta:hn,CodeGenerationId:hg,CodeQueryScope:hR,ResultProjection:vV,RetrievalOrder:vj},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{maximum_depth:{default:3,format:"uint32",minimum:0,type:"integer"},meta:{$ref:"#/$defs/CallableCodeSurfaceMeta",default:{cursor:null,order:"source_position",projection:"evidence"}},node_id:{type:"string"},resolve_trait_dispatch:{default:!0,type:"boolean"},scope:{$ref:"#/$defs/CodeQueryScope",default:{generation:"code-generation:unpinned-latest.v1",path_prefix:null}}},required:["node_id"],title:"CodeCalleesSurfaceRequest",type:"object"},{$defs:{CodeGenerationId:hg,SymbolPrimitiveRecord:bj,SymbolRelationRecord:bC},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"Generation-bound page returned by every callable code query. Coverage,\nomissions, scoring, and terminal state remain in the enclosing\n[`crate::result::RetrievalEvidence`].",properties:{generation:{$ref:"#/$defs/CodeGenerationId"},items:{items:{$ref:"#/$defs/SymbolRelationRecord"},type:"array"},next_cursor:{description:"Opaque resume token; its bounded string is the public wire form.",type:["string","null"]},query_fallback:{description:"Independently hashed exact/lexical/graph subpayload. Callers preserve it\nbyte-for-byte rather than interpreting it, so the public schema admits\nthe canonical JSON it carries without re-declaring its internals."},total:{format:"uint64",minimum:0,type:["integer","null"]}},required:["generation","items"],title:"CodeQueryPage",type:"object"},{$defs:{CallableCodeSurfaceMeta:hn,ResultProjection:vV,RetrievalOrder:vj,SymbolGraphScope:bI},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{maximum_depth:{default:3,format:"uint32",minimum:0,type:"integer"},meta:{$ref:"#/$defs/CallableCodeSurfaceMeta",default:{cursor:null,order:"source_position",projection:"evidence"}},node_id:{type:"string"},scope:{$ref:"#/$defs/SymbolGraphScope",default:{path_prefix:null}}},required:["node_id"],title:"CodeCallersSurfaceRequest",type:"object"},{$defs:{CodeGenerationId:hg,CodeGraphReadFreshnessV1:h_,PrimitiveSupportGap:_1,SymbolPrimitiveRecord:bj,SymbolRelationRecord:bC,UtcMicros:bX},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"Bounded semantic result shared by the compatibility surfaces. Rendering,\ntransport envelopes, and MCP content blocks remain outside this contract.",properties:{freshness:{$ref:"#/$defs/CodeGraphReadFreshnessV1"},generation:{$ref:"#/$defs/CodeGenerationId"},items:{items:{$ref:"#/$defs/SymbolRelationRecord"},type:"array"},next_cursor:{description:"Opaque resume token; its bounded string is the public wire form.",type:["string","null"]},related_edge_count:{format:"uint64",minimum:0,type:["integer","null"]},support_gaps:{items:{$ref:"#/$defs/PrimitiveSupportGap"},type:"array"},total:{format:"uint64",minimum:0,type:["integer","null"]},truncated:{type:"boolean"}},required:["generation","freshness","items","truncated","support_gaps"],title:"SymbolGraphPage",type:"object"},{$defs:{CallableCodeSurfaceMeta:hn,CodeGenerationId:hg,CodeQueryScope:hR,ResultProjection:vV,RetrievalOrder:vj},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{meta:{$ref:"#/$defs/CallableCodeSurfaceMeta"},node_id:{type:"string"},scope:{$ref:"#/$defs/CodeQueryScope"}},required:["node_id","scope","meta"],title:"CodeNavigationSurfaceRequest",type:"object"},{$defs:{CodeGenerationId:hg,SymbolPrimitiveRecord:bj},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"Generation-bound page returned by every callable code query. Coverage,\nomissions, scoring, and terminal state remain in the enclosing\n[`crate::result::RetrievalEvidence`].",properties:{generation:{$ref:"#/$defs/CodeGenerationId"},items:{items:{$ref:"#/$defs/SymbolPrimitiveRecord"},type:"array"},next_cursor:{description:"Opaque resume token; its bounded string is the public wire form.",type:["string","null"]},query_fallback:{description:"Independently hashed exact/lexical/graph subpayload. Callers preserve it\nbyte-for-byte rather than interpreting it, so the public schema admits\nthe canonical JSON it carries without re-declaring its internals."},total:{format:"uint64",minimum:0,type:["integer","null"]}},required:["generation","items"],title:"CodeQueryPage",type:"object"},{$defs:{CallableCodeSurfaceMeta:hn,CodeGenerationId:hg,CodeQueryScope:hR,ExactTechnicalTermKindV1:yE,ResultProjection:vV,RetrievalOrder:vj},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{kind:{anyOf:[{$ref:"#/$defs/ExactTechnicalTermKindV1"},{type:"null"}]},literal:{type:"string"},meta:{$ref:"#/$defs/CallableCodeSurfaceMeta"},scope:{$ref:"#/$defs/CodeQueryScope"}},required:["literal","scope","meta"],title:"CodeExactOccurrenceSurfaceRequest",type:"object"},{$defs:{CodeGenerationId:hg,CodeOccurrenceRecord:hV,CodeSearchChunkId:hq,ExactOccurrenceRecord:{additionalProperties:!1,properties:{matched_kind:{$ref:"#/$defs/ExactTechnicalTermKindV1"},matched_literal:{type:"string"},occurrence:{$ref:"#/$defs/CodeOccurrenceRecord"}},required:["occurrence","matched_kind","matched_literal"],type:"object"},ExactTechnicalTermKindV1:yE,FileOccurrenceId:gd,SourceSpan:bk,SymbolOccurrenceId:bx},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"Generation-bound page returned by every callable code query. Coverage,\nomissions, scoring, and terminal state remain in the enclosing\n[`crate::result::RetrievalEvidence`].",properties:{generation:{$ref:"#/$defs/CodeGenerationId"},items:{items:{$ref:"#/$defs/ExactOccurrenceRecord"},type:"array"},next_cursor:{description:"Opaque resume token; its bounded string is the public wire form.",type:["string","null"]},query_fallback:{description:"Independently hashed exact/lexical/graph subpayload. Callers preserve it\nbyte-for-byte rather than interpreting it, so the public schema admits\nthe canonical JSON it carries without re-declaring its internals."},total:{format:"uint64",minimum:0,type:["integer","null"]}},required:["generation","items"],title:"CodeQueryPage",type:"object"},{$defs:{CallableCodeSurfaceMeta:hn,CodeFacetDimension:hy,CodeGenerationId:hg,CodeQueryScope:hR,ResultProjection:vV,RetrievalOrder:vj},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{dimension:{$ref:"#/$defs/CodeFacetDimension"},meta:{$ref:"#/$defs/CallableCodeSurfaceMeta"},scope:{$ref:"#/$defs/CodeQueryScope"}},required:["dimension","scope","meta"],title:"CodeFacetSurfaceRequest",type:"object"},{$defs:{CodeFacetDimension:hy,CodeFacetRecord:{additionalProperties:!1,properties:{count:{format:"uint64",minimum:0,type:"integer"},dimension:{$ref:"#/$defs/CodeFacetDimension"},value:{type:"string"}},required:["dimension","value","count"],type:"object"},CodeGenerationId:hg},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"Generation-bound page returned by every callable code query. Coverage,\nomissions, scoring, and terminal state remain in the enclosing\n[`crate::result::RetrievalEvidence`].",properties:{generation:{$ref:"#/$defs/CodeGenerationId"},items:{items:{$ref:"#/$defs/CodeFacetRecord"},type:"array"},next_cursor:{description:"Opaque resume token; its bounded string is the public wire form.",type:["string","null"]},query_fallback:{description:"Independently hashed exact/lexical/graph subpayload. Callers preserve it\nbyte-for-byte rather than interpreting it, so the public schema admits\nthe canonical JSON it carries without re-declaring its internals."},total:{format:"uint64",minimum:0,type:["integer","null"]}},required:["generation","items"],title:"CodeQueryPage",type:"object"},{$defs:{CallableCodeSurfaceMeta:hn,ImplementationSelector:{oneOf:[{properties:{name:{type:"string"},selector:{const:"trait",type:"string"}},required:["selector","name"],type:"object"},{properties:{name:{type:"string"},selector:{const:"method",type:"string"}},required:["selector","name"],type:"object"}]},ResultProjection:vV,RetrievalOrder:vj,SymbolGraphScope:bI},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{meta:{$ref:"#/$defs/CallableCodeSurfaceMeta",default:{cursor:null,order:"source_position",projection:"evidence"}},scope:{$ref:"#/$defs/SymbolGraphScope",default:{path_prefix:null}},selector:{$ref:"#/$defs/ImplementationSelector"}},required:["selector"],title:"CodeImplementationsSurfaceRequest",type:"object"},{$defs:{CodeGenerationId:hg,CodeGraphReadFreshnessV1:h_,ImplementationRecord:{additionalProperties:!1,description:"One implementation match with its exact source: the implementing\nimpl/class block (methods included) for a trait selector, or the function\nbody for a method selector.",properties:{body:{type:"string"},dispatch_from:{description:"Trait or interface node a trait-selector match was reached through.",type:["string","null"]},edge_kind:{type:"string"},symbol:{$ref:"#/$defs/SymbolPrimitiveRecord"}},required:["symbol","edge_kind","body"],type:"object"},PrimitiveSupportGap:_1,SymbolPrimitiveRecord:bj,UtcMicros:bX},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"Bounded semantic result shared by the compatibility surfaces. Rendering,\ntransport envelopes, and MCP content blocks remain outside this contract.",properties:{freshness:{$ref:"#/$defs/CodeGraphReadFreshnessV1"},generation:{$ref:"#/$defs/CodeGenerationId"},items:{items:{$ref:"#/$defs/ImplementationRecord"},type:"array"},next_cursor:{description:"Opaque resume token; its bounded string is the public wire form.",type:["string","null"]},related_edge_count:{format:"uint64",minimum:0,type:["integer","null"]},support_gaps:{items:{$ref:"#/$defs/PrimitiveSupportGap"},type:"array"},total:{format:"uint64",minimum:0,type:["integer","null"]},truncated:{type:"boolean"}},required:["generation","freshness","items","truncated","support_gaps"],title:"SymbolGraphPage",type:"object"},{$defs:{CallableCodeSurfaceMeta:hn,CodeGenerationId:hg,CodeLexicalField:{description:"Typed code fields accepted by the generation-owned lexical authority.",enum:["symbol_name","qualified_name","path","signature","documentation","body_text","preamble_text","exact_term","subtoken"],type:"string"},CodeLexicalFieldFilter:{additionalProperties:!1,properties:{field:{$ref:"#/$defs/CodeLexicalField"},include:{type:"boolean"}},required:["field","include"],type:"object"},CodeQueryScope:hR,ResultProjection:vV,RetrievalOrder:vj},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"Serializable adapter DTO for the request-local phrase query view.\n\nThe callable application request deliberately keeps its sanitized query\nnon-serializable. The owning runtime supplies the exact sanitizer\nrevisions when converting this transport DTO.",properties:{field_filters:{default:[],items:{$ref:"#/$defs/CodeLexicalFieldFilter"},type:"array"},fuzzy_budget:{default:0,format:"uint32",minimum:0,type:"integer"},meta:{$ref:"#/$defs/CallableCodeSurfaceMeta"},phrases:{items:{type:"string"},type:"array"},query:{type:"string"},scope:{$ref:"#/$defs/CodeQueryScope"}},required:["query","phrases","scope","meta"],title:"CodePhraseSearchSurfaceRequest",type:"object"},{$defs:{CodeGenerationId:hg,CodeOccurrenceRecord:hV,CodeSearchChunkId:hq,FileOccurrenceId:gd,LexicalOccurrenceRecord:{additionalProperties:!1,properties:{matched_phrases:{items:{type:"string"},type:"array"},matched_terms:{items:{type:"string"},type:"array"},occurrence:{$ref:"#/$defs/CodeOccurrenceRecord"},score_micros:{format:"uint64",minimum:0,type:"integer"}},required:["occurrence","score_micros","matched_phrases","matched_terms"],type:"object"},SourceSpan:bk,SymbolOccurrenceId:bx},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"Generation-bound page returned by every callable code query. Coverage,\nomissions, scoring, and terminal state remain in the enclosing\n[`crate::result::RetrievalEvidence`].",properties:{generation:{$ref:"#/$defs/CodeGenerationId"},items:{items:{$ref:"#/$defs/LexicalOccurrenceRecord"},type:"array"},next_cursor:{description:"Opaque resume token; its bounded string is the public wire form.",type:["string","null"]},query_fallback:{description:"Independently hashed exact/lexical/graph subpayload. Callers preserve it\nbyte-for-byte rather than interpreting it, so the public schema admits\nthe canonical JSON it carries without re-declaring its internals."},total:{format:"uint64",minimum:0,type:["integer","null"]}},required:["generation","items"],title:"CodeQueryPage",type:"object"},{$defs:{CallableCodeSurfaceMeta:hn,ResultProjection:vV,RetrievalOrder:vj,SymbolGraphScope:bI},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{is_async:{type:["boolean","null"]},meta:{$ref:"#/$defs/CallableCodeSurfaceMeta",default:{cursor:null,order:"source_position",projection:"evidence"}},params:{default:[],items:{type:"string"},type:"array"},returns:{type:["string","null"]},scope:{$ref:"#/$defs/SymbolGraphScope",default:{path_prefix:null}}},title:"CodeSignatureSearchSurfaceRequest",type:"object"},{$defs:{CodeGenerationId:hg,CodeGraphReadFreshnessV1:h_,PrimitiveSupportGap:_1,SymbolPrimitiveRecord:bj,UtcMicros:bX},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"Bounded semantic result shared by the compatibility surfaces. Rendering,\ntransport envelopes, and MCP content blocks remain outside this contract.",properties:{freshness:{$ref:"#/$defs/CodeGraphReadFreshnessV1"},generation:{$ref:"#/$defs/CodeGenerationId"},items:{items:{$ref:"#/$defs/SymbolPrimitiveRecord"},type:"array"},next_cursor:{description:"Opaque resume token; its bounded string is the public wire form.",type:["string","null"]},related_edge_count:{format:"uint64",minimum:0,type:["integer","null"]},support_gaps:{items:{$ref:"#/$defs/PrimitiveSupportGap"},type:"array"},total:{format:"uint64",minimum:0,type:["integer","null"]},truncated:{type:"boolean"}},required:["generation","freshness","items","truncated","support_gaps"],title:"SymbolGraphPage",type:"object"},{$defs:{CallableCodeSurfaceMeta:hn,ResultProjection:vV,RetrievalOrder:vj,SymbolGraphScope:bI},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{lazy_index_ignored_dependencies:{type:"boolean"},meta:{$ref:"#/$defs/CallableCodeSurfaceMeta"},query:{type:"string"},scope:{$ref:"#/$defs/SymbolGraphScope"}},required:["query","scope","lazy_index_ignored_dependencies","meta"],title:"CodeSymbolSearchSurfaceRequest",type:"object"},{$defs:{CallableCodeSurfaceMeta:hn,CodeGenerationId:hg,CodeQueryScope:hR,ResultProjection:vV,RetrievalOrder:vj},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{meta:{$ref:"#/$defs/CallableCodeSurfaceMeta"},scope:{$ref:"#/$defs/CodeQueryScope"}},required:["scope","meta"],title:"CodeTimelineSurfaceRequest",type:"object"},{$defs:{CodeGenerationId:hg,CodeTimelineRecord:{additionalProperties:!1,properties:{file_count:{format:"uint64",minimum:0,type:"integer"},generation:{$ref:"#/$defs/CodeGenerationId"},indexed_at:{$ref:"#/$defs/UtcMicros"},symbol_count:{format:"uint64",minimum:0,type:"integer"}},required:["generation","indexed_at","file_count","symbol_count"],type:"object"},UtcMicros:bX},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"Generation-bound page returned by every callable code query. Coverage,\nomissions, scoring, and terminal state remain in the enclosing\n[`crate::result::RetrievalEvidence`].",properties:{generation:{$ref:"#/$defs/CodeGenerationId"},items:{items:{$ref:"#/$defs/CodeTimelineRecord"},type:"array"},next_cursor:{description:"Opaque resume token; its bounded string is the public wire form.",type:["string","null"]},query_fallback:{description:"Independently hashed exact/lexical/graph subpayload. Callers preserve it\nbyte-for-byte rather than interpreting it, so the public schema admits\nthe canonical JSON it carries without re-declaring its internals."},total:{format:"uint64",minimum:0,type:["integer","null"]}},required:["generation","items"],title:"CodeQueryPage",type:"object"},{$defs:{CallableCodeSurfaceMeta:hn,ResultProjection:vV,RetrievalOrder:vj,SymbolGraphScope:bI},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{maximum_depth:{default:5,format:"uint32",minimum:0,type:"integer"},meta:{$ref:"#/$defs/CallableCodeSurfaceMeta",default:{cursor:null,order:"source_position",projection:"evidence"}},node_id:{type:"string"},scope:{$ref:"#/$defs/SymbolGraphScope",default:{path_prefix:null}}},required:["node_id"],title:"CodeTypeHierarchySurfaceRequest",type:"object"},{$defs:{CodeGenerationId:hg,CodeGraphReadFreshnessV1:h_,PrimitiveSupportGap:_1,SymbolPrimitiveRecord:bj,TypeHierarchyRecord:{additionalProperties:!1,properties:{depth:{format:"uint32",minimum:0,type:"integer"},edge_kind:{type:"string"},parent_node_id:{type:"string"},symbol:{$ref:"#/$defs/SymbolPrimitiveRecord"}},required:["symbol","parent_node_id","edge_kind","depth"],type:"object"},UtcMicros:bX},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"Bounded semantic result shared by the compatibility surfaces. Rendering,\ntransport envelopes, and MCP content blocks remain outside this contract.",properties:{freshness:{$ref:"#/$defs/CodeGraphReadFreshnessV1"},generation:{$ref:"#/$defs/CodeGenerationId"},items:{items:{$ref:"#/$defs/TypeHierarchyRecord"},type:"array"},next_cursor:{description:"Opaque resume token; its bounded string is the public wire form.",type:["string","null"]},related_edge_count:{format:"uint64",minimum:0,type:["integer","null"]},support_gaps:{items:{$ref:"#/$defs/PrimitiveSupportGap"},type:"array"},total:{format:"uint64",minimum:0,type:["integer","null"]},truncated:{type:"boolean"}},required:["generation","freshness","items","truncated","support_gaps"],title:"SymbolGraphPage",type:"object"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{staged_only:{description:"If true, compare pinned HEAD with immutable staged index blobs. The\ndefault compares HEAD with captured working-tree bytes, including\nuntracked files: a staged edit undone in the working tree cancels out.",type:["boolean","null"]}},title:"CommitContextSurfaceRequestV1",type:"object"},{$defs:{CodeIndexBuildBlockedReasonV1:hv,CodeIndexConvergenceParkedV1:hb,CodeIndexStalenessStateV1:hw,CommitCategoryV1:{description:"The commit category the changed file roles suggest.",enum:["feature/fix (source + tests)","feature/fix/refactor","test","chore/docs/config"],type:"string"},CommitContextSummaryV1:{additionalProperties:!1,properties:{changed_files:{items:{$ref:"#/$defs/CommitFileRoleV1"},type:"array"},comparison:{anyOf:[{$ref:"#/$defs/GitContextComparisonV1"},{type:"null"}]},freshness:{anyOf:[{$ref:"#/$defs/PrimitiveSearchFreshnessV1"},{type:"null"}],description:"The worktree verdict a served graph read opens with."},recent_commits:{items:{type:"string"},type:"array"},source_coverage:{anyOf:[{$ref:"#/$defs/GitContextSourceCoverageV1"},{type:"null"}]},suggested_category:{anyOf:[{$ref:"#/$defs/CommitCategoryV1"},{type:"null"}],description:"Absent when the worktree has no changes."},summary:{type:"string"},symbols_by_role:{additionalProperties:!1,properties:{config:{items:{$ref:"#/$defs/CommitSymbolEntryV1"},type:"array"},docs:{items:{$ref:"#/$defs/CommitSymbolEntryV1"},type:"array"},source:{items:{$ref:"#/$defs/CommitSymbolEntryV1"},type:"array"},test:{items:{$ref:"#/$defs/CommitSymbolEntryV1"},type:"array"}},type:"object"}},required:["changed_files","symbols_by_role","recent_commits","summary"],type:"object"},CommitFileRoleV1:{additionalProperties:!1,properties:{comparison:{anyOf:[{$ref:"#/$defs/GitContextFileComparisonV1"},{type:"null"}]},file:{type:"string"},role:{$ref:"#/$defs/GitFileRoleV1"},symbols:{format:"uint",minimum:0,type:"integer"}},required:["file","role","symbols"],type:"object"},CommitSymbolEntryV1:{anyOf:[{$ref:"#/$defs/CommitSymbolV1"},{$ref:"#/$defs/ConfigSummaryV1"}]},CommitSymbolV1:{additionalProperties:!1,properties:{change:{anyOf:[{$ref:"#/$defs/GitDeclarationChangeKindV1"},{type:"null"}]},file:{type:"string"},kind:{type:"string"},line:{format:"uint32",minimum:0,type:"integer"},name:{type:"string"},source_side:{anyOf:[{$ref:"#/$defs/GitContextSourceSideV1"},{type:"null"}]}},required:["name","kind","file","line"],type:"object"},ConfigSummaryKindV1:hO,ConfigSummaryV1:hE,GitChangeKindV1:gy,GitContextComparisonV1:g_,GitContextFileComparisonV1:{additionalProperties:!1,properties:{after_blob:{anyOf:[{$ref:"#/$defs/GitOidV1"},{type:"null"}]},before_blob:{anyOf:[{$ref:"#/$defs/GitOidV1"},{type:"null"}]},change:{$ref:"#/$defs/GitChangeKindV1"},previous_file:{type:["string","null"]}},required:["change"],type:"object"},GitContextSourceConsistencyV1:{oneOf:[{enum:["immutable_blobs"],type:"string"},{const:"per_file_worktree_capture",description:"Each file is checked around its bounded read; this is not an atomic\nsnapshot of the entire working tree.",type:"string"}]},GitContextSourceCoverageV1:{additionalProperties:!1,properties:{complete:{type:"boolean"},consistency:{$ref:"#/$defs/GitContextSourceConsistencyV1"},gaps:{items:{$ref:"#/$defs/GitContextSourceGapV1"},type:"array"},git:{$ref:"#/$defs/GitCoverageV1"}},required:["complete","git","gaps","consistency"],type:"object"},GitContextSourceGapV1:{additionalProperties:!1,properties:{file:{type:"string"},reason:{type:"string"}},required:["file","reason"],type:"object"},GitContextSourceSideV1:{enum:["before","after"],type:"string"},GitCoverageV1:gb,GitDeclarationChangeKindV1:{enum:["added","removed","modified","signature_changed","visibility_changed","renamed","ambiguous_overload"],type:"string"},GitDegradationV1:g$,GitFileRoleV1:gk,GitOidV1:gI,GitToolErrorKindV1:gM,GitToolErrorV1:gN,GitToolFailureV1:gz,GitToolOperationV1:gD,PrimitiveFreshnessStateV1:_K,PrimitiveIndexingStateV1:_J,PrimitiveSearchFreshnessV1:_Y},$schema:"https://json-schema.org/draft/2020-12/schema",anyOf:[{$ref:"#/$defs/CommitContextSummaryV1"},{$ref:"#/$defs/GitToolFailureV1"}],title:"CommitContextResultV1"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{limit:{description:"Maximum number of results to return (default: 10, at most 100).",format:"uint32",minimum:0,type:["integer","null"]},node_kind:{description:"Filter by node kind (default: every kind).",type:["string","null"]},path:{description:"Filter to files under this directory path (e.g. 'src/main/java').",type:["string","null"]}},title:"ComplexitySurfaceRequestV1",type:"object"},{$defs:{CodeIndexBuildBlockedReasonV1:hv,CodeIndexConvergenceParkedV1:hb,CodeIndexStalenessStateV1:hw,ComplexityAnalysisV1:hj,ComplexityReportEntryV1:{additionalProperties:!1,properties:{branches:{format:"uint32",minimum:0,type:["integer","null"]},complexity_analysis:{$ref:"#/$defs/ComplexityAnalysisV1"},cyclomatic_complexity:{description:"The counters are `None` when `complexity_analysis` reports the bounded\nwalk did not cover the body.",format:"uint32",minimum:0,type:["integer","null"]},fan_in:{format:"uint64",minimum:0,type:"integer"},fan_out:{format:"uint64",minimum:0,type:"integer"},file:{type:"string"},id:{type:"string"},kind:{type:"string"},line:{format:"uint32",minimum:0,type:"integer"},lines:{format:"uint32",minimum:0,type:"integer"},loops:{format:"uint32",minimum:0,type:["integer","null"]},max_nesting:{format:"uint32",minimum:0,type:["integer","null"]},name:{type:"string"},score:{format:"uint64",minimum:0,type:"integer"}},required:["id","name","kind","file","line","lines","complexity_analysis","fan_out","fan_in","score"],type:"object"},PrimitiveFreshnessStateV1:_K,PrimitiveIndexingStateV1:_J,PrimitiveSearchFreshnessV1:_Y},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{formula:{type:"string"},freshness:{anyOf:[{$ref:"#/$defs/PrimitiveSearchFreshnessV1"},{type:"null"}],description:"The worktree verdict a served graph read opens with."},note:{type:"string"},ranking:{items:{$ref:"#/$defs/ComplexityReportEntryV1"},type:"array"},result_count:{format:"uint64",minimum:0,type:"integer"}},required:["formula","note","result_count","ranking"],title:"ComplexityReportV1",type:"object"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"Exactly one of `path` or `glob` names the files to query.",properties:{glob:{description:"Glob pattern to match multiple config files (e.g. '**/Cargo.toml').\nMutually exclusive with 'path'.",type:["string","null"]},key:{description:"Dot-separated key path (e.g. 'package.version',\n'dependencies.tokio.version').",type:"string"},path:{description:"Project-relative path to a single config file (e.g. 'Cargo.toml').\nMutually exclusive with 'glob'.",type:["string","null"]}},required:["key"],title:"ConfigSurfaceRequestV1",type:"object"},{$defs:{CodeIndexBuildBlockedReasonV1:hv,CodeIndexConvergenceParkedV1:hb,CodeIndexStalenessStateV1:hw,ConfigKeyFoundV1:{additionalProperties:!1,properties:{file:{type:"string"},key:{type:"string"},line:{description:"The first line whose text starts with the key's leaf segment.",format:"uint32",minimum:0,type:["integer","null"]},value:!0},required:["file","key","value"],type:"object"},ConfigKeyMissingV1:{additionalProperties:!1,description:"`value` is always null and `found` always false; both stay on the wire\nso a missing key reads the same as it always has.",properties:{file:{type:"string"},found:{type:"boolean"},key:{type:"string"},value:{type:"null"}},required:["file","key","value","found"],type:"object"},ConfigMatchV1:{anyOf:[{$ref:"#/$defs/ConfigParseErrorV1"},{$ref:"#/$defs/ConfigKeyMissingV1"},{$ref:"#/$defs/ConfigKeyFoundV1"}],description:"One queried config file: the file's parse error, the key's absence, or the\nkey's value and defining line.\n\nThe variants are distinguished by their exact field sets, so each one\ndenies unknown fields and the most specific shapes are tried first."},ConfigParseErrorV1:{additionalProperties:!1,properties:{error:{type:"string"},file:{type:"string"}},required:["file","error"],type:"object"},PrimitiveFreshnessStateV1:_K,PrimitiveIndexingStateV1:_J,PrimitiveSearchFreshnessV1:_Y},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{freshness:{anyOf:[{$ref:"#/$defs/PrimitiveSearchFreshnessV1"},{type:"null"}],description:"The worktree verdict a served graph read opens with."},match_count:{description:"Files where the key was found or that failed to parse.",format:"uint",minimum:0,type:"integer"},matches:{items:{$ref:"#/$defs/ConfigMatchV1"},type:"array"}},required:["match_count","matches"],title:"ConfigResultV1",type:"object"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{cursor:{default:null,description:"The previous page's `next_cursor`, valid only with the same `limit`.",type:["string","null"]},limit:{format:"uint",minimum:0,type:"integer"}},required:["limit"],title:"ConfigurationAuditRequestV1",type:"object"},{$defs:{ActorId:f$,ConfigurationAuditEvent:{additionalProperties:!1,description:"Append-only audit record. `target_commitment` is event-scoped and cannot be\njoined across audit events; a caller must be separately authorized before\nany canonical target is resolved by the store/application layer.",properties:{actor_id:{$ref:"#/$defs/ActorId"},base_revision_id:{$ref:"#/$defs/ConfigurationRevisionId"},event_id:{$ref:"#/$defs/ConfigurationAuditEventId"},event_kind:{$ref:"#/$defs/ConfigurationAuditEventKindV1"},idempotency_key:{anyOf:[{$ref:"#/$defs/ConfigurationIdempotencyKey"},{type:"null"}]},occurred_at:{$ref:"#/$defs/UtcMicros"},operation_digest:{$ref:"#/$defs/ManifestDigest"},receipt_id:{anyOf:[{$ref:"#/$defs/ConfigurationReceiptId"},{type:"null"}]},result_revision_id:{anyOf:[{$ref:"#/$defs/ConfigurationRevisionId"},{type:"null"}]},safe_reason_code:{type:["string","null"]},target_commitment:{$ref:"#/$defs/ManifestDigest"}},required:["event_id","event_kind","actor_id","base_revision_id","operation_digest","target_commitment","occurred_at"],type:"object"},ConfigurationAuditEventId:{description:"Strongly typed canonical identity: `ConfigurationAuditEventId`.",type:"string"},ConfigurationAuditEventKindV1:{enum:["dry_run_created","applied","rejected","expired","activation_failed","rollback_dry_run_created","rollback_applied","recovered"],type:"string"},ConfigurationIdempotencyKey:hA,ConfigurationReceiptId:hM,ConfigurationRevisionId:hN,ManifestDigest:_p,UtcMicros:bX},$schema:"https://json-schema.org/draft/2020-12/schema",properties:{events:{items:{$ref:"#/$defs/ConfigurationAuditEvent"},type:"array"},next_cursor:{description:"Opaque continuation, bound to this operation and request.",type:["string","null"]}},required:["events"],title:"ConfigurationAuditPage",type:"object"},{$defs:{AccessRuleId:fb,ActorId:f$,AnalyzerEnvironmentVariable:fR,AnalyzerExecutableId:fq,AnalyzerExecutableReferenceV1:fI,AnalyzerLanguageId:fx,AnalyzerLanguageSelectionV1:fj,AnalyzerPrivacyClassV1:fC,AnalyzerResourceLimitsV1:fT,AnalyzerRestartPolicyV1:fO,AnalyzerSettingsV1:fE,AnalyzerStructuredValueV1:fA,AuthorityRef:fN,AutomaticWorktreeGcV1:fL,AutomationBackendV1:fU,AutomationHostModeV1:fH,AutomationSettingsV1:fQ,AutomationTaskSetV1:fX,AutomationTaskSettingsV1:fY,BranchCollisionPolicyV1:f2,BranchNameComponentV1:f4,BranchNameSeparatorV1:f6,BranchNamingPolicyV1:f3,BranchTopologyKindV1:hr,BranchTopologyPolicyV1:hi,CanonicalGitRefNameV1:hc,CanonicalGitRefPrefix:hl,CapabilityId:hp,CodeIndexWorkerSelectionV1:hP,ConfigurationDirectMutationRequestV1:{oneOf:[{properties:{key:{$ref:"#/$defs/SettingKey"},layer:{$ref:"#/$defs/ConfigurationLayerIdV1"},operation:{const:"set",type:"string"},value:{$ref:"#/$defs/ConfigurationValueV1"}},required:["operation","layer","key","value"],type:"object"},{properties:{key:{$ref:"#/$defs/SettingKey"},layer:{$ref:"#/$defs/ConfigurationLayerIdV1"},operation:{const:"unset",type:"string"}},required:["operation","layer","key"],type:"object"}]},ConfigurationIdempotencyKey:hA,ConfigurationLayerIdV1:hW,ConfigurationRevisionId:hN,ConfigurationValueV1:hD,ContextScoutConfigurationLimitsV1:hK,ContextScoutConfigurationModeV1:hJ,ContextScoutConfigurationStateV1:hZ,ContextScoutConfiguredModelPathV1:hQ,ContextScoutIntentKindV1:h3,ContextScoutIntentSettingsV1:h9,ContextScoutSettingsV1:ya,CredentialReferenceId:yy,CrossMergeModeV1:yg,CrossMergePolicyV1:y_,DecisionEngineSettingsV1:y$,GitHubStackedPullRequestPolicyV1:gP,HistoryRewritePolicyV1:gL,IntentQuestionSettingsV1:gK,IntentWindowSettingsV1:gJ,LcmSummarizerExecutableV1:g5,LcmSummarizerExecutablesV1:g8,LocatorDigest:_i,ManifestDigest:_p,ProjectId:_6,ProtectedRefDispositionV1:ve,ProtectedRefRuleV1:vt,ProtectedRefSelectorV1:vr,ProviderId:vn,QueryCollectionId:vc,RepositoryId:v$,RepositoryPlacementScopeV1:vS,RequiredCheckExpectationV1:vk,RequiredCheckV1:vw,ReviewRequirementV1:vA,ReviewTopologyKindV1:vW,ReviewTopologyPolicyV1:vM,RuleEffect:vF,ScopeAccessRule:vK,ScopeAccessSubjectV1:vJ,ScopeControlOperationV1:vZ,ScopeSourceBinding:v2,SensitiveFilesystemLocatorV1:v3,SettingKey:bd,SourceBindingId:bg,SourceKindV1:bb,TopologyConcurrencyPolicyV1:bH,TopologyEscalationPolicyV1:bG,TopologyGatePolicyV1:bB,TopologyNotificationLevelV1:bK,UserProfileId:bQ,UtcMicros:bX,WorkApprovalPolicy:b2,WorkContentLocationClassV1:$f,WorkEffortClassV1:$_,WorkEgressPolicy:$v,WorkExecutableBindingV1:$S,WorkExecutableCapabilityV1:$k,WorkExecutableReference:$w,WorkExecutionLimits:$V,WorkExpertiseCategoryV1:$q,WorkExpertiseConsentV1:$I,WorkFallbackTopology:$x,WorkFilesystemPolicy:$C,WorkOrdinalBandV1:$G,WorkProviderRouteId:Sl,WorkProviderRouteV1:Sp,WorkRouteCandidateV1:Sv,WorkRouteExecutionProfileV1:S$,WorkSandboxPolicy:SV,WorkTopologyPolicyV1:SM,WorktreeCleanlinessRequirementV1:SK,WorktreePlacementModeV1:SX,WorktreeRetentionPolicyV1:SY,WorktreeRootPolicyV1:S1},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{expected_revision:{$ref:"#/$defs/ConfigurationRevisionId"},idempotency_key:{$ref:"#/$defs/ConfigurationIdempotencyKey"},mutations:{items:{$ref:"#/$defs/ConfigurationDirectMutationRequestV1"},type:"array"}},required:["mutations","expected_revision","idempotency_key"],title:"ConfigurationBatchRequestV1",type:"object"},{$defs:{AccessPolicyDigest:fv,ConfigurationReceiptId:hM,ConfigurationRevisionId:hN,ConfigurationSettlementAuthorityV1:{additionalProperties:!1,description:"Original authorization evidence pinned to a durable configuration effect.\nA retry reauthorizes access separately without replacing these fields.",properties:{policy_digest:{$ref:"#/$defs/AccessPolicyDigest"},policy_epoch:{format:"uint64",minimum:0,type:"integer"},revalidated_at:{$ref:"#/$defs/UtcMicros"}},required:["policy_epoch","policy_digest","revalidated_at"],type:"object"},ConfigurationSnapshotId:hz,ManifestDigest:_p,UtcMicros:bX},$schema:"https://json-schema.org/draft/2020-12/schema",properties:{base_revision_id:{$ref:"#/$defs/ConfigurationRevisionId"},created_at:{$ref:"#/$defs/UtcMicros"},effective_deadline_at:{$ref:"#/$defs/UtcMicros"},operation_digest:{$ref:"#/$defs/ManifestDigest"},receipt_id:{$ref:"#/$defs/ConfigurationReceiptId"},result_revision_id:{$ref:"#/$defs/ConfigurationRevisionId"},settlement_authority:{$ref:"#/$defs/ConfigurationSettlementAuthorityV1"},snapshot_id:{$ref:"#/$defs/ConfigurationSnapshotId"}},required:["receipt_id","base_revision_id","result_revision_id","snapshot_id","operation_digest","settlement_authority","created_at","effective_deadline_at"],title:"ConfigurationMutationReceipt",type:"object"},{$defs:{SettingKey:bd},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{key:{$ref:"#/$defs/SettingKey"}},required:["key"],title:"ConfigurationGetRequestV1",type:"object"},{$defs:{AccessRuleId:fb,ActorId:f$,AnalyzerEnvironmentVariable:fR,AnalyzerExecutableId:fq,AnalyzerExecutableReferenceV1:fI,AnalyzerLanguageId:fx,AnalyzerLanguageSelectionV1:fj,AnalyzerPrivacyClassV1:fC,AnalyzerResourceLimitsV1:fT,AnalyzerRestartPolicyV1:fO,AnalyzerSettingsV1:fE,AnalyzerStructuredValueV1:fA,AuthorityRef:fN,AutomaticWorktreeGcV1:fL,AutomationBackendV1:fU,AutomationHostModeV1:fH,AutomationSettingsV1:fQ,AutomationTaskSetV1:fX,AutomationTaskSettingsV1:fY,BranchCollisionPolicyV1:f2,BranchNameComponentV1:f4,BranchNameSeparatorV1:f6,BranchNamingPolicyV1:f3,BranchTopologyKindV1:hr,BranchTopologyPolicyV1:hi,CandidateDispositionV1:{enum:["winning","overridden","rejected","defaulted"],type:"string"},CanonicalGitRefNameV1:hc,CanonicalGitRefPrefix:hl,CapabilityId:hp,CodeIndexWorkerSelectionV1:hP,ConfigurationCandidateV1:{additionalProperties:!1,description:"Resolution provenance is intentionally distinct from behavior. Moving the\nsame winner between layers can change this material without changing the\neffective behavior digest.",properties:{disposition:{$ref:"#/$defs/CandidateDispositionV1"},layer:{$ref:"#/$defs/ConfigurationLayerIdV1"},revision_id:{$ref:"#/$defs/ConfigurationRevisionId"},safe_reason:{type:["string","null"]}},required:["layer","revision_id","disposition"],type:"object"},ConfigurationLayerIdV1:hW,ConfigurationRevisionId:hN,ConfigurationSettingActionV1:{enum:["set","unset"],type:"string"},ConfigurationSettingFindingV1:{description:"A stored value the running release keeps but does not apply. The value\nstays readable so `legal_actions` on the same key can replace it.",oneOf:[{additionalProperties:!1,description:"An `index.exclude.v1` / `index.include.v1` pattern that does not\ncompile. An earlier release stored it unchecked; indexing runs\nwithout it.",properties:{kind:{const:"invalid_index_path_pattern",type:"string"},legal_actions:{items:{$ref:"#/$defs/ConfigurationSettingActionV1"},type:"array"},message:{type:"string"},pattern:{type:"string"}},required:["kind","pattern","message","legal_actions"],type:"object"}]},ConfigurationSnapshotId:hz,ConfigurationValueV1:hD,ContextScoutConfigurationLimitsV1:hK,ContextScoutConfigurationModeV1:hJ,ContextScoutConfigurationStateV1:hZ,ContextScoutConfiguredModelPathV1:hQ,ContextScoutIntentKindV1:h3,ContextScoutIntentSettingsV1:h9,ContextScoutSettingsV1:ya,CredentialReferenceId:yy,CrossMergeModeV1:yg,CrossMergePolicyV1:y_,DecisionEngineSettingsV1:y$,GitHubStackedPullRequestPolicyV1:gP,HistoryRewritePolicyV1:gL,IntentQuestionSettingsV1:gK,IntentWindowSettingsV1:gJ,LcmSummarizerExecutableV1:g5,LcmSummarizerExecutablesV1:g8,LocatorDigest:_i,ManifestDigest:_p,ProjectId:_6,ProtectedRefDispositionV1:ve,ProtectedRefRuleV1:vt,ProtectedRefSelectorV1:vr,ProviderId:vn,QueryCollectionId:vc,RepositoryId:v$,RepositoryPlacementScopeV1:vS,RequiredCheckExpectationV1:vk,RequiredCheckV1:vw,ReviewRequirementV1:vA,ReviewTopologyKindV1:vW,ReviewTopologyPolicyV1:vM,RuleEffect:vF,ScopeAccessRule:vK,ScopeAccessSubjectV1:vJ,ScopeControlOperationV1:vZ,ScopeSourceBinding:v2,SensitiveFilesystemLocatorV1:v3,SettingKey:bd,SourceBindingId:bg,SourceKindV1:bb,TopologyConcurrencyPolicyV1:bH,TopologyEscalationPolicyV1:bG,TopologyGatePolicyV1:bB,TopologyNotificationLevelV1:bK,UserProfileId:bQ,UtcMicros:bX,WorkApprovalPolicy:b2,WorkContentLocationClassV1:$f,WorkEffortClassV1:$_,WorkEgressPolicy:$v,WorkExecutableBindingV1:$S,WorkExecutableCapabilityV1:$k,WorkExecutableReference:$w,WorkExecutionLimits:$V,WorkExpertiseCategoryV1:$q,WorkExpertiseConsentV1:$I,WorkFallbackTopology:$x,WorkFilesystemPolicy:$C,WorkOrdinalBandV1:$G,WorkProviderRouteId:Sl,WorkProviderRouteV1:Sp,WorkRouteCandidateV1:Sv,WorkRouteExecutionProfileV1:S$,WorkSandboxPolicy:SV,WorkTopologyPolicyV1:SM,WorktreeCleanlinessRequirementV1:SK,WorktreePlacementModeV1:SX,WorktreeRetentionPolicyV1:SY,WorktreeRootPolicyV1:S1},$schema:"https://json-schema.org/draft/2020-12/schema",properties:{candidates:{items:{$ref:"#/$defs/ConfigurationCandidateV1"},type:"array"},effective_behavior_digest:{$ref:"#/$defs/ManifestDigest"},effective_value:{$ref:"#/$defs/ConfigurationValueV1"},findings:{description:"Parts of the stored value this release does not apply. Empty when the\neffective value applies in full.",items:{$ref:"#/$defs/ConfigurationSettingFindingV1"},type:"array"},key:{$ref:"#/$defs/SettingKey"},resolution_provenance_digest:{$ref:"#/$defs/ManifestDigest"},revision_id:{$ref:"#/$defs/ConfigurationRevisionId",description:"Current configuration revision accepted by mutation `expected_revision` CAS."},snapshot_id:{$ref:"#/$defs/ConfigurationSnapshotId",description:"Content identity of the fully resolved configuration snapshot."}},required:["key","effective_value","revision_id","snapshot_id","effective_behavior_digest","resolution_provenance_digest","candidates","findings"],title:"ResolvedSetting",type:"object"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"Typed input for the configuration list read through the daemon\ninvocation boundary.",title:"ConfigurationListRequestV1",type:"object"},{$defs:{RestartRequirementV1:{enum:["none","analyzer_restart","daemon_restart"],type:"string"},SettingKey:bd,SettingSensitivityV1:{enum:["public","sensitive"],type:"string"},SettingSummary:{properties:{key:{$ref:"#/$defs/SettingKey"},restart_requirement:{$ref:"#/$defs/RestartRequirementV1"},sensitivity:{$ref:"#/$defs/SettingSensitivityV1"}},required:["key","sensitivity","restart_requirement"],type:"object"}},$schema:"https://json-schema.org/draft/2020-12/schema",items:{$ref:"#/$defs/SettingSummary"},title:"Array_of_SettingSummary",type:"array"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,title:"ConfigurationObservedStateRequestV1",type:"object"},{$defs:{ActivationDriftV1:{enum:["current","never_activated","pending_restart","activation_failed"],type:"string"},ComponentConfigurationState:{properties:{activation_error_code:{type:["string","null"]},component:{type:"string"},desired_revision_id:{$ref:"#/$defs/ConfigurationRevisionId"},drift:{$ref:"#/$defs/ActivationDriftV1"},last_working_revision_id:{anyOf:[{$ref:"#/$defs/ConfigurationRevisionId"},{type:"null"}]},observed_revision_id:{anyOf:[{$ref:"#/$defs/ConfigurationRevisionId"},{type:"null"}]},restart_required:{type:"boolean"}},required:["component","desired_revision_id","restart_required","drift"],type:"object"},ConfigurationRevisionId:hN},$schema:"https://json-schema.org/draft/2020-12/schema",items:{$ref:"#/$defs/ComponentConfigurationState"},title:"Array_of_ComponentConfigurationState",type:"array"},{$defs:{ChangePlanId:hm,ConfigurationIdempotencyKey:hA,ConfigurationRevisionId:hN,ManifestDigest:_p},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{expected_base_revision_id:{$ref:"#/$defs/ConfigurationRevisionId"},idempotency_key:{$ref:"#/$defs/ConfigurationIdempotencyKey"},operation_digest:{$ref:"#/$defs/ManifestDigest"},plan_id:{$ref:"#/$defs/ChangePlanId"}},required:["plan_id","expected_base_revision_id","operation_digest","idempotency_key"],title:"ConfigurationProtectedApplyRequestV1",type:"object"},{$defs:{AccessRuleId:fb,ActorId:f$,AuthorityRef:fN,AutomaticWorktreeGcV1:fL,BranchCollisionPolicyV1:f2,BranchNameComponentV1:f4,BranchNameSeparatorV1:f6,BranchNamingPolicyV1:f3,BranchTopologyKindV1:hr,BranchTopologyPolicyV1:hi,CanonicalGitRefNameV1:hc,CanonicalGitRefPrefix:hl,CapabilityId:hp,ConfigurationRevisionId:hN,CrossMergeModeV1:yg,CrossMergePolicyV1:y_,GitHubStackedPullRequestPolicyV1:gP,HistoryRewritePolicyV1:gL,LocatorDigest:_i,ManifestDigest:_p,ProjectId:_6,ProtectedChange:{description:"The protected configuration operation set. Ordinary scalar mutations are\nintentionally absent; they activate directly after validation.",oneOf:[{properties:{kind:{const:"bind_source",type:"string"},value:{$ref:"#/$defs/ScopeSourceBinding"}},required:["kind","value"],type:"object"},{properties:{kind:{const:"rebind_source",type:"string"},value:{$ref:"#/$defs/ScopeSourceBinding"}},required:["kind","value"],type:"object"},{properties:{kind:{const:"unbind_source",type:"string"},value:{properties:{binding_id:{$ref:"#/$defs/SourceBindingId"}},required:["binding_id"],type:"object"}},required:["kind","value"],type:"object"},{properties:{kind:{const:"upsert_access_rule",type:"string"},value:{$ref:"#/$defs/ScopeAccessRule"}},required:["kind","value"],type:"object"},{properties:{kind:{const:"remove_access_rule",type:"string"},value:{properties:{rule_id:{$ref:"#/$defs/AccessRuleId"}},required:["rule_id"],type:"object"}},required:["kind","value"],type:"object"},{properties:{kind:{const:"replace_work_topology_policy",type:"string"},value:{$ref:"#/$defs/WorkTopologyPolicyV1"}},required:["kind","value"],type:"object"}]},ProtectedRefDispositionV1:ve,ProtectedRefRuleV1:vt,ProtectedRefSelectorV1:vr,RepositoryId:v$,RepositoryPlacementScopeV1:vS,RequiredCheckExpectationV1:vk,RequiredCheckV1:vw,ReviewRequirementV1:vA,ReviewTopologyKindV1:vW,ReviewTopologyPolicyV1:vM,RuleEffect:vF,ScopeAccessRule:vK,ScopeAccessSubjectV1:vJ,ScopeControlOperationV1:vZ,ScopeSourceBinding:v2,SensitiveFilesystemLocatorV1:v3,SourceBindingId:bg,SourceKindV1:bb,TopologyConcurrencyPolicyV1:bH,TopologyEscalationPolicyV1:bG,TopologyGatePolicyV1:bB,TopologyNotificationLevelV1:bK,UserProfileId:bQ,UtcMicros:bX,WorkTopologyPolicyV1:SM,WorktreeCleanlinessRequirementV1:SK,WorktreePlacementModeV1:SX,WorktreeRetentionPolicyV1:SY,WorktreeRootPolicyV1:S1},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{change:{$ref:"#/$defs/ProtectedChange"},expected_revision:{$ref:"#/$defs/ConfigurationRevisionId"}},required:["change","expected_revision"],title:"ConfigurationProtectedPreviewRequestV1",type:"object"},{$defs:{AccessPolicyDigest:fv,ActorId:f$,ChangePlanId:hm,ConfigurationRevisionId:hN,ManifestDigest:_p,RedactedConfigurationChangeV1:{additionalProperties:!1,properties:{after_digest:{anyOf:[{$ref:"#/$defs/ManifestDigest"},{type:"null"}]},before_digest:{anyOf:[{$ref:"#/$defs/ManifestDigest"},{type:"null"}]},operation:{$ref:"#/$defs/ScopeControlOperationV1"},setting_key:{$ref:"#/$defs/SettingKey"}},required:["setting_key","operation"],type:"object"},ScopeControlOperationV1:vZ,SettingKey:bd,UtcMicros:bX},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"Immutable dry-run result. It contains no raw locator, secret, target\nidentity, or plaintext configuration value.",properties:{actor_id:{$ref:"#/$defs/ActorId"},authorization_policy_digest:{$ref:"#/$defs/AccessPolicyDigest"},base_revision_id:{$ref:"#/$defs/ConfigurationRevisionId"},created_at:{$ref:"#/$defs/UtcMicros"},expires_at:{$ref:"#/$defs/UtcMicros"},membership_digest:{anyOf:[{$ref:"#/$defs/ManifestDigest"},{type:"null"}]},operation_digest:{$ref:"#/$defs/ManifestDigest"},plan_id:{$ref:"#/$defs/ChangePlanId"},policy_epoch:{format:"uint64",minimum:0,type:"integer"},redacted_changes:{items:{$ref:"#/$defs/RedactedConfigurationChangeV1"},type:"array"},resolved_scope_digest:{$ref:"#/$defs/ManifestDigest"}},required:["plan_id","actor_id","base_revision_id","operation_digest","resolved_scope_digest","authorization_policy_digest","policy_epoch","expires_at","created_at","redacted_changes"],title:"ProtectedChangePlan",type:"object"},{$defs:{ConfigurationRevisionId:hN,RollbackModeV1:{enum:["all_or_nothing","partial"],type:"string"}},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{mode:{$ref:"#/$defs/RollbackModeV1"},target_revision_id:{$ref:"#/$defs/ConfigurationRevisionId"}},required:["target_revision_id","mode"],title:"ConfigurationRollbackPreviewRequestV1",type:"object"},{$defs:{AccessRuleId:fb,ActorId:f$,AnalyzerEnvironmentVariable:fR,AnalyzerExecutableId:fq,AnalyzerExecutableReferenceV1:fI,AnalyzerLanguageId:fx,AnalyzerLanguageSelectionV1:fj,AnalyzerPrivacyClassV1:fC,AnalyzerResourceLimitsV1:fT,AnalyzerRestartPolicyV1:fO,AnalyzerSettingsV1:fE,AnalyzerStructuredValueV1:fA,AuthorityRef:fN,AutomaticWorktreeGcV1:fL,AutomationBackendV1:fU,AutomationHostModeV1:fH,AutomationSettingsV1:fQ,AutomationTaskSetV1:fX,AutomationTaskSettingsV1:fY,BranchCollisionPolicyV1:f2,BranchNameComponentV1:f4,BranchNameSeparatorV1:f6,BranchNamingPolicyV1:f3,BranchTopologyKindV1:hr,BranchTopologyPolicyV1:hi,CanonicalGitRefNameV1:hc,CanonicalGitRefPrefix:hl,CapabilityId:hp,CodeIndexWorkerSelectionV1:hP,ConfigurationIdempotencyKey:hA,ConfigurationLayerIdV1:hW,ConfigurationRevisionId:hN,ConfigurationValueV1:hD,ContextScoutConfigurationLimitsV1:hK,ContextScoutConfigurationModeV1:hJ,ContextScoutConfigurationStateV1:hZ,ContextScoutConfiguredModelPathV1:hQ,ContextScoutIntentKindV1:h3,ContextScoutIntentSettingsV1:h9,ContextScoutSettingsV1:ya,CredentialReferenceId:yy,CrossMergeModeV1:yg,CrossMergePolicyV1:y_,DecisionEngineSettingsV1:y$,GitHubStackedPullRequestPolicyV1:gP,HistoryRewritePolicyV1:gL,IntentQuestionSettingsV1:gK,IntentWindowSettingsV1:gJ,LcmSummarizerExecutableV1:g5,LcmSummarizerExecutablesV1:g8,LocatorDigest:_i,ManifestDigest:_p,ProjectId:_6,ProtectedRefDispositionV1:ve,ProtectedRefRuleV1:vt,ProtectedRefSelectorV1:vr,ProviderId:vn,QueryCollectionId:vc,RepositoryId:v$,RepositoryPlacementScopeV1:vS,RequiredCheckExpectationV1:vk,RequiredCheckV1:vw,ReviewRequirementV1:vA,ReviewTopologyKindV1:vW,ReviewTopologyPolicyV1:vM,RuleEffect:vF,ScopeAccessRule:vK,ScopeAccessSubjectV1:vJ,ScopeControlOperationV1:vZ,ScopeSourceBinding:v2,SensitiveFilesystemLocatorV1:v3,SettingKey:bd,SourceBindingId:bg,SourceKindV1:bb,TopologyConcurrencyPolicyV1:bH,TopologyEscalationPolicyV1:bG,TopologyGatePolicyV1:bB,TopologyNotificationLevelV1:bK,UserProfileId:bQ,UtcMicros:bX,WorkApprovalPolicy:b2,WorkContentLocationClassV1:$f,WorkEffortClassV1:$_,WorkEgressPolicy:$v,WorkExecutableBindingV1:$S,WorkExecutableCapabilityV1:$k,WorkExecutableReference:$w,WorkExecutionLimits:$V,WorkExpertiseCategoryV1:$q,WorkExpertiseConsentV1:$I,WorkFallbackTopology:$x,WorkFilesystemPolicy:$C,WorkOrdinalBandV1:$G,WorkProviderRouteId:Sl,WorkProviderRouteV1:Sp,WorkRouteCandidateV1:Sv,WorkRouteExecutionProfileV1:S$,WorkSandboxPolicy:SV,WorkTopologyPolicyV1:SM,WorktreeCleanlinessRequirementV1:SK,WorktreePlacementModeV1:SX,WorktreeRetentionPolicyV1:SY,WorktreeRootPolicyV1:S1},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"Typed revision-CAS input for a configuration write through the daemon\ninvocation boundary.",properties:{expected_revision:{$ref:"#/$defs/ConfigurationRevisionId"},idempotency_key:{$ref:"#/$defs/ConfigurationIdempotencyKey"},key:{$ref:"#/$defs/SettingKey"},layer:{$ref:"#/$defs/ConfigurationLayerIdV1"},value:{$ref:"#/$defs/ConfigurationValueV1"}},required:["layer","key","value","expected_revision","idempotency_key"],title:"ConfigurationSetRequestV1",type:"object"},{$defs:{ConfigurationIdempotencyKey:hA,ConfigurationLayerIdV1:hW,ConfigurationRevisionId:hN,ProjectId:_6,QueryCollectionId:vc,SettingKey:bd,UserProfileId:bQ},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{expected_revision:{$ref:"#/$defs/ConfigurationRevisionId"},idempotency_key:{$ref:"#/$defs/ConfigurationIdempotencyKey"},key:{$ref:"#/$defs/SettingKey"},layer:{$ref:"#/$defs/ConfigurationLayerIdV1"}},required:["layer","key","expected_revision","idempotency_key"],title:"ConfigurationUnsetRequestV1",type:"object"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{limit:{description:"Maximum number of literal sites to return (default: 100, max: 1000).",format:"uint32",minimum:0,type:["integer","null"]},struct:{description:"Struct name to search literal sites of (e.g. 'GraphStats', 'Config').",type:"string"}},required:["struct"],title:"ConstructorsSurfaceRequestV1",type:"object"},{$defs:{CodeIndexBuildBlockedReasonV1:hv,CodeIndexConvergenceParkedV1:hb,CodeIndexStalenessStateV1:hw,ConstructorFieldCoverageV1:{description:"Whether a literal site's field lists are complete relative to the\nstruct's graph definition.",enum:["complete","unknown"],type:"string"},ConstructorResolutionReasonV1:{enum:["ambiguous_simple_name","syntax_only_simple_name"],type:"string"},ConstructorResolutionStatusV1:{description:"Syntax alone cannot link same-name types across modules, so every\nresolution is unverified.",enum:["unverified"],type:"string"},ConstructorSiteV1:{additionalProperties:!1,properties:{field_coverage:{$ref:"#/$defs/ConstructorFieldCoverageV1"},fields:{items:{type:"string"},type:"array"},file:{type:"string"},line:{format:"uint32",minimum:0,type:"integer"},missing_fields:{items:{type:"string"},type:"array"},update_fields:{items:{type:"string"},type:"array"}},required:["file","line","fields","update_fields","missing_fields","field_coverage"],type:"object"},ConstructorsNotFoundV1:{additionalProperties:!1,properties:{found:{description:"Always `false`: no struct, class, or case class has the name.",type:"boolean"},freshness:{anyOf:[{$ref:"#/$defs/PrimitiveSearchFreshnessV1"},{type:"null"}],description:"The worktree verdict a served graph read opens with."},match_count:{format:"uint64",minimum:0,type:"integer"},message:{type:"string"},sites:{items:{$ref:"#/$defs/ConstructorSiteV1"},type:"array"},struct:{type:"string"}},required:["found","struct","message","match_count","sites"],type:"object"},ConstructorsReportV1:{additionalProperties:!1,properties:{candidate_count:{format:"uint64",minimum:0,type:"integer"},expected_fields:{description:"`None` when the name resolves to more than one definition.",items:{type:"string"},type:["array","null"]},freshness:{anyOf:[{$ref:"#/$defs/PrimitiveSearchFreshnessV1"},{type:"null"}],description:"The worktree verdict a served graph read opens with."},match_count:{format:"uint64",minimum:0,type:"integer"},resolution_reason:{$ref:"#/$defs/ConstructorResolutionReasonV1"},resolution_status:{$ref:"#/$defs/ConstructorResolutionStatusV1"},sites:{items:{$ref:"#/$defs/ConstructorSiteV1"},type:"array"},struct:{type:"string"}},required:["struct","candidate_count","resolution_status","resolution_reason","match_count","sites"],type:"object"},PrimitiveFreshnessStateV1:_K,PrimitiveIndexingStateV1:_J,PrimitiveSearchFreshnessV1:_Y},$schema:"https://json-schema.org/draft/2020-12/schema",anyOf:[{$ref:"#/$defs/ConstructorsNotFoundV1"},{$ref:"#/$defs/ConstructorsReportV1"}],title:"ConstructorsResultV1"},{$defs:{ContextModeV1:hU},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{budget_tokens:{description:"Cap the ranked sections of the answer at about this many tokens.\nQuotas are fixed shares of the budget. The cut is reported on the result.",format:"uint32",minimum:0,type:["integer","null"]},include_code:{type:["boolean","null"]},include_memory:{type:["boolean","null"]},lexical_anchors:{description:"Exact identifiers or technical terms the answer must be about. Each\nruns as its own lexical route: hits carrying an anchor outrank hits\ncarrying none, exact hits included, every anchor with matches keeps at\nleast its best sites through the lane cap, and `lexical_anchors` in the\nresult reports each anchor's outcome: the sites this result returns\nand, by reason, the admitted sites it could not carry. Bounded and\nvalidated by the retrieval kernel; a\nviolation is a typed request rejection. Identifiers the task names\n(`snake_case`, `camelCase`, `a::b`) are anchored after these.",items:{type:"string"},type:["array","null"]},max_code_blocks:{format:"uint32",minimum:0,type:["integer","null"]},max_nodes:{format:"uint32",minimum:0,type:["integer","null"]},memory_limit:{format:"uint32",minimum:0,type:["integer","null"]},memory_min_trust:{format:"double",type:["number","null"]},mode:{anyOf:[{$ref:"#/$defs/ContextModeV1"},{type:"null"}]},prefer_symbol:{description:"Add a symbol-name lexical route for the identifier-shaped words of the\ntask text.",type:["boolean","null"]},task:{type:"string"}},required:["task"],title:"ContextSurfaceRequestV1",type:"object"},{$defs:{CodeIndexBuildBlockedReasonV1:hv,CodeIndexConvergenceParkedV1:hb,CodeIndexStalenessStateV1:hw,ContextCodeBlockV1:{additionalProperties:!1,properties:{code:{type:"string"},end_line:{format:"uint32",minimum:0,type:"integer"},file:{type:"string"},node_id:{type:"string"},start_line:{format:"uint32",minimum:0,type:"integer"}},required:["node_id","file","start_line","end_line","code"],type:"object"},ContextExtensionPointV1:{additionalProperties:!1,description:"A public trait or interface among the context's selected symbols.",properties:{file:{type:"string"},implementor_count:{format:"uint",minimum:0,type:"integer"},kind:{type:"string"},line:{format:"uint32",minimum:0,type:"integer"},name:{type:"string"}},required:["name","kind","file","line","implementor_count"],type:"object"},ContextLexicalAnchorV1:hL,ContextModeV1:hU,ContextPlanV1:{additionalProperties:!1,description:"Plan-mode enrichment: where the selected code can be extended and which\ntest files reach it.",properties:{extension_points:{items:{$ref:"#/$defs/ContextExtensionPointV1"},type:"array"},test_files:{description:"Test files calling the selected symbols within two hops; absent when\nno symbol was selected to trace from.",items:{type:"string"},type:["array","null"]}},required:["extension_points"],type:"object"},ContextRelatedOmissionV1:{additionalProperties:!1,description:"Related symbols `context` ranked but did not return.",properties:{omitted:{description:"Ranked related symbols the `max_nodes` cut dropped.",format:"uint",minimum:0,type:"integer"},total:{description:"Distinct related symbols the walk found and ranked.",format:"uint",minimum:0,type:"integer"},total_is_lower_bound:{description:"The neighbor walk stopped at its row limit, so `total` is a lower\nbound.",type:"boolean"}},required:["total","omitted","total_is_lower_bound"],type:"object"},ContextRetrievalPlanV1:{additionalProperties:!1,description:"The retrieval plan `context` executed: which stages ran, what each\nadmitted, and where a budget bounded the answer. Lane-level serving state\nstays in `coverage`.",properties:{code:{$ref:"#/$defs/ContextStageV1",description:"Source bodies for selected symbols, bounded by `max_code_blocks`."},graph:{$ref:"#/$defs/ContextStageV1",description:"Candidates resolved to verified graph symbols."},memory:{$ref:"#/$defs/ContextStageV1",description:"Project memory facts, bounded by `memory_limit`."},related:{$ref:"#/$defs/ContextStageV1",description:"Ranked neighbors of the selected symbols, bounded by `max_nodes`."},search:{$ref:"#/$defs/ContextStageV1",description:"Ranked code-index candidates, bounded by `max_nodes`."}},required:["search","graph","related","code","memory"],type:"object"},ContextRetrievalRouteV1:{description:"Which retrieval route `context` ran.\n\n`name` is the preferred-symbol route. `prose` is the ordinary task\nroute. A caller that omits `prefer_symbol` gets `name` only when the\ntask is one identifier or one `Type.method` / `path::name` token.",enum:["name","prose"],type:"string"},ContextSearchMatchV1:{additionalProperties:!1,properties:{anchor_id:{type:"string"},anchors:{description:"Lexical anchors, the caller's and then the task's identifiers, whose\nroute ranked this match; the anchor receipt counts it as returned.",items:{type:"string"},type:"array"},exact_class:{type:"string"},file:{type:"string"},kind:{type:"string"},name:{type:"string"},qualified_name:{type:"string"},rank:{format:"uint32",minimum:0,type:"integer"},utility_micros:{format:"uint64",minimum:0,type:"integer"}},required:["anchor_id","name","qualified_name","kind","file","exact_class","rank","utility_micros"],type:"object"},ContextStageV1:{description:"What one `context` stage ran with and kept.",oneOf:[{description:"The request did not ask for this stage.",properties:{state:{const:"not_requested",type:"string"}},required:["state"],type:"object"},{description:"A stage this one reads from produced nothing to work on.",properties:{state:{const:"skipped",type:"string"}},required:["state"],type:"object"},{description:"The stage's authority could not answer.",properties:{state:{const:"unavailable",type:"string"}},required:["state"],type:"object"},{description:"The stage admitted `admitted` entries under `budget`. `truncated` is\ntrue when it stopped at that budget, so more entries may exist.",properties:{admitted:{format:"uint32",minimum:0,type:"integer"},budget:{format:"uint32",minimum:0,type:"integer"},state:{const:"ran",type:"string"},truncated:{type:"boolean"}},required:["state","budget","admitted","truncated"],type:"object"}]},FactAssertionId:yA,FactCategoryV1:yW,FactCommitOwnerV1:yN,FactEventId:yD,FactId:yL,FactIdentitySourceResultV1:yU,FactSearchGraphCoverageV1:yB,FactSearchGraphDegradationV1:yK,FactSearchHitV1:yJ,FactSearchScoresV1:yZ,FactTelemetryV1:yX,FactV1:yY,LexicalAnchorDropReasonV1:_t,LexicalAnchorDropV1:_r,LocatorDigest:_i,PrimitiveFreshnessStateV1:_K,PrimitiveIndexingStateV1:_J,PrimitiveLaneCompleteV1:_Z,PrimitiveLaneStateV1:{enum:["stale","partial","unavailable"],type:"string"},PrimitiveLaneStatusV1:{anyOf:[{$ref:"#/$defs/PrimitiveLaneCompleteV1"},{properties:{generation:{type:["string","null"]},reason:{type:["string","null"]},status:{$ref:"#/$defs/PrimitiveLaneStateV1"}},required:["status"],type:"object"}]},PrimitiveRecallV1:_X,PrimitiveSearchCoverageV1:{additionalProperties:!1,properties:{exact:{$ref:"#/$defs/PrimitiveLaneStatusV1"},graph:{$ref:"#/$defs/PrimitiveLaneStatusV1"},lexical:{$ref:"#/$defs/PrimitiveLaneStatusV1"},recall:{$ref:"#/$defs/PrimitiveRecallV1"}},required:["exact","lexical","graph","recall"],type:"object"},PrimitiveSearchFreshnessV1:_Y,PrimitiveSymbolLocationV1:_0,PrimitiveUnavailableEvidenceV1:_2,PrimitiveUnavailableStatusV1:_4,ProjectId:_6,ProvenanceId:vi,RetrievalAnchorId:vx,TokenBudgetCutV1:bL,TokenBudgetSectionV1:bU,UtcMicros:bX},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{code:{items:{$ref:"#/$defs/ContextCodeBlockV1"},type:"array"},code_generation:{type:["string","null"]},coverage:{$ref:"#/$defs/PrimitiveSearchCoverageV1"},freshness:{$ref:"#/$defs/PrimitiveSearchFreshnessV1",description:"Freshness of the served code generation, derived from the typed lane\ncoverage and the daemon scheduler's worktree state."},lexical_anchors:{description:"Outcome of every caller `lexical_anchors` entry, then of each\nidentifier the task names; empty when there are neither.",items:{$ref:"#/$defs/ContextLexicalAnchorV1"},type:"array"},memory_graph_coverage:{anyOf:[{$ref:"#/$defs/FactSearchGraphCoverageV1"},{type:"null"}]},memory_matches:{items:{$ref:"#/$defs/FactSearchHitV1"},type:"array"},memory_matches_error:{type:["string","null"]},mode:{$ref:"#/$defs/ContextModeV1"},oversized_symbols:{description:"Matched symbols whose declaration is larger than one code block.\nTheir code is withheld rather than served as a partial window.",items:{$ref:"#/$defs/PrimitiveSymbolLocationV1"},type:"array"},plan:{anyOf:[{$ref:"#/$defs/ContextPlanV1"},{type:"null"}],description:"Present in plan mode when the verified graph answered."},related_omission:{anyOf:[{$ref:"#/$defs/ContextRelatedOmissionV1"},{type:"null"}],description:"Present when related symbols were left out: by the `max_nodes` cut,\nor because the neighbor walk stopped at its row limit."},related_symbols:{description:"Neighbors of `symbols`, ranked before the `max_nodes` cut: best edge\nkind to a selected symbol (calls, implements, extends, `type_of`,\nreturns, receives, uses, annotates, contains), then total degree\ndescending, then qualified name.",items:{$ref:"#/$defs/PrimitiveSymbolLocationV1"},type:"array"},retrieval:{$ref:"#/$defs/ContextRetrievalPlanV1"},route:{$ref:"#/$defs/ContextRetrievalRouteV1"},search_matches:{items:{$ref:"#/$defs/ContextSearchMatchV1"},type:"array"},symbols:{items:{$ref:"#/$defs/PrimitiveSymbolLocationV1"},type:"array"},task:{type:"string"},token_budget:{anyOf:[{$ref:"#/$defs/TokenBudgetCutV1"},{type:"null"}],description:"Budget accounting when the request supplies `budget_tokens`."},verified_graph_evidence:{anyOf:[{$ref:"#/$defs/PrimitiveUnavailableEvidenceV1"},{type:"null"}]}},required:["task","route","mode","freshness","symbols","related_symbols","code","coverage","memory_matches","retrieval"],title:"ContextResultV1",type:"object"},{$defs:{ContextScoutAddressV1:hH},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{address:{$ref:"#/$defs/ContextScoutAddressV1"}},required:["address"],title:"ContextScoutExactAddressRequestV1",type:"object"},{$defs:{ContextScoutLimitsV1:h5,ContextScoutModelOutcomeV1:h7},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{exhausted:{type:"boolean"},last_estimated_cost_microusd:{format:"uint64",minimum:0,type:["integer","null"]},last_input_tokens:{format:"uint64",minimum:0,type:["integer","null"]},last_model_outcome:{anyOf:[{$ref:"#/$defs/ContextScoutModelOutcomeV1"},{type:"null"}]},last_output_tokens:{format:"uint64",minimum:0,type:["integer","null"]},limits:{$ref:"#/$defs/ContextScoutLimitsV1"}},required:["limits","exhausted"],title:"ContextScoutBudgetResultV1",type:"object"},{$defs:{ContextScoutAddressV1:hH,ContextScoutWorkV1:yl},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{address:{$ref:"#/$defs/ContextScoutAddressV1"},idempotency_key:{type:"string"},work:{$ref:"#/$defs/ContextScoutWorkV1"}},required:["address","work","idempotency_key"],title:"ContextScoutCancelRequestV1",type:"object"},{$defs:{ContextScoutStoreOutcomeV1:ys},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{outcome:{$ref:"#/$defs/ContextScoutStoreOutcomeV1"}},required:["outcome"],title:"ContextScoutMutationResultV1",type:"object"},{$defs:{ContextScoutModelBackendV1:h8,ContextScoutModelOutcomeV1:h7,ContextScoutRuntimeModeV1:yi,ContextScoutServiceStateV1:yo},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{configured_model:{anyOf:[{$ref:"#/$defs/ContextScoutModelBackendV1"},{type:"null"}]},configured_model_available:{type:"boolean"},deterministic_available:{type:"boolean"},last_model_outcome:{anyOf:[{$ref:"#/$defs/ContextScoutModelOutcomeV1"},{type:"null"}]},mode:{$ref:"#/$defs/ContextScoutRuntimeModeV1"},state:{$ref:"#/$defs/ContextScoutServiceStateV1"}},required:["state","mode","deterministic_available","configured_model_available"],title:"ContextScoutCapabilityResultV1",type:"object"},{$defs:{ContextScoutAddressV1:hH,ContextScoutClaimWindowV1:{enum:["idle_window","on_request"],type:"string"}},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{address:{$ref:"#/$defs/ContextScoutAddressV1"},idempotency_key:{type:"string"},window:{$ref:"#/$defs/ContextScoutClaimWindowV1"}},required:["address","window","idempotency_key"],title:"ContextScoutClaimRequestV1",type:"object"},{$defs:{CodeGenerationId:hg,ContextScoutAddressV1:hH,ContextScoutCategoryV1:hG,ContextScoutClaimHandleV1:hB,ContextScoutDeliveryWindowV1:h1,ContextScoutEvidenceAvailabilityV1:h0,ContextScoutEvidenceProjectionV1:h2,ContextScoutModelBackendV1:h8,ContextScoutModelOutcomeV1:h7,ContextScoutModelReceiptV1:ye,ContextScoutRouteV1:yr,ContextScoutSessionWindowV1:yn,ContextScoutSuggestionProjectionV1:yd,ContextScoutWorkV1:yl,ManifestDigest:_p,RetrievalAnchorId:vx,UtcMicros:bX},$schema:"https://json-schema.org/draft/2020-12/schema",oneOf:[{properties:{claim:{$ref:"#/$defs/ContextScoutClaimHandleV1"},outcome:{const:"claimed",type:"string"},suggestion:{$ref:"#/$defs/ContextScoutSuggestionProjectionV1"}},required:["outcome","claim","suggestion"],type:"object"},{properties:{outcome:{const:"empty",type:"string"}},required:["outcome"],type:"object"}],title:"ContextScoutClaimResultV1"},{$defs:{ContextScoutAddressV1:hH,ContextScoutClaimHandleV1:hB,ContextScoutDeliveryOutcomeV1:hX,ContextScoutWorkV1:yl,UtcMicros:bX},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{address:{$ref:"#/$defs/ContextScoutAddressV1"},claim:{$ref:"#/$defs/ContextScoutClaimHandleV1"},delivered_at:{$ref:"#/$defs/UtcMicros"},idempotency_key:{type:"string"},outcome:{$ref:"#/$defs/ContextScoutDeliveryOutcomeV1"}},required:["address","claim","delivered_at","outcome","idempotency_key"],title:"ContextScoutDeliveryRequestV1",type:"object"},{$defs:{ContextScoutDeliveryOutcomeV1:hX,ContextScoutDeliveryReceiptV1:hY,ContextScoutStoreOutcomeV1:ys,UtcMicros:bX},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{outcome:{$ref:"#/$defs/ContextScoutStoreOutcomeV1"},receipt:{$ref:"#/$defs/ContextScoutDeliveryReceiptV1"}},required:["outcome","receipt"],title:"ContextScoutDeliveryResultV1",type:"object"},{$defs:{ContextScoutAddressV1:hH},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{address:{$ref:"#/$defs/ContextScoutAddressV1"},limit:{default:8,format:"uint",minimum:0,type:"integer"}},required:["address"],title:"ContextScoutRecentRequestV1",type:"object"},{$defs:{CodeGenerationId:hg,ContextScoutAddressV1:hH,ContextScoutCategoryV1:hG,ContextScoutDeliveryOutcomeV1:hX,ContextScoutDeliveryReceiptV1:hY,ContextScoutDeliveryWindowV1:h1,ContextScoutEvidenceAvailabilityV1:h0,ContextScoutEvidenceProjectionV1:h2,ContextScoutFeedbackKindV1:h4,ContextScoutFeedbackV1:h6,ContextScoutLimitsV1:h5,ContextScoutModelBackendV1:h8,ContextScoutModelOutcomeV1:h7,ContextScoutModelReceiptV1:ye,ContextScoutRecentDeliveryV1:yt,ContextScoutRecentResultV1:{additionalProperties:!1,properties:{configuration_revision:{items:{format:"uint8",maximum:255,minimum:0,type:"integer"},maxItems:32,minItems:32,type:"array"},deliveries:{items:{$ref:"#/$defs/ContextScoutRecentDeliveryV1"},type:"array"},observed_at:{$ref:"#/$defs/UtcMicros"},omitted:{format:"uint",minimum:0,type:"integer"},pending:{items:{$ref:"#/$defs/ContextScoutSuggestionProjectionV1"},type:"array"}},required:["configuration_revision","observed_at","pending","deliveries","omitted"],type:"object"},ContextScoutRouteV1:yr,ContextScoutRuntimeModeV1:yi,ContextScoutServiceStateV1:yo,ContextScoutSessionWindowV1:yn,ContextScoutStatusResultV1:{additionalProperties:!1,properties:{active_suggestions:{format:"uint",minimum:0,type:"integer"},configuration_revision:{items:{format:"uint8",maximum:255,minimum:0,type:"integer"},maxItems:32,minItems:32,type:"array"},last_delivery_outcome:{anyOf:[{$ref:"#/$defs/ContextScoutDeliveryOutcomeV1"},{type:"null"}]},last_feedback:{anyOf:[{$ref:"#/$defs/ContextScoutFeedbackKindV1"},{type:"null"}]},last_model_outcome:{anyOf:[{$ref:"#/$defs/ContextScoutModelOutcomeV1"},{type:"null"}]},last_model_receipt:{anyOf:[{$ref:"#/$defs/ContextScoutModelReceiptV1"},{type:"null"}]},last_route:{anyOf:[{$ref:"#/$defs/ContextScoutRouteV1"},{type:"null"}]},last_suppression:{anyOf:[{$ref:"#/$defs/ContextScoutSuppressionV1"},{type:"null"}]},limits:{$ref:"#/$defs/ContextScoutLimitsV1"},mode:{$ref:"#/$defs/ContextScoutRuntimeModeV1"},model_path:{anyOf:[{$ref:"#/$defs/ContextScoutModelBackendV1"},{type:"null"}]},state:{$ref:"#/$defs/ContextScoutServiceStateV1"}},required:["configuration_revision","state","mode","limits","active_suggestions"],type:"object"},ContextScoutSuggestionProjectionV1:yd,ContextScoutSuppressionV1:yc,ContextScoutWorkV1:yl,ManifestDigest:_p,RetrievalAnchorId:vx,UtcMicros:bX},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{recent:{$ref:"#/$defs/ContextScoutRecentResultV1"},status:{$ref:"#/$defs/ContextScoutStatusResultV1"}},required:["status","recent"],title:"ContextScoutExplanationResultV1",type:"object"},{$defs:{ContextScoutAddressV1:hH,ContextScoutDeliveryOutcomeV1:hX,ContextScoutDeliveryReceiptV1:hY,ContextScoutFeedbackKindV1:h4,ContextScoutFeedbackV1:h6,UtcMicros:bX},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{address:{$ref:"#/$defs/ContextScoutAddressV1"},feedback:{$ref:"#/$defs/ContextScoutFeedbackV1"},idempotency_key:{type:"string"},receipt:{$ref:"#/$defs/ContextScoutDeliveryReceiptV1"}},required:["address","receipt","feedback","idempotency_key"],title:"ContextScoutFeedbackRequestV1",type:"object"},{$defs:{ConfigurationIdempotencyKey:hA,ConfigurationRevisionId:hN,ContextScoutAddressV1:hH},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{address:{$ref:"#/$defs/ContextScoutAddressV1"},expected_revision:{$ref:"#/$defs/ConfigurationRevisionId"},idempotency_key:{$ref:"#/$defs/ConfigurationIdempotencyKey"}},required:["address","expected_revision","idempotency_key"],title:"ContextScoutControlRequestV1",type:"object"},{$defs:{CodeGenerationId:hg,ContextScoutAddressV1:hH,ContextScoutCategoryV1:hG,ContextScoutDeliveryOutcomeV1:hX,ContextScoutDeliveryReceiptV1:hY,ContextScoutDeliveryWindowV1:h1,ContextScoutEvidenceAvailabilityV1:h0,ContextScoutEvidenceProjectionV1:h2,ContextScoutFeedbackKindV1:h4,ContextScoutFeedbackV1:h6,ContextScoutModelBackendV1:h8,ContextScoutModelOutcomeV1:h7,ContextScoutModelReceiptV1:ye,ContextScoutRecentDeliveryV1:yt,ContextScoutRouteV1:yr,ContextScoutSessionWindowV1:yn,ContextScoutSuggestionProjectionV1:yd,ContextScoutWorkV1:yl,ManifestDigest:_p,RetrievalAnchorId:vx,UtcMicros:bX},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{configuration_revision:{items:{format:"uint8",maximum:255,minimum:0,type:"integer"},maxItems:32,minItems:32,type:"array"},deliveries:{items:{$ref:"#/$defs/ContextScoutRecentDeliveryV1"},type:"array"},observed_at:{$ref:"#/$defs/UtcMicros"},omitted:{format:"uint",minimum:0,type:"integer"},pending:{items:{$ref:"#/$defs/ContextScoutSuggestionProjectionV1"},type:"array"}},required:["configuration_revision","observed_at","pending","deliveries","omitted"],title:"ContextScoutRecentResultV1",type:"object"},{$defs:{ContextScoutDeliveryOutcomeV1:hX,ContextScoutFeedbackKindV1:h4,ContextScoutLimitsV1:h5,ContextScoutModelBackendV1:h8,ContextScoutModelOutcomeV1:h7,ContextScoutModelReceiptV1:ye,ContextScoutRouteV1:yr,ContextScoutRuntimeModeV1:yi,ContextScoutServiceStateV1:yo,ContextScoutSuppressionV1:yc},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{active_suggestions:{format:"uint",minimum:0,type:"integer"},configuration_revision:{items:{format:"uint8",maximum:255,minimum:0,type:"integer"},maxItems:32,minItems:32,type:"array"},last_delivery_outcome:{anyOf:[{$ref:"#/$defs/ContextScoutDeliveryOutcomeV1"},{type:"null"}]},last_feedback:{anyOf:[{$ref:"#/$defs/ContextScoutFeedbackKindV1"},{type:"null"}]},last_model_outcome:{anyOf:[{$ref:"#/$defs/ContextScoutModelOutcomeV1"},{type:"null"}]},last_model_receipt:{anyOf:[{$ref:"#/$defs/ContextScoutModelReceiptV1"},{type:"null"}]},last_route:{anyOf:[{$ref:"#/$defs/ContextScoutRouteV1"},{type:"null"}]},last_suppression:{anyOf:[{$ref:"#/$defs/ContextScoutSuppressionV1"},{type:"null"}]},limits:{$ref:"#/$defs/ContextScoutLimitsV1"},mode:{$ref:"#/$defs/ContextScoutRuntimeModeV1"},model_path:{anyOf:[{$ref:"#/$defs/ContextScoutModelBackendV1"},{type:"null"}]},state:{$ref:"#/$defs/ContextScoutServiceStateV1"}},required:["configuration_revision","state","mode","limits","active_suggestions"],title:"ContextScoutStatusResultV1",type:"object"},{$defs:{CouplingDirectionV1:yu},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{direction:{anyOf:[{$ref:"#/$defs/CouplingDirectionV1"},{type:"null"}],description:"fan_in: files depended on by the most others. fan_out: files that\ndepend on the most others (default: fan_in)."},limit:{description:"Maximum number of results to return (default: 10, at most 100).",format:"uint32",minimum:0,type:["integer","null"]},path:{description:"Filter to files under this directory path (e.g. 'src/main/java').",type:["string","null"]}},title:"CouplingSurfaceRequestV1",type:"object"},{$defs:{CodeIndexBuildBlockedReasonV1:hv,CodeIndexConvergenceParkedV1:hb,CodeIndexStalenessStateV1:hw,CouplingDirectionV1:yu,CouplingEntryV1:{additionalProperties:!1,properties:{coupled_files:{format:"uint64",minimum:0,type:"integer"},file:{type:"string"}},required:["file","coupled_files"],type:"object"},PrimitiveFreshnessStateV1:_K,PrimitiveIndexingStateV1:_J,PrimitiveSearchFreshnessV1:_Y},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{direction:{$ref:"#/$defs/CouplingDirectionV1"},freshness:{anyOf:[{$ref:"#/$defs/PrimitiveSearchFreshnessV1"},{type:"null"}],description:"The worktree verdict a served graph read opens with."},ranking:{items:{$ref:"#/$defs/CouplingEntryV1"},type:"array"},result_count:{format:"uint64",minimum:0,type:"integer"}},required:["direction","result_count","ranking"],title:"CouplingResultV1",type:"object"},{$defs:{DashboardActionV1:{description:"What `tracedecay_dashboard` does.",enum:["start","stop"],type:"string"}},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{action:{anyOf:[{$ref:"#/$defs/DashboardActionV1"},{type:"null"}],description:'Action to perform (default: "start"). "stop" shuts down a previously\nstarted dashboard if any.'},host:{description:'Loopback host address to bind: 127.0.0.1, localhost, or ::1\n(default: "127.0.0.1"). Wildcard, LAN, public IPs, and other\nhostnames are rejected.',type:["string","null"]},port:{description:"Port to listen on; 0 picks an ephemeral port (default: 7341).",format:"uint16",maximum:65535,minimum:0,type:["integer","null"]}},title:"DashboardSurfaceRequestV1",type:"object"},{$schema:"https://json-schema.org/draft/2020-12/schema",oneOf:[{additionalProperties:!1,properties:{host:{type:"string"},port:{format:"uint16",maximum:65535,minimum:0,type:"integer"},status:{const:"started",type:"string"},url:{type:"string"}},required:["status","url","host","port"],type:"object"},{additionalProperties:!1,description:"A dashboard that was already bound when `start` was asked again.",properties:{host:{type:"string"},port:{format:"uint16",maximum:65535,minimum:0,type:"integer"},requested_host:{type:"string"},requested_port:{format:"uint16",maximum:65535,minimum:0,type:"integer"},requested_port_honored:{description:"Whether the bound port is the one asked for (always true for 0).",type:"boolean"},status:{const:"already_running",type:"string"},url:{type:"string"}},required:["status","url","host","port","requested_host","requested_port","requested_port_honored"],type:"object"},{additionalProperties:!1,description:"The bound server is shutting down.",properties:{host:{type:"string"},port:{format:"uint16",maximum:65535,minimum:0,type:"integer"},requested_host:{type:"string"},requested_port:{format:"uint16",maximum:65535,minimum:0,type:"integer"},requested_port_honored:{description:"Whether the bound port is the one asked for (always true for 0).",type:"boolean"},status:{const:"stopping",type:"string"},url:{type:"string"}},required:["status","url","host","port","requested_host","requested_port","requested_port_honored"],type:"object"},{additionalProperties:!1,properties:{previous_url:{type:"string"},status:{const:"stopped",type:"string"}},required:["status","previous_url"],type:"object"},{additionalProperties:!1,properties:{status:{const:"not_running",type:"string"}},required:["status"],type:"object"}],title:"DashboardResultV1"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{include_public:{description:"When true, do NOT exclude pub items. Default false.",type:["boolean","null"]},kinds:{description:'Node kinds to check (default: ["function", "method"]).',items:{type:"string"},type:["array","null"]},limit:{description:"Maximum symbols to return (default: 100, max: 1000).",format:"uint32",minimum:0,type:["integer","null"]},path:{description:"Filter reported symbols to files under this directory path (e.g.\n'crates/tracedecay-mcp'). Omit for the entire codebase.",type:["string","null"]}},title:"DeadCodeSurfaceRequestV1",type:"object"},{$defs:{CodeIndexBuildBlockedReasonV1:hv,CodeIndexConvergenceParkedV1:hb,CodeIndexStalenessStateV1:hw,DeadCodeSymbolV1:{additionalProperties:!1,properties:{file:{type:"string"},id:{type:"string"},kind:{type:"string"},line:{format:"uint32",minimum:0,type:"integer"},name:{type:"string"},signature:{type:["string","null"]}},required:["id","name","kind","file","line"],type:"object"},PrimitiveFreshnessStateV1:_K,PrimitiveIndexingStateV1:_J,PrimitiveSearchFreshnessV1:_Y},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{dead_code_count:{format:"uint64",minimum:0,type:"integer"},freshness:{anyOf:[{$ref:"#/$defs/PrimitiveSearchFreshnessV1"},{type:"null"}],description:"The worktree verdict a served graph read opens with."},symbols:{items:{$ref:"#/$defs/DeadCodeSymbolV1"},type:"array"}},required:["dead_code_count","symbols"],title:"DeadCodeResultV1",type:"object"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{limit:{description:"Maximum number of chains to return (default: 10, at most 100).",format:"uint32",minimum:0,type:["integer","null"]},path:{description:"Filter to files under this directory path.",type:["string","null"]}},title:"DependencyDepthSurfaceRequestV1",type:"object"},{$defs:{CodeIndexBuildBlockedReasonV1:hv,CodeIndexConvergenceParkedV1:hb,CodeIndexStalenessStateV1:hw,DependencyDepthChainV1:{additionalProperties:!1,properties:{chain:{items:{type:"string"},type:"array"},depth:{format:"uint64",minimum:0,type:"integer"},file:{type:"string"}},required:["file","depth","chain"],type:"object"},PrimitiveFreshnessStateV1:_K,PrimitiveIndexingStateV1:_J,PrimitiveSearchFreshnessV1:_Y},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"`ideal_depth` is `ceil(log2(file_count))`.",properties:{chains:{items:{$ref:"#/$defs/DependencyDepthChainV1"},type:"array"},depth_score:{format:"double",type:"number"},freshness:{anyOf:[{$ref:"#/$defs/PrimitiveSearchFreshnessV1"},{type:"null"}],description:"The worktree verdict a served graph read opens with."},ideal_depth:{format:"uint64",minimum:0,type:"integer"},max_depth:{format:"uint64",minimum:0,type:"integer"}},required:["max_depth","ideal_depth","depth_score","chains"],title:"DependencyDepthResultV1",type:"object"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"Addresses indexed symbols by node id or by qualified name; the node id\nwins when both are present.",properties:{node_id:{description:"Look up a single node by its ID instead of qualified_name.",type:["string","null"]},qualified_name:{description:"The exact, case-sensitive qualified name to look up. A bare short name\ndoes not match; resolve it with find_exact_symbol first.",type:["string","null"]}},title:"SymbolSelectorSurfaceRequestV1",type:"object"},{$defs:{DeriveAnnotationV1:{additionalProperties:!1,properties:{evidence_class:{$ref:"#/$defs/DeriveEvidenceClassV1"},name:{type:"string"},unavailable_fields:{items:{type:"string"},type:"array"}},required:["name","evidence_class","unavailable_fields"],type:"object"},DeriveEvidenceClassV1:{description:"How a derive name is known: read from the declaration's attributes, not\nfrom macro expansion.",enum:["syntax_exact"],type:"string"},DerivesSymbolV1:{additionalProperties:!1,properties:{derives:{items:{$ref:"#/$defs/DeriveAnnotationV1"},type:"array"},file:{type:"string"},kind:{type:"string"},line:{format:"uint32",minimum:0,type:"integer"},name:{type:"string"},node_id:{type:"string"},qualified_name:{type:"string"}},required:["node_id","name","qualified_name","kind","file","line","derives"],type:"object"}},$schema:"https://json-schema.org/draft/2020-12/schema",description:"Derive annotations of every addressed symbol; empty when no symbol matched.",items:{$ref:"#/$defs/DerivesSymbolV1"},title:"DerivesResultV1",type:"array"},{$defs:{DiagnoseSeverityFilterV1:{description:"Compiler severity the diagnose report keeps.",enum:["error","warning","all"],type:"string"}},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{cargo_output:{description:"Raw stderr text from `cargo check` / `cargo clippy` / `rustc`.",type:"string"},include_callers:{description:"Attach up to 5 callers per diagnostic (default: true).",type:["boolean","null"]},max_diagnostics:{description:"Cap on diagnostics in the response (default: 50, at most 500).",format:"uint32",minimum:0,type:["integer","null"]},severity:{anyOf:[{$ref:"#/$defs/DiagnoseSeverityFilterV1"},{type:"null"}],description:"Filter by severity (default: all)."}},required:["cargo_output"],title:"DiagnoseSurfaceRequestV1",type:"object"},{$defs:{CodeIndexBuildBlockedReasonV1:hv,CodeIndexConvergenceParkedV1:hb,CodeIndexStalenessStateV1:hw,DiagnoseItemV1:{additionalProperties:!1,properties:{callers:{description:"Absent when the request turned caller attachment off.",items:{$ref:"#/$defs/DiagnoseSymbolV1"},type:["array","null"]},code:{type:["string","null"]},column:{format:"uint32",minimum:0,type:"integer"},file:{type:"string"},line:{format:"uint32",minimum:0,type:"integer"},message:{type:"string"},node:{anyOf:[{$ref:"#/$defs/DiagnoseSymbolV1"},{type:"null"}]},severity:{$ref:"#/$defs/DiagnoseSeverityV1"}},required:["severity","message","file","line","column"],type:"object"},DiagnosePublicationV1:{description:"Outcome of publishing the parsed diagnostics into the managed store.",oneOf:[{additionalProperties:!1,properties:{reason:{type:"string"},status:{const:"skipped",type:"string"},unresolved:{items:{type:"string"},type:["array","null"]}},required:["status","reason"],type:"object"},{additionalProperties:!1,properties:{cleared:{format:"uint64",minimum:0,type:"integer"},generation:{type:"string"},inserted:{format:"uint64",minimum:0,type:"integer"},publication_revision:{format:"uint64",minimum:0,type:"integer"},rejected:{items:{type:"string"},type:"array"},status:{const:"published",type:"string"},unresolved:{items:{type:"string"},type:"array"}},required:["status","generation","publication_revision","inserted","cleared","unresolved","rejected"],type:"object"},{additionalProperties:!1,properties:{reason:{type:"string"},status:{const:"failed",type:"string"}},required:["status","reason"],type:"object"}]},DiagnoseSeverityV1:{description:"Severity of one parsed compiler diagnostic.",enum:["error","warning","note","help"],type:"string"},DiagnoseSymbolV1:{additionalProperties:!1,description:"The graph symbol a diagnostic line falls in, or one of its callers.",properties:{end_line:{format:"uint32",minimum:0,type:"integer"},file:{type:"string"},kind:{type:"string"},line:{description:"One-based display line.",format:"uint32",minimum:0,type:"integer"},name:{type:"string"},node_id:{type:"string"},qualified_name:{type:"string"},start_line:{format:"uint32",minimum:0,type:"integer"}},required:["node_id","name","kind","qualified_name","file","line","start_line","end_line"],type:"object"},PrimitiveFreshnessStateV1:_K,PrimitiveIndexingStateV1:_J,PrimitiveSearchFreshnessV1:_Y},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{diagnostics:{items:{$ref:"#/$defs/DiagnoseItemV1"},type:"array"},diagnostics_parsed:{format:"uint64",minimum:0,type:"integer"},diagnostics_returned:{format:"uint64",minimum:0,type:"integer"},freshness:{anyOf:[{$ref:"#/$defs/PrimitiveSearchFreshnessV1"},{type:"null"}],description:"The worktree verdict a served graph read opens with."},mapped_to_node:{format:"uint64",minimum:0,type:"integer"},published:{$ref:"#/$defs/DiagnosePublicationV1"},truncated:{type:"boolean"},unmapped:{format:"uint64",minimum:0,type:"integer"}},required:["diagnostics_parsed","diagnostics_returned","mapped_to_node","unmapped","truncated","published","diagnostics"],title:"DiagnoseResultV1",type:"object"},{$defs:{DiagnosticsPrimitiveScope:{oneOf:[{enum:["workspace"],type:"string"},{additionalProperties:!1,properties:{package:{type:"string"}},required:["package"],type:"object"},{additionalProperties:!1,properties:{file:{type:"string"}},required:["file"],type:"object"}]}},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{cursor:{default:null,type:["string","null"]},maximum_diagnostics:{format:"uint32",minimum:0,type:"integer"},scope:{$ref:"#/$defs/DiagnosticsPrimitiveScope"}},required:["scope","maximum_diagnostics"],title:"DiagnosticsPrimitiveRequest",type:"object"},{$defs:{CodeGenerationId:hg,CommitId:hI,ComponentVersion:hT,ContentDigest:hF,DiagnosticEvidenceClassV1:{description:"Evidence class for one diagnostic record. Evidence class is part of\ncanonical diagnostic identity.",oneOf:[{const:"observed_current",description:"Directly observed against the exact clean generation it names.",type:"string"},{const:"producer_reported",description:"Reported by the cataloged producer for the exact clean generation.",type:"string"},{const:"derived_structural",description:"Derived from TraceDecay structural/graph analysis of the generation.",type:"string"},{const:"unknown_unsupported",description:"The evidence class cannot be established; the record is retained for\naudit but must not be treated as current truth.",type:"string"}]},DiagnosticPrimitiveRecord:{additionalProperties:!1,properties:{diagnostic:{$ref:"#/$defs/GenerationDiagnosticV1"},logical_path:{type:"string"}},required:["logical_path","diagnostic"],type:"object"},DiagnosticProducerKindV1:{description:"The cataloged producer kinds that may publish durable diagnostics.\nRuntime, storage, migration,\nconfiguration, session, or daemon-health findings without a truthful\nsource range are Doctor or application findings and never become\n`GenerationDiagnosticV1` records.",enum:["upstream_compiler","language_server","tracedecay_structural","tracedecay_graph_integrity","tracedecay_policy","tracedecay_code_health","generation_consistency","authorized_external_analyzer"],type:"string"},DiagnosticProvenanceV1:{additionalProperties:!1,description:"Producer provenance for one diagnostic. Diagnostic identity includes\nproducer provenance: identical findings from the same logical producer and\nrevision collapse; findings from distinct producers remain distinct.",properties:{analyzer_revision:{$ref:"#/$defs/ComponentVersion"},configuration_revision:{$ref:"#/$defs/ComponentVersion"},producer:{$ref:"#/$defs/ProviderId"},producer_kind:{$ref:"#/$defs/DiagnosticProducerKindV1"},sanitization_receipt:{anyOf:[{$ref:"#/$defs/SanitizationReceiptId"},{type:"null"}]}},required:["producer_kind","producer","analyzer_revision","configuration_revision"],type:"object"},DiagnosticRecordStateV1:{description:"Current-vs-stale typing for a durable diagnostic record. Publication is\nversion-monotone: a newer clean generation clears the prior publication\ndeterministically, and stale findings cannot cross snapshots.\nStale and historical records remain queryable through\napplication APIs but are excluded from active publication.",oneOf:[{description:"Current for exactly the clean generation named by the record.",properties:{kind:{const:"current",type:"string"}},required:["kind"],type:"object"},{description:"A clean generation completed and deterministically removed this\nfinding (resolution, deletion, source-revision drift, or content or\ngeneration change).",properties:{cleared_in_generation:{$ref:"#/$defs/CodeGenerationId"},kind:{const:"cleared",type:"string"}},required:["kind","cleared_in_generation"],type:"object"}]},DiagnosticSeverityV1:yS,FileOccurrenceId:gd,GenerationDiagnosticV1:{additionalProperties:!1,description:"One durable, generation-bound diagnostic record. Its diagnostic payload,\nscope, and producer provenance form observation identity; the display\nmessage remains sanitized product data.",properties:{code:{description:"Stable producer diagnostic code (for example `E0308`).",type:"string"},collected_at:{$ref:"#/$defs/UtcMicros",description:"Time the server first accepted this evidence observation. Compiler\noutput does not carry a trustworthy producer capture time, and an exact\nsemantic replay retains the first accepted value."},content_digest:{$ref:"#/$defs/ContentDigest",description:"Content digest of the attached file inside the generation."},diagnostic_anchor:{$ref:"#/$defs/RetrievalAnchorId",description:"Retrieval anchor addressing this record. The code index's\n`GenerationDiagnosticAttachmentV1::diagnostic_anchor` points here."},evidence_class:{$ref:"#/$defs/DiagnosticEvidenceClassV1"},file_occurrence_id:{$ref:"#/$defs/FileOccurrenceId",description:"Canonical file identity the diagnostic attaches to."},generation_id:{$ref:"#/$defs/CodeGenerationId",description:"The immutable clean code-intelligence generation this record is bound\nto. Findings never cross generations."},message:{description:"Sanitized display message; bounded by [`MAX_DIAGNOSTIC_MESSAGE_BYTES`].",type:"string"},message_digest:{$ref:"#/$defs/ManifestDigest",description:"Integrity digest over the sanitized message."},provenance:{$ref:"#/$defs/DiagnosticProvenanceV1"},reference:{anyOf:[{$ref:"#/$defs/RefId"},{type:"null"}]},repository:{$ref:"#/$defs/RepositoryId"},severity:{$ref:"#/$defs/DiagnosticSeverityV1"},source_revision:{anyOf:[{$ref:"#/$defs/CommitId"},{type:"null"}]},span:{$ref:"#/$defs/SourceSpan",description:"Range encoding inside the sanitized file (byte range; mutable line\nnumbers are never identity)."},state:{$ref:"#/$defs/DiagnosticRecordStateV1",description:"Current-vs-stale typing; publication is version-monotone."},symbol_occurrence_id:{anyOf:[{$ref:"#/$defs/SymbolOccurrenceId"},{type:"null"}],description:"Enclosing symbol occurrence, when exact attachment is possible."},worktree:{anyOf:[{$ref:"#/$defs/WorktreeId"},{type:"null"}]}},required:["diagnostic_anchor","generation_id","repository","file_occurrence_id","content_digest","span","code","severity","message","message_digest","provenance","evidence_class","collected_at","state"],type:"object"},ManifestDigest:_p,ProviderId:vn,RefId:vf,RepositoryId:v$,RetrievalAnchorId:vx,SanitizationReceiptId:{description:"Strongly typed canonical identity: `SanitizationReceiptId`.",type:"string"},SourceSpan:bk,SymbolOccurrenceId:bx,UtcMicros:bX,WorktreeId:SJ},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{clean_generation:{type:"boolean"},diagnostics:{items:{$ref:"#/$defs/DiagnosticPrimitiveRecord"},type:"array"},findings_cleared:{type:"boolean"},generation_id:{$ref:"#/$defs/CodeGenerationId"},next_cursor:{type:["string","null"]}},required:["generation_id","clean_generation","findings_cleared","diagnostics"],title:"DiagnosticsPrimitiveResult",type:"object"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{budget_tokens:{description:"Cap the symbol, test, and co-change sections at about this many tokens.",format:"uint32",minimum:0,type:["integer","null"]},depth:{description:"Maximum impact traversal depth (default: 2, at most 10).",format:"uint32",minimum:0,type:["integer","null"]},files:{description:"Files to inspect prospectively. All indexed declarations in these files\nare candidates; this does not select exact Git-changed declarations.",items:{type:"string"},type:"array"}},required:["files"],title:"DiffContextSurfaceRequestV1",type:"object"},{$defs:{CoChangeUnavailableV1:hh,CodeIndexBuildBlockedReasonV1:hv,CodeIndexConvergenceParkedV1:hb,CodeIndexStalenessStateV1:hw,GitContextComparisonV1:g_,GitContextSymbolV1:gv,GitOidV1:gI,IncompatibleCallSiteV1:{additionalProperties:!1,description:"A call site whose argument count cannot invoke the new parameter list.",properties:{arguments:{format:"uint32",minimum:0,type:"integer"},file:{type:"string"},line:{format:"uint32",minimum:0,type:"integer"},name:{type:"string"}},required:["name","file","line","arguments"],type:"object"},MissingCoChangePartnerV1:_P,PrimitiveFreshnessStateV1:_K,PrimitiveIndexingStateV1:_J,PrimitiveSearchFreshnessV1:_Y,SignatureEditStatusV1:{description:"How a modified function's parameter list compares with HEAD.",enum:["contract_change"],type:"string"},SignatureEditV1:{additionalProperties:!1,description:"A Rust free function whose parameter count differs from HEAD.",properties:{file:{type:"string"},incompatible:{items:{$ref:"#/$defs/IncompatibleCallSiteV1"},type:"array"},new_parameters:{format:"uint32",minimum:0,type:["integer","null"]},old_parameters:{format:"uint32",minimum:0,type:["integer","null"]},status:{$ref:"#/$defs/SignatureEditStatusV1"},symbol:{type:"string"}},required:["symbol","file","status","incompatible"],type:"object"},TestGateV1:{additionalProperties:!1,description:"Whether tests reach the symbols in a diff's blast radius.\n\n`pass` and exit 0 when every counted symbol is reached. `fail` and exit 4\nname the ones that are not. `incomplete` and exit 0 mean the caller walk\nstopped before that absence is known.",properties:{exit_code:{format:"uint8",maximum:255,minimum:0,type:"integer"},untested:{items:{type:"string"},type:"array"},verdict:{type:"string"}},required:["verdict","exit_code","untested"],type:"object"},TokenBudgetCutV1:bL,TokenBudgetSectionV1:bU},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{affected_tests:{items:{type:"string"},type:"array"},changed_files:{items:{type:"string"},type:"array"},co_change_unavailable:{anyOf:[{$ref:"#/$defs/CoChangeUnavailableV1"},{type:"null"}],description:"Present when Git history could not be mined for co-change partners."},comparison:{anyOf:[{$ref:"#/$defs/GitContextComparisonV1"},{type:"null"}]},freshness:{anyOf:[{$ref:"#/$defs/PrimitiveSearchFreshnessV1"},{type:"null"}],description:"The worktree verdict a served graph read opens with."},impact_complete:{description:"False when the impact walk stopped at its depth or budget with callers\nstill unexplored.",type:"boolean"},impacted_symbols:{items:{$ref:"#/$defs/GitContextSymbolV1"},type:"array"},impacted_symbols_count:{format:"uint",minimum:0,type:"integer"},missing_co_change_partners:{description:"Files that usually change with a changed file, per bounded Git\nhistory, but are absent from this change set.",items:{$ref:"#/$defs/MissingCoChangePartnerV1"},type:"array"},modified_symbols:{items:{$ref:"#/$defs/GitContextSymbolV1"},type:"array"},signature_edits:{description:"Rust free functions whose parameter count changed since HEAD, with the\ncall sites that list cannot accept. Omitted when nothing changed.",items:{$ref:"#/$defs/SignatureEditV1"},type:"array"},test_gate:{$ref:"#/$defs/TestGateV1",description:"Symbols in this diff that no test reaches, and the verdict a CLI exits on."},token_budget:{anyOf:[{$ref:"#/$defs/TokenBudgetCutV1"},{type:"null"}],description:"Budget accounting when the request supplies `budget_tokens`."}},required:["changed_files","modified_symbols","impacted_symbols_count","impacted_symbols","impact_complete","affected_tests","missing_co_change_partners","test_gate"],title:"DiffContextResultV1",type:"object"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{limit:{description:"Maximum number of files in the per-file breakdown, highest node count\nfirst (default: 100, max: 1000). Ignored when summary is true; the\nresponse states total_file_count and omitted_file_count.",format:"uint32",minimum:0,type:["integer","null"]},path:{description:"Directory or file path prefix to filter (e.g.\n'src/main/java/com/example'). Omit for entire codebase.",type:["string","null"]},summary:{description:"If true, aggregate counts across all matching files instead of\nper-file breakdown (default: false).",type:["boolean","null"]}},title:"DistributionSurfaceRequestV1",type:"object"},{$defs:{CodeIndexBuildBlockedReasonV1:hv,CodeIndexConvergenceParkedV1:hb,CodeIndexStalenessStateV1:hw,DistributionFileV1:{additionalProperties:!1,properties:{file:{type:"string"},kinds:{items:{$ref:"#/$defs/DistributionKindCountV1"},type:"array"}},required:["file","kinds"],type:"object"},DistributionKindCountV1:{additionalProperties:!1,properties:{count:{format:"uint64",minimum:0,type:"integer"},kind:{type:"string"}},required:["kind","count"],type:"object"},PrimitiveFreshnessStateV1:_K,PrimitiveIndexingStateV1:_J,PrimitiveSearchFreshnessV1:_Y},$schema:"https://json-schema.org/draft/2020-12/schema",description:"Flattening the tagged view keeps `path_filter` ahead of `mode` on the\nwire; serde cannot deny unknown fields through a flattened member.",oneOf:[{properties:{distribution:{items:{$ref:"#/$defs/DistributionKindCountV1"},type:"array"},mode:{const:"summary",type:"string"},total_kinds:{format:"uint64",minimum:0,type:"integer"}},required:["mode","total_kinds","distribution"],type:"object"},{properties:{file_count:{format:"uint64",minimum:0,type:"integer"},files:{items:{$ref:"#/$defs/DistributionFileV1"},type:"array"},mode:{const:"per_file",type:"string"},omitted_file_count:{format:"uint64",minimum:0,type:"integer"},total_file_count:{format:"uint64",minimum:0,type:"integer"}},required:["mode","file_count","total_file_count","omitted_file_count","files"],type:"object"}],properties:{freshness:{anyOf:[{$ref:"#/$defs/PrimitiveSearchFreshnessV1"},{type:"null"}],description:"The worktree verdict a served graph read opens with."},path_filter:{type:["string","null"]}},title:"DistributionResultV1",type:"object"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{limit:{description:"Maximum number of results to return (default: 50, at most 500).",format:"uint32",minimum:0,type:["integer","null"]},path:{description:"Directory or file path prefix to filter (e.g. 'src/main'). Omit for\nentire codebase.",type:["string","null"]}},title:"DocCoverageSurfaceRequestV1",type:"object"},{$defs:{CodeIndexBuildBlockedReasonV1:hv,CodeIndexConvergenceParkedV1:hb,CodeIndexStalenessStateV1:hw,DocCoverageFileV1:{additionalProperties:!1,properties:{count:{format:"uint64",minimum:0,type:"integer"},file:{type:"string"},symbols:{items:{$ref:"#/$defs/DocCoverageSymbolV1"},type:"array"}},required:["file","count","symbols"],type:"object"},DocCoverageSymbolV1:{additionalProperties:!1,properties:{id:{type:"string"},kind:{type:"string"},line:{format:"uint32",minimum:0,type:"integer"},name:{type:"string"},signature:{type:["string","null"]}},required:["id","name","kind","line"],type:"object"},PrimitiveFreshnessStateV1:_K,PrimitiveIndexingStateV1:_J,PrimitiveSearchFreshnessV1:_Y},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{complete:{type:"boolean"},file_count:{format:"uint64",minimum:0,type:"integer"},files:{items:{$ref:"#/$defs/DocCoverageFileV1"},type:"array"},freshness:{anyOf:[{$ref:"#/$defs/PrimitiveSearchFreshnessV1"},{type:"null"}],description:"The worktree verdict a served graph read opens with."},limit:{format:"uint64",minimum:0,type:"integer"},omitted_count:{format:"uint64",minimum:0,type:"integer"},path_filter:{type:["string","null"]},returned_count:{format:"uint64",minimum:0,type:"integer"},total_undocumented:{format:"uint64",minimum:0,type:"integer"}},required:["total_undocumented","returned_count","omitted_count","complete","limit","file_count","files"],title:"DocCoverageResultV1",type:"object"},{$defs:{DsmShapeV1:yP},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{max_files:{description:"Maximum files in matrix format (default: 30, at most 200).",format:"uint32",minimum:0,type:["integer","null"]},path:{description:"Filter to files under this directory path.",type:["string","null"]},shape:{anyOf:[{$ref:"#/$defs/DsmShapeV1"},{type:"null"}],description:"DSM data shape: stats, clusters, or matrix (default: stats)."}},title:"DsmSurfaceRequestV1",type:"object"},{$defs:{CodeIndexBuildBlockedReasonV1:hv,CodeIndexConvergenceParkedV1:hb,CodeIndexStalenessStateV1:hw,DsmClusterV1:{additionalProperties:!1,properties:{boundary_edges:{format:"uint64",minimum:0,type:"integer"},directory:{type:"string"},file_count:{format:"uint64",minimum:0,type:"integer"},incoming_edges:{format:"uint64",minimum:0,type:"integer"},internal_edges:{format:"uint64",minimum:0,type:"integer"},outgoing_edges:{format:"uint64",minimum:0,type:"integer"}},required:["directory","file_count","internal_edges","outgoing_edges","incoming_edges","boundary_edges"],type:"object"},DsmMatrixV1:{additionalProperties:!1,properties:{files:{items:{type:"string"},type:"array"},matrix:{items:{items:{format:"uint8",maximum:255,minimum:0,type:"integer"},type:"array"},type:"array"},note:{type:"string"}},required:["files","matrix","note"],type:"object"},DsmShapeV1:yP,DsmStatsV1:{additionalProperties:!1,properties:{clusters:{format:"uint64",minimum:0,type:"integer"},density:{format:"double",type:"number"},edges:{format:"uint64",minimum:0,type:"integer"},files:{format:"uint64",minimum:0,type:"integer"},largest_cluster:{format:"uint64",minimum:0,type:"integer"}},required:["files","edges","density","clusters","largest_cluster"],type:"object"},PrimitiveFreshnessStateV1:_K,PrimitiveIndexingStateV1:_J,PrimitiveSearchFreshnessV1:_Y},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{clusters:{items:{$ref:"#/$defs/DsmClusterV1"},type:"array"},freshness:{anyOf:[{$ref:"#/$defs/PrimitiveSearchFreshnessV1"},{type:"null"}],description:"The worktree verdict a served graph read opens with."},matrix:{anyOf:[{$ref:"#/$defs/DsmMatrixV1"},{type:"null"}]},shape:{$ref:"#/$defs/DsmShapeV1"},stats:{$ref:"#/$defs/DsmStatsV1"}},required:["shape","stats","clusters"],title:"DsmResultV1",type:"object"},{$defs:{FactEventId:yD,FactFeedbackActionV1:yF,FactId:yL,MemoryScopeV1:_m,ProjectId:_6},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{action:{$ref:"#/$defs/FactFeedbackActionV1"},expected_last_event_id:{anyOf:[{$ref:"#/$defs/FactEventId"},{type:"null"}]},fact_id:{$ref:"#/$defs/FactId"},memory_scope:{anyOf:[{$ref:"#/$defs/MemoryScopeV1"},{type:"null"}]},project_selector:{additionalProperties:!1,description:'Exact registered-project selector. Reads and fact effects run against the\nselected project.\n\nInlined so every request schema advertises the closed selector contract\n(`required: ["project_id"]`, no additional properties) directly on its\n`project_selector` property instead of behind a `$defs` reference, matching\nthe selector shape the MCP dispatch policy promises for selector-accepting\ntools.',properties:{project_id:{$ref:"#/$defs/ProjectId"}},required:["project_id"],type:["object","null"]},reason:{type:["string","null"]},source_label:{type:["string","null"]}},required:["fact_id","action"],title:"FactFeedbackRequestV1",type:"object"},{$defs:{FactAssertionId:yA,FactCategoryV1:yW,FactCommitDispositionV1:yM,FactCommitOwnerV1:yN,FactCommitReceiptV1:yz,FactEventId:yD,FactFeedbackActionV1:yF,FactFeedbackV1:{additionalProperties:!1,properties:{action:{$ref:"#/$defs/FactFeedbackActionV1"},event_id:{$ref:"#/$defs/FactEventId"},fact_id:{$ref:"#/$defs/FactId"},helpful_count:{format:"uint64",minimum:0,type:"integer"},new_trust_millionths:{format:"uint32",minimum:0,type:"integer"},old_trust_millionths:{format:"uint32",minimum:0,type:"integer"},trust_delta_millionths:{format:"int32",type:"integer"},unhelpful_count:{format:"uint64",minimum:0,type:"integer"}},required:["event_id","fact_id","action","old_trust_millionths","new_trust_millionths","trust_delta_millionths","helpful_count","unhelpful_count"],type:"object"},FactId:yL,FactIdentitySourceResultV1:yU,FactPayloadAccessV1:yH,FactProjectionV1:yG,FactStatusV1:yQ,FactTelemetryV1:yX,FactV1:yY,LocatorDigest:_i,ProjectId:_6,ProvenanceId:vi,RetrievalAnchorId:vx,UtcMicros:bX},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{commit:{$ref:"#/$defs/FactCommitReceiptV1"},fact:{$ref:"#/$defs/FactProjectionV1"},feedback:{$ref:"#/$defs/FactFeedbackV1"}},required:["fact","feedback","commit"],title:"FactFeedbackResultV1",type:"object"},{$defs:{FactCategoryV1:yW,MemoryScopeV1:_m,ProjectId:_6},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{category:{anyOf:[{$ref:"#/$defs/FactCategoryV1"},{type:"null"}]},content:{type:"string"},entities:{default:[],items:{type:"string"},type:"array"},memory_scope:{anyOf:[{$ref:"#/$defs/MemoryScopeV1"},{type:"null"}]},metadata:{additionalProperties:!0,type:["object","null"]},project_selector:{additionalProperties:!1,description:'Exact registered-project selector. Reads and fact effects run against the\nselected project.\n\nInlined so every request schema advertises the closed selector contract\n(`required: ["project_id"]`, no additional properties) directly on its\n`project_selector` property instead of behind a `$defs` reference, matching\nthe selector shape the MCP dispatch policy promises for selector-accepting\ntools.',properties:{project_id:{$ref:"#/$defs/ProjectId"}},required:["project_id"],type:["object","null"]},source_label:{type:["string","null"]},tags:{default:[],items:{type:"string"},type:"array"},trust:{format:"double",type:["number","null"]}},required:["content"],title:"FactStoreAddRequestV1",type:"object"},{$defs:{FactAssertionId:yA,FactCategoryV1:yW,FactCommitDispositionV1:yM,FactCommitOwnerV1:yN,FactCommitReceiptV1:yz,FactEventId:yD,FactId:yL,FactIdentitySourceResultV1:yU,FactPayloadAccessV1:yH,FactProjectionV1:yG,FactStatusV1:yQ,FactStoreAddCommitV1:{oneOf:[{additionalProperties:!1,properties:{commit:{$ref:"#/$defs/FactCommitReceiptV1"},disposition:{const:"added",type:"string"},fact:{$ref:"#/$defs/FactProjectionV1"}},required:["disposition","fact","commit"],type:"object"},{additionalProperties:!1,properties:{closest_fact_id:{$ref:"#/$defs/FactId"},commit:{$ref:"#/$defs/FactCommitReceiptV1"},disposition:{const:"near_duplicate",type:"string"},fact:{$ref:"#/$defs/FactProjectionV1"},similarity_millionths:{format:"uint32",minimum:0,type:"integer"}},required:["disposition","fact","closest_fact_id","similarity_millionths","commit"],type:"object"},{additionalProperties:!1,properties:{closest_fact_id:{$ref:"#/$defs/FactId"},commit:{$ref:"#/$defs/FactCommitReceiptV1"},disposition:{const:"possible_conflict",type:"string"},fact:{$ref:"#/$defs/FactProjectionV1"},similarity_millionths:{format:"uint32",minimum:0,type:"integer"}},required:["disposition","fact","closest_fact_id","similarity_millionths","commit"],type:"object"}]},FactTelemetryV1:yX,FactV1:yY,LocatorDigest:_i,ProjectId:_6,ProvenanceId:vi,RetrievalAnchorId:vx,UtcMicros:bX},$schema:"https://json-schema.org/draft/2020-12/schema",oneOf:[{additionalProperties:!1,properties:{outcome:{const:"secret_rejected",type:"string"}},required:["outcome"],type:"object"},{additionalProperties:!1,properties:{closest_fact_id:{$ref:"#/$defs/FactId"},fact:{$ref:"#/$defs/FactProjectionV1"},outcome:{const:"normalized_duplicate",type:"string"}},required:["outcome","fact","closest_fact_id"],type:"object"},{additionalProperties:!1,properties:{outcome:{const:"committed",type:"string"},result:{$ref:"#/$defs/FactStoreAddCommitV1"}},required:["outcome","result"],type:"object"}],title:"FactStoreAddResultV1"},{$defs:{FactCategoryV1:yW,MemoryScopeV1:_m,ProjectId:_6},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{category:{anyOf:[{$ref:"#/$defs/FactCategoryV1"},{type:"null"}]},limit:{format:"uint64",minimum:0,type:["integer","null"]},memory_scope:{anyOf:[{$ref:"#/$defs/MemoryScopeV1"},{type:"null"}]},project_selector:{additionalProperties:!1,description:'Exact registered-project selector. Reads and fact effects run against the\nselected project.\n\nInlined so every request schema advertises the closed selector contract\n(`required: ["project_id"]`, no additional properties) directly on its\n`project_selector` property instead of behind a `$defs` reference, matching\nthe selector shape the MCP dispatch policy promises for selector-accepting\ntools.',properties:{project_id:{$ref:"#/$defs/ProjectId"}},required:["project_id"],type:["object","null"]},threshold_millionths:{format:"uint32",minimum:0,type:["integer","null"]}},title:"FactStoreContradictRequestV1",type:"object"},{$defs:{FactAssertionId:yA,FactCategoryV1:yW,FactCommitOwnerV1:yN,FactContradictionV1:{additionalProperties:!1,properties:{existing_fact:{$ref:"#/$defs/FactV1"},new_content:{type:"string"},score_millionths:{format:"uint32",minimum:0,type:"integer"},why:{type:["string","null"]}},required:["existing_fact","new_content","score_millionths"],type:"object"},FactEventId:yD,FactId:yL,FactIdentitySourceResultV1:yU,FactTelemetryV1:yX,FactV1:yY,LocatorDigest:_i,ProjectId:_6,ProvenanceId:vi,RetrievalAnchorId:vx,UtcMicros:bX},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{contradictions:{items:{$ref:"#/$defs/FactContradictionV1"},type:"array"},owner:{$ref:"#/$defs/FactCommitOwnerV1"}},required:["owner","contradictions"],title:"FactStoreContradictResultV1",type:"object"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"Closed public launcher for the automatic Memory Curator.\n\nRun identity, task selection, operations, proposals, approval, and apply\nauthority are deliberately absent and rejected by `deny_unknown_fields`.",properties:{fact_review_limit:{default:24,format:"uint32",maximum:1e3,minimum:1,type:"integer"},min_confidence_millionths:{default:72e4,format:"uint32",maximum:1e6,minimum:0,type:"integer"}},title:"FactStoreCurateRequestV1",type:"object"},{$defs:{AutomationTaskV1:{description:"Automation capability selected after one registered application admission.",enum:["memory_curator","session_reflector","skill_writer","combined_review","user_job"],type:"string"},FactStoreCurateStateV1:{description:"Lifecycle state a `fact_store_curate` receipt reports.",oneOf:[{const:"started",description:"The run was admitted and continues on the daemon.",type:"string"}]},ManifestDigest:_p,RunId:vL},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"Receipt of one admitted automatic curation.\n\nThe curator runs on the daemon after this receipt is returned. Its terminal\nis the automation run ledger record for `run_id`, read with\n`automation_run_view`.",properties:{request_digest:{$ref:"#/$defs/ManifestDigest"},run_id:{$ref:"#/$defs/RunId"},state:{$ref:"#/$defs/FactStoreCurateStateV1"},task:{$ref:"#/$defs/AutomationTaskV1"}},required:["run_id","task","request_digest","state"],title:"FactStoreCurateResultV1",type:"object"},{$defs:{FactId:yL,MemoryScopeV1:_m,ProjectId:_6},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{fact_id:{$ref:"#/$defs/FactId"},memory_scope:{anyOf:[{$ref:"#/$defs/MemoryScopeV1"},{type:"null"}]},project_selector:{additionalProperties:!1,description:'Exact registered-project selector. Reads and fact effects run against the\nselected project.\n\nInlined so every request schema advertises the closed selector contract\n(`required: ["project_id"]`, no additional properties) directly on its\n`project_selector` property instead of behind a `$defs` reference, matching\nthe selector shape the MCP dispatch policy promises for selector-accepting\ntools.',properties:{project_id:{$ref:"#/$defs/ProjectId"}},required:["project_id"],type:["object","null"]}},required:["fact_id"],title:"FactStoreGetRequestV1",type:"object"},{$defs:{FactAssertionId:yA,FactCategoryV1:yW,FactCommitOwnerV1:yN,FactEventId:yD,FactFeedbackActionV1:yF,FactFeedbackDetailsAvailabilityV1:{enum:["available","redacted","unknown"],type:"string"},FactId:yL,FactIdentitySourceResultV1:yU,FactPayloadAccessV1:yH,FactProjectionV1:yG,FactStatusV1:yQ,FactTelemetryV1:yX,FactV1:yY,LocatorDigest:_i,ProjectId:_6,ProvenanceId:vi,RetrievalAnchorId:vx,TrustHistoryEntryV1:{additionalProperties:!1,properties:{action:{$ref:"#/$defs/FactFeedbackActionV1"},details_availability:{$ref:"#/$defs/FactFeedbackDetailsAvailabilityV1"},event_id:{$ref:"#/$defs/FactEventId"},new_trust_millionths:{format:"uint32",minimum:0,type:"integer"},occurred_at:{$ref:"#/$defs/UtcMicros"},old_trust_millionths:{format:"uint32",minimum:0,type:"integer"},reason:{type:["string","null"]},source_label:{type:["string","null"]}},required:["event_id","occurred_at","action","old_trust_millionths","new_trust_millionths","details_availability"],type:"object"},UtcMicros:bX},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{fact:{$ref:"#/$defs/FactProjectionV1"},trust_history:{items:{$ref:"#/$defs/TrustHistoryEntryV1"},type:"array"}},required:["fact","trust_history"],title:"FactStoreGetResultV1",type:"object"},{$defs:{FactCategoryV1:yW,MemoryScopeV1:_m,ProjectId:_6},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{after:{description:"The previous page's `next_after`, valid only with the same parameters.",type:["string","null"]},category:{anyOf:[{$ref:"#/$defs/FactCategoryV1"},{type:"null"}]},limit:{format:"uint64",minimum:0,type:["integer","null"]},memory_scope:{anyOf:[{$ref:"#/$defs/MemoryScopeV1"},{type:"null"}]},min_trust:{format:"double",type:["number","null"]},project_selector:{additionalProperties:!1,description:'Exact registered-project selector. Reads and fact effects run against the\nselected project.\n\nInlined so every request schema advertises the closed selector contract\n(`required: ["project_id"]`, no additional properties) directly on its\n`project_selector` property instead of behind a `$defs` reference, matching\nthe selector shape the MCP dispatch policy promises for selector-accepting\ntools.',properties:{project_id:{$ref:"#/$defs/ProjectId"}},required:["project_id"],type:["object","null"]}},title:"FactStoreListRequestV1",type:"object"},{$defs:{FactAssertionId:yA,FactCategoryV1:yW,FactCommitOwnerV1:yN,FactEventId:yD,FactId:yL,FactIdentitySourceResultV1:yU,FactPayloadAccessV1:yH,FactProjectionV1:yG,FactStatusV1:yQ,FactTelemetryV1:yX,FactV1:yY,LocatorDigest:_i,ProjectId:_6,ProvenanceId:vi,RetrievalAnchorId:vx,UtcMicros:bX},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{facts:{items:{$ref:"#/$defs/FactProjectionV1"},type:"array"},next_after:{description:"Opaque continuation, bound to this operation and request.",type:["string","null"]},owner:{$ref:"#/$defs/FactCommitOwnerV1"}},required:["owner","facts"],title:"FactStoreListResultV1",type:"object"},{$defs:{FactCategoryV1:yW,MemoryScopeV1:_m,ProjectId:_6},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{after:{description:"The previous page's `next_after`, valid only with the same parameters.",type:["string","null"]},category:{anyOf:[{$ref:"#/$defs/FactCategoryV1"},{type:"null"}]},entity:{type:"string"},limit:{format:"uint64",minimum:0,type:["integer","null"]},memory_scope:{anyOf:[{$ref:"#/$defs/MemoryScopeV1"},{type:"null"}]},min_trust:{format:"double",type:["number","null"]},project_selector:{additionalProperties:!1,description:'Exact registered-project selector. Reads and fact effects run against the\nselected project.\n\nInlined so every request schema advertises the closed selector contract\n(`required: ["project_id"]`, no additional properties) directly on its\n`project_selector` property instead of behind a `$defs` reference, matching\nthe selector shape the MCP dispatch policy promises for selector-accepting\ntools.',properties:{project_id:{$ref:"#/$defs/ProjectId"}},required:["project_id"],type:["object","null"]}},required:["entity"],title:"FactStoreProbeRequestV1",type:"object"},{$defs:{FactAssertionId:yA,FactCategoryV1:yW,FactCommitOwnerV1:yN,FactEventId:yD,FactId:yL,FactIdentitySourceResultV1:yU,FactSearchGraphCoverageV1:yB,FactSearchGraphDegradationV1:yK,FactSearchHitV1:yJ,FactSearchScoresV1:yZ,FactTelemetryV1:yX,FactV1:yY,LocatorDigest:_i,ProjectId:_6,ProvenanceId:vi,RetrievalAnchorId:vx,UtcMicros:bX},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{graph_coverage:{$ref:"#/$defs/FactSearchGraphCoverageV1"},hits:{items:{$ref:"#/$defs/FactSearchHitV1"},type:"array"},next_after:{description:"Opaque continuation, bound to this operation and request.",type:["string","null"]},owner:{$ref:"#/$defs/FactCommitOwnerV1"}},required:["owner","hits","graph_coverage"],title:"FactStoreProbeResultV1",type:"object"},{$defs:{FactCategoryV1:yW,MemoryScopeV1:_m,ProjectId:_6},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{after:{description:"The previous page's `next_after`, valid only with the same parameters.",type:["string","null"]},category:{anyOf:[{$ref:"#/$defs/FactCategoryV1"},{type:"null"}]},entities:{items:{type:"string"},minItems:1,type:"array"},limit:{format:"uint64",minimum:0,type:["integer","null"]},memory_scope:{anyOf:[{$ref:"#/$defs/MemoryScopeV1"},{type:"null"}]},min_trust:{format:"double",type:["number","null"]},project_selector:{additionalProperties:!1,description:'Exact registered-project selector. Reads and fact effects run against the\nselected project.\n\nInlined so every request schema advertises the closed selector contract\n(`required: ["project_id"]`, no additional properties) directly on its\n`project_selector` property instead of behind a `$defs` reference, matching\nthe selector shape the MCP dispatch policy promises for selector-accepting\ntools.',properties:{project_id:{$ref:"#/$defs/ProjectId"}},required:["project_id"],type:["object","null"]}},required:["entities"],title:"FactStoreReasonRequestV1",type:"object"},{$defs:{FactAssertionId:yA,FactCategoryV1:yW,FactCommitOwnerV1:yN,FactEventId:yD,FactId:yL,FactIdentitySourceResultV1:yU,FactSearchGraphCoverageV1:yB,FactSearchGraphDegradationV1:yK,FactSearchHitV1:yJ,FactSearchScoresV1:yZ,FactTelemetryV1:yX,FactV1:yY,LocatorDigest:_i,ProjectId:_6,ProvenanceId:vi,RetrievalAnchorId:vx,UtcMicros:bX},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{graph_coverage:{$ref:"#/$defs/FactSearchGraphCoverageV1"},hits:{items:{$ref:"#/$defs/FactSearchHitV1"},type:"array"},next_after:{description:"Opaque continuation, bound to this operation and request.",type:["string","null"]},owner:{$ref:"#/$defs/FactCommitOwnerV1"}},required:["owner","hits","graph_coverage"],title:"FactStoreReasonResultV1",type:"object"},{$defs:{FactCategoryV1:yW,MemoryScopeV1:_m,ProjectId:_6},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{after:{description:"The previous page's `next_after`, valid only with the same parameters.",type:["string","null"]},category:{anyOf:[{$ref:"#/$defs/FactCategoryV1"},{type:"null"}]},entity:{type:"string"},limit:{format:"uint64",minimum:0,type:["integer","null"]},memory_scope:{anyOf:[{$ref:"#/$defs/MemoryScopeV1"},{type:"null"}]},min_trust:{format:"double",type:["number","null"]},project_selector:{additionalProperties:!1,description:'Exact registered-project selector. Reads and fact effects run against the\nselected project.\n\nInlined so every request schema advertises the closed selector contract\n(`required: ["project_id"]`, no additional properties) directly on its\n`project_selector` property instead of behind a `$defs` reference, matching\nthe selector shape the MCP dispatch policy promises for selector-accepting\ntools.',properties:{project_id:{$ref:"#/$defs/ProjectId"}},required:["project_id"],type:["object","null"]}},required:["entity"],title:"FactStoreRelatedRequestV1",type:"object"},{$defs:{FactAssertionId:yA,FactCategoryV1:yW,FactCommitOwnerV1:yN,FactEventId:yD,FactId:yL,FactIdentitySourceResultV1:yU,FactSearchGraphCoverageV1:yB,FactSearchGraphDegradationV1:yK,FactSearchHitV1:yJ,FactSearchScoresV1:yZ,FactTelemetryV1:yX,FactV1:yY,LocatorDigest:_i,ProjectId:_6,ProvenanceId:vi,RetrievalAnchorId:vx,UtcMicros:bX},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{graph_coverage:{$ref:"#/$defs/FactSearchGraphCoverageV1"},hits:{items:{$ref:"#/$defs/FactSearchHitV1"},type:"array"},next_after:{description:"Opaque continuation, bound to this operation and request.",type:["string","null"]},owner:{$ref:"#/$defs/FactCommitOwnerV1"}},required:["owner","hits","graph_coverage"],title:"FactStoreRelatedResultV1",type:"object"},{$defs:{FactEventId:yD,FactId:yL,MemoryScopeV1:_m,ProjectId:_6},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{expected_last_event_id:{anyOf:[{$ref:"#/$defs/FactEventId"},{type:"null"}]},fact_id:{$ref:"#/$defs/FactId"},memory_scope:{anyOf:[{$ref:"#/$defs/MemoryScopeV1"},{type:"null"}]},project_selector:{additionalProperties:!1,description:'Exact registered-project selector. Reads and fact effects run against the\nselected project.\n\nInlined so every request schema advertises the closed selector contract\n(`required: ["project_id"]`, no additional properties) directly on its\n`project_selector` property instead of behind a `$defs` reference, matching\nthe selector shape the MCP dispatch policy promises for selector-accepting\ntools.',properties:{project_id:{$ref:"#/$defs/ProjectId"}},required:["project_id"],type:["object","null"]}},required:["fact_id"],title:"FactStoreRemoveRequestV1",type:"object"},{$defs:{FactAssertionId:yA,FactCategoryV1:yW,FactCommitDispositionV1:yM,FactCommitOwnerV1:yN,FactCommitReceiptV1:yz,FactEventId:yD,FactId:yL,FactIdentitySourceResultV1:yU,FactPayloadAccessV1:yH,FactProjectionV1:yG,FactStatusV1:yQ,FactTelemetryV1:yX,FactV1:yY,LocatorDigest:_i,ProjectId:_6,ProvenanceId:vi,RetrievalAnchorId:vx,UtcMicros:bX},$schema:"https://json-schema.org/draft/2020-12/schema",oneOf:[{additionalProperties:!1,properties:{commit:{$ref:"#/$defs/FactCommitReceiptV1"},fact:{$ref:"#/$defs/FactProjectionV1"},outcome:{const:"removed",type:"string"},remaining_fact_count:{format:"uint64",minimum:0,type:"integer"}},required:["outcome","fact","remaining_fact_count","commit"],type:"object"},{additionalProperties:!1,properties:{fact:{$ref:"#/$defs/FactProjectionV1"},outcome:{const:"already_removed",type:"string"},remaining_fact_count:{format:"uint64",minimum:0,type:"integer"}},required:["outcome","fact","remaining_fact_count"],type:"object"}],title:"FactStoreRemoveResultV1"},{$defs:{FactCategoryV1:yW,MemoryScopeV1:_m,ProjectId:_6},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{after:{description:"The previous page's `next_after`, valid only with the same parameters.",type:["string","null"]},category:{anyOf:[{$ref:"#/$defs/FactCategoryV1"},{type:"null"}]},limit:{format:"uint64",minimum:0,type:["integer","null"]},memory_scope:{anyOf:[{$ref:"#/$defs/MemoryScopeV1"},{type:"null"}]},min_trust:{format:"double",type:["number","null"]},project_selector:{additionalProperties:!1,description:'Exact registered-project selector. Reads and fact effects run against the\nselected project.\n\nInlined so every request schema advertises the closed selector contract\n(`required: ["project_id"]`, no additional properties) directly on its\n`project_selector` property instead of behind a `$defs` reference, matching\nthe selector shape the MCP dispatch policy promises for selector-accepting\ntools.',properties:{project_id:{$ref:"#/$defs/ProjectId"}},required:["project_id"],type:["object","null"]},query:{type:"string"}},required:["query"],title:"FactStoreSearchRequestV1",type:"object"},{$defs:{FactAssertionId:yA,FactCategoryV1:yW,FactCommitOwnerV1:yN,FactEventId:yD,FactId:yL,FactIdentitySourceResultV1:yU,FactRetrievalTelemetryDegradationV1:{enum:["unavailable","saturated"],type:"string"},FactRetrievalTelemetryV1:{description:"Whether an explicit search recorded retrieval telemetry for its hits.\n\nThe telemetry write is recall bookkeeping, not part of the returned\nevidence: when only that lane is unavailable the search still delivers its\nresult and reports the degradation here instead of refusing the read.",oneOf:[{additionalProperties:!1,description:"The result had no hits, so there was nothing to record.",properties:{kind:{const:"not_applicable",type:"string"}},required:["kind"],type:"object"},{additionalProperties:!1,description:"The selected store is mounted read-only; recording is never attempted.",properties:{kind:{const:"read_only",type:"string"}},required:["kind"],type:"object"},{additionalProperties:!1,properties:{fact_count:{format:"uint",minimum:0,type:"integer"},kind:{const:"recorded",type:"string"}},required:["kind","fact_count"],type:"object"},{additionalProperties:!1,properties:{kind:{const:"degraded",type:"string"},reason:{$ref:"#/$defs/FactRetrievalTelemetryDegradationV1"}},required:["kind","reason"],type:"object"}]},FactSearchGraphCoverageV1:yB,FactSearchGraphDegradationV1:yK,FactSearchHitV1:yJ,FactSearchScoresV1:yZ,FactTelemetryV1:yX,FactV1:yY,LocatorDigest:_i,ProjectId:_6,ProvenanceId:vi,RetrievalAnchorId:vx,UtcMicros:bX},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"Explicit search additionally records retrieval telemetry for its returned\nhits; `retrieval_telemetry` reports whether that recall bookkeeping\nhappened, so a served result can truthfully carry a degraded write lane.",properties:{graph_coverage:{$ref:"#/$defs/FactSearchGraphCoverageV1"},hits:{items:{$ref:"#/$defs/FactSearchHitV1"},type:"array"},next_after:{description:"Opaque continuation, bound to this operation and request.",type:["string","null"]},owner:{$ref:"#/$defs/FactCommitOwnerV1"},retrieval_telemetry:{$ref:"#/$defs/FactRetrievalTelemetryV1"}},required:["owner","hits","graph_coverage","retrieval_telemetry"],title:"FactStoreSearchResultV1",type:"object"},{$defs:{FactEventId:yD,FactId:yL,MemoryScopeV1:_m,ProjectId:_6},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"Mark `fact_id` as superseded by `superseded_by`. The old fact leaves the\ndefault retrieval surfaces but stays readable by id through its history;\npayload and trust are never rewritten.",properties:{expected_last_event_id:{anyOf:[{$ref:"#/$defs/FactEventId"},{type:"null"}]},fact_id:{$ref:"#/$defs/FactId"},memory_scope:{anyOf:[{$ref:"#/$defs/MemoryScopeV1"},{type:"null"}]},project_selector:{additionalProperties:!1,description:'Exact registered-project selector. Reads and fact effects run against the\nselected project.\n\nInlined so every request schema advertises the closed selector contract\n(`required: ["project_id"]`, no additional properties) directly on its\n`project_selector` property instead of behind a `$defs` reference, matching\nthe selector shape the MCP dispatch policy promises for selector-accepting\ntools.',properties:{project_id:{$ref:"#/$defs/ProjectId"}},required:["project_id"],type:["object","null"]},superseded_by:{$ref:"#/$defs/FactId"}},required:["fact_id","superseded_by"],title:"FactStoreSupersedeRequestV1",type:"object"},{$defs:{FactAssertionId:yA,FactCommitDispositionV1:yM,FactCommitOwnerV1:yN,FactCommitReceiptV1:yz,FactEventId:yD,FactId:yL,ProjectId:_6},$schema:"https://json-schema.org/draft/2020-12/schema",description:"Outcome of an explicit supersession. `superseded` carries the durable\ncommit receipt of the `Curated { SupersededBy }` lineage event;\n`already_superseded` reports the successor already recorded for the fact.",oneOf:[{additionalProperties:!1,properties:{commit:{$ref:"#/$defs/FactCommitReceiptV1"},fact_id:{$ref:"#/$defs/FactId"},outcome:{const:"superseded",type:"string"},superseded_by:{$ref:"#/$defs/FactId"}},required:["outcome","fact_id","superseded_by","commit"],type:"object"},{additionalProperties:!1,properties:{fact_id:{$ref:"#/$defs/FactId"},outcome:{const:"already_superseded",type:"string"},superseded_by:{$ref:"#/$defs/FactId"}},required:["outcome","fact_id","superseded_by"],type:"object"}],title:"FactStoreSupersedeResultV1"},{$defs:{FactCategoryV1:yW,FactEventId:yD,FactId:yL,FactSourceLabelPatchV1:{oneOf:[{additionalProperties:!1,properties:{kind:{const:"set",type:"string"},value:{type:"string"}},required:["kind","value"],type:"object"},{additionalProperties:!1,properties:{kind:{const:"clear",type:"string"}},required:["kind"],type:"object"}]},MemoryScopeV1:_m,ProjectId:_6},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{category:{anyOf:[{$ref:"#/$defs/FactCategoryV1"},{type:"null"}]},content:{type:["string","null"]},entities:{items:{type:"string"},type:["array","null"]},expected_last_event_id:{anyOf:[{$ref:"#/$defs/FactEventId"},{type:"null"}]},fact_id:{$ref:"#/$defs/FactId"},memory_scope:{anyOf:[{$ref:"#/$defs/MemoryScopeV1"},{type:"null"}]},metadata:{additionalProperties:!0,type:["object","null"]},project_selector:{additionalProperties:!1,description:'Exact registered-project selector. Reads and fact effects run against the\nselected project.\n\nInlined so every request schema advertises the closed selector contract\n(`required: ["project_id"]`, no additional properties) directly on its\n`project_selector` property instead of behind a `$defs` reference, matching\nthe selector shape the MCP dispatch policy promises for selector-accepting\ntools.',properties:{project_id:{$ref:"#/$defs/ProjectId"}},required:["project_id"],type:["object","null"]},source_label:{anyOf:[{$ref:"#/$defs/FactSourceLabelPatchV1"},{type:"null"}]},tags:{items:{type:"string"},type:["array","null"]},trust:{format:"double",type:["number","null"]}},required:["fact_id"],title:"FactStoreUpdateRequestV1",type:"object"},{$defs:{FactAssertionId:yA,FactCategoryV1:yW,FactCommitDispositionV1:yM,FactCommitOwnerV1:yN,FactCommitReceiptV1:yz,FactEventId:yD,FactId:yL,FactIdentitySourceResultV1:yU,FactPayloadAccessV1:yH,FactProjectionV1:yG,FactStatusV1:yQ,FactTelemetryV1:yX,FactV1:yY,LocatorDigest:_i,ProjectId:_6,ProvenanceId:vi,RetrievalAnchorId:vx,UtcMicros:bX},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{commit:{$ref:"#/$defs/FactCommitReceiptV1"},fact:{$ref:"#/$defs/FactProjectionV1"},trust_delta_millionths:{format:"int32",type:"integer"}},required:["fact","trust_delta_millionths","commit"],title:"FactStoreUpdateResultV1",type:"object"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"Explicit advisory-cycle trigger for one document in the admitted project.",properties:{document_uri:{type:"string"}},required:["document_uri"],title:"FeedbackAdvisoryCycleSurfaceRequestV1",type:"object"},{$defs:{AgentInstanceId:fS,CodeGenerationId:hg,CommitId:hI,DiagnosticSeverityV1:yS,FeedbackAdvisoryCycleWireV1:{additionalProperties:!1,description:"One canonical cycle result plus whether its durable publication committed.\n\n`published` intentionally remains adjacent to the cycle fields on the\nwire: publication is a property of this exact cycle, not of a page or a\nlater lookup.",properties:{advisory_only:{type:"boolean"},advisory_provider_states:{items:{$ref:"#/$defs/FeedbackAdvisoryProviderStateV1"},type:"array"},affected_tests_state:{anyOf:[{$ref:"#/$defs/FeedbackImpactStateV1"},{type:"null"}]},baseline_states:{items:{$ref:"#/$defs/FeedbackBaselineStateV1"},type:"array"},configuration_digest:{$ref:"#/$defs/ManifestDigest"},content_identity:{anyOf:[{$ref:"#/$defs/FeedbackContentIdentityV1"},{type:"null"}]},cycle_id:{$ref:"#/$defs/FeedbackCycleId"},durability:{$ref:"#/$defs/FeedbackDurabilityV1"},findings:{items:{$ref:"#/$defs/FeedbackFindingV1"},type:"array"},impact:{anyOf:[{$ref:"#/$defs/FeedbackImpactV1"},{type:"null"}]},impact_state:{anyOf:[{$ref:"#/$defs/FeedbackImpactStateV1"},{type:"null"}]},omitted_findings:{format:"uint64",minimum:0,type:"integer"},policy_digest:{$ref:"#/$defs/ManifestDigest"},provider_states:{items:{$ref:"#/$defs/ProviderEvaluationStateV1"},type:"array"},published:{type:"boolean"},result_id:{$ref:"#/$defs/FeedbackResultId"},returned_findings:{format:"uint64",minimum:0,type:"integer"},scope:{$ref:"#/$defs/FeedbackScopeV1"},termination:{$ref:"#/$defs/FeedbackCycleTerminationV1"},total_findings:{format:"uint64",minimum:0,type:"integer"}},required:["result_id","cycle_id","scope","durability","policy_digest","configuration_digest","termination","provider_states","baseline_states","findings","total_findings","returned_findings","omitted_findings","advisory_only","published"],type:"object"},FeedbackAdvisoryFindingHandleV1:{additionalProperties:!1,description:"One daemon-minted read-handle pair for a finding in the published cycle.",properties:{expansion_handle:{type:["string","null"]},finding_id:{$ref:"#/$defs/FeedbackFindingId"},get_handle:{type:"string"},retrieval_anchor_id:{anyOf:[{$ref:"#/$defs/RetrievalAnchorId"},{type:"null"}]}},required:["finding_id","get_handle"],type:"object"},FeedbackAdvisoryProviderStateV1:y1,FeedbackAdvisoryReadHandlesV1:{additionalProperties:!1,description:"Daemon-minted handles for reads over this exact publication.",properties:{affected_tests_handle:{type:"string"},diagnostics_handle:{type:"string"},impact_handle:{type:"string"},list_handle:{type:"string"}},required:["diagnostics_handle","impact_handle","affected_tests_handle","list_handle"],type:"object"},FeedbackBaselineStateV1:y0,FeedbackContentIdentityV1:y2,FeedbackCycleId:y4,FeedbackCycleTerminationV1:y6,FeedbackDiagnosticClassificationV1:y3,FeedbackDiagnosticProducerV1:y9,FeedbackDiagnosticProjectionV1:y5,FeedbackDurabilityV1:y8,FeedbackFindingId:y7,FeedbackFindingLifecycleV1:ge,FeedbackFindingV1:gr,FeedbackImpactStateV1:gi,FeedbackImpactV1:go,FeedbackResultId:gn,FeedbackScopeV1:ga,FeedbackTargetV1:gs,FileOccurrenceId:gd,HostInstanceId:gU,ManifestDigest:_p,ProjectId:_6,ProviderEvaluationStateV1:vo,RepositoryId:v$,RetrievalAnchorId:vx,SessionId:be,SourceSpan:bk,SymbolOccurrenceId:bx,WorktreeId:SJ},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"Exact advisory-cycle payload serialized by the mounted daemon route.",properties:{cycle:{$ref:"#/$defs/FeedbackAdvisoryCycleWireV1"},finding_handles:{items:{$ref:"#/$defs/FeedbackAdvisoryFindingHandleV1"},type:"array"},read_handles:{anyOf:[{$ref:"#/$defs/FeedbackAdvisoryReadHandlesV1"},{type:"null"}]}},required:["cycle","finding_handles"],title:"FeedbackAdvisoryCycleSurfaceResultV1",type:"object"},{$defs:{AgentInstanceId:fS,CodeGenerationId:hg,CommitId:hI,DiagnosticSeverityV1:yS,FeedbackAdvisoryProviderStateV1:y1,FeedbackBaselineStateV1:y0,FeedbackContentIdentityV1:y2,FeedbackCycleId:y4,FeedbackCycleResultV1:{additionalProperties:!1,description:"One deterministic result for one trigger. The result represents a\nterminal advisory evaluation and contains no next-action execution hook.",properties:{advisory_only:{type:"boolean"},advisory_provider_states:{items:{$ref:"#/$defs/FeedbackAdvisoryProviderStateV1"},type:"array"},affected_tests_state:{anyOf:[{$ref:"#/$defs/FeedbackImpactStateV1"},{type:"null"}]},baseline_states:{items:{$ref:"#/$defs/FeedbackBaselineStateV1"},type:"array"},configuration_digest:{$ref:"#/$defs/ManifestDigest"},content_identity:{anyOf:[{$ref:"#/$defs/FeedbackContentIdentityV1"},{type:"null"}]},cycle_id:{$ref:"#/$defs/FeedbackCycleId"},durability:{$ref:"#/$defs/FeedbackDurabilityV1"},findings:{items:{$ref:"#/$defs/FeedbackFindingV1"},type:"array"},impact:{anyOf:[{$ref:"#/$defs/FeedbackImpactV1"},{type:"null"}]},impact_state:{anyOf:[{$ref:"#/$defs/FeedbackImpactStateV1"},{type:"null"}]},omitted_findings:{format:"uint64",minimum:0,type:"integer"},policy_digest:{$ref:"#/$defs/ManifestDigest"},provider_states:{items:{$ref:"#/$defs/ProviderEvaluationStateV1"},type:"array"},result_id:{$ref:"#/$defs/FeedbackResultId"},returned_findings:{format:"uint64",minimum:0,type:"integer"},scope:{$ref:"#/$defs/FeedbackScopeV1"},termination:{$ref:"#/$defs/FeedbackCycleTerminationV1"},total_findings:{format:"uint64",minimum:0,type:"integer"}},required:["result_id","cycle_id","scope","durability","policy_digest","configuration_digest","termination","provider_states","baseline_states","findings","total_findings","returned_findings","omitted_findings","advisory_only"],type:"object"},FeedbackCycleTerminationV1:y6,FeedbackDiagnosticClassificationV1:y3,FeedbackDiagnosticProducerV1:y9,FeedbackDiagnosticProjectionV1:y5,FeedbackDurabilityV1:y8,FeedbackFindingId:y7,FeedbackFindingLifecycleV1:ge,FeedbackFindingV1:gr,FeedbackImpactStateV1:gi,FeedbackImpactV1:go,FeedbackResultId:gn,FeedbackScopeV1:ga,FeedbackTargetV1:gs,FileOccurrenceId:gd,HostInstanceId:gU,ManifestDigest:_p,ProjectId:_6,ProviderEvaluationStateV1:vo,RepositoryId:v$,RetrievalAnchorId:vx,SessionId:be,SourceSpan:bk,SymbolOccurrenceId:bx,WorktreeId:SJ},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{cycle:{$ref:"#/$defs/FeedbackCycleResultV1"}},required:["cycle"],title:"FeedbackDiagnosticsReadResultV1",type:"object"},{$defs:{AnchorExpandResult:{additionalProperties:!1,properties:{anchors:{items:{$ref:"#/$defs/RetrievalAnchorId"},type:"array"}},required:["anchors"],type:"object"},CommitId:hI,DiagnosticSeverityV1:yS,FeedbackCycleId:y4,FeedbackDiagnosticClassificationV1:y3,FeedbackDiagnosticProducerV1:y9,FeedbackDiagnosticProjectionV1:y5,FeedbackFindingId:y7,FeedbackFindingLifecycleV1:ge,FeedbackFindingReadV1:gt,FeedbackFindingV1:gr,FeedbackResultId:gn,FeedbackScopeV1:ga,FileOccurrenceId:gd,ProjectId:_6,ProviderEvaluationStateV1:vo,RepositoryId:v$,RetrievalAnchorId:vx,SourceSpan:bk,SymbolOccurrenceId:bx,WorktreeId:SJ},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{expansion:{$ref:"#/$defs/AnchorExpandResult"},finding:{$ref:"#/$defs/FeedbackFindingReadV1"}},required:["finding","expansion"],title:"FeedbackExpandResultV1",type:"object"},{$defs:{CommitId:hI,DiagnosticSeverityV1:yS,FeedbackCycleId:y4,FeedbackDiagnosticClassificationV1:y3,FeedbackDiagnosticProducerV1:y9,FeedbackDiagnosticProjectionV1:y5,FeedbackFindingId:y7,FeedbackFindingLifecycleV1:ge,FeedbackFindingReadV1:gt,FeedbackFindingV1:gr,FeedbackResultId:gn,FeedbackScopeV1:ga,FileOccurrenceId:gd,ProjectId:_6,ProviderEvaluationStateV1:vo,RepositoryId:v$,RetrievalAnchorId:vx,SourceSpan:bk,SymbolOccurrenceId:bx,WorktreeId:SJ},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{finding:{$ref:"#/$defs/FeedbackFindingReadV1"}},required:["finding"],title:"FeedbackGetResultV1",type:"object"},{$defs:{AgentInstanceId:fS,CodeGenerationId:hg,CommitId:hI,FeedbackContentIdentityV1:y2,FeedbackCycleId:y4,FeedbackImpactStateV1:gi,FeedbackImpactV1:go,FeedbackResultId:gn,FeedbackScopeV1:ga,FeedbackTargetV1:gs,FileOccurrenceId:gd,HostInstanceId:gU,ManifestDigest:_p,ProjectId:_6,RepositoryId:v$,RetrievalAnchorId:vx,SessionId:be,SourceSpan:bk,SymbolOccurrenceId:bx,WorktreeId:SJ},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"Canonical impact projection returned by `feedback_impact`.\n\nThe daemon-side projection owner (usecases) re-exports this type; it lives\nhere so the catalog contribution can register its schema body as the single\nRust-owned wire authority. Results project from an authorized completed\ncycle, and the canonical response wire remains consumable by typed SDKs.",properties:{content_identity:{anyOf:[{$ref:"#/$defs/FeedbackContentIdentityV1"},{type:"null"}]},cycle_id:{$ref:"#/$defs/FeedbackCycleId"},impact:{anyOf:[{$ref:"#/$defs/FeedbackImpactV1"},{type:"null"}]},result_id:{$ref:"#/$defs/FeedbackResultId"},scope:{$ref:"#/$defs/FeedbackScopeV1"},state:{anyOf:[{$ref:"#/$defs/FeedbackImpactStateV1"},{type:"null"}]}},required:["result_id","cycle_id","scope"],title:"CanonicalFeedbackImpactProjectionV1",type:"object"},{$defs:{CommitId:hI,DiagnosticSeverityV1:yS,FeedbackCycleId:y4,FeedbackDiagnosticClassificationV1:y3,FeedbackDiagnosticProducerV1:y9,FeedbackDiagnosticProjectionV1:y5,FeedbackFindingId:y7,FeedbackFindingLifecycleV1:ge,FeedbackFindingReadV1:gt,FeedbackFindingV1:gr,FeedbackResultId:gn,FeedbackScopeV1:ga,FileOccurrenceId:gd,ProjectId:_6,ProviderEvaluationStateV1:vo,RepositoryId:v$,RetrievalAnchorId:vx,SourceSpan:bk,SymbolOccurrenceId:bx,WorktreeId:SJ},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{findings:{items:{$ref:"#/$defs/FeedbackFindingReadV1"},type:"array"}},required:["findings"],title:"FeedbackListResultV1",type:"object"},{$defs:{UtcMicros:bX},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{observed_at:{$ref:"#/$defs/UtcMicros"}},required:["observed_at"],title:"FeedbackProximityReadRequestV1",type:"object"},{$defs:{AgentInstanceId:fS,CodeGenerationId:hg,CommitId:hI,FeedbackProximityAccessKindV1:{enum:["read","write"],type:"string"},FeedbackProximityCloneHandleV1:{additionalProperties:!1,properties:{retrieval_anchor_ids:{items:{$ref:"#/$defs/RetrievalAnchorId"},type:"array"},source_generation:{$ref:"#/$defs/CodeGenerationId"},source_symbol:{$ref:"#/$defs/SymbolOccurrenceId"}},required:["source_generation","source_symbol","retrieval_anchor_ids"],type:"object"},FeedbackProximityConflictDifferenceV1:{additionalProperties:!1,properties:{difference_digest:{$ref:"#/$defs/ManifestDigest"},file:{$ref:"#/$defs/FileOccurrenceId"},span:{$ref:"#/$defs/SourceSpan"}},required:["file","span","difference_digest"],type:"object"},FeedbackProximityConflictHandleV1:{additionalProperties:!1,properties:{common_base_revision:{$ref:"#/$defs/CommitId"},differences:{items:{$ref:"#/$defs/FeedbackProximityConflictDifferenceV1"},type:"array"},evidence_digest:{$ref:"#/$defs/ManifestDigest"},left_head_revision:{$ref:"#/$defs/CommitId"},right_head_revision:{$ref:"#/$defs/CommitId"}},required:["common_base_revision","left_head_revision","right_head_revision","evidence_digest","differences"],type:"object"},FeedbackProximityEncounterV1:{additionalProperties:!1,properties:{coverage:{$ref:"#/$defs/ProximityCoverageV1"},encounter_id:{$ref:"#/$defs/ManifestDigest"},expires_at:{$ref:"#/$defs/UtcMicros"},interval:{$ref:"#/$defs/FeedbackProximityIntervalV1"},observed_at:{$ref:"#/$defs/UtcMicros"},participants:{items:{$ref:"#/$defs/FeedbackProximityParticipantV1"},type:"array"},relation:{$ref:"#/$defs/FeedbackProximityRelationV1"},scope:{$ref:"#/$defs/FeedbackScopeV1"}},required:["encounter_id","scope","interval","participants","relation","observed_at","expires_at","coverage"],type:"object"},FeedbackProximityIntervalV1:{additionalProperties:!1,properties:{end:{$ref:"#/$defs/UtcMicros"},start:{$ref:"#/$defs/UtcMicros"}},required:["start","end"],type:"object"},FeedbackProximityOmissionV1:{enum:["active_session_limit","session_activity_limit","recent_observation_limit","edited_path_limit","encounter_limit","missing_participant_observation","missing_participant_worktree","missing_participant_revision","missing_code_address","clone_coverage_partial","conflict_evidence_unavailable","code_index_revision_mismatch"],type:"string"},FeedbackProximityParticipantV1:{additionalProperties:!1,properties:{access:{$ref:"#/$defs/FeedbackProximityAccessKindV1"},activity:{$ref:"#/$defs/FeedbackProximityIntervalV1"},address:{$ref:"#/$defs/ProximityAddressV1"},agent_id:{$ref:"#/$defs/AgentInstanceId"},branch_ref:{anyOf:[{$ref:"#/$defs/RefId"},{type:"null"}]},head_revision:{anyOf:[{$ref:"#/$defs/CommitId"},{type:"null"}]},source:{$ref:"#/$defs/ObservationSourceIdentityV1"},worktree_id:{anyOf:[{$ref:"#/$defs/WorktreeId"},{type:"null"}]},worktree_root:{type:"string"}},required:["source","agent_id","worktree_root","access","activity","address"],type:"object"},FeedbackProximityReadPageV1:{additionalProperties:!1,properties:{encounters:{items:{$ref:"#/$defs/FeedbackProximityEncounterV1"},type:"array"},expires_at:{$ref:"#/$defs/UtcMicros"},observed_at:{$ref:"#/$defs/UtcMicros"},scope:{$ref:"#/$defs/FeedbackScopeV1"},source_generation:{$ref:"#/$defs/CodeGenerationId"}},required:["scope","source_generation","observed_at","expires_at","encounters"],type:"object"},FeedbackProximityRelationV1:{oneOf:[{additionalProperties:!1,properties:{relation_kind:{const:"code_neighborhood_candidate",type:"string"},warning_class:{$ref:"#/$defs/ProximityWarningClassV1"}},required:["relation_kind","warning_class"],type:"object"},{additionalProperties:!1,properties:{clone_handle:{$ref:"#/$defs/FeedbackProximityCloneHandleV1"},relation_kind:{const:"shared_code_candidate",type:"string"},warning_class:{$ref:"#/$defs/ProximityWarningClassV1"}},required:["relation_kind","warning_class","clone_handle"],type:"object"},{additionalProperties:!1,properties:{relation_kind:{const:"overlapping_edit",type:"string"},warning_class:{$ref:"#/$defs/ProximityWarningClassV1"}},required:["relation_kind","warning_class"],type:"object"},{additionalProperties:!1,properties:{conflict_handle:{$ref:"#/$defs/FeedbackProximityConflictHandleV1"},relation_kind:{const:"confirmed_conflict",type:"string"}},required:["relation_kind","conflict_handle"],type:"object"}]},FeedbackScopeV1:ga,FileOccurrenceId:gd,ManifestDigest:_p,ObservationSourceIdentityV1:_N,ProjectId:_6,ProviderId:vn,ProximityAddressV1:{additionalProperties:!1,description:"A privacy-scoped code address. It identifies the coarse changed-code shape\nbut carries no other actor, session, or private-source content.",properties:{file:{$ref:"#/$defs/FileOccurrenceId"},scope:{$ref:"#/$defs/FeedbackScopeV1"},span:{anyOf:[{$ref:"#/$defs/SourceSpan"},{type:"null"}]},symbol:{anyOf:[{$ref:"#/$defs/SymbolOccurrenceId"},{type:"null"}]}},required:["scope","file"],type:"object"},ProximityCoverageV1:{enum:["complete","partial","stale","unavailable","denied","private"],type:"string"},ProximityWarningClassV1:{enum:["same_file","overlapping_range","same_symbol","same_package","same_crate","neighborhood","shared_caller","shared_dependency","shared_test"],type:"string"},RefId:vf,RepositoryId:v$,RetrievalAnchorId:vx,SessionId:be,SourceSpan:bk,SymbolOccurrenceId:bx,UtcMicros:bX,WorktreeId:SJ},$schema:"https://json-schema.org/draft/2020-12/schema",oneOf:[{additionalProperties:!1,properties:{page:{$ref:"#/$defs/FeedbackProximityReadPageV1"},state:{const:"complete",type:"string"}},required:["state","page"],type:"object"},{additionalProperties:!1,properties:{page:{$ref:"#/$defs/FeedbackProximityReadPageV1"},state:{const:"complete_zero",type:"string"}},required:["state","page"],type:"object"},{additionalProperties:!1,properties:{omissions:{items:{$ref:"#/$defs/FeedbackProximityOmissionV1"},type:"array"},page:{$ref:"#/$defs/FeedbackProximityReadPageV1"},state:{const:"partial",type:"string"}},required:["state","page","omissions"],type:"object"},{additionalProperties:!1,properties:{omissions:{items:{$ref:"#/$defs/FeedbackProximityOmissionV1"},type:"array"},page:{$ref:"#/$defs/FeedbackProximityReadPageV1"},state:{const:"stale",type:"string"}},required:["state","page","omissions"],type:"object"},{additionalProperties:!1,properties:{observed_at:{$ref:"#/$defs/UtcMicros"},state:{const:"denied",type:"string"}},required:["state","observed_at"],type:"object"},{additionalProperties:!1,properties:{observed_at:{$ref:"#/$defs/UtcMicros"},state:{const:"unavailable",type:"string"}},required:["state","observed_at"],type:"object"}],title:"FeedbackProximityReadResultV1"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{field:{description:"Field name. Bare name ('last_sync_at') matches across structs;\nqualified form ('GraphStats::last_sync_at') narrows to one struct's\nfield.",type:"string"},limit:{description:"Maximum sites per kind (default: 200, max: 2000).",format:"uint32",minimum:0,type:["integer","null"]},writes_only:{description:"When true, returns only write_sites and omits reads. Default false.",type:["boolean","null"]}},required:["field"],title:"FieldSitesSurfaceRequestV1",type:"object"},{$defs:{CodeIndexBuildBlockedReasonV1:hv,CodeIndexConvergenceParkedV1:hb,CodeIndexStalenessStateV1:hw,FieldSiteV1:{additionalProperties:!1,properties:{enclosing:{type:["string","null"]},file:{type:"string"},line:{format:"uint32",minimum:0,type:"integer"},snippet:{type:"string"}},required:["file","line","snippet"],type:"object"},PrimitiveFreshnessStateV1:_K,PrimitiveIndexingStateV1:_J,PrimitiveSearchFreshnessV1:_Y},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"`read_count` and `read_sites` are absent when the request asked for\nwrites only.",properties:{field:{type:"string"},freshness:{anyOf:[{$ref:"#/$defs/PrimitiveSearchFreshnessV1"},{type:"null"}],description:"The worktree verdict a served graph read opens with."},qualifier:{type:["string","null"]},qualifier_applied:{type:"boolean"},read_count:{format:"uint64",minimum:0,type:["integer","null"]},read_sites:{items:{$ref:"#/$defs/FieldSiteV1"},type:["array","null"]},write_count:{format:"uint64",minimum:0,type:"integer"},write_sites:{items:{$ref:"#/$defs/FieldSiteV1"},type:"array"}},required:["field","qualifier_applied","write_count","write_sites"],title:"FieldSitesResultV1",type:"object"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{file:{type:"string"}},required:["file"],title:"FileDependentsPrimitiveRequest",type:"object"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{dependent_files:{items:{type:"string"},type:"array"},file:{type:"string"}},required:["file","dependent_files"],title:"FileDependentsPrimitiveResult",type:"object"},{$defs:{FilesLayoutV1:gc},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{layout:{anyOf:[{$ref:"#/$defs/FilesLayoutV1"},{type:"null"}],description:"File listing layout: flat (one per line) or grouped by directory\n(default: grouped)."},path:{description:"Filter to files under this directory path.",type:["string","null"]},pattern:{description:"Filter files matching this glob pattern (e.g. '**/*.rs').",type:["string","null"]}},title:"FilesSurfaceRequestV1",type:"object"},{$defs:{CodeIndexBuildBlockedReasonV1:hv,CodeIndexConvergenceParkedV1:hb,CodeIndexOmittedSourceV1:h$,CodeIndexOmittedSourcesV1:hS,CodeIndexSourceOmissionReasonV1:hk,CodeIndexStalenessStateV1:hw,FilesLayoutV1:gc,IndexedFileV1:{additionalProperties:!1,properties:{bytes:{format:"uint64",minimum:0,type:"integer"},path:{type:"string"},symbols:{format:"uint64",minimum:0,type:"integer"}},required:["path","symbols","bytes"],type:"object"},PrimitiveFreshnessStateV1:_K,PrimitiveIndexingStateV1:_J,PrimitiveSearchFreshnessV1:_Y},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{count:{format:"uint",minimum:0,type:"integer"},files:{items:{$ref:"#/$defs/IndexedFileV1"},type:"array"},freshness:{anyOf:[{$ref:"#/$defs/PrimitiveSearchFreshnessV1"},{type:"null"}],description:"The worktree verdict a served graph read opens with."},layout:{$ref:"#/$defs/FilesLayoutV1"},worktree_omitted_sources:{anyOf:[{$ref:"#/$defs/CodeIndexOmittedSourcesV1"},{type:"null"}],description:"Sources the serving snapshot captured for the whole worktree but does\nnot index, unfiltered by `path` or `pattern`."}},required:["count","layout","files"],title:"FilesResultV1",type:"object"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{lazy_index_ignored_dependencies:{description:"Opt in to bounded indexing of ignored dependency entry files when an\nimport hint matches (default: false).",type:["boolean","null"]},limit:{description:"Maximum matches to return (default: 20, max: 200).",format:"uint32",minimum:0,type:["integer","null"]},name:{description:"Exact bare symbol name (no `::`, no glob).",type:"string"}},required:["name"],title:"FindExactSymbolSurfaceRequestV1",type:"object"},{$defs:{CodeIndexBuildBlockedReasonV1:hv,CodeIndexConvergenceParkedV1:hb,CodeIndexStalenessStateV1:hw,FindExactSymbolMatchV1:{additionalProperties:!1,properties:{file:{type:"string"},id:{type:"string"},kind:{type:"string"},line:{format:"uint32",minimum:0,type:"integer"},name:{type:"string"},qualified_name:{type:"string"},signature:{type:["string","null"]}},required:["id","name","qualified_name","kind","file","line"],type:"object"},PrimitiveFreshnessStateV1:_K,PrimitiveIndexingStateV1:_J,PrimitiveSearchFreshnessV1:_Y},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{count:{format:"uint64",minimum:0,type:"integer"},freshness:{anyOf:[{$ref:"#/$defs/PrimitiveSearchFreshnessV1"},{type:"null"}],description:"The worktree verdict a served graph read opens with."},matches:{items:{$ref:"#/$defs/FindExactSymbolMatchV1"},type:"array"},name:{type:"string"},suggestions:{description:"Nearest indexed bare names when `count` is 0. Empty when the query\nmatched, or when it is not itself a bare identifier.",items:{type:"string"},type:"array"}},required:["name","count","matches"],title:"FindExactSymbolResultV1",type:"object"},{$defs:{GiniMetricV1:gm,GiniScopeV1:gf},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{limit:{description:"Number of top outliers to return (default: 10, at most 100).",format:"uint32",minimum:0,type:["integer","null"]},metric:{anyOf:[{$ref:"#/$defs/GiniMetricV1"},{type:"null"}],description:"Metric to measure inequality for (default: complexity)."},path:{description:"Filter to files under this directory path.",type:["string","null"]},scope:{anyOf:[{$ref:"#/$defs/GiniScopeV1"},{type:"null"}],description:"Aggregate per file or per symbol (default: file)."}},title:"GiniSurfaceRequestV1",type:"object"},{$defs:{CodeIndexBuildBlockedReasonV1:hv,CodeIndexConvergenceParkedV1:hb,CodeIndexStalenessStateV1:hw,GiniMetricV1:gm,GiniOutlierV1:{additionalProperties:!1,properties:{name:{type:"string"},pct_of_max:{format:"double",type:"number"},value:{format:"double",type:"number"}},required:["name","value","pct_of_max"],type:"object"},GiniScopeV1:gf,PrimitiveFreshnessStateV1:_K,PrimitiveIndexingStateV1:_J,PrimitiveSearchFreshnessV1:_Y},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{freshness:{anyOf:[{$ref:"#/$defs/PrimitiveSearchFreshnessV1"},{type:"null"}],description:"The worktree verdict a served graph read opens with."},gini:{format:"double",type:"number"},incomplete_complexity_symbols:{description:"Symbols left out because their bounded complexity walk did not cover\nthe body; their counters are lower bounds and measure nothing here.",format:"uint64",minimum:0,type:"integer"},interpretation:{type:"string"},metric:{$ref:"#/$defs/GiniMetricV1"},outliers:{items:{$ref:"#/$defs/GiniOutlierV1"},type:"array"},scope:{$ref:"#/$defs/GiniScopeV1"},total_items:{format:"uint64",minimum:0,type:"integer"}},required:["gini","interpretation","total_items","metric","scope","incomplete_complexity_symbols","outliers"],title:"GiniResultV1",type:"object"},{$defs:{GitIndexPreviewId:gR,ManifestDigest:_p},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"Public MCP/CLI request to apply one immutable Git index preview.",properties:{idempotency_key:{type:"string"},preview_digest:{$ref:"#/$defs/ManifestDigest"},preview_id:{$ref:"#/$defs/GitIndexPreviewId"}},required:["preview_id","preview_digest","idempotency_key"],title:"GitApplySurfaceRequest",type:"object"},{$defs:{GitIndexPreviewId:gR,GitIndexReceiptId:{description:"Strongly typed canonical identity: `GitIndexReceiptId`.",type:"string"},GitIndexReceiptOutcomeV1:{description:"Terminal outcome a recovery record can prove without re-running a native\nmutation.",enum:["committed","aborted_no_change","needs_inspection"],type:"string"},GitIndexTransactionId:{description:"Strongly typed canonical identity: `GitIndexTransactionId`.",type:"string"},GitIndexTransactionOperationV1:gq,GitOidV1:gI,ManifestDigest:_p,UtcMicros:bX},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"Durable, integrity-protected receipt for one Git index transaction.",properties:{committed_at:{$ref:"#/$defs/UtcMicros"},final_snapshot_captured:{description:"Whether `final_snapshot_digest`, `new_index_tree`, and `new_head` came\nfrom a post-outcome native observation. An unavailable observation is\nvalid only for a terminal outcome that does not claim a commit.",type:"boolean"},final_snapshot_digest:{$ref:"#/$defs/ManifestDigest",description:"Digest of a snapshot that was actually captured after the terminal\nobservation. When `final_snapshot_captured` is false this retains the\nexpected snapshot digest only as a stable schema placeholder; callers\nmust not treat it as an observation."},new_head:{anyOf:[{$ref:"#/$defs/GitOidV1"},{type:"null"}]},new_index_tree:{anyOf:[{$ref:"#/$defs/GitOidV1"},{type:"null"}]},old_head:{anyOf:[{$ref:"#/$defs/GitOidV1"},{type:"null"}]},old_index_tree:{anyOf:[{$ref:"#/$defs/GitOidV1"},{type:"null"}]},old_snapshot_digest:{$ref:"#/$defs/ManifestDigest"},operation:{$ref:"#/$defs/GitIndexTransactionOperationV1"},outcome:{$ref:"#/$defs/GitIndexReceiptOutcomeV1"},preview_id:{$ref:"#/$defs/GitIndexPreviewId"},receipt_digest:{$ref:"#/$defs/ManifestDigest"},receipt_id:{$ref:"#/$defs/GitIndexReceiptId"},selected_hunk_digests:{items:{$ref:"#/$defs/ManifestDigest"},type:"array"},transaction_id:{$ref:"#/$defs/GitIndexTransactionId"}},required:["receipt_id","transaction_id","preview_id","operation","old_snapshot_digest","final_snapshot_digest","final_snapshot_captured","selected_hunk_digests","outcome","committed_at","receipt_digest"],title:"GitIndexTransactionReceiptV1",type:"object"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"Request shape for the public `git_blame` surface.",properties:{follow_renames:{default:!1,type:"boolean"},max_bytes:{format:"uint64",minimum:0,type:["integer","null"]},max_entries:{format:"uint32",minimum:0,type:["integer","null"]},path:{type:"string"}},required:["path"],title:"GitBlameSurfaceRequest",type:"object"},{$defs:{GitBlameAvailabilityV1:{description:"Why blame/line provenance is unavailable for a path.",enum:["available","path_not_tracked","unborn_branch","binary_file"],type:"string"},GitBlameLineV1:{additionalProperties:!1,description:"Line provenance for one final (current) line.",properties:{author:{$ref:"#/$defs/GitCommitIdentityV1"},boundary:{description:"True when the origin commit is a history boundary (e.g. shallow root).",type:"boolean"},commit:{$ref:"#/$defs/GitOidV1"},final_line:{description:"1-based line number in the blamed revision.",format:"uint32",minimum:0,type:"integer"},origin_line:{description:"1-based line number in the origin commit.",format:"uint32",minimum:0,type:"integer"},previous:{anyOf:[{$ref:"#/$defs/GitBlamePreviousV1"},{type:"null"}]}},required:["final_line","origin_line","commit","author","boundary"],type:"object"},GitBlamePreviousV1:{additionalProperties:!1,description:"Rename-following evidence for one blamed line (`previous` record).",properties:{commit:{$ref:"#/$defs/GitOidV1"},path:{type:"string"}},required:["commit","path"],type:"object"},GitBlameV1:{additionalProperties:!1,description:"Typed blame result: per-line provenance plus boundary, rename-following,\nand unavailable states.",properties:{availability:{$ref:"#/$defs/GitBlameAvailabilityV1"},coverage:{$ref:"#/$defs/GitCoverageV1"},lines:{items:{$ref:"#/$defs/GitBlameLineV1"},type:"array"},path:{type:"string"},repository:{$ref:"#/$defs/RepositoryId"}},required:["repository","path","lines","availability","coverage"],type:"object"},GitBlobExpectationV1:gh,GitChangeKindV1:gy,GitCommitIdentityV1:{additionalProperties:!1,description:"Author/committer identity and timestamp evidence for one commit.",properties:{at:{$ref:"#/$defs/UtcMicros"},email:{type:"string"},name:{type:"string"}},required:["name","email","at"],type:"object"},GitCommitMetadataV1:{additionalProperties:!1,description:"Bounded commit metadata. The full message is not retained;\n`message_digest` is its canonical digest evidence.",properties:{author:{$ref:"#/$defs/GitCommitIdentityV1"},commit:{$ref:"#/$defs/GitOidV1"},committer:{$ref:"#/$defs/GitCommitIdentityV1"},message_digest:{$ref:"#/$defs/ManifestDigest"},parents:{items:{$ref:"#/$defs/GitOidV1"},type:"array"},subject:{description:"First line of the commit message, bounded at capture.",type:"string"},tree:{$ref:"#/$defs/GitOidV1"}},required:["commit","tree","parents","author","committer","subject","message_digest"],type:"object"},GitCoverageV1:gb,GitDegradationV1:g$,GitDiffScopeV1:{description:"Diff scope: unstaged worktree changes, staged index changes, or an exact\ncommit range. Range diffs are read-only evidence and carry no index\nrelationship, so they cannot mint an applicable `HunkRefV1`.",oneOf:[{properties:{scope:{const:"working_tree",type:"string"}},required:["scope"],type:"object"},{properties:{scope:{const:"staged",type:"string"}},required:["scope"],type:"object"},{properties:{base:{$ref:"#/$defs/GitOidV1"},head:{$ref:"#/$defs/GitOidV1"},scope:{const:"commit_range",type:"string"}},required:["scope","base","head"],type:"object"}]},GitDiffV1:{additionalProperties:!1,description:"Typed diff result for one scope with explicit coverage.",properties:{coverage:{$ref:"#/$defs/GitCoverageV1"},files:{items:{$ref:"#/$defs/GitFileDiffV1"},type:"array"},repository:{$ref:"#/$defs/RepositoryId"},scope:{$ref:"#/$defs/GitDiffScopeV1"}},required:["repository","scope","files","coverage"],type:"object"},GitFileDiffV1:{additionalProperties:!1,description:"One file's structured diff record: change kind, modes, blob identities,\nbinary/submodule classification, bounded line totals, and hunks.",properties:{binary:{type:"boolean"},change:{$ref:"#/$defs/GitChangeKindV1"},deletions:{format:"uint32",minimum:0,type:["integer","null"]},hunks:{items:{$ref:"#/$defs/GitHunkV1"},type:"array"},insertions:{description:"Inserted/deleted line totals; absent for binary and submodule records.",format:"uint32",minimum:0,type:["integer","null"]},new_blob:{anyOf:[{$ref:"#/$defs/GitOidV1"},{type:"null"}]},new_mode:{anyOf:[{$ref:"#/$defs/GitFileModeV1"},{type:"null"}]},old_blob:{anyOf:[{$ref:"#/$defs/GitOidV1"},{type:"null"}]},old_mode:{anyOf:[{$ref:"#/$defs/GitFileModeV1"},{type:"null"}]},original_path:{description:"Source path for a rename or copy.",type:["string","null"]},path:{type:"string"},submodule:{description:"True when the entry is a gitlink (submodule) change.",type:"boolean"}},required:["path","change","binary","submodule","hunks"],type:"object"},GitFileModeV1:gS,GitHeadStateV1:gw,GitHistoryV1:{additionalProperties:!1,description:"Bounded commit history in native traversal order. `truncated` is true\nwhen the capture bound cut the walk; shallow/partial-clone boundaries are\ncoverage degradations, never silently clean.",properties:{commits:{items:{$ref:"#/$defs/GitCommitMetadataV1"},type:"array"},coverage:{$ref:"#/$defs/GitCoverageV1"},repository:{$ref:"#/$defs/RepositoryId"},truncated:{type:"boolean"}},required:["repository","commits","truncated","coverage"],type:"object"},GitHunkPreviewEntryV1:{additionalProperties:!1,description:"One minted hunk selection: the canonical selection digest plus the\n`HunkRef` identity evidence it selects.",properties:{digest:{$ref:"#/$defs/ManifestDigest"},hunk:{$ref:"#/$defs/HunkRefV1"}},required:["digest","hunk"],type:"object"},GitHunkPreviewInputV1:{additionalProperties:!1,description:"Bounded, expiring preview input minted by `git_hunks` from one exact\ndaemon-captured repository snapshot.",properties:{expires_at:{$ref:"#/$defs/UtcMicros"},hunks:{items:{$ref:"#/$defs/GitHunkPreviewEntryV1"},type:"array"},preview_input_id:{$ref:"#/$defs/GitIndexPreviewId"},repository_snapshot_digest:{$ref:"#/$defs/ManifestDigest"}},required:["preview_input_id","repository_snapshot_digest","expires_at","hunks"],type:"object"},GitHunkV1:{additionalProperties:!1,description:"One structured diff hunk. The hunk body is not retained; `patch_digest`\nis the canonical digest of the normalized header plus body lines, which\nis the stable hunk identity evidence.",properties:{new_lines:{format:"uint32",minimum:0,type:"integer"},new_start:{format:"uint32",minimum:0,type:"integer"},old_lines:{format:"uint32",minimum:0,type:"integer"},old_start:{format:"uint32",minimum:0,type:"integer"},patch_digest:{$ref:"#/$defs/ManifestDigest"},section:{description:"Function/section heading from the hunk header when Git emitted one.",type:["string","null"]}},required:["old_start","old_lines","new_start","new_lines","patch_digest"],type:"object"},GitIndexEntryExpectationV1:gV,GitIndexPreviewId:gR,GitOidV1:gI,GitOperationStateV1:gx,GitQueryEnvelopeV1:{additionalProperties:!1,description:"One typed query result with its merged coverage. `coverage` is the\nadapter-reported coverage plus any query-level degradation (entry-bound\ntruncation); `truncated_by_bound` distinguishes query-level truncation\nfrom adapter-level capture bounds.",properties:{coverage:{$ref:"#/$defs/GitCoverageV1"},truncated_by_bound:{type:"boolean"},value:{$ref:"#/$defs/GitStatusSummaryV1"}},required:["value","coverage","truncated_by_bound"],type:"object"},GitQueryEnvelopeV12:{additionalProperties:!1,description:"One typed query result with its merged coverage. `coverage` is the\nadapter-reported coverage plus any query-level degradation (entry-bound\ntruncation); `truncated_by_bound` distinguishes query-level truncation\nfrom adapter-level capture bounds.",properties:{coverage:{$ref:"#/$defs/GitCoverageV1"},truncated_by_bound:{type:"boolean"},value:{$ref:"#/$defs/GitDiffV1"}},required:["value","coverage","truncated_by_bound"],type:"object"},GitQueryEnvelopeV13:{additionalProperties:!1,description:"One typed query result with its merged coverage. `coverage` is the\nadapter-reported coverage plus any query-level degradation (entry-bound\ntruncation); `truncated_by_bound` distinguishes query-level truncation\nfrom adapter-level capture bounds.",properties:{coverage:{$ref:"#/$defs/GitCoverageV1"},truncated_by_bound:{type:"boolean"},value:{$ref:"#/$defs/GitHistoryV1"}},required:["value","coverage","truncated_by_bound"],type:"object"},GitQueryEnvelopeV14:{additionalProperties:!1,description:"One typed query result with its merged coverage. `coverage` is the\nadapter-reported coverage plus any query-level degradation (entry-bound\ntruncation); `truncated_by_bound` distinguishes query-level truncation\nfrom adapter-level capture bounds.",properties:{coverage:{$ref:"#/$defs/GitCoverageV1"},truncated_by_bound:{type:"boolean"},value:{$ref:"#/$defs/GitBlameV1"}},required:["value","coverage","truncated_by_bound"],type:"object"},GitQueryEnvelopeV15:{additionalProperties:!1,description:"One typed query result with its merged coverage. `coverage` is the\nadapter-reported coverage plus any query-level degradation (entry-bound\ntruncation); `truncated_by_bound` distinguishes query-level truncation\nfrom adapter-level capture bounds.",properties:{coverage:{$ref:"#/$defs/GitCoverageV1"},truncated_by_bound:{type:"boolean"},value:{$ref:"#/$defs/GitHunkPreviewInputV1"}},required:["value","coverage","truncated_by_bound"],type:"object"},GitStatusSummaryV1:{additionalProperties:!1,description:"Bounded status summary derived from the typed\n[`tracedecay_domain::git::GitStatusV1`]: HEAD and operation state,\nper-class counts, and a bounded sorted sample of changed paths.",properties:{changed_paths:{description:"Sorted, de-duplicated changed paths, truncated at the query entry bound.",items:{type:"string"},type:"array"},conflicted:{format:"uint32",minimum:0,type:"integer"},head:{$ref:"#/$defs/GitHeadStateV1"},ignored:{format:"uint32",minimum:0,type:"integer"},operation:{$ref:"#/$defs/GitOperationStateV1"},repository:{$ref:"#/$defs/RepositoryId"},schema_version:{type:"string"},staged:{format:"uint32",minimum:0,type:"integer"},unstaged:{format:"uint32",minimum:0,type:"integer"},untracked:{format:"uint32",minimum:0,type:"integer"}},required:["repository","head","operation","staged","unstaged","conflicted","untracked","ignored","changed_paths","schema_version"],type:"object"},HunkDirectionV1:gH,HunkRefV1:gG,ManifestDigest:_p,RepositoryId:v$,UtcMicros:bX,WorktreeId:SJ},$schema:"https://json-schema.org/draft/2020-12/schema",description:"Actual payload emitted by each public Git read operation.",oneOf:[{properties:{query:{const:"status",type:"string"},result:{$ref:"#/$defs/GitQueryEnvelopeV1"}},required:["query","result"],type:"object"},{properties:{query:{const:"diff",type:"string"},result:{$ref:"#/$defs/GitQueryEnvelopeV12"}},required:["query","result"],type:"object"},{properties:{query:{const:"history",type:"string"},result:{$ref:"#/$defs/GitQueryEnvelopeV13"}},required:["query","result"],type:"object"},{properties:{query:{const:"blame",type:"string"},result:{$ref:"#/$defs/GitQueryEnvelopeV14"}},required:["query","result"],type:"object"},{properties:{query:{const:"hunks",type:"string"},result:{$ref:"#/$defs/GitQueryEnvelopeV15"}},required:["query","result"],type:"object"}],title:"GitReadResultV1"},{$defs:{GitOidV1:gI,GitSurfaceDiffScopeV1:gW},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"Request shape for the public `git_diff` surface.",properties:{base:{anyOf:[{$ref:"#/$defs/GitOidV1"},{type:"null"}]},head:{anyOf:[{$ref:"#/$defs/GitOidV1"},{type:"null"}]},max_bytes:{format:"uint64",minimum:0,type:["integer","null"]},max_entries:{format:"uint32",minimum:0,type:["integer","null"]},scope:{$ref:"#/$defs/GitSurfaceDiffScopeV1",default:"working_tree"}},title:"GitDiffSurfaceRequest",type:"object"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"Request shape for the public `git_history` surface.",properties:{count:{format:"uint32",minimum:0,type:["integer","null"]},first_parent:{default:!1,type:"boolean"},follow:{default:!1,type:"boolean"},max_bytes:{format:"uint64",minimum:0,type:["integer","null"]},max_entries:{format:"uint32",minimum:0,type:["integer","null"]},path:{type:["string","null"]}},title:"GitHistorySurfaceRequest",type:"object"},{$defs:{GitSurfaceDiffScopeV1:gW},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"Request shape for the public `git_hunks` surface.\n\nThe daemon captures exact repository state itself and injects the private\npreview binding after capture, so the public wire carries only the diff\nscope (commit ranges cannot mint applicable hunks).",properties:{max_bytes:{format:"uint64",minimum:0,type:["integer","null"]},max_entries:{format:"uint32",minimum:0,type:["integer","null"]},scope:{$ref:"#/$defs/GitSurfaceDiffScopeV1",default:"working_tree"}},title:"GitHunksSurfaceRequest",type:"object"},{$defs:{GitIndexPreviewId:gR,GitIndexTransactionOperationV1:gq,ManifestDigest:_p},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"Public MCP/CLI request for one daemon-owned Git index preview.",properties:{operation:{$ref:"#/$defs/GitIndexTransactionOperationV1"},preview_input_id:{anyOf:[{$ref:"#/$defs/GitIndexPreviewId"},{type:"null"}],default:null,description:"Hunk preview input minted by `git_hunks`; required for stage/unstage."},selected_hunk_digests:{default:[],description:"Selection digests drawn from the referenced preview input.",items:{$ref:"#/$defs/ManifestDigest"},type:"array"}},required:["operation"],title:"GitPreviewSurfaceRequest",type:"object"},{$defs:{GitBlobExpectationV1:gh,GitCoverageV1:gb,GitDegradationV1:g$,GitFileModeV1:gS,GitHeadStateV1:gw,GitIndexEntryExpectationV1:gV,GitIndexPreviewDispositionV1:{description:"Whether a captured preview may reach the daemon's native apply path.",oneOf:[{properties:{state:{const:"applicable",type:"string"}},required:["state"],type:"object"},{properties:{reason:{$ref:"#/$defs/GitIndexUnsupportedStateV1"},state:{const:"unsupported",type:"string"}},required:["state","reason"],type:"object"}]},GitIndexPreviewId:gR,GitIndexTransactionOperationV1:gq,GitIndexUnsupportedStateV1:{description:"Why a preview is intentionally read-only. A caller must re-preview after\nresolving the condition; no variant grants a relaxed or partial apply.",enum:["bare_repository","detached_head","unborn_branch","index_lock_present","external_git_driver","unmerged_index","intent_to_add","split_index","sparse_index","unreadable_index","conflicted_working_tree","unreadable_working_tree","in_progress_operation","unsupported_object_format","binary_hunk","submodule","symlink","file_mode_only","rename_or_copy","filters_or_end_of_line","partial_hunk_selection"],type:"string"},GitObjectFormatV1:{description:"Repository object format, derived from object-id length.",enum:["sha1","sha256"],type:"string"},GitOidV1:gI,GitOperationStateV1:gx,HunkDirectionV1:gH,HunkRefV1:gG,ManifestDigest:_p,ProjectId:_6,RepositoryId:v$,RepositoryIndexSnapshotV1:{additionalProperties:!1,properties:{checksum:{$ref:"#/$defs/ManifestDigest"},state:{$ref:"#/$defs/RepositoryIndexStateV1"},tree_id:{anyOf:[{$ref:"#/$defs/GitOidV1"},{type:"null"}]},unmerged_stage_digest:{anyOf:[{$ref:"#/$defs/ManifestDigest"},{type:"null"}]}},required:["checksum","state"],type:"object"},RepositoryIndexStateV1:{enum:["clean","staged","unmerged","intent_to_add","split","sparse","unreadable"],type:"string"},RepositoryStateSnapshotV1:{additionalProperties:!1,description:"Immutable content-addressed native repository state. Missing/partial\nevidence remains typed by fields and coverage instead of being upgraded to\na guessed clean snapshot.",properties:{adapter_revision:{description:"Revision of the fixed native adapter that interpreted this state.",type:["string","null"]},attributes_digest:{anyOf:[{$ref:"#/$defs/ManifestDigest"},{type:"null"}]},captured_at:{$ref:"#/$defs/UtcMicros"},configuration_digest:{anyOf:[{$ref:"#/$defs/ManifestDigest"},{type:"null"}]},coverage:{$ref:"#/$defs/GitCoverageV1"},filesystem_capabilities_digest:{anyOf:[{$ref:"#/$defs/ManifestDigest"},{type:"null"}]},git_version:{description:"Exact native Git implementation observed by the fixed adapter. A\nread-only partial snapshot may omit this, but omitted native evidence\nis never mutation eligible.",type:["string","null"]},head:{$ref:"#/$defs/GitHeadStateV1"},index:{$ref:"#/$defs/RepositoryIndexSnapshotV1"},object_format:{$ref:"#/$defs/GitObjectFormatV1"},observation_epoch:{format:"uint64",minimum:0,type:"integer"},operation_state:{$ref:"#/$defs/GitOperationStateV1"},project_id:{$ref:"#/$defs/ProjectId"},refs_digest:{anyOf:[{$ref:"#/$defs/ManifestDigest"},{type:"null"}],description:"Digest of the complete native ref namespace at capture time."},repository_id:{$ref:"#/$defs/RepositoryId"},snapshot_id:{type:"string"},sparse_digest:{anyOf:[{$ref:"#/$defs/ManifestDigest"},{type:"null"}]},submodule_digest:{anyOf:[{$ref:"#/$defs/ManifestDigest"},{type:"null"}]},working_tree:{$ref:"#/$defs/RepositoryWorkingTreeSnapshotV1"},worktree_id:{anyOf:[{$ref:"#/$defs/WorktreeId"},{type:"null"}]}},required:["snapshot_id","project_id","repository_id","observation_epoch","object_format","head","index","working_tree","operation_state","captured_at","coverage"],type:"object"},RepositoryWorkingTreeSnapshotV1:{additionalProperties:!1,properties:{ignored_collision_digest:{anyOf:[{$ref:"#/$defs/ManifestDigest"},{type:"null"}]},state:{$ref:"#/$defs/RepositoryWorkingTreeStateV1"},tracked_digest:{$ref:"#/$defs/ManifestDigest"},untracked_name_digest:{anyOf:[{$ref:"#/$defs/ManifestDigest"},{type:"null"}]}},required:["state","tracked_digest"],type:"object"},RepositoryWorkingTreeStateV1:{enum:["clean","tracked_dirty","untracked_only","mixed","conflicted","unreadable"],type:"string"},UtcMicros:bX,WorktreeId:SJ},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"Immutable, content-bound preview for one daemon-serialized index\ntransaction. Applicability is only a precondition: the daemon must capture\nand compare the entire snapshot and every contained `HunkRefV1` again\nimmediately before a native mutation.",properties:{candidate_index_tree:{anyOf:[{$ref:"#/$defs/GitOidV1"},{type:"null"}]},created_at:{$ref:"#/$defs/UtcMicros"},disposition:{$ref:"#/$defs/GitIndexPreviewDispositionV1"},expires_at:{$ref:"#/$defs/UtcMicros"},operation:{$ref:"#/$defs/GitIndexTransactionOperationV1"},preview_digest:{$ref:"#/$defs/ManifestDigest"},preview_id:{$ref:"#/$defs/GitIndexPreviewId"},repository_snapshot:{$ref:"#/$defs/RepositoryStateSnapshotV1"},repository_snapshot_digest:{$ref:"#/$defs/ManifestDigest"},selected_hunks:{items:{$ref:"#/$defs/HunkRefV1"},type:"array"}},required:["preview_id","operation","repository_snapshot","repository_snapshot_digest","selected_hunks","disposition","created_at","expires_at","preview_digest"],title:"GitIndexPreviewV1",type:"object"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"Request shape for the public `git_status` surface.",properties:{max_bytes:{format:"uint64",minimum:0,type:["integer","null"]},max_entries:{format:"uint32",minimum:0,type:["integer","null"]}},title:"GitStatusSurfaceRequest",type:"object"},{$defs:{StackDeliveryWatermarkId:bP,StackSignalId:bR},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"The public, transport-neutral request for one durable stack signal.",properties:{expected_watermark_id:{anyOf:[{$ref:"#/$defs/StackDeliveryWatermarkId"},{type:"null"}]},signal_id:{anyOf:[{$ref:"#/$defs/StackSignalId"},{type:"null"}]}},title:"GitHubStackSignalExpandSurfaceRequest",type:"object"},{$defs:{BranchStackRevisionId:f7,GitHubStackSignalEvidenceRefV1:{additionalProperties:!1,description:"Bounded evidence for the exact signal the coordinator authorized.\n\nProvider payloads, paths, commit bodies, and delivery recipients remain\nbehind the durable signal evidence rather than copied to this result.",properties:{github_stack_digest:{anyOf:[{$ref:"#/$defs/ManifestDigest"},{type:"null"}]},kind:{$ref:"#/$defs/StackSignalKindV1"},native_source:{$ref:"#/$defs/GitHubStackSignalNativeSourceV1"},observed_at:{$ref:"#/$defs/UtcMicros"},signal_id:{$ref:"#/$defs/StackSignalId"},stack_revision_digest:{$ref:"#/$defs/ManifestDigest"},stack_revision_id:{$ref:"#/$defs/BranchStackRevisionId"},state_digest:{$ref:"#/$defs/ManifestDigest"},watermark_id:{$ref:"#/$defs/StackDeliveryWatermarkId"}},required:["signal_id","watermark_id","kind","stack_revision_id","stack_revision_digest","state_digest","observed_at","native_source"],type:"object"},GitHubStackSignalExpandUnavailableV1:{description:"Truthful non-success outcomes for signal expansion.\n\n`Concealed` intentionally combines absent and unauthorized signal handles;\nexposing that distinction would turn this operation into a signal probe.",enum:["concealed","stale","native_evidence_unavailable","authority_unmounted","cancelled"],type:"string"},GitHubStackSignalNativePreviewV1:{additionalProperties:!1,description:"Exact branch pair and native preflight that produced the selected signal.",properties:{destination_ref:{$ref:"#/$defs/RefId"},destination_tip:{$ref:"#/$defs/GitOidV1"},direction:{$ref:"#/$defs/NativeIntegrationDirectionV1"},disposition:{$ref:"#/$defs/NativeIntegrationPreviewDispositionV1"},preview_digest:{$ref:"#/$defs/ManifestDigest"},preview_id:{$ref:"#/$defs/NativeIntegrationPreviewId"},source_ref:{$ref:"#/$defs/RefId"},source_tip:{$ref:"#/$defs/GitOidV1"}},required:["preview_id","preview_digest","direction","source_ref","destination_ref","source_tip","destination_tip","disposition"],type:"object"},GitHubStackSignalNativeSourceV1:{oneOf:[{properties:{preview:{$ref:"#/$defs/GitHubStackSignalNativePreviewV1"},source:{const:"preflight",type:"string"}},required:["source","preview"],type:"object"},{properties:{preview:{$ref:"#/$defs/GitHubStackSignalNativePreviewV1"},source:{const:"terminal",type:"string"},terminal:{$ref:"#/$defs/GitHubStackSignalNativeTerminalV1"}},required:["source","preview","terminal"],type:"object"}]},GitHubStackSignalNativeTerminalV1:{additionalProperties:!1,properties:{completed_at:{$ref:"#/$defs/UtcMicros"},final_ref_tip:{$ref:"#/$defs/GitOidV1"},outcome:{$ref:"#/$defs/NativeIntegrationTerminalOutcomeV1"},receipt_digest:{$ref:"#/$defs/ManifestDigest"},transaction_id:{$ref:"#/$defs/NativeIntegrationTransactionId"}},required:["transaction_id","receipt_digest","outcome","final_ref_tip","completed_at"],type:"object"},GitOidV1:gI,ManifestDigest:_p,MechanicalIntegrationModeV1:_u,NativeIntegrationDirectionV1:_q,NativeIntegrationPreviewDispositionV1:_I,NativeIntegrationPreviewId:_x,NativeIntegrationTerminalOutcomeV1:_T,NativeIntegrationTransactionId:_O,NativeIntegrationUnavailabilityV1:_E,RefId:vf,StackDeliveryWatermarkId:bP,StackSignalId:bR,StackSignalKindV1:{description:"Durable classification of one GitHub stack transition.",enum:["dependency_ready","actual_conflict","stack_tip_drift","pull_request_drift","ci_evaluated_commit_drift","integration_committed","integration_needs_inspection"],type:"string"},UtcMicros:bX},$schema:"https://json-schema.org/draft/2020-12/schema",oneOf:[{properties:{evidence:{$ref:"#/$defs/GitHubStackSignalEvidenceRefV1"},outcome:{const:"expanded",type:"string"}},required:["outcome","evidence"],type:"object"},{properties:{outcome:{const:"unavailable",type:"string"},reason:{$ref:"#/$defs/GitHubStackSignalExpandUnavailableV1"}},required:["outcome","reason"],type:"object"}],title:"GitHubStackSignalExpandSurfaceResultV1"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{limit:{description:"Maximum number of results to return (default: 10, at most 100).",format:"uint32",minimum:0,type:["integer","null"]},path:{description:"Filter to files under this directory path (e.g. 'src/main/java').",type:["string","null"]}},title:"GodClassSurfaceRequestV1",type:"object"},{$defs:{CodeIndexBuildBlockedReasonV1:hv,CodeIndexConvergenceParkedV1:hb,CodeIndexStalenessStateV1:hw,GodClassEntryV1:{additionalProperties:!1,properties:{fields:{format:"uint64",minimum:0,type:"integer"},file:{type:"string"},id:{type:"string"},kind:{type:"string"},line:{format:"uint32",minimum:0,type:"integer"},methods:{format:"uint64",minimum:0,type:"integer"},name:{type:"string"},total_members:{format:"uint64",minimum:0,type:"integer"}},required:["id","name","kind","file","line","methods","fields","total_members"],type:"object"},PrimitiveFreshnessStateV1:_K,PrimitiveIndexingStateV1:_J,PrimitiveSearchFreshnessV1:_Y},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{freshness:{anyOf:[{$ref:"#/$defs/PrimitiveSearchFreshnessV1"},{type:"null"}],description:"The worktree verdict a served graph read opens with."},ranking:{items:{$ref:"#/$defs/GodClassEntryV1"},type:"array"},result_count:{format:"uint64",minimum:0,type:"integer"}},required:["result_count","ranking"],title:"GodClassResultV1",type:"object"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{case_sensitive:{description:"Match case-sensitively (default: false = case-insensitive).",type:["boolean","null"]},context_lines:{description:"Lines of surrounding context to include per hit (default: 0, max: 3).",format:"uint32",minimum:0,type:["integer","null"]},fixed_strings:{description:"Treat pattern as a literal string instead of a regex (default: false).",type:["boolean","null"]},max_results:{description:"Maximum number of matching lines to return (default: 50, max: 200).",format:"uint32",minimum:0,type:["integer","null"]},path_glob:{description:"Optional glob restricting which files are searched, matched against\nproject-relative paths (e.g. 'src/**/*.rs').",type:["string","null"]},pattern:{description:"Content to search for. Treated as a regular expression unless\nfixed_strings is true.",type:"string"}},required:["pattern"],title:"GrepSurfaceRequestV1",type:"object"},{$defs:{CodeIndexBuildBlockedReasonV1:hv,CodeIndexConvergenceParkedV1:hb,CodeIndexStalenessStateV1:hw,CoverageCompleteness:ym,CoverageDomainState:yf,EvidenceCoverage:yj,EvidenceDomain:yC,GrepGraphEnrichmentV1:{description:"Whether the verified graph resolved each hit's enclosing symbol. Hits are\nthe lexical answer either way.",oneOf:[{additionalProperties:!1,properties:{enriched:{format:"uint64",minimum:0,type:"integer"},returned:{format:"uint64",minimum:0,type:"integer"},status:{const:"complete",type:"string"}},required:["status","enriched","returned"],type:"object"},{additionalProperties:!1,properties:{detail:{type:"string"},reason_code:{type:"string"},retryable:{type:"boolean"},status:{const:"unavailable",type:"string"}},required:["status","reason_code","retryable","detail"],type:"object"}]},GrepMatchV1:{additionalProperties:!1,properties:{after:{items:{type:"string"},type:"array"},before:{items:{type:"string"},type:"array"},file:{type:"string"},line:{format:"uint32",minimum:0,type:"integer"},node_id:{type:["string","null"]},symbol:{description:"The smallest verified graph symbol enclosing the hit.",type:["string","null"]},text:{type:"string"}},required:["file","line","text"],type:"object"},GrepScanOmissionsV1:{additionalProperties:!1,description:"What the bounded scan skipped, by cause; absent when it skipped nothing.",properties:{oversized_files:{description:"Files larger than the interactive scan byte limit.",format:"uint64",minimum:0,type:"integer"},oversized_lines:{description:"Lines longer than the scan line byte limit.",format:"uint64",minimum:0,type:"integer"},unavailable_sources:{description:"Source candidates that could not be read during the scan.",format:"uint64",minimum:0,type:"integer"}},required:["oversized_files","oversized_lines","unavailable_sources"],type:"object"},Omission:{additionalProperties:!1,properties:{count:{format:"uint64",minimum:0,type:"integer"},domain:{$ref:"#/$defs/EvidenceDomain"},reason:{$ref:"#/$defs/OmissionReason"}},required:["domain","count","reason"],type:"object"},OmissionReason:{description:"Safe reason why authorized requested evidence was omitted.",oneOf:[{enum:["budget","redacted","unavailable","unsupported","stale","failed","cancelled","timed_out","conflict"],type:"string"},{const:"macro_body_unparsed",description:"Evidence came from a macro body that was not expanded, so what the\nexpansion defines or calls is not covered.",type:"string"},{const:"import_unmodeled",description:"A caller sits under a `use` whose binding the index could not model\n(a glob in a block or inline module), so whether it calls the target\nis not covered.",type:"string"},{const:"cursor_expired",description:"The continuation cursor can no longer be redeemed (its lifetime ended\nor the snapshot it pages is gone); restart the request without it.",type:"string"},{const:"cursor_foreign",description:"The continuation cursor was issued for another project, worktree, or\nref; redeem it where it was issued.",type:"string"}]},PrimitiveFreshnessStateV1:_K,PrimitiveIndexingStateV1:_J,PrimitiveSearchFreshnessV1:_Y},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{coverage:{$ref:"#/$defs/EvidenceCoverage"},files_scanned:{format:"uint64",minimum:0,type:"integer"},freshness:{anyOf:[{$ref:"#/$defs/PrimitiveSearchFreshnessV1"},{type:"null"}],description:"The worktree verdict a served graph read opens with."},graph_enrichment:{$ref:"#/$defs/GrepGraphEnrichmentV1"},match_count:{format:"uint64",minimum:0,type:"integer"},omissions:{items:{$ref:"#/$defs/Omission"},type:"array"},results:{items:{$ref:"#/$defs/GrepMatchV1"},type:"array"},scan_omissions:{$ref:"#/$defs/GrepScanOmissionsV1"},truncated:{type:"boolean"}},required:["results","match_count","files_scanned","truncated","coverage","omissions","graph_enrichment"],title:"GrepSearchResultV1",type:"object"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{details:{description:"If true, include full dimension breakdown (default: false).",type:["boolean","null"]},path:{description:"Filter to files under this directory path.",type:["string","null"]}},title:"HealthSurfaceRequestV1",type:"object"},{$defs:{CodeIndexBuildBlockedReasonV1:hv,CodeIndexConvergenceParkedV1:hb,CodeIndexStalenessStateV1:hw,HealthAcyclicityV1:{additionalProperties:!1,properties:{edges_in_cycles:{format:"uint64",minimum:0,type:"integer"},score:{format:"double",type:"number"},source:{type:"string"}},required:["score","edges_in_cycles","source"],type:"object"},HealthCoverageDisciplineV1:{additionalProperties:!1,properties:{score:{format:"double",type:"number"},skip_test_coverage_count:{format:"uint64",minimum:0,type:"integer"},source:{type:"string"},total_fns:{format:"uint64",minimum:0,type:"integer"}},required:["score","skip_test_coverage_count","total_fns","source"],type:"object"},HealthDepthV1:{additionalProperties:!1,properties:{ideal_chain:{format:"uint64",minimum:0,type:"integer"},max_chain:{format:"uint64",minimum:0,type:"integer"},score:{format:"double",type:"number"},source:{type:"string"}},required:["score","max_chain","ideal_chain","source"],type:"object"},HealthDimensionsV1:{additionalProperties:!1,properties:{acyclicity:{$ref:"#/$defs/HealthAcyclicityV1"},coverage_discipline:{$ref:"#/$defs/HealthCoverageDisciplineV1"},depth:{$ref:"#/$defs/HealthDepthV1"},equality:{$ref:"#/$defs/HealthEqualityV1"},modularity:{$ref:"#/$defs/HealthModularityV1"},redundancy:{$ref:"#/$defs/HealthRedundancyV1"}},required:["acyclicity","depth","equality","redundancy","modularity","coverage_discipline"],type:"object"},HealthEqualityV1:{additionalProperties:!1,properties:{gini:{format:"double",type:"number"},incomplete_complexity_symbols:{format:"uint64",minimum:0,type:"integer"},interpretation:{type:"string"},score:{format:"double",type:"number"},source:{type:"string"}},required:["score","gini","interpretation","incomplete_complexity_symbols","source"],type:"object"},HealthModularityV1:{additionalProperties:!1,properties:{components_after_hub_removal:{format:"uint64",minimum:0,type:"integer"},interpretation:{type:"string"},score:{format:"double",type:"number"},source:{type:"string"}},required:["score","interpretation","components_after_hub_removal","source"],type:"object"},HealthRedundancyV1:{additionalProperties:!1,properties:{dead_count:{format:"uint64",minimum:0,type:"integer"},score:{format:"double",type:"number"},source:{type:"string"},total_fns:{format:"uint64",minimum:0,type:"integer"}},required:["score","dead_count","total_fns","source"],type:"object"},HealthWeightsV1:{additionalProperties:!1,properties:{note:{type:"string"}},required:["note"],type:"object"},PrimitiveFreshnessStateV1:_K,PrimitiveIndexingStateV1:_J,PrimitiveSearchFreshnessV1:_Y},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"`dimensions` and `weights` are present exactly when the request asked for\n`details`.",properties:{dimensions:{anyOf:[{$ref:"#/$defs/HealthDimensionsV1"},{type:"null"}]},files_analyzed:{format:"uint64",minimum:0,type:"integer"},freshness:{anyOf:[{$ref:"#/$defs/PrimitiveSearchFreshnessV1"},{type:"null"}],description:"The worktree verdict a served graph read opens with."},panel:{description:"Measured dimension names, worst score first, then\n`no evidence: name (reason), ...` for the dimensions the scope gave\nnothing to measure. An empty scope reads\n`no evidence: 0 files in scope`.",type:"string"},quality_signal:{description:"Geometric mean of the dimensions, scaled to 0-10000. A breakdown of\n`panel`, not a number to maximize. Dimensions that `panel` lists under\n`no evidence:` enter it at their formula value for an empty\nmeasurement, so it does not summarize such a scope: an empty scope\nreads 10000 and one file reads 0.",format:"uint32",minimum:0,type:"integer"},weights:{anyOf:[{$ref:"#/$defs/HealthWeightsV1"},{type:"null"}]}},required:["quality_signal","files_analyzed"],title:"HealthResultV1",type:"object"},{$defs:{PageRequest:_H,ResultProjection:vV,RetrievalOrder:vj,RetrievalRequestMeta:vC,TemporalModeV1:bN,UtcMicros:bX},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{before_cursor:{description:"A prior result's after_cursor. A cursor recorded under another health\ndefinition, or before definitions were recorded, is refused with\n`application.health-delta.definition-mismatch` or\n`application.health-delta.definition-unrecorded`; omit it to record a\nnew baseline.",type:["string","null"]},meta:{$ref:"#/$defs/RetrievalRequestMeta"},path_prefix:{type:["string","null"]}},required:["meta"],title:"HealthDeltaRequest",type:"object"},{$defs:{HealthDeltaCoverageV1:{additionalProperties:!1,properties:{completeness:{description:"`complete` when both points analyzed files, otherwise `unknown`.",type:"string"},denominator:{format:"uint64",minimum:0,type:["integer","null"]},eligible:{description:"Files the `after` point analyzed.",format:"uint64",minimum:0,type:["integer","null"]},visited:{format:"uint64",minimum:0,type:["integer","null"]}},required:["completeness"],type:"object"},HealthDeltaCurrentnessV1:{additionalProperties:!1,properties:{observed_at:{$ref:"#/$defs/UtcMicros"},state:{type:"string"}},required:["state","observed_at"],type:"object"},HealthDeltaPointV1:{additionalProperties:!1,properties:{dimensions:{additionalProperties:{$ref:"#/$defs/HealthDimensionPointV1"},type:"object"},files_analyzed:{format:"uint64",minimum:0,type:"integer"},function_denominator:{format:"uint64",minimum:0,type:"integer"},observed_at:{$ref:"#/$defs/UtcMicros"},quality_signal:{format:"uint32",minimum:0,type:"integer"},watermark:{$ref:"#/$defs/ManifestDigest"}},required:["watermark","observed_at","quality_signal","files_analyzed","function_denominator","dimensions"],type:"object"},HealthDeltaScopeV1:{additionalProperties:!1,properties:{path_prefix:{type:["string","null"]},project_id:{type:["string","null"]},scope_digest:{$ref:"#/$defs/ManifestDigest"}},required:["scope_digest"],type:"object"},HealthDimensionDeltaV1:{additionalProperties:!1,properties:{after_denominator:{format:"uint64",minimum:0,type:["integer","null"]},after_ppm:{format:"uint64",minimum:0,type:"integer"},before_denominator:{format:"uint64",minimum:0,type:["integer","null"]},before_ppm:{format:"uint64",minimum:0,type:"integer"},delta_ppm:{format:"int64",type:"integer"},status:{description:"`improved` or `degraded` when the score moved more than 1000 ppm,\notherwise `unchanged`. `no_evidence` when either point's scope gave\nthe dimension nothing to measure, so its scores are formula values.",type:"string"}},required:["before_ppm","after_ppm","delta_ppm","status"],type:"object"},HealthDimensionPointV1:{additionalProperties:!1,properties:{denominator:{format:"uint64",minimum:0,type:["integer","null"]},score_ppm:{format:"uint64",minimum:0,type:"integer"}},required:["score_ppm"],type:"object"},ManifestDigest:_p,UtcMicros:bX},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{after:{$ref:"#/$defs/HealthDeltaPointV1"},after_cursor:{type:"string"},before:{$ref:"#/$defs/HealthDeltaPointV1"},before_cursor:{type:"string"},coverage:{$ref:"#/$defs/HealthDeltaCoverageV1"},currentness:{$ref:"#/$defs/HealthDeltaCurrentnessV1"},delta:{format:"int64",type:"integer"},dimensions:{additionalProperties:{$ref:"#/$defs/HealthDimensionDeltaV1"},type:"object"},pass:{description:"True when both points analyzed files and quality_signal did not drop.",type:"boolean"},schema_version:{format:"uint32",minimum:0,type:"integer"},scope:{$ref:"#/$defs/HealthDeltaScopeV1"}},required:["schema_version","scope","before","after","before_cursor","after_cursor","pass","delta","dimensions","coverage","currentness"],title:"HealthDeltaResult",type:"object"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"The health read takes no parameters: it reports one serving status, with no\npage, projection, or temporal selection to make. The page and deadline\ncontrols every surface supplies travel in the dispatch envelope, not here.",title:"HealthReadRequest",type:"object"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{status:{type:"string"}},required:["status"],title:"HealthReadResult",type:"object"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{include_pending_payloads:{default:!1,description:"Include staged Hermes skill-write payloads (default: false).",type:"boolean"},include_skill_bodies:{default:!1,description:"Include bounded SKILL.md contents (default: false).",type:"boolean"}},title:"HermesSkillBridgeSurfaceRequestV1",type:"object"},{$defs:{AutomationReadStatusV1:fG,HermesPendingSkillWrite:{properties:{action:{type:["string","null"]},created_at:!0,id:{type:"string"},name:{type:["string","null"]},origin:{type:["string","null"]},payload:!0,source_path:{type:"string"},summary:{type:["string","null"]}},required:["id","source_path"],type:"object"},HermesSkillBridgeContracts:{properties:{discovery_policy:{type:"string"},lifecycle_owner:{type:"string"},mutation_policy:{type:"string"}},required:["lifecycle_owner","mutation_policy","discovery_policy"],type:"object"},HermesSkillBridgeSnapshot:{properties:{agent_home:{type:"string"},archive_count:{format:"uint",minimum:0,type:"integer"},contracts:{$ref:"#/$defs/HermesSkillBridgeContracts"},pending_skill_corrupt_count:{format:"uint",minimum:0,type:"integer"},pending_skill_count:{format:"uint",minimum:0,type:"integer"},pending_skills:{items:{$ref:"#/$defs/HermesPendingSkillWrite"},type:"array"},skill_count:{format:"uint",minimum:0,type:"integer"},skills:{items:{$ref:"#/$defs/HermesSkillSummary"},type:"array"},skills_dir:{type:"string"},usage_record_count:{format:"uint",minimum:0,type:"integer"},usage_records:{additionalProperties:!0,description:"Hermes-owned usage telemetry keyed by skill name, as Hermes wrote it.",type:"object"}},required:["agent_home","skills_dir","skill_count","pending_skill_count","pending_skill_corrupt_count","usage_record_count","archive_count","skills","pending_skills","usage_records","contracts"],type:"object"},HermesSkillSummary:{properties:{body_markdown:{type:["string","null"]},category:{type:["string","null"]},description:{type:["string","null"]},name:{type:"string"},path:{type:"string"},pending_write_ids:{items:{type:"string"},type:"array"},usage:!0},required:["name","path","pending_write_ids"],type:"object"}},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{bridge:{$ref:"#/$defs/HermesSkillBridgeSnapshot"},status:{$ref:"#/$defs/AutomationReadStatusV1"}},required:["status","bridge"],title:"HermesSkillBridgeResultV1",type:"object"},{$schema:"https://json-schema.org/draft/2020-12/schema",oneOf:[{additionalProperties:!1,description:"Reset the project's local token counter.",properties:{action:{const:"reset_counter",type:"string"}},required:["action"],type:"object"},{additionalProperties:!1,description:"Admit one Hook V2 envelope for the bound project.",properties:{action:{const:"hook_v2_admit",type:"string"},envelope:!0,native_lifecycle:!0,native_session_id:{description:"The host's native session id; it binds only when it hashes to the\nenvelope's protected session.",type:["string","null"]}},required:["action","envelope"],type:"object"},{additionalProperties:!1,description:"Commit a Context Scout delivery receipt for guidance the last\nadmission handed out.",properties:{action:{const:"hook_v2_delivery_receipt",type:"string"},receipt:!0},required:["action","receipt"],type:"object"},{additionalProperties:!1,description:"Acknowledge delivery of an advisory feedback notice.",properties:{action:{const:"hook_v2_feedback_notice_delivery",type:"string"},envelope:!0,feedback_notice:!0},required:["action","envelope","feedback_notice"],type:"object"},{additionalProperties:!1,description:"Land a host transcript in the owning session store.",properties:{action:{const:"ingest_transcript",type:"string"},event_json:{description:"The host's raw hook event, for providers that locate the transcript\nfrom it.",type:["string","null"]},max_new_bytes:{description:"Byte budget for this pass across every scanned source.",format:"uint64",minimum:0,type:["integer","null"]},messages:{description:"One turn the host inlined instead of a source to scan.",items:!0,type:["array","null"]},provider:{type:"string"},session_id:{type:["string","null"]},user_scope:{description:"Land the transcript in the profile's user store instead of the\nproject's.",type:"boolean"}},required:["action","provider","user_scope"],type:"object"},{additionalProperties:!1,description:"Codex `PostCompact` pressure evidence.",properties:{action:{const:"codex_compact",type:"string"},event_json:{type:"string"}},required:["action","event_json"],type:"object"},{additionalProperties:!1,description:"Claude `PostCompact` pressure evidence; `user_scope` routes it to the\nprofile.",properties:{action:{const:"claude_compact",type:"string"},event_json:{type:"string"},user_scope:{type:"boolean"}},required:["action","event_json","user_scope"],type:"object"},{additionalProperties:!1,description:"Cursor `preCompact` pressure evidence.",properties:{action:{const:"cursor_compact",type:"string"},event_json:{type:"string"}},required:["action","event_json"],type:"object"},{additionalProperties:!1,description:"Record a Hermes terminal receipt without a project route.",properties:{action:{const:"hermes_receipt",type:"string"},event:!0},required:["action","event"],type:"object"},{additionalProperties:!1,description:"Admit a native event without a project route into the profile's\nHook V2 ledger.",properties:{action:{const:"hook_v2_profile_admit",type:"string"},admission:!0},required:["action","admission"],type:"object"}],title:"HookRuntimeSurfaceRequestV1"},{$defs:{ContextScoutAddressV1:hH,ContextScoutStoreStatusV1:{enum:["stored","duplicate","superseded","unavailable"],type:"string"},HermesReceiptStatusV1:{oneOf:[{const:"recorded",description:"A terminal receipt was recorded.",type:"string"},{const:"ingested",description:"The turn was marked ingested and no receipt awaits review.",type:"string"},{const:"awaiting_transcript",description:"A receipt awaits a transcript that has not landed yet.",type:"string"}]},HookIngestAdmissionV1:{additionalProperties:!1,description:"The admission authority's verdict on one transcript ingest.",properties:{reason_code:{type:["string","null"]},retryable:{type:"boolean"},status:{description:"The session host-admission status, in its wire spelling.",type:"string"}},required:["status","retryable"],type:"object"},HookOrchestrationAdmissionV1:{description:"Outcome of admitting one hook envelope into the registered orchestrator.",enum:["enqueued","backpressured","unsupported_trigger","unavailable"],type:"string"},HookRuntimeDispositionV1:{description:"How the hook transport should treat a Hook V2 envelope.",oneOf:[{enum:["accepted"],type:"string"},{const:"catchup_required",description:"The published binding no longer authorizes the envelope; the host\nmust catch up before sending again.",type:"string"}]},HookV2RejectionReasonV1:{oneOf:[{const:"admission_identity_conflict",description:"The same event identity previously carried different bytes.",type:"string"}]}},$schema:"https://json-schema.org/draft/2020-12/schema",oneOf:[{additionalProperties:!1,properties:{action:{const:"reset_counter",type:"string"},reset:{type:"boolean"}},required:["action","reset"],type:"object"},{oneOf:[{properties:{context_scout_address:{anyOf:[{$ref:"#/$defs/ContextScoutAddressV1"},{type:"null"}]},disposition:{$ref:"#/$defs/HookRuntimeDispositionV1"},feedback_notice:{description:"The advisory `AdvisoryHookLookupNoticeV1` waiting for this\nworktree."},github_stack_signal_available:{type:"boolean"},orchestration:{$ref:"#/$defs/HookOrchestrationAdmissionV1"},ready_guidance:{description:"The hook's `HookReadyGuidanceV1`, when admission claimed one."},status:{const:"accepted",type:"string"}},required:["status","disposition","orchestration","github_stack_signal_available"],type:"object"},{description:"This exact envelope was already admitted; a retry may still receive\nguidance retained before a lost host response.",properties:{context_scout_address:{anyOf:[{$ref:"#/$defs/ContextScoutAddressV1"},{type:"null"}]},disposition:{$ref:"#/$defs/HookRuntimeDispositionV1"},ready_guidance:!0,status:{const:"exact_duplicate",type:"string"}},required:["status","disposition"],type:"object"},{properties:{disposition:{$ref:"#/$defs/HookRuntimeDispositionV1"},reason:{anyOf:[{$ref:"#/$defs/HookV2RejectionReasonV1"},{type:"null"}]},status:{const:"rejected",type:"string"}},required:["status","disposition"],type:"object"},{description:"Idempotency could not be recorded, so nothing was admitted.",properties:{status:{const:"backpressured",type:"string"}},required:["status"],type:"object"},{properties:{status:{const:"unavailable",type:"string"}},required:["status"],type:"object"}],properties:{action:{const:"hook_v2_admit",type:"string"}},required:["action"],type:"object"},{additionalProperties:!1,properties:{action:{const:"hook_v2_delivery_receipt",type:"string"},status:{$ref:"#/$defs/ContextScoutStoreStatusV1"}},required:["action","status"],type:"object"},{oneOf:[{properties:{status:{const:"stored",type:"string"}},required:["status"],type:"object"},{properties:{status:{const:"unavailable",type:"string"}},required:["status"],type:"object"},{properties:{disposition:{$ref:"#/$defs/HookRuntimeDispositionV1"},status:{const:"rejected",type:"string"}},required:["status","disposition"],type:"object"}],properties:{action:{const:"hook_v2_feedback_notice_delivery",type:"string"}},required:["action"],type:"object"},{additionalProperties:!1,properties:{action:{const:"ingest_transcript",type:"string"},admission:{$ref:"#/$defs/HookIngestAdmissionV1"},bytes_consumed:{format:"uint64",minimum:0,type:["integer","null"]},completed:{description:"False when the byte budget left work for a later pass.",type:"boolean"},cursor_advances:{format:"uint64",minimum:0,type:["integer","null"]},cursor_duplicates:{format:"uint64",minimum:0,type:["integer","null"]},deferred_by_byte_cap:{type:["boolean","null"]},deferred_sources:{format:"uint64",minimum:0,type:["integer","null"]},hint_outcomes:{description:"How emitted hook hints settled against the new project activity."},messages_upserted:{format:"uint64",minimum:0,type:"integer"},observation_duplicates:{format:"uint64",minimum:0,type:["integer","null"]},observations_committed:{format:"uint64",minimum:0,type:["integer","null"]},projection_duplicates:{format:"uint64",minimum:0,type:["integer","null"]},projections_completed:{format:"uint64",minimum:0,type:["integer","null"]},projections_skipped:{format:"uint64",minimum:0,type:["integer","null"]},provider:{type:"string"},records_quarantined:{format:"uint64",minimum:0,type:["integer","null"]},records_rejected:{format:"uint64",minimum:0,type:["integer","null"]},source_bytes_scanned:{format:"uint64",minimum:0,type:["integer","null"]},status:{type:"string"},user_scope:{type:"boolean"}},required:["action","provider","user_scope","completed","status","admission","messages_upserted"],type:"object"},{anyOf:[{description:"The LCM authority settled the compaction.",properties:{authority_outcome:!0,committed_state:!0,messages_upserted:{format:"uint64",minimum:0,type:"integer"},reason:{type:"string"},relation_projection_status:!0,retry_status:{type:["string","null"]},status:{type:"string"},summary_node_ids:{items:{type:"string"},type:"array"},summary_nodes_created:{format:"uint64",minimum:0,type:"integer"}},required:["status","reason","summary_nodes_created","summary_node_ids","relation_projection_status","authority_outcome","committed_state","messages_upserted"],type:"object"},{description:"The LCM authority answered without a compaction.",properties:{authority_outcome:!0,committed_state:!0,messages_upserted:{format:"uint64",minimum:0,type:"integer"},reason:{type:"string"},status:{type:"string"},summary_node_ids:{items:{type:"string"},type:"array"},summary_nodes_created:{format:"uint64",minimum:0,type:"integer"}},required:["status","reason","authority_outcome","committed_state","summary_nodes_created","summary_node_ids","messages_upserted"],type:"object"},{description:"No compaction ran: the authority is absent, the host supplied nothing\nto compact, or its summaries have no provenance.",properties:{reason:{type:"string"},relation_projection_status:!0,status:{type:"string"},summary_node_ids:{items:{type:"string"},type:"array"},summary_nodes_created:{format:"uint64",minimum:0,type:"integer"}},required:["status","reason","summary_nodes_created","summary_node_ids"],type:"object"},{description:"The host event named no session to compact.",properties:{messages_upserted:{format:"uint64",minimum:0,type:"integer"},reason:{type:"string"},status:{type:"string"}},required:["status","reason","messages_upserted"],type:"object"}],description:"A compaction hook's outcome. Variants are distinguished by the fields\nthey carry.",properties:{action:{const:"codex_compact",type:"string"}},required:["action"],type:"object"},{anyOf:[{description:"The LCM authority settled the compaction.",properties:{authority_outcome:!0,committed_state:!0,messages_upserted:{format:"uint64",minimum:0,type:"integer"},reason:{type:"string"},relation_projection_status:!0,retry_status:{type:["string","null"]},status:{type:"string"},summary_node_ids:{items:{type:"string"},type:"array"},summary_nodes_created:{format:"uint64",minimum:0,type:"integer"}},required:["status","reason","summary_nodes_created","summary_node_ids","relation_projection_status","authority_outcome","committed_state","messages_upserted"],type:"object"},{description:"The LCM authority answered without a compaction.",properties:{authority_outcome:!0,committed_state:!0,messages_upserted:{format:"uint64",minimum:0,type:"integer"},reason:{type:"string"},status:{type:"string"},summary_node_ids:{items:{type:"string"},type:"array"},summary_nodes_created:{format:"uint64",minimum:0,type:"integer"}},required:["status","reason","authority_outcome","committed_state","summary_nodes_created","summary_node_ids","messages_upserted"],type:"object"},{description:"No compaction ran: the authority is absent, the host supplied nothing\nto compact, or its summaries have no provenance.",properties:{reason:{type:"string"},relation_projection_status:!0,status:{type:"string"},summary_node_ids:{items:{type:"string"},type:"array"},summary_nodes_created:{format:"uint64",minimum:0,type:"integer"}},required:["status","reason","summary_nodes_created","summary_node_ids"],type:"object"},{description:"The host event named no session to compact.",properties:{messages_upserted:{format:"uint64",minimum:0,type:"integer"},reason:{type:"string"},status:{type:"string"}},required:["status","reason","messages_upserted"],type:"object"}],description:"A compaction hook's outcome. Variants are distinguished by the fields\nthey carry.",properties:{action:{const:"claude_compact",type:"string"}},required:["action"],type:"object"},{anyOf:[{description:"The LCM authority settled the compaction.",properties:{authority_outcome:!0,committed_state:!0,messages_upserted:{format:"uint64",minimum:0,type:"integer"},reason:{type:"string"},relation_projection_status:!0,retry_status:{type:["string","null"]},status:{type:"string"},summary_node_ids:{items:{type:"string"},type:"array"},summary_nodes_created:{format:"uint64",minimum:0,type:"integer"}},required:["status","reason","summary_nodes_created","summary_node_ids","relation_projection_status","authority_outcome","committed_state","messages_upserted"],type:"object"},{description:"The LCM authority answered without a compaction.",properties:{authority_outcome:!0,committed_state:!0,messages_upserted:{format:"uint64",minimum:0,type:"integer"},reason:{type:"string"},status:{type:"string"},summary_node_ids:{items:{type:"string"},type:"array"},summary_nodes_created:{format:"uint64",minimum:0,type:"integer"}},required:["status","reason","authority_outcome","committed_state","summary_nodes_created","summary_node_ids","messages_upserted"],type:"object"},{description:"No compaction ran: the authority is absent, the host supplied nothing\nto compact, or its summaries have no provenance.",properties:{reason:{type:"string"},relation_projection_status:!0,status:{type:"string"},summary_node_ids:{items:{type:"string"},type:"array"},summary_nodes_created:{format:"uint64",minimum:0,type:"integer"}},required:["status","reason","summary_nodes_created","summary_node_ids"],type:"object"},{description:"The host event named no session to compact.",properties:{messages_upserted:{format:"uint64",minimum:0,type:"integer"},reason:{type:"string"},status:{type:"string"}},required:["status","reason","messages_upserted"],type:"object"}],description:"A compaction hook's outcome. Variants are distinguished by the fields\nthey carry.",properties:{action:{const:"cursor_compact",type:"string"}},required:["action"],type:"object"},{additionalProperties:!1,properties:{action:{const:"hermes_receipt",type:"string"},status:{$ref:"#/$defs/HermesReceiptStatusV1"}},required:["action","status"],type:"object"},{oneOf:[{properties:{disposition:{$ref:"#/$defs/HookRuntimeDispositionV1"},status:{const:"accepted",type:"string"}},required:["status","disposition"],type:"object"},{properties:{disposition:{$ref:"#/$defs/HookRuntimeDispositionV1"},status:{const:"exact_duplicate",type:"string"}},required:["status","disposition"],type:"object"},{properties:{disposition:{$ref:"#/$defs/HookRuntimeDispositionV1"},status:{const:"rejected",type:"string"}},required:["status","disposition"],type:"object"},{properties:{status:{const:"unavailable",type:"string"}},required:["status"],type:"object"}],properties:{action:{const:"hook_v2_profile_admit",type:"string"}},required:["action"],type:"object"}],title:"HookRuntimeResultV1"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{limit:{description:"Maximum number of hotspots to return (default: 10, at most 100).",format:"uint32",minimum:0,type:["integer","null"]}},title:"HotspotsSurfaceRequestV1",type:"object"},{$defs:{CodeIndexBuildBlockedReasonV1:hv,CodeIndexConvergenceParkedV1:hb,CodeIndexStalenessStateV1:hw,HotspotV1:{additionalProperties:!1,properties:{churn:{description:"Commits touching `file` in the last 90 days. Absent when git history\ncould not be read; `0` means the file had no commits in that window.",format:"uint64",minimum:0,type:["integer","null"]},file:{type:"string"},id:{type:"string"},incoming:{format:"uint64",minimum:0,type:"integer"},kind:{type:"string"},line:{format:"uint32",minimum:0,type:"integer"},name:{type:"string"},outgoing:{format:"uint64",minimum:0,type:"integer"},total:{format:"uint64",minimum:0,type:"integer"}},required:["id","name","kind","file","line","incoming","outgoing","total"],type:"object"},PrimitiveFreshnessStateV1:_K,PrimitiveIndexingStateV1:_J,PrimitiveSearchFreshnessV1:_Y},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{freshness:{anyOf:[{$ref:"#/$defs/PrimitiveSearchFreshnessV1"},{type:"null"}],description:"The worktree verdict a served graph read opens with."},hotspot_count:{format:"uint64",minimum:0,type:"integer"},hotspots:{items:{$ref:"#/$defs/HotspotV1"},type:"array"},unavailable_fields:{description:"Names a measurement this result could not make. `churn` means the\nranking is connectivity alone.",items:{type:"string"},type:"array"}},required:["hotspot_count","hotspots"],title:"HotspotsResultV1",type:"object"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{max_depth:{format:"uint32",minimum:0,type:["integer","null"]},node_id:{type:"string"}},required:["node_id"],title:"NodeDepthSurfaceRequestV1",type:"object"},{$defs:{CodeIndexBuildBlockedReasonV1:hv,CodeIndexConvergenceParkedV1:hb,CodeIndexStalenessStateV1:hw,ImpactNodeV1:{additionalProperties:!1,properties:{depth:{format:"uint32",minimum:0,type:"integer"},file:{type:"string"},id:{type:"string"},kind:{type:"string"},line:{format:"uint32",minimum:0,type:"integer"},name:{type:"string"}},required:["id","name","kind","file","line","depth"],type:"object"},ImpactRadiusV1:{additionalProperties:!1,properties:{complete:{type:"boolean"},freshness:{anyOf:[{$ref:"#/$defs/PrimitiveSearchFreshnessV1"},{type:"null"}],description:"The worktree verdict a served graph read opens with."},node_count:{format:"uint",minimum:0,type:"integer"},nodes:{items:{$ref:"#/$defs/ImpactNodeV1"},type:"array"},unavailable_fields:{items:{type:"string"},type:"array"}},required:["node_count","complete","unavailable_fields","nodes"],type:"object"},PrimitiveFreshnessStateV1:_K,PrimitiveIndexingStateV1:_J,PrimitiveNotFoundV1:_Q,PrimitiveSearchFreshnessV1:_Y,PrimitiveSymbolLocationV1:_0},$schema:"https://json-schema.org/draft/2020-12/schema",anyOf:[{$ref:"#/$defs/ImpactRadiusV1"},{$ref:"#/$defs/PrimitiveNotFoundV1"}],title:"ImpactResultV1"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{limit:{description:"Maximum number of results to return (default: 10, at most 100).",format:"uint32",minimum:0,type:["integer","null"]},path:{description:"Filter to files under this directory path (e.g. 'src/main/java').",type:["string","null"]}},title:"InheritanceDepthSurfaceRequestV1",type:"object"},{$defs:{CodeIndexBuildBlockedReasonV1:hv,CodeIndexConvergenceParkedV1:hb,CodeIndexStalenessStateV1:hw,InheritanceDepthEntryV1:{additionalProperties:!1,properties:{depth:{format:"uint64",minimum:0,type:"integer"},file:{type:"string"},id:{type:"string"},kind:{type:"string"},line:{format:"uint32",minimum:0,type:"integer"},name:{type:"string"}},required:["id","name","kind","file","line","depth"],type:"object"},PrimitiveFreshnessStateV1:_K,PrimitiveIndexingStateV1:_J,PrimitiveSearchFreshnessV1:_Y},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{freshness:{anyOf:[{$ref:"#/$defs/PrimitiveSearchFreshnessV1"},{type:"null"}],description:"The worktree verdict a served graph read opens with."},ranking:{items:{$ref:"#/$defs/InheritanceDepthEntryV1"},type:"array"},result_count:{format:"uint64",minimum:0,type:"integer"}},required:["result_count","ranking"],title:"InheritanceDepthResultV1",type:"object"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"Exact public input accepted by `tracedecay_insert_at`.",properties:{anchor:{type:"string"},before:{default:!1,type:"boolean"},content:{type:"string"},dry_run:{default:!1,type:"boolean"},expected_state:{description:"Exact `preview_digest`/`expected_state` returned by the dry run. Apply\nre-resolves the typed plan and rejects any candidate-state drift.",type:["string","null"]},idempotency_key:{type:["string","null"]},path:{type:"string"},verify:{default:!1,type:"boolean"}},required:["path","anchor","content"],title:"InsertAtSurfaceRequestV1",type:"object"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"Exact public input accepted by `tracedecay_insert_at_symbol`.",properties:{content:{type:"string"},dry_run:{default:!1,type:"boolean"},expected_state:{description:"Exact `preview_digest`/`expected_state` returned by the dry run. Apply\nre-resolves the typed plan and rejects any candidate-state drift.",type:["string","null"]},idempotency_key:{type:["string","null"]},position:{default:"after",type:"string"},symbol:{type:"string"},verify:{default:!1,type:"boolean"}},required:["symbol","content"],title:"InsertAtSymbolSurfaceRequestV1",type:"object"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{limit:{description:"Maximum number of results to return (default: 10, at most 100).",format:"uint32",minimum:0,type:["integer","null"]},node_kind:{description:"Filter by node kind (e.g. 'class', 'method', 'function', 'interface',\n'enum', 'struct').",type:["string","null"]},path:{description:"Filter to files under this directory path (e.g. 'src/main/java').",type:["string","null"]}},title:"LargestSurfaceRequestV1",type:"object"},{$defs:{CodeIndexBuildBlockedReasonV1:hv,CodeIndexConvergenceParkedV1:hb,CodeIndexStalenessStateV1:hw,LargestEntryV1:{additionalProperties:!1,properties:{end_line:{format:"uint32",minimum:0,type:"integer"},file:{type:"string"},id:{type:"string"},kind:{type:"string"},lines:{format:"uint32",minimum:0,type:"integer"},name:{type:"string"},start_line:{format:"uint32",minimum:0,type:"integer"}},required:["id","name","kind","file","start_line","end_line","lines"],type:"object"},PrimitiveFreshnessStateV1:_K,PrimitiveIndexingStateV1:_J,PrimitiveSearchFreshnessV1:_Y},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{freshness:{anyOf:[{$ref:"#/$defs/PrimitiveSearchFreshnessV1"},{type:"null"}],description:"The worktree verdict a served graph read opens with."},node_kind_filter:{type:["string","null"]},ranking:{items:{$ref:"#/$defs/LargestEntryV1"},type:"array"},result_count:{format:"uint64",minimum:0,type:"integer"}},required:["result_count","ranking"],title:"LargestResultV1",type:"object"},{$defs:{LcmDescribeTargetV1:{oneOf:[{properties:{kind:{const:"session",type:"string"}},required:["kind"],type:"object"},{properties:{kind:{const:"summary_node",type:"string"},node_id:{type:"string"}},required:["kind","node_id"],type:"object"},{properties:{kind:{const:"external_payload",type:"string"},payload_ref:{type:"string"}},required:["kind","payload_ref"],type:"object"}]}},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{provider:{type:"string"},session_id:{type:"string"},target:{anyOf:[{$ref:"#/$defs/LcmDescribeTargetV1"},{type:"null"}]}},required:["provider","session_id"],title:"LcmDescribeRequestV1",type:"object"},{$defs:{ClosedUtcIntervalV1:hf,CompactLineageEdgeV1:{additionalProperties:!1,properties:{authority:{type:"string"},authorized:{type:"boolean"},kind:{type:"string"},knowledge_at:{format:"int64",type:"integer"},object_anchor_id:{type:"string"},subject_anchor_id:{type:"string"},supporting_anchor_ids:{items:{type:"string"},type:"array"}},required:["kind","subject_anchor_id","object_anchor_id","knowledge_at","authority","authorized","supporting_anchor_ids"],type:"object"},HydrationStateResultV1:gB,LcmContentRangeV1:gX,LcmDescribeExternalPayloadV1:{additionalProperties:!1,properties:{byte_count:{format:"uint64",minimum:0,type:"integer"},char_count:{format:"uint64",minimum:0,type:"integer"},content_hash:{type:"string"},content_preview:{type:"string"},created_at:{format:"int64",type:"integer"},kind:{type:"string"},message_id:{type:"string"},metadata_json:{type:["string","null"]},payload_ref:{type:"string"},provider:{type:"string"},session_id:{type:"string"}},required:["payload_ref","provider","session_id","message_id","kind","content_hash","byte_count","char_count","created_at","content_preview"],type:"object"},LcmDescribeSourceOverviewV1:{additionalProperties:!1,properties:{expand_hint:{type:["string","null"]},node_id:{type:["string","null"]},role:{type:["string","null"]},source_kind:{type:"string"},source_ref:{$ref:"#/$defs/LcmSourceRefV1"},source_token_count:{format:"int64",type:["integer","null"]},storage_kind:{anyOf:[{$ref:"#/$defs/LcmStorageKindV1"},{type:"null"}]},store_id:{format:"int64",type:["integer","null"]},summary_token_count:{format:"int64",type:["integer","null"]}},required:["source_kind","source_ref"],type:"object"},LcmDescribeSummaryNodeV1:{additionalProperties:!1,properties:{children:{items:{$ref:"#/$defs/LcmDescribeSourceOverviewV1"},type:"array"},conversation_id:{type:"string"},created_at:{format:"int64",type:"integer"},depth:{format:"int64",type:"integer"},expand_hint:{type:["string","null"]},metadata_json:{type:["string","null"]},node_id:{type:"string"},source_count:{format:"uint",minimum:0,type:"integer"},source_time_end:{format:"int64",type:["integer","null"]},source_time_start:{format:"int64",type:["integer","null"]},source_token_count:{format:"int64",type:"integer"},summary_token_count:{format:"int64",type:"integer"}},required:["node_id","conversation_id","depth","summary_token_count","source_token_count","created_at","source_count","children"],type:"object"},LcmDescriptionV1:{additionalProperties:!1,properties:{external_payload:{anyOf:[{$ref:"#/$defs/LcmDescribeExternalPayloadV1"},{type:"null"}]},external_payload_count:{format:"int64",type:"integer"},first_store_id:{format:"int64",type:["integer","null"]},last_store_id:{format:"int64",type:["integer","null"]},provider:{type:"string"},raw_message_count:{format:"int64",type:"integer"},raw_messages:{items:{$ref:"#/$defs/LcmRawMessageOverviewV1"},type:"array"},session_id:{type:"string"},session_token_estimate:{format:"int64",type:["integer","null"]},summary_node:{anyOf:[{$ref:"#/$defs/LcmDescribeSummaryNodeV1"},{type:"null"}]},summary_node_count:{format:"int64",type:"integer"},summary_nodes:{items:{$ref:"#/$defs/LcmSummaryNodeOverviewV1"},type:"array"},target:{type:"string"},unpublished_message_count:{description:"Raw messages the session's active temporal generation has not\npublished; transcript reads cannot page them yet.",format:"int64",type:"integer"}},required:["target","provider","session_id","raw_message_count","unpublished_message_count","summary_node_count","external_payload_count","raw_messages","summary_nodes"],type:"object"},LcmRawMessageOverviewV1:{additionalProperties:!1,properties:{content_preview:{type:"string"},content_range:{$ref:"#/$defs/LcmContentRangeV1"},message_id:{type:"string"},payload_ref:{type:["string","null"]},role:{type:"string"},storage_kind:{$ref:"#/$defs/LcmStorageKindV1"},store_id:{format:"int64",type:"integer"}},required:["message_id","store_id","role","storage_kind","content_preview","content_range"],type:"object"},LcmRetrievalOutcomeV1:g6,LcmSourceRefV1:g3,LcmStorageKindV1:g9,LcmSummaryNodeOverviewV1:{additionalProperties:!1,properties:{conversation_id:{type:"string"},created_at:{format:"int64",type:"integer"},depth:{format:"int64",type:"integer"},node_id:{type:"string"},source_count:{format:"uint",minimum:0,type:"integer"},summary_preview:{type:"string"}},required:["node_id","conversation_id","depth","summary_preview","source_count","created_at"],type:"object"},LcmTemporalFieldsV1:_e,RetainedErrorV1:vR,RetainedOutcomeStatusV1:vq,RetrievalWorkerStatusV1:vO,SessionCoverageIntervalV1:v9,SessionCoverageReasonV1:v5,SessionCoverageRequestV1:v8,SessionCoverageStateV1:v7,SessionSourceCoverageV1:bs,TemporalCoverageV1:bA,TemporalExplanationV1:bW,TemporalFreshnessV1:bM,TemporalModeV1:bN,TemporalOmissionV1:bz,TemporalWatermarksV1:bD,UtcMicros:bX,ValidCoverageIntervalV1:bY},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{capped_sessions:{additionalProperties:{format:"uint",minimum:0,type:"integer"},type:["object","null"]},description:{anyOf:[{$ref:"#/$defs/LcmDescriptionV1"},{type:"null"}]},error:{anyOf:[{$ref:"#/$defs/RetainedErrorV1"},{type:"null"}]},grain:{type:["string","null"]},lineage:{items:{$ref:"#/$defs/CompactLineageEdgeV1"},type:["array","null"]},omitted:{format:"uint64",minimum:0,type:["integer","null"]},provider:{type:["string","null"]},retrieval:{anyOf:[{$ref:"#/$defs/LcmRetrievalOutcomeV1"},{type:"null"}]},service_status:{anyOf:[{$ref:"#/$defs/RetrievalWorkerStatusV1"},{type:"null"}]},session_id:{type:["string","null"]},state:{anyOf:[{$ref:"#/$defs/HydrationStateResultV1"},{type:"null"}]},status:{$ref:"#/$defs/RetainedOutcomeStatusV1"},temporal:{anyOf:[{$ref:"#/$defs/LcmTemporalFieldsV1"},{type:"null"}]}},required:["status"],title:"LcmDescribeResultV1",type:"object"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,title:"LcmDoctorRequestV1",type:"object"},{$defs:{LcmAuthorityOutcomeV1:gQ,LcmConvergenceStateV1:gY,LcmConvergenceV1:g1,LcmDoctorFindingKindV1:{enum:["trigger_audit_drift","occurrence_fts_corruption","summary_fts_corruption","missing_anchor","missing_receipt","invalid_generation","multi_active_generation","cursor_chain_absent","cursor_key_absent","ownership_drift","stuck_refresh","stuck_binding","stuck_progress","stuck_receipt","migration_gap","compatibility_drift","relation_graph_unavailable","relation_graph_corruption","relation_graph_cycle","stale_summary_closure"],type:"string"},LcmDoctorFindingV1:{additionalProperties:!1,properties:{count:{format:"uint64",minimum:0,type:"integer"},kind:{$ref:"#/$defs/LcmDoctorFindingKindV1"}},required:["kind","count"],type:"object"},LcmDoctorHealthStatusV1:{enum:["complete","partial","unavailable","locked"],type:"string"},LcmDoctorHealthV1:{additionalProperties:!1,properties:{findings:{items:{$ref:"#/$defs/LcmDoctorFindingV1"},type:"array"},reason:{type:["string","null"]},status:{$ref:"#/$defs/LcmDoctorHealthStatusV1"}},required:["status","findings"],type:"object"},LcmDoctorProjectionStateV1:g0,LcmDoctorProjectionV1:g2,RetainedOutcomeStatusV1:vq,RetrievalWorkerStatusV1:vO},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{authority_outcome:{$ref:"#/$defs/LcmAuthorityOutcomeV1"},health:{anyOf:[{$ref:"#/$defs/LcmDoctorHealthV1"},{type:"null"}]},projection:{anyOf:[{$ref:"#/$defs/LcmDoctorProjectionV1"},{type:"null"}],description:"Absent when the diagnosed store has no refresh worker (profile mounts)."},reason:{type:["string","null"]},status:{$ref:"#/$defs/RetainedOutcomeStatusV1"}},required:["status","authority_outcome"],title:"LcmDoctorResultV1",type:"object"},{$defs:{LcmExpandTargetV1:{oneOf:[{properties:{kind:{const:"canonical_occurrence",type:"string"},message_id:{type:"string"}},required:["kind","message_id"],type:"object"},{properties:{kind:{const:"raw_message",type:"string"},store_id:{format:"uint64",minimum:0,type:"integer"}},required:["kind","store_id"],type:"object"},{properties:{kind:{const:"summary_node",type:"string"},node_id:{type:"string"}},required:["kind","node_id"],type:"object"},{properties:{kind:{const:"external_payload",type:"string"},payload_ref:{type:"string"}},required:["kind","payload_ref"],type:"object"}]}},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{content_limit:{format:"uint64",minimum:0,type:["integer","null"]},content_offset:{format:"uint64",minimum:0,type:["integer","null"]},cursor:{type:["string","null"]},provider:{type:"string"},session_id:{type:"string"},source_limit:{format:"uint64",minimum:0,type:["integer","null"]},target:{$ref:"#/$defs/LcmExpandTargetV1"}},required:["provider","session_id","target"],title:"LcmExpandRequestV1",type:"object"},{$defs:{ClosedUtcIntervalV1:hf,HydrationStateResultV1:gB,LcmContentRangeV1:gX,LcmExpandedSourceV1:{additionalProperties:!1,properties:{content:{type:"string"},content_range:{anyOf:[{$ref:"#/$defs/LcmContentRangeV1"},{type:"null"}]},content_truncated:{type:"boolean"},raw_message:{anyOf:[{$ref:"#/$defs/LcmRawMessageV1"},{type:"null"}]},raw_message_metadata:{anyOf:[{$ref:"#/$defs/LcmRawMessageMetadataV1"},{type:"null"}]},source_ref:{$ref:"#/$defs/LcmSourceRefV1"},state:{$ref:"#/$defs/HydrationStateResultV1"},summary_node:{anyOf:[{$ref:"#/$defs/LcmSummaryNodeV1"},{type:"null"}]}},required:["source_ref","state","content","content_truncated"],type:"object"},LcmExpansionV1:{additionalProperties:!1,properties:{content:{type:"string"},content_range:{$ref:"#/$defs/LcmContentRangeV1"},from_current_session:{type:["boolean","null"]},kind:{type:"string"},payload_ref:{type:["string","null"]},raw_message:{anyOf:[{$ref:"#/$defs/LcmRawMessageV1"},{type:"null"}]},raw_message_metadata:{anyOf:[{$ref:"#/$defs/LcmRawMessageMetadataV1"},{type:"null"}]},source_pagination:{anyOf:[{$ref:"#/$defs/LcmSourcePaginationV1"},{type:"null"}]},summary_node:{anyOf:[{$ref:"#/$defs/LcmSummaryNodeV1"},{type:"null"}]},summary_sources:{items:{$ref:"#/$defs/LcmExpandedSourceV1"},type:"array"}},required:["kind","content","content_range","summary_sources"],type:"object"},LcmRawMessageMetadataV1:{additionalProperties:!1,properties:{content_hash:{type:"string"},message_id:{type:"string"},metadata_json:{type:["string","null"]},ordinal:{format:"int64",type:"integer"},payload_ref:{type:["string","null"]},provider:{type:"string"},role:{type:"string"},session_id:{type:"string"},storage_kind:{$ref:"#/$defs/LcmStorageKindV1"},store_id:{format:"int64",type:"integer"},timestamp:{format:"int64",type:["integer","null"]}},required:["provider","message_id","session_id","store_id","role","ordinal","content_hash","storage_kind"],type:"object"},LcmRawMessageV1:g4,LcmRetrievalOutcomeV1:g6,LcmSourcePaginationV1:{additionalProperties:!1,properties:{has_more:{type:"boolean"},remaining_sources:{format:"uint",minimum:0,type:"integer"},returned_sources:{format:"uint",minimum:0,type:"integer"},source_limit:{format:"uint",minimum:0,type:"integer"},total_sources:{format:"uint",minimum:0,type:"integer"}},required:["source_limit","returned_sources","total_sources","has_more","remaining_sources"],type:"object"},LcmSourceRefV1:g3,LcmStorageKindV1:g9,LcmSummaryNodeV1:g7,LcmTemporalFieldsV1:_e,RetainedErrorV1:vR,RetainedOutcomeStatusV1:vq,RetrievalWorkerStatusV1:vO,SessionCoverageIntervalV1:v9,SessionCoverageReasonV1:v5,SessionCoverageRequestV1:v8,SessionCoverageStateV1:v7,SessionSourceCoverageV1:bs,TemporalCoverageV1:bA,TemporalExplanationV1:bW,TemporalFreshnessV1:bM,TemporalModeV1:bN,TemporalOmissionV1:bz,TemporalWatermarksV1:bD,UtcMicros:bX,ValidCoverageIntervalV1:bY},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{capped_sessions:{additionalProperties:{format:"uint",minimum:0,type:"integer"},type:["object","null"]},error:{anyOf:[{$ref:"#/$defs/RetainedErrorV1"},{type:"null"}]},expansion:{anyOf:[{$ref:"#/$defs/LcmExpansionV1"},{type:"null"}]},grain:{type:["string","null"]},omitted:{format:"uint64",minimum:0,type:["integer","null"]},provider:{type:["string","null"]},retrieval:{anyOf:[{$ref:"#/$defs/LcmRetrievalOutcomeV1"},{type:"null"}]},service_status:{anyOf:[{$ref:"#/$defs/RetrievalWorkerStatusV1"},{type:"null"}]},session_id:{type:["string","null"]},state:{anyOf:[{$ref:"#/$defs/HydrationStateResultV1"},{type:"null"}]},status:{$ref:"#/$defs/RetainedOutcomeStatusV1"},temporal:{anyOf:[{$ref:"#/$defs/LcmTemporalFieldsV1"},{type:"null"}]}},required:["status"],title:"LcmExpandResultV1",type:"object"},{$defs:{LcmNodeIdV1:{anyOf:[{type:"string"},{format:"uint64",minimum:0,type:"integer"}]}},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{context_max_tokens:{format:"uint64",minimum:0,type:["integer","null"]},cursor:{type:["string","null"]},max_results:{format:"uint64",minimum:0,type:["integer","null"]},max_tokens:{format:"uint64",minimum:0,type:["integer","null"]},node_ids:{items:{$ref:"#/$defs/LcmNodeIdV1"},type:["array","null"]},prompt:{type:"string"},provider:{type:"string"},query:{type:["string","null"]},session_id:{type:"string"}},required:["provider","session_id","prompt"],title:"LcmExpandQueryRequestV1",type:"object"},{$defs:{ClosedUtcIntervalV1:hf,HydrationStateResultV1:gB,LcmContentRangeV1:gX,LcmExpandQueryBudgetV1:{additionalProperties:!1,properties:{requested_max_chars:{format:"uint",minimum:0,type:"integer"},used_chars:{format:"uint",minimum:0,type:"integer"}},required:["requested_max_chars","used_chars"],type:"object"},LcmExpandQueryContextBlockV1:{additionalProperties:!1,properties:{content:{type:"string"},content_range:{$ref:"#/$defs/LcmContentRangeV1"},kind:{type:"string"},node_id:{type:["string","null"]},raw_message:{anyOf:[{$ref:"#/$defs/LcmRawMessageV1"},{type:"null"}]},source_ref:{anyOf:[{$ref:"#/$defs/LcmSourceRefV1"},{type:"null"}]},summary_node:{anyOf:[{$ref:"#/$defs/LcmSummaryNodeV1"},{type:"null"}]}},required:["kind","content","content_range"],type:"object"},LcmExpandQueryMatchV1:{additionalProperties:!1,properties:{kind:{type:"string"},node_id:{type:["string","null"]},snippet:{type:"string"},store_id:{format:"int64",type:["integer","null"]}},required:["kind","snippet"],type:"object"},LcmExpandQueryPaginationV1:{additionalProperties:!1,properties:{has_more:{type:"boolean"},kind:{type:"string"},next_content_offset:{format:"uint64",minimum:0,type:["integer","null"]},node_id:{type:["string","null"]},source_ref:{anyOf:[{$ref:"#/$defs/LcmSourceRefV1"},{type:"null"}]},state:{anyOf:[{$ref:"#/$defs/HydrationStateResultV1"},{type:"null"}]}},required:["kind","has_more"],type:"object"},LcmExpandQuerySynthesisPromptV1:{additionalProperties:!1,properties:{system:{type:"string"},user:{type:"string"},user_prompt_truncated_for_mcp:{type:["boolean","null"]}},required:["system","user"],type:"object"},LcmRawMessageV1:g4,LcmSourceRefV1:g3,LcmStorageKindV1:g9,LcmSummaryNodeV1:g7,LcmTemporalFieldsV1:_e,RetainedErrorV1:vR,RetainedOutcomeStatusV1:vq,RetrievalWorkerStatusV1:vO,SessionCoverageIntervalV1:v9,SessionCoverageReasonV1:v5,SessionCoverageRequestV1:v8,SessionCoverageStateV1:v7,SessionSourceCoverageV1:bs,TemporalCoverageV1:bA,TemporalExplanationV1:bW,TemporalModeV1:bN,TemporalOmissionV1:bz,TemporalWatermarksV1:bD,UtcMicros:bX,ValidCoverageIntervalV1:bY},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{answer:{type:["string","null"]},capped_sessions:{additionalProperties:{format:"uint",minimum:0,type:"integer"},type:["object","null"]},context_blocks:{items:{$ref:"#/$defs/LcmExpandQueryContextBlockV1"},type:"array"},context_budget:{anyOf:[{$ref:"#/$defs/LcmExpandQueryBudgetV1"},{type:"null"}]},context_max_tokens:{format:"uint",minimum:0,type:["integer","null"]},context_pagination:{items:{$ref:"#/$defs/LcmExpandQueryPaginationV1"},type:["array","null"]},context_truncated:{type:["boolean","null"]},contract_truncated:{type:["boolean","null"]},error:{anyOf:[{$ref:"#/$defs/RetainedErrorV1"},{type:"null"}]},matches:{items:{$ref:"#/$defs/LcmExpandQueryMatchV1"},type:["array","null"]},max_tokens:{format:"uint",minimum:0,type:["integer","null"]},mcp_response_truncated:{type:["boolean","null"]},mcp_truncation_reason:{type:["string","null"]},needs_synthesis:{type:["boolean","null"]},node_ids:{items:{type:"string"},type:["array","null"]},omitted:{format:"uint64",minimum:0,type:["integer","null"]},prompt:{type:["string","null"]},prompt_truncated_for_mcp:{type:["boolean","null"]},provider:{type:["string","null"]},query:{type:["string","null"]},query_truncated_for_mcp:{type:["boolean","null"]},service_status:{anyOf:[{$ref:"#/$defs/RetrievalWorkerStatusV1"},{type:"null"}]},session_id:{type:["string","null"]},status:{$ref:"#/$defs/RetainedOutcomeStatusV1"},synthesis_prompt:{anyOf:[{$ref:"#/$defs/LcmExpandQuerySynthesisPromptV1"},{type:"null"}]},temporal:{anyOf:[{$ref:"#/$defs/LcmTemporalFieldsV1"},{type:"null"}]}},required:["status","context_blocks"],title:"LcmExpandQueryResultV1",type:"object"},{$defs:{LcmGrepSortV1:{enum:["recency","relevance","hybrid"],type:"string"},LcmRoleV1:{enum:["system","user","assistant","tool","unknown"],type:"string"},LcmSearchScopeV1:{enum:["current","session","all"],type:"string"},MessageRelationshipScopeV1:_f,MessageTypeFilterV1:_h,RetainedTimeFilterV1:vI,TemporalModeV1:bN,UtcMicros:bX},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{branch:{type:["string","null"]},commit:{type:["string","null"]},cursor:{type:["string","null"]},end_time:{anyOf:[{$ref:"#/$defs/RetainedTimeFilterV1"},{type:"null"}]},include_summaries:{type:["boolean","null"]},limit:{format:"uint64",minimum:0,type:["integer","null"]},message_type:{anyOf:[{$ref:"#/$defs/MessageTypeFilterV1"},{type:"null"}]},provider:{type:["string","null"]},query:{type:"string"},relationship_scope:{anyOf:[{$ref:"#/$defs/MessageRelationshipScopeV1"},{type:"null"}]},role:{anyOf:[{$ref:"#/$defs/LcmRoleV1"},{type:"null"}]},scope:{anyOf:[{$ref:"#/$defs/LcmSearchScopeV1"},{type:"null"}]},session_id:{type:["string","null"]},since:{anyOf:[{$ref:"#/$defs/RetainedTimeFilterV1"},{type:"null"}]},sort:{anyOf:[{$ref:"#/$defs/LcmGrepSortV1"},{type:"null"}]},source:{type:["string","null"]},start_time:{anyOf:[{$ref:"#/$defs/RetainedTimeFilterV1"},{type:"null"}]},temporal_mode:{anyOf:[{$ref:"#/$defs/TemporalModeV1"},{type:"null"}]},until:{anyOf:[{$ref:"#/$defs/RetainedTimeFilterV1"},{type:"null"}]},worktree:{type:["string","null"]}},required:["query"],title:"LcmGrepRequestV1",type:"object"},{$defs:{ClosedUtcIntervalV1:hf,HydrationStateResultV1:gB,LcmGrepHitV1:{additionalProperties:!1,properties:{kind:{type:"string"},message_id:{type:["string","null"]},node_id:{type:["string","null"]},provider:{type:"string"},role:{type:["string","null"]},score:{format:"double",type:"number"},session_id:{type:"string"},snippet:{type:"string"},store_id:{format:"int64",type:["integer","null"]}},required:["kind","provider","session_id","snippet","score"],type:"object"},LcmTemporalFieldsV1:_e,RetainedErrorV1:vR,RetainedOutcomeStatusV1:vq,RetrievalWorkerStatusV1:vO,SessionCoverageIntervalV1:v9,SessionCoverageReasonV1:v5,SessionCoverageRequestV1:v8,SessionCoverageStateV1:v7,SessionSourceCoverageV1:bs,TemporalCoverageV1:bA,TemporalExplanationV1:bW,TemporalModeV1:bN,TemporalOmissionV1:bz,TemporalWatermarksV1:bD,UtcMicros:bX,ValidCoverageIntervalV1:bY},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{capped_sessions:{additionalProperties:{format:"uint",minimum:0,type:"integer"},type:["object","null"]},count:{format:"uint",minimum:0,type:["integer","null"]},error:{anyOf:[{$ref:"#/$defs/RetainedErrorV1"},{type:"null"}]},hits:{items:{$ref:"#/$defs/LcmGrepHitV1"},type:"array"},message_type:{type:["string","null"]},omitted:{format:"uint64",minimum:0,type:["integer","null"]},provider:{type:["string","null"]},query:{type:["string","null"]},relationship_scope:{type:["string","null"]},service_status:{anyOf:[{$ref:"#/$defs/RetrievalWorkerStatusV1"},{type:"null"}]},sort:{type:["string","null"]},status:{$ref:"#/$defs/RetainedOutcomeStatusV1"},temporal:{anyOf:[{$ref:"#/$defs/LcmTemporalFieldsV1"},{type:"null"}]}},required:["status","hits"],title:"LcmGrepResultV1",type:"object"},{$defs:{TemporalModeV1:bN,UtcMicros:bX},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{content_limit:{format:"uint64",minimum:0,type:["integer","null"]},content_offset:{format:"uint64",minimum:0,type:["integer","null"]},cursor:{type:["string","null"]},end_time:{format:"uint64",minimum:0,type:["integer","null"]},limit:{format:"uint64",minimum:0,type:["integer","null"]},provider:{type:["string","null"]},role:{type:["string","null"]},roles:{items:{type:"string"},type:["array","null"]},session_id:{type:"string"},start_time:{format:"uint64",minimum:0,type:["integer","null"]},temporal_mode:{anyOf:[{$ref:"#/$defs/TemporalModeV1"},{type:"null"}]}},required:["session_id"],title:"LcmLoadSessionRequestV1",type:"object"},{$defs:{ClosedUtcIntervalV1:hf,HydrationStateResultV1:gB,LcmContentRangeV1:gX,LcmMessageV1:{additionalProperties:!1,properties:{content:{type:"string"},content_hash:{type:["string","null"]},content_range:{$ref:"#/$defs/LcmContentRangeV1"},message_id:{type:"string"},metadata_json:{type:["string","null"]},ordinal:{format:"int64",type:"integer"},payload_ref:{type:["string","null"]},provider:{type:"string"},role:{type:"string"},session_id:{type:"string"},storage_kind:{$ref:"#/$defs/LcmStorageKindV1"},store_id:{format:"int64",type:["integer","null"]},timestamp:{format:"int64",type:["integer","null"]}},required:["provider","message_id","session_id","role","ordinal","content","content_range","storage_kind"],type:"object"},LcmStorageKindV1:g9,LcmTemporalFieldsV1:_e,RetainedErrorV1:vR,RetainedOutcomeStatusV1:vq,RetrievalWorkerStatusV1:vO,SessionCoverageIntervalV1:v9,SessionCoverageReasonV1:v5,SessionCoverageRequestV1:v8,SessionCoverageStateV1:v7,SessionSourceCoverageV1:bs,TemporalCoverageV1:bA,TemporalExplanationV1:bW,TemporalModeV1:bN,TemporalOmissionV1:bz,TemporalWatermarksV1:bD,UtcMicros:bX,ValidCoverageIntervalV1:bY},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{capped_sessions:{additionalProperties:{format:"uint",minimum:0,type:"integer"},type:["object","null"]},content_limit:{format:"uint",minimum:0,type:["integer","null"]},content_limit_clamped_from:{format:"uint",minimum:0,type:["integer","null"]},error:{anyOf:[{$ref:"#/$defs/RetainedErrorV1"},{type:"null"}]},messages:{items:{$ref:"#/$defs/LcmMessageV1"},type:"array"},omitted:{format:"uint64",minimum:0,type:["integer","null"]},provider:{type:["string","null"]},service_status:{anyOf:[{$ref:"#/$defs/RetrievalWorkerStatusV1"},{type:"null"}]},session_id:{type:["string","null"]},status:{$ref:"#/$defs/RetainedOutcomeStatusV1"},temporal:{anyOf:[{$ref:"#/$defs/LcmTemporalFieldsV1"},{type:"null"}]}},required:["status","messages"],title:"LcmLoadSessionResultV1",type:"object"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{deep:{type:["boolean","null"]},provider:{type:["string","null"]},session_id:{type:["string","null"]}},title:"LcmStatusRequestV1",type:"object"},{$defs:{LcmAuthorityOutcomeV1:gQ,LcmConfigStatusV1:{additionalProperties:!1,properties:{compression_boundary_cooldown_seconds:{format:"int64",type:"integer"},fresh_tail_count:{format:"uint",minimum:0,type:"integer"},summary_fan_in:{format:"uint",minimum:0,type:"integer"}},required:["fresh_tail_count","summary_fan_in","compression_boundary_cooldown_seconds"],type:"object"},LcmConvergenceStateV1:gY,LcmConvergenceV1:g1,LcmDagDepthStatusV1:{additionalProperties:!1,properties:{count:{format:"int64",type:"integer"},source_tokens:{format:"int64",type:"integer"},tokens:{format:"int64",type:"integer"}},required:["count","tokens","source_tokens"],type:"object"},LcmDagStatusV1:{additionalProperties:!1,properties:{compression_ratio:{type:"string"},depths:{additionalProperties:{$ref:"#/$defs/LcmDagDepthStatusV1"},type:"object"},total_nodes:{format:"int64",type:"integer"},total_source_tokens:{format:"int64",type:"integer"},total_tokens:{format:"int64",type:"integer"}},required:["total_nodes","total_tokens","total_source_tokens","compression_ratio","depths"],type:"object"},LcmDoctorProjectionStateV1:g0,LcmDoctorProjectionV1:g2,LcmLifecycleStatusV1:{additionalProperties:!1,properties:{current_frontier_store_id:{format:"int64",type:["integer","null"]},current_session_id:{type:["string","null"]},frontier_count:{format:"int64",type:"integer"},last_finalized_frontier_store_id:{format:"int64",type:["integer","null"]},last_finalized_session_id:{type:["string","null"]},lifecycle_state_count:{format:"int64",type:"integer"},maintenance_debt_count:{format:"int64",type:"integer"}},required:["lifecycle_state_count","frontier_count","maintenance_debt_count"],type:"object"},LcmPayloadCoverageStateV1:{enum:["complete","partial"],type:"string"},LcmPayloadCoverageV1:{additionalProperties:!1,properties:{reason:{type:["string","null"]},scanned_files:{format:"int64",type:"integer"},scanned_metadata_refs:{format:"int64",type:"integer"},state:{$ref:"#/$defs/LcmPayloadCoverageStateV1"}},required:["state","scanned_metadata_refs","scanned_files"],type:"object"},LcmPayloadGcStatusV1:{additionalProperties:!1,properties:{grace_seconds:{format:"int64",type:"integer"},last_gc_at:{format:"int64",type:["integer","null"]},last_gc_duration_ms:{format:"uint64",minimum:0,type:["integer","null"]},last_gc_error:{type:["string","null"]},last_gc_status:{type:["string","null"]},last_reaped_bytes:{format:"uint64",minimum:0,type:["integer","null"]},last_reaped_refs:{format:"int64",type:["integer","null"]},next_run_eligible_at:{format:"int64",type:["integer","null"]},reap_missing_metadata_after_seconds:{format:"int64",type:"integer"}},required:["grace_seconds","reap_missing_metadata_after_seconds"],type:"object"},LcmPayloadStatusV1:{additionalProperties:!1,properties:{coverage:{$ref:"#/$defs/LcmPayloadCoverageV1"},externalized_count:{format:"int64",type:"integer"},gc_candidate_count:{format:"int64",type:"integer"},integrity_mismatch_count:{format:"int64",type:["integer","null"]},missing_count:{format:"int64",type:"integer"},missing_placeholder_file_count:{format:"int64",type:"integer"},missing_placeholder_metadata_count:{format:"int64",type:"integer"},orphan_file_bytes:{format:"uint64",minimum:0,type:"integer"},orphan_file_count:{format:"int64",type:"integer"},placeholder_ref_count:{format:"int64",type:"integer"},reclaimable_bytes:{format:"uint64",minimum:0,type:"integer"},reclaimable_bytes_after_grace:{format:"uint64",minimum:0,type:"integer"},referenced_bytes:{format:"uint64",minimum:0,type:"integer"},referenced_count:{format:"int64",type:"integer"},root_contained:{type:"boolean"},tombstoned_count:{format:"int64",type:"integer"},total_bytes:{format:"uint64",minimum:0,type:"integer"},unreferenced_count:{format:"int64",type:"integer"}},required:["coverage","externalized_count","missing_count","unreferenced_count","placeholder_ref_count","missing_placeholder_metadata_count","missing_placeholder_file_count","gc_candidate_count","root_contained","orphan_file_count","tombstoned_count","referenced_count","total_bytes","referenced_bytes","orphan_file_bytes","reclaimable_bytes","reclaimable_bytes_after_grace"],type:"object"},LcmRedactionStatusV1:{additionalProperties:!1,properties:{enabled:{type:"boolean"},lossy_records:{format:"int64",type:"integer"}},required:["enabled","lossy_records"],type:"object"},LcmStatusV1:{additionalProperties:!1,properties:{config:{$ref:"#/$defs/LcmConfigStatusV1"},dag:{$ref:"#/$defs/LcmDagStatusV1"},external_payload_count:{format:"int64",type:"integer"},lifecycle:{$ref:"#/$defs/LcmLifecycleStatusV1"},maintenance_debt_count:{format:"int64",type:"integer"},missing_payload_count:{format:"int64",type:"integer"},payload:{$ref:"#/$defs/LcmPayloadStatusV1"},payload_gc:{$ref:"#/$defs/LcmPayloadGcStatusV1"},raw_message_count:{format:"int64",type:"integer"},redaction:{$ref:"#/$defs/LcmRedactionStatusV1"},schema_version:{format:"int64",type:"integer"},store:{$ref:"#/$defs/LcmStoreStatusV1"},summary_convergence:{$ref:"#/$defs/LcmSummaryConvergenceStatusV1"},summary_node_count:{format:"int64",type:"integer"},unreferenced_payload_count:{format:"int64",type:"integer"}},required:["schema_version","raw_message_count","summary_node_count","external_payload_count","missing_payload_count","unreferenced_payload_count","maintenance_debt_count","store","dag","config","payload","payload_gc","lifecycle","summary_convergence","redaction"],type:"object"},LcmStoreStatusV1:{additionalProperties:!1,properties:{estimated_tokens:{format:"int64",type:"integer"},messages:{format:"int64",type:"integer"},token_estimate:{$ref:"#/$defs/LcmStoreTokenCoverageV1"}},required:["messages","estimated_tokens","token_estimate"],type:"object"},LcmStoreTokenCoverageV1:{additionalProperties:!1,properties:{complete:{type:"boolean"},next_after_store_id:{format:"int64",type:["integer","null"]},scanned_messages:{format:"int64",type:"integer"}},required:["complete","scanned_messages"],type:"object"},LcmSummaryConvergenceReasonV1:{additionalProperties:!1,properties:{reason:{type:"string"},session_count:{format:"int64",type:"integer"},state:{$ref:"#/$defs/LcmSummaryConvergenceStateV1"}},required:["state","reason","session_count"],type:"object"},LcmSummaryConvergenceStateV1:{enum:["pending","retryable","current","unavailable","permanent"],type:"string"},LcmSummaryConvergenceStatusV1:{additionalProperties:!1,description:"Retained-session summary convergence queue: disjoint per-state session\ncounts and the reasons parked or failed sessions record.",properties:{current_session_count:{format:"int64",type:"integer"},pending_session_count:{format:"int64",type:"integer"},permanent_session_count:{format:"int64",type:"integer"},reasons:{items:{$ref:"#/$defs/LcmSummaryConvergenceReasonV1"},type:"array"},retryable_session_count:{format:"int64",type:"integer"},unavailable_session_count:{format:"int64",type:"integer"}},required:["pending_session_count","retryable_session_count","current_session_count","unavailable_session_count","permanent_session_count","reasons"],type:"object"},RetainedOutcomeStatusV1:vq,RetrievalWorkerStatusV1:vO},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{authority_outcome:{anyOf:[{$ref:"#/$defs/LcmAuthorityOutcomeV1"},{type:"null"}]},deep:{type:["boolean","null"]},lcm:{anyOf:[{$ref:"#/$defs/LcmStatusV1"},{type:"null"}]},message:{type:["string","null"]},projection:{anyOf:[{$ref:"#/$defs/LcmDoctorProjectionV1"},{type:"null"}],description:"The store's refresh-worker serving and convergence state. Absent when\nno refresh worker serves the store."},provider:{type:["string","null"]},reason:{type:["string","null"]},session_id:{type:["string","null"]},status:{$ref:"#/$defs/RetainedOutcomeStatusV1"}},required:["status"],title:"LcmStatusResultV1",type:"object"},{$defs:{MemoryScopeV1:_m,ProjectId:_6},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{memory_scope:{anyOf:[{$ref:"#/$defs/MemoryScopeV1"},{type:"null"}]},project_selector:{additionalProperties:!1,description:'Exact registered-project selector. Reads and fact effects run against the\nselected project.\n\nInlined so every request schema advertises the closed selector contract\n(`required: ["project_id"]`, no additional properties) directly on its\n`project_selector` property instead of behind a `$defs` reference, matching\nthe selector shape the MCP dispatch policy promises for selector-accepting\ntools.',properties:{project_id:{$ref:"#/$defs/ProjectId"}},required:["project_id"],type:["object","null"]}},title:"MemoryStatusRequestV1",type:"object"},{$defs:{FactCommitOwnerV1:yN,MemoryAlgebraV1:{additionalProperties:!1,properties:{estimated_capacity:{description:"Heuristic D / ln(D) count of bound items one vector can superpose\nbefore cosine similarity degrades. Each fact has its own vector, so\nthis is neither a limit on stored facts nor a recall guarantee.",format:"uint64",minimum:0,type:"integer"},hrr_dim:{description:"Width of each encoded vector.",format:"uint64",minimum:0,type:"integer"},name:{description:"Vector algebra the fact encodings use. Current daemons report `map_c`;\nearlier releases reported `amari_fhrr` for the same encoding.",type:"string"}},required:["name","hrr_dim","estimated_capacity"],type:"object"},MemoryFeedbackFunnelV1:{additionalProperties:!1,properties:{access_count_total:{format:"uint64",minimum:0,type:"integer"},feedback_total:{format:"uint64",minimum:0,type:"integer"},rated_fact_count:{format:"uint64",minimum:0,type:"integer"},retrieval_count_total:{format:"uint64",minimum:0,type:"integer"},retrieved_fact_count:{format:"uint64",minimum:0,type:"integer"},seen_to_feedback_ratio:{format:"uint64",minimum:0,type:["integer","null"]}},required:["retrieval_count_total","access_count_total","retrieved_fact_count","rated_fact_count","feedback_total"],type:"object"},MemoryStatusV1:{additionalProperties:!1,properties:{algebra:{$ref:"#/$defs/MemoryAlgebraV1"},below_default_recall_threshold_count:{format:"uint64",minimum:0,type:"integer"},entity_count:{format:"uint64",minimum:0,type:"integer"},fact_count:{format:"uint64",minimum:0,type:"integer"},feedback_funnel:{$ref:"#/$defs/MemoryFeedbackFunnelV1"},helpful_count:{format:"uint64",minimum:0,type:"integer"},owner:{$ref:"#/$defs/FactCommitOwnerV1"},trust_025_050_count:{format:"uint64",minimum:0,type:"integer"},trust_050_075_count:{format:"uint64",minimum:0,type:"integer"},trust_075_100_count:{format:"uint64",minimum:0,type:"integer"},trust_0_025_count:{format:"uint64",minimum:0,type:"integer"},unhelpful_count:{format:"uint64",minimum:0,type:"integer"}},required:["owner","fact_count","entity_count","algebra","trust_0_025_count","trust_025_050_count","trust_050_075_count","trust_075_100_count","below_default_recall_threshold_count","helpful_count","unhelpful_count","feedback_funnel"],type:"object"},ProjectId:_6},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{memory:{$ref:"#/$defs/MemoryStatusV1"}},required:["memory"],title:"MemoryStatusResultV1",type:"object"},{$defs:{MessageRelationshipScopeV1:_f,MessageTypeFilterV1:_h,ProjectId:_6,RetainedTimeFilterV1:vI},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"Exact public input accepted by `tracedecay_message_search`.",properties:{branch:{type:["string","null"]},commit:{type:["string","null"]},cursor:{type:["string","null"]},goals:{default:!1,type:"boolean"},include_subagents:{type:["boolean","null"]},limit:{format:"uint64",minimum:0,type:["integer","null"]},message_type:{anyOf:[{$ref:"#/$defs/MessageTypeFilterV1"},{type:"null"}]},parent_session_id:{type:["string","null"]},project_key:{type:["string","null"]},project_selector:{additionalProperties:!1,description:'Exact registered-project selector. Reads and fact effects run against the\nselected project.\n\nInlined so every request schema advertises the closed selector contract\n(`required: ["project_id"]`, no additional properties) directly on its\n`project_selector` property instead of behind a `$defs` reference, matching\nthe selector shape the MCP dispatch policy promises for selector-accepting\ntools.',properties:{project_id:{$ref:"#/$defs/ProjectId"}},required:["project_id"],type:["object","null"]},provider:{type:["string","null"]},query:{type:["string","null"]},require_fresh:{description:"Freshness precondition: stale or partial coverage returns\n`refresh_required` instead of stored evidence. The read never refreshes.",type:["boolean","null"]},scope:{anyOf:[{$ref:"#/$defs/MessageRelationshipScopeV1"},{type:"null"}]},since:{anyOf:[{$ref:"#/$defs/RetainedTimeFilterV1"},{type:"null"}]},until:{anyOf:[{$ref:"#/$defs/RetainedTimeFilterV1"},{type:"null"}]},workflow_agent:{type:["string","null"]},workflow_run:{type:["string","null"]},worktree:{type:["string","null"]}},title:"MessageSearchRequestV1",type:"object"},{$defs:{ClosedUtcIntervalV1:hf,GitScopeV1:gA,HydrationStateResultV1:gB,MessageSearchHitV1:{additionalProperties:!1,properties:{message:{$ref:"#/$defs/SessionMessageV1"},project_id:{type:["string","null"]},root:{type:["string","null"]},score:{format:"double",type:"number"},session:{$ref:"#/$defs/SessionRecordV1"}},required:["session","message","score"],type:"object"},RetainedErrorV1:vR,RetainedNextActionV1:{additionalProperties:!1,properties:{action:{type:"string"},kind:{type:"string"},reason:{type:"string"},tool:{type:"string"}},required:["kind","tool","action","reason"],type:"object"},RetainedOutcomeStatusV1:vq,RetrievalWorkerStatusV1:vO,SessionCoverageIntervalV1:v9,SessionCoverageReasonV1:v5,SessionCoverageRequestV1:v8,SessionCoverageStateV1:v7,SessionMessageV1:{additionalProperties:!1,properties:{kind:{type:["string","null"]},message_id:{type:"string"},metadata_json:{type:["string","null"]},model:{type:["string","null"]},ordinal:{format:"int64",type:"integer"},provider:{type:"string"},role:{type:"string"},session_id:{type:"string"},source_offset:{format:"int64",type:["integer","null"]},source_path:{type:["string","null"]},text:{type:"string"},timestamp:{format:"int64",type:["integer","null"]},tool_names:{type:["string","null"]}},required:["provider","message_id","session_id","role","ordinal","text"],type:"object"},SessionRecordV1:{additionalProperties:!1,properties:{agent_id:{type:["string","null"]},ended_at:{format:"int64",type:["integer","null"]},is_subagent:{type:"boolean"},metadata_json:{type:["string","null"]},parent_session_id:{type:["string","null"]},parent_tool_use_id:{type:["string","null"]},project_key:{type:"string"},project_path:{type:"string"},provider:{type:"string"},session_id:{type:"string"},started_at:{format:"int64",type:["integer","null"]},title:{type:["string","null"]},transcript_path:{type:["string","null"]}},required:["provider","session_id","project_key","project_path","is_subagent"],type:"object"},SessionSourceCoverageV1:bs,TemporalCoverageOmissionV1:{oneOf:[{properties:{detail:{type:"string"},kind:{const:"root_continuation_unavailable",type:"string"},strict_population:{$ref:"#/$defs/TemporalPopulationCountV1"}},required:["kind","strict_population","detail"],type:"object"}]},TemporalCoverageV1:bA,TemporalExplanationV1:bW,TemporalFreshnessV1:bM,TemporalMetadataV1:{additionalProperties:!1,properties:{anchors:{items:{type:"string"},type:"array"},coverage:{$ref:"#/$defs/TemporalCoverageV1"},coverage_omissions:{items:{$ref:"#/$defs/TemporalCoverageOmissionV1"},type:"array"},explanations:{items:{$ref:"#/$defs/TemporalExplanationV1"},type:"array"},freshness:{anyOf:[{$ref:"#/$defs/TemporalFreshnessV1"},{type:"null"}]},next_cursor:{type:["string","null"]},omissions:{items:{$ref:"#/$defs/TemporalOmissionV1"},type:"array"},source_coverage:{items:{$ref:"#/$defs/SessionSourceCoverageV1"},type:"array"},watermarks:{$ref:"#/$defs/TemporalWatermarksV1"}},required:["anchors","watermarks","coverage","explanations"],type:"object"},TemporalModeV1:bN,TemporalOmissionV1:bz,TemporalPopulationCountV1:{oneOf:[{properties:{count:{format:"uint64",minimum:0,type:"integer"},kind:{const:"exact",type:"string"}},required:["kind","count"],type:"object"},{properties:{count:{format:"uint64",minimum:0,type:"integer"},kind:{const:"at_least",type:"string"}},required:["kind","count"],type:"object"}]},TemporalWatermarksV1:bD,UtcMicros:bX,ValidCoverageIntervalV1:bY},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{count:{format:"uint",minimum:0,type:["integer","null"]},error:{anyOf:[{$ref:"#/$defs/RetainedErrorV1"},{type:"null"}]},git_filter:{anyOf:[{$ref:"#/$defs/GitScopeV1"},{type:"null"}]},git_filter_applied:{type:["boolean","null"]},goals:{type:"boolean"},include_subagents:{type:"boolean"},message:{type:["string","null"]},message_type:{type:"string"},next_action:{anyOf:[{$ref:"#/$defs/RetainedNextActionV1"},{type:"null"}]},omitted:{format:"uint64",minimum:0,type:["integer","null"]},outcome:{$ref:"#/$defs/RetainedOutcomeStatusV1"},parent_session_id:{type:["string","null"]},project_key:{type:["string","null"]},provider:{type:"string"},query:{type:["string","null"]},refresh_required:{type:"boolean"},requested_provider:{type:["string","null"]},require_fresh:{type:"boolean"},results:{items:{$ref:"#/$defs/MessageSearchHitV1"},type:["array","null"]},scope:{type:"string"},service_status:{anyOf:[{$ref:"#/$defs/RetrievalWorkerStatusV1"},{type:"null"}]},since:{format:"int64",type:["integer","null"]},status:{$ref:"#/$defs/RetainedOutcomeStatusV1"},store_scope:{type:["string","null"]},temporal:{anyOf:[{$ref:"#/$defs/TemporalMetadataV1"},{type:"null"}]},until:{format:"int64",type:["integer","null"]},workflow_agent:{type:["string","null"]},workflow_filter_applied:{type:["boolean","null"]},workflow_run:{type:["string","null"]},workflow_run_parent_session:{type:["string","null"]}},required:["require_fresh","goals","include_subagents","message_type","outcome","provider","refresh_required","scope","status"],title:"MessageSearchResultV1",type:"object"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{path:{type:"string"}},required:["path"],title:"ModuleApiPrimitiveRequest",type:"object"},{$defs:{SymbolPrimitiveRecord:bj},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{path:{type:"string"},symbols:{items:{$ref:"#/$defs/SymbolPrimitiveRecord"},type:"array"}},required:["path","symbols"],title:"ModuleApiPrimitiveResult",type:"object"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"Exact public input accepted by `tracedecay_move_symbol`.",properties:{dest_file:{type:"string"},dry_run:{default:!0,type:"boolean"},expected_state:{description:"Exact `preview_digest`/`expected_state` returned by the dry run. Apply\nre-resolves the typed plan and rejects any candidate-state drift.",type:["string","null"]},idempotency_key:{type:["string","null"]},symbol:{type:"string"}},required:["symbol","dest_file"],title:"MoveSymbolSurfaceRequestV1",type:"object"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"Exact public input accepted by `tracedecay_multi_str_replace`.",properties:{dry_run:{default:!1,type:"boolean"},expected_state:{description:"Exact `preview_digest`/`expected_state` returned by the dry run. Apply\nre-resolves the typed plan and rejects any candidate-state drift.",type:["string","null"]},idempotency_key:{type:["string","null"]},path:{type:"string"},replacements:{description:"Ordered `[old, new]` pairs, matching the existing MCP tool wire form.",items:{maxItems:2,minItems:2,prefixItems:[{type:"string"},{type:"string"}],type:"array"},type:"array"},verify:{default:!1,type:"boolean"}},required:["path","replacements"],title:"MultiStrReplaceSurfaceRequestV1",type:"object"},{$defs:{NativeIntegrationTransactionId:_O},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{transaction_id:{$ref:"#/$defs/NativeIntegrationTransactionId"}},required:["transaction_id"],title:"NativeIntegrationStatusSurfaceRequest",type:"object"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{node_id:{type:"string"}},required:["node_id"],title:"NodeSurfaceRequestV1",type:"object"},{$defs:{CodeIndexBuildBlockedReasonV1:hv,CodeIndexConvergenceParkedV1:hb,CodeIndexStalenessStateV1:hw,ComplexityAnalysisV1:hj,NodeDetailsV1:{additionalProperties:!1,properties:{branches:{description:"Exact counters; `None`, and listed in `unavailable_fields`, when\n`complexity_analysis` reports the bounded walk did not cover the body.",format:"uint32",minimum:0,type:["integer","null"]},complexity_analysis:{$ref:"#/$defs/ComplexityAnalysisV1"},cost_to_expand:{$ref:"#/$defs/NodeExpansionCostV1"},cyclomatic_complexity:{format:"uint32",minimum:0,type:["integer","null"]},derives:{items:{type:"string"},type:"array"},docstring:{type:["string","null"]},end_line:{format:"uint32",minimum:0,type:"integer"},file:{type:"string"},freshness:{anyOf:[{$ref:"#/$defs/PrimitiveSearchFreshnessV1"},{type:"null"}],description:"The worktree verdict a served graph read opens with."},id:{type:"string"},is_async:{type:"boolean"},kind:{type:"string"},loops:{format:"uint32",minimum:0,type:["integer","null"]},max_nesting:{format:"uint32",minimum:0,type:["integer","null"]},name:{type:"string"},qualified_name:{type:"string"},signature:{type:["string","null"]},start_line:{format:"uint32",minimum:0,type:"integer"},unavailable_fields:{items:{type:"string"},type:"array"},visibility:{type:"string"}},required:["id","name","kind","qualified_name","file","start_line","end_line","is_async","derives","visibility","complexity_analysis","cost_to_expand","unavailable_fields"],type:"object"},NodeExpansionCostV1:_W,PrimitiveFreshnessStateV1:_K,PrimitiveIndexingStateV1:_J,PrimitiveNotFoundV1:_Q,PrimitiveSearchFreshnessV1:_Y,PrimitiveSymbolLocationV1:_0},$schema:"https://json-schema.org/draft/2020-12/schema",anyOf:[{$ref:"#/$defs/NodeDetailsV1"},{$ref:"#/$defs/PrimitiveNotFoundV1"}],title:"NodeResultV1"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"One project-scoped horizon for the canonical Observatory and Costs models.",properties:{window_days:{default:14,format:"uint16",maximum:365,minimum:1,type:"integer"}},title:"ObservatoryReadRequestV1",type:"object"},{$defs:{AnalyticsModeReadModelV1:fw,AnalyticsModeV1:fP,ComparisonDispositionV1:hx,CostsReadModelV1:yp,CoverageStateV1:yh,LatencyDistributionReadModelV1:gZ,MetricCalibrationV1:_y,MetricCohortV1:_g,MetricCoverageV1:__,MetricEvidenceClassV1:_v,MetricProvenanceV1:_b,MetricSourceV1:_$,MetricTemporalV1:_S,MetricUncertaintyV1:_k,MetricValueV1:_w,ObservabilityHorizonV1:_M,ObservatoryReadModelV1:_z,PerformanceComparisonReadModelV1:_G,ProviderLatencyReadModelV1:va,RejectedArgumentAnalyticsV1:vy,RejectedArgumentErrorClassV1:vg,RejectedArgumentGroupV1:v_,RejectedArgumentNameV1:vv,RejectedArgumentSurfaceV1:vb},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"Canonical project-scoped observability and costs read models.",properties:{costs:{$ref:"#/$defs/CostsReadModelV1"},observatory:{$ref:"#/$defs/ObservatoryReadModelV1"}},required:["observatory","costs"],title:"ObservatoryReadResultV1",type:"object"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{kinds:{items:{type:"string"},type:["array","null"]},limit:{format:"uint32",minimum:0,type:["integer","null"]},source_dir:{type:"string"}},required:["source_dir"],title:"PortOrderSurfaceRequestV1",type:"object"},{$defs:{CodeIndexBuildBlockedReasonV1:hv,CodeIndexConvergenceParkedV1:hb,CodeIndexStalenessStateV1:hw,PortCycleAnchorV1:{additionalProperties:!1,properties:{file:{type:"string"},line:{format:"uint32",minimum:0,type:"integer"},name:{type:"string"},rationale:{type:["string","null"]}},required:["name","file","line"],type:"object"},PortCycleFileV1:{additionalProperties:!1,properties:{file:{type:"string"},members_in_cycle:{format:"uint",minimum:0,type:"integer"}},required:["file","members_in_cycle"],type:"object"},PortCycleSymbolV1:{additionalProperties:!1,properties:{file:{type:"string"},in_cycle_in_degree:{format:"uint",minimum:0,type:"integer"},in_cycle_out_degree:{format:"uint",minimum:0,type:"integer"},kind:{type:"string"},line:{format:"uint32",minimum:0,type:"integer"},name:{type:"string"}},required:["name","kind","file","line","in_cycle_out_degree","in_cycle_in_degree"],type:"object"},PortCycleV1:{additionalProperties:!1,properties:{break_point_candidate:{anyOf:[{$ref:"#/$defs/PortCycleAnchorV1"},{type:"null"}]},entry_point:{anyOf:[{$ref:"#/$defs/PortCycleAnchorV1"},{type:"null"}]},files:{items:{$ref:"#/$defs/PortCycleFileV1"},type:"array"},note:{type:"string"},size:{format:"uint",minimum:0,type:"integer"},symbols:{items:{$ref:"#/$defs/PortCycleSymbolV1"},type:"array"}},required:["size","files","symbols","note"],type:"object"},PortOrderLevelV1:{additionalProperties:!1,properties:{description:{type:"string"},level:{format:"uint",minimum:0,type:"integer"},symbols:{items:{$ref:"#/$defs/PortOrderSymbolV1"},type:"array"}},required:["level","description","symbols"],type:"object"},PortOrderSymbolV1:{additionalProperties:!1,properties:{depends_on:{items:{type:"string"},type:["array","null"]},file:{type:"string"},kind:{type:"string"},line:{format:"uint32",minimum:0,type:"integer"},name:{type:"string"}},required:["name","kind","file","line"],type:"object"},PrimitiveFreshnessStateV1:_K,PrimitiveIndexingStateV1:_J,PrimitiveSearchFreshnessV1:_Y},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{cycles:{items:{$ref:"#/$defs/PortCycleV1"},type:"array"},freshness:{anyOf:[{$ref:"#/$defs/PrimitiveSearchFreshnessV1"},{type:"null"}],description:"The worktree verdict a served graph read opens with."},levels:{items:{$ref:"#/$defs/PortOrderLevelV1"},type:"array"},returned:{format:"uint",minimum:0,type:"integer"},source_dir:{type:"string"},total_symbols:{format:"uint",minimum:0,type:"integer"}},required:["source_dir","total_symbols","returned","levels","cycles"],title:"PortOrderResultV1",type:"object"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{kinds:{items:{type:"string"},type:["array","null"]},source_dir:{type:"string"},target_dir:{type:"string"}},required:["source_dir","target_dir"],title:"PortStatusSurfaceRequestV1",type:"object"},{$defs:{CodeIndexBuildBlockedReasonV1:hv,CodeIndexConvergenceParkedV1:hb,CodeIndexStalenessStateV1:hw,PortMatchedSymbolV1:{additionalProperties:!1,properties:{name:{type:"string"},source_file:{type:"string"},source_kind:{type:"string"},target_file:{type:"string"},target_kind:{type:"string"}},required:["name","source_kind","target_kind","source_file","target_file"],type:"object"},PortTargetOnlySymbolV1:{additionalProperties:!1,properties:{file:{type:"string"},kind:{type:"string"},line:{format:"uint32",minimum:0,type:"integer"},name:{type:"string"}},required:["name","kind","file","line"],type:"object"},PortUnmatchedSymbolV1:{additionalProperties:!1,properties:{kind:{type:"string"},line:{format:"uint32",minimum:0,type:"integer"},name:{type:"string"}},required:["name","kind","line"],type:"object"},PrimitiveFreshnessStateV1:_K,PrimitiveIndexingStateV1:_J,PrimitiveSearchFreshnessV1:_Y},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{coverage_percent:{format:"double",type:"number"},freshness:{anyOf:[{$ref:"#/$defs/PrimitiveSearchFreshnessV1"},{type:"null"}],description:"The worktree verdict a served graph read opens with."},matched:{format:"uint",minimum:0,type:"integer"},matched_symbols:{items:{$ref:"#/$defs/PortMatchedSymbolV1"},type:"array"},source_count:{format:"uint",minimum:0,type:"integer"},source_dir:{type:"string"},target_count:{format:"uint",minimum:0,type:"integer"},target_dir:{type:"string"},target_only:{format:"uint",minimum:0,type:"integer"},target_only_symbols:{items:{$ref:"#/$defs/PortTargetOnlySymbolV1"},type:"array"},unmatched:{format:"uint",minimum:0,type:"integer"},unmatched_by_file:{additionalProperties:{items:{$ref:"#/$defs/PortUnmatchedSymbolV1"},type:"array"},type:"object"}},required:["source_dir","target_dir","source_count","target_count","matched","unmatched","target_only","coverage_percent","unmatched_by_file","matched_symbols","target_only_symbols"],title:"PortStatusResultV1",type:"object"},{$defs:{PrContextViewV1:_B},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{base_ref:{description:"Base branch or ref (default: the matching retained PR base, otherwise\nthe detected repository default branch). A short branch name selects the descendant of its\nlocal and origin tracking tips; use an explicit ref when they diverge.",type:["string","null"]},budget_tokens:{description:"Approximate whole-result JSON token budget for the brief (default: 4000).\nIn symbols view, budgets the existing symbol, test, and module sections.",format:"uint32",minimum:0,type:["integer","null"]},cursor:{description:"Authenticated continuation cursor; accepted only with view `symbols`.",type:["string","null"]},head_ref:{description:"Head branch or ref (default: 'HEAD'). Accepts local branches,\nremote-tracking refs such as origin/topic, full refs, and Git revision\nexpressions.",type:["string","null"]},maximum_symbols:{description:"Maximum symbols returned on a symbols-view page (default: 200, clamped to 1-500).",format:"uint32",minimum:0,type:["integer","null"]},pull_request:{description:"Select a retained PR number for this checkout when several are known.",format:"uint64",minimum:0,type:["integer","null"]},refresh_github:{default:!1,description:"Explicitly refresh the configured matching GitHub PR within the caller\ndeadline. By default, read retained authorized evidence. CI stays retained.",type:"boolean"},view:{$ref:"#/$defs/PrContextViewV1",default:"brief",description:"Compact PR briefing by default; `symbols` requests exact symbol pages."}},title:"PrContextSurfaceRequestV1",type:"object"},{$defs:{CoChangeUnavailableV1:hh,CodeIndexBuildBlockedReasonV1:hv,CodeIndexConvergenceParkedV1:hb,CodeIndexStalenessStateV1:hw,ConfigSummaryKindV1:hO,ConfigSummaryV1:hE,GitCommitSubjectV1:{additionalProperties:!1,properties:{hash:{type:"string"},subject:{type:"string"}},required:["hash","subject"],type:"object"},GitComparedSymbolV1:gg,GitContextSymbolV1:gv,GitFileChangeStatusV1:{enum:["added","deleted","modified"],type:"string"},GitFileChangeV1:{additionalProperties:!1,properties:{path:{type:"string"},status:{$ref:"#/$defs/GitFileChangeStatusV1"}},required:["path","status"],type:"object"},GitFileRoleV1:gk,GitReadCompleteV1:gC,GitReadPartialV1:gT,GitReadUnavailableV1:gO,GitToolErrorKindV1:gM,GitToolErrorV1:gN,GitToolFailureV1:gz,GitToolOperationV1:gD,MissingCoChangePartnerV1:_P,PrAnalysisCoverageV1:{additionalProperties:!1,properties:{complete:{type:"boolean"},direct_call_edges_admitted:{format:"uint",minimum:0,type:"integer"},impact_bytes_admitted:{format:"uint",minimum:0,type:"integer"},impact_nodes_admitted:{format:"uint",minimum:0,type:"integer"},impact_nodes_returned:{format:"uint",minimum:0,type:"integer"},impact_partial:{type:"boolean"},seed_symbols_analyzed:{format:"uint",minimum:0,type:"integer"},symbols_complete:{type:"boolean"},symbols_returned:{format:"uint",minimum:0,type:"integer"}},required:["seed_symbols_analyzed","symbols_returned","symbols_complete","impact_nodes_admitted","impact_nodes_returned","direct_call_edges_admitted","impact_bytes_admitted","impact_partial","complete"],type:"object"},PrContextAreaV1:{additionalProperties:!1,properties:{additions:{format:"uint64",minimum:0,type:"integer"},area:{type:"string"},deletions:{format:"uint64",minimum:0,type:"integer"},files:{format:"uint",minimum:0,type:"integer"}},required:["area","files","additions","deletions"],type:"object"},PrContextBriefBudgetV1:{additionalProperties:!1,properties:{areas_omitted:{format:"uint",minimum:0,type:"integer"},checks_omitted:{format:"uint",minimum:0,type:"integer"},commits_omitted:{format:"uint",minimum:0,type:"integer"},discussions_omitted:{format:"uint",minimum:0,type:"integer"},entry_points_omitted:{format:"uint",minimum:0,type:"integer"},estimated_tokens:{description:"Whole-result JSON byte estimate, divided by four; not a tokenizer count.",format:"uint32",minimum:0,type:"integer"},files_omitted:{format:"uint",minimum:0,type:"integer"},impact_omitted:{format:"uint",minimum:0,type:"integer"},over_budget:{type:"boolean"},quality_omitted:{format:"uint",minimum:0,type:"integer"},requested_tokens:{format:"uint32",minimum:0,type:"integer"}},required:["requested_tokens","estimated_tokens","over_budget","files_omitted","entry_points_omitted","discussions_omitted","checks_omitted","impact_omitted","commits_omitted","areas_omitted","quality_omitted"],type:"object"},PrContextBriefV1:{additionalProperties:!1,properties:{additions:{format:"uint64",minimum:0,type:"integer"},areas:{items:{$ref:"#/$defs/PrContextAreaV1"},type:"array"},base:{type:"string"},base_oid:{type:"string"},budget:{$ref:"#/$defs/PrContextBriefBudgetV1"},changes:{items:{$ref:"#/$defs/PrContextFileV1"},type:"array"},commits:{items:{$ref:"#/$defs/GitCommitSubjectV1"},type:"array"},deletions:{format:"uint64",minimum:0,type:"integer"},entry_points:{description:"Prioritized places to begin reading the change, with exact revisions.",items:{$ref:"#/$defs/PrContextEntryPointV1"},type:"array"},files_changed:{format:"uint",minimum:0,type:"integer"},freshness:{anyOf:[{$ref:"#/$defs/PrimitiveSearchFreshnessV1"},{type:"null"}]},graph_analysis:{$ref:"#/$defs/PrContextSourceV1"},head:{type:"string"},head_oid:{type:"string"},hosted:{$ref:"#/$defs/PrContextHostedV1"},impact:{items:{$ref:"#/$defs/PrContextImpactV1"},type:"array"},merge_base:{type:"string"},next_steps:{items:{type:"string"},type:"array"},quality:{items:{$ref:"#/$defs/PrContextQualityV1"},type:"array"},source_analysis:{$ref:"#/$defs/PrContextSourceV1"},view:{$ref:"#/$defs/PrContextViewV1"}},required:["view","base","head","base_oid","head_oid","merge_base","files_changed","additions","deletions","commits","hosted","areas","changes","entry_points","impact","quality","source_analysis","graph_analysis","next_steps","budget"],type:"object"},PrContextCheckV1:{additionalProperties:!1,properties:{conclusion:{type:["string","null"]},evidence_anchor:{type:"string"},failed_step:{type:["string","null"]},head:{type:"string"},locations:{items:{$ref:"#/$defs/PrContextLocationV1"},type:"array"},matches_head:{type:"boolean"},name:{type:"string"},observed_at:{format:"int64",type:"integer"},status:{type:"string"},workflow:{type:"string"}},required:["name","workflow","status","head","matches_head","observed_at","evidence_anchor","locations"],type:"object"},PrContextCompleteV1:{additionalProperties:!1,properties:{added:{items:{$ref:"#/$defs/PrSymbolEntryV1"},type:"array"},affected_tests:{items:{type:"string"},type:"array"},affected_tests_coverage:{$ref:"#/$defs/PrSelectionCoverageV1"},analysis_coverage:{$ref:"#/$defs/PrAnalysisCoverageV1"},base:{type:"string"},base_oid:{type:"string"},changes:{items:{$ref:"#/$defs/GitFileChangeV1"},type:"array"},co_change_unavailable:{anyOf:[{$ref:"#/$defs/CoChangeUnavailableV1"},{type:"null"}],description:"Present when Git history could not be mined for co-change partners."},commits:{items:{$ref:"#/$defs/GitCommitSubjectV1"},type:"array"},files_changed:{format:"uint",minimum:0,type:"integer"},freshness:{anyOf:[{$ref:"#/$defs/PrimitiveSearchFreshnessV1"},{type:"null"}],description:"The worktree verdict a served graph read opens with."},graph_generation:{type:"string"},head:{type:"string"},head_oid:{type:"string"},impacted_modules:{items:{type:"string"},type:"array"},impacted_modules_coverage:{$ref:"#/$defs/PrSelectionCoverageV1"},merge_base:{type:"string"},missing_co_change_partners:{description:"Files that usually change with a changed file, per bounded Git\nhistory, but are absent from this change set.",items:{$ref:"#/$defs/MissingCoChangePartnerV1"},type:"array"},modified:{items:{$ref:"#/$defs/PrSymbolEntryV1"},type:"array"},next_cursor:{type:["string","null"]},removed:{items:{$ref:"#/$defs/GitComparedSymbolV1"},type:"array"},status:{$ref:"#/$defs/GitReadCompleteV1"},symbol_changes_coverage:{$ref:"#/$defs/PrSymbolChangesCompleteV1"},symbol_page:{$ref:"#/$defs/PrSymbolPageV1"},symbols_added:{format:"uint",minimum:0,type:"integer"},symbols_modified:{format:"uint",minimum:0,type:"integer"},symbols_removed:{format:"uint",minimum:0,type:"integer"},test_files_changed:{items:{type:"string"},type:"array"},token_budget:{anyOf:[{$ref:"#/$defs/TokenBudgetCutV1"},{type:"null"}],description:"Budget accounting when the request supplies `budget_tokens`."}},required:["status","base","head","base_oid","head_oid","merge_base","graph_generation","commits","files_changed","changes","missing_co_change_partners","symbols_added","symbols_removed","symbols_modified","added","removed","modified","symbol_changes_coverage","symbol_page","analysis_coverage","test_files_changed","affected_tests","affected_tests_coverage","impacted_modules","impacted_modules_coverage"],type:"object"},PrContextDiscussionV1:{additionalProperties:!1,properties:{author:{description:"Provider login when retained; an opaque author anchor is not a login.",type:["string","null"]},body_anchor:{type:["string","null"]},event_at:{description:"Provider activity time in UTC microseconds: comment update/creation or\nreview submission. Absent when not retained or not parseable.",format:"int64",type:["integer","null"]},file:{type:["string","null"]},id:{type:"string"},kind:{type:"string"},lifecycle:{type:"string"},line:{format:"uint64",minimum:0,type:["integer","null"]},matches_head:{type:"boolean"},observed_at:{format:"int64",type:"integer"},review_state:{type:"string"},text:{type:["string","null"]},text_truncated:{type:"boolean"},thread_id:{type:["string","null"]},url:{type:["string","null"]}},required:["id","kind","lifecycle","review_state","text_truncated","observed_at","matches_head"],type:"object"},PrContextEntryPointV1:{additionalProperties:!1,properties:{after_excerpt:{anyOf:[{$ref:"#/$defs/PrContextExcerptV1"},{type:"null"}]},after_signature:{type:["string","null"]},after_signature_truncated:{default:!1,type:"boolean"},before_excerpt:{anyOf:[{$ref:"#/$defs/PrContextExcerptV1"},{type:"null"}]},before_signature:{type:["string","null"]},before_signature_truncated:{default:!1,type:"boolean"},change:{type:"string"},location:{$ref:"#/$defs/PrContextLocationV1"},node_id:{description:"Exact-head graph occurrence accepted by source_body and impact.\nAbsent when graph provenance or declaration matching is unavailable.",type:["string","null"]},reason:{type:"string"},revision:{type:"string"},symbol:{type:"string"}},required:["location","revision","symbol","change","reason"],type:"object"},PrContextExcerptV1:{additionalProperties:!1,properties:{location:{$ref:"#/$defs/PrContextLocationV1"},revision:{type:"string"},text:{type:"string"},truncated:{description:"True when this is only an excerpt of the declaration.",type:"boolean"}},required:["revision","location","text","truncated"],type:"object"},PrContextFileV1:{additionalProperties:!1,properties:{additions:{format:"uint32",minimum:0,type:["integer","null"]},change:{type:"string"},deletions:{format:"uint32",minimum:0,type:["integer","null"]},file:{type:"string"},previous_file:{type:["string","null"]},role:{$ref:"#/$defs/GitFileRoleV1"}},required:["file","change","role"],type:"object"},PrContextGraphPendingV1:{additionalProperties:!1,description:"The git comparison while the verified graph generation is still warming.",properties:{added:{items:{$ref:"#/$defs/PrSymbolEntryV1"},type:"array"},affected_tests:{items:{type:"string"},type:"array"},affected_tests_coverage:{$ref:"#/$defs/PrSelectionCoverageV1"},analysis_coverage:{$ref:"#/$defs/PrAnalysisCoverageV1"},base:{type:"string"},base_oid:{type:"string"},changes:{items:{$ref:"#/$defs/GitFileChangeV1"},type:"array"},co_change_unavailable:{anyOf:[{$ref:"#/$defs/CoChangeUnavailableV1"},{type:"null"}],description:"Present when Git history could not be mined for co-change partners."},commits:{items:{$ref:"#/$defs/GitCommitSubjectV1"},type:"array"},files_changed:{format:"uint",minimum:0,type:"integer"},freshness:{anyOf:[{$ref:"#/$defs/PrimitiveSearchFreshnessV1"},{type:"null"}],description:"The worktree verdict a served graph read opens with."},graph_generation:{description:"No verified generation was admitted.",type:["string","null"]},head:{type:"string"},head_oid:{type:"string"},impacted_modules:{items:{type:"string"},type:"array"},impacted_modules_coverage:{$ref:"#/$defs/PrSelectionCoverageV1"},merge_base:{type:"string"},message:{type:"string"},missing_co_change_partners:{description:"Files that usually change with a changed file, per bounded Git\nhistory, but are absent from this change set.",items:{$ref:"#/$defs/MissingCoChangePartnerV1"},type:"array"},modified:{items:{$ref:"#/$defs/PrSymbolEntryV1"},type:"array"},next_cursor:{type:["string","null"]},status:{$ref:"#/$defs/GitReadPartialV1"},symbol_page:{$ref:"#/$defs/PrSymbolPageV1"},symbols_added:{format:"uint",minimum:0,type:"integer"},symbols_modified:{format:"uint",minimum:0,type:"integer"},test_files_changed:{items:{type:"string"},type:"array"},token_budget:{anyOf:[{$ref:"#/$defs/TokenBudgetCutV1"},{type:"null"}],description:"Budget accounting when the request supplies `budget_tokens`."},verified_graph_evidence:{$ref:"#/$defs/PrimitiveUnavailableEvidenceV1"}},required:["status","message","base","head","base_oid","head_oid","merge_base","commits","files_changed","changes","missing_co_change_partners","symbols_added","symbols_modified","added","modified","symbol_page","analysis_coverage","test_files_changed","affected_tests","affected_tests_coverage","impacted_modules","impacted_modules_coverage","verified_graph_evidence"],type:"object"},PrContextHostedV1:{additionalProperties:!1,properties:{checks:{items:{$ref:"#/$defs/PrContextCheckV1"},type:"array"},checks_total:{format:"uint",minimum:0,type:"integer"},ci_source:{$ref:"#/$defs/PrContextSourceV1"},discussions:{items:{$ref:"#/$defs/PrContextDiscussionV1"},type:"array"},discussions_total:{format:"uint",minimum:0,type:"integer"},pull_request:{anyOf:[{$ref:"#/$defs/PrContextPullRequestV1"},{type:"null"}]},required_checks_known:{description:"A retained CI inventory is not an enumeration of required checks.",type:"boolean"},source:{$ref:"#/$defs/PrContextSourceV1"}},required:["source","ci_source","discussions","checks","discussions_total","checks_total","required_checks_known"],type:"object"},PrContextImpactV1:{additionalProperties:!1,properties:{changed_symbol:{type:"string"},consumer:{type:"string"},consumer_changed:{description:"Whether the consumer's file is in the PR diff; this does not imply\nthat the consumer declaration itself changed.",type:"boolean"},location:{$ref:"#/$defs/PrContextLocationV1"},node_id:{description:"Exact-head consumer occurrence accepted by source_body and impact.",type:["string","null"]},relation:{type:"string"}},required:["changed_symbol","consumer","location","relation","consumer_changed"],type:"object"},PrContextLocationV1:{additionalProperties:!1,properties:{end_line:{format:"uint32",minimum:0,type:"integer"},file:{type:"string"},line:{format:"uint32",minimum:0,type:"integer"}},required:["file","line","end_line"],type:"object"},PrContextPullRequestV1:{additionalProperties:!1,properties:{description:{description:"Sanitized retained description, when the provider supplied it.",type:["string","null"]},description_truncated:{type:"boolean"},draft:{type:"boolean"},matches_head:{type:"boolean"},number:{format:"uint64",minimum:0,type:"integer"},observed_at:{format:"int64",type:"integer"},observed_head:{type:"string"},state:{type:"string"},title:{type:"string"}},required:["number","title","state","draft","description_truncated","observed_head","observed_at","matches_head"],type:"object"},PrContextQualityV1:{additionalProperties:!1,properties:{observation:{type:"string"},signal:{type:"string"}},required:["signal","observation"],type:"object"},PrContextSourceStateV1:{enum:["ready","partial","stale","unavailable","not_published","denied","not_mounted","ambiguous","not_found"],type:"string"},PrContextSourceV1:{additionalProperties:!1,properties:{detail:{type:"string"},state:{$ref:"#/$defs/PrContextSourceStateV1"}},required:["state","detail"],type:"object"},PrContextSymbolsUnavailableV1:{additionalProperties:!1,description:"The git comparison while exact base/head symbol comparison is unavailable\nor does not describe the verified graph's head generation.",properties:{added:{items:{$ref:"#/$defs/PrSymbolEntryV1"},type:"array"},base:{type:"string"},base_oid:{type:"string"},changes:{items:{$ref:"#/$defs/GitFileChangeV1"},type:"array"},co_change_unavailable:{anyOf:[{$ref:"#/$defs/CoChangeUnavailableV1"},{type:"null"}],description:"Present when Git history could not be mined for co-change partners."},commits:{items:{$ref:"#/$defs/GitCommitSubjectV1"},type:"array"},files_changed:{format:"uint",minimum:0,type:"integer"},freshness:{anyOf:[{$ref:"#/$defs/PrimitiveSearchFreshnessV1"},{type:"null"}],description:"The worktree verdict a served graph read opens with."},graph_generation:{type:"string"},head:{type:"string"},head_oid:{type:"string"},merge_base:{type:"string"},message:{type:"string"},missing_co_change_partners:{description:"Files that usually change with a changed file, per bounded Git\nhistory, but are absent from this change set.",items:{$ref:"#/$defs/MissingCoChangePartnerV1"},type:"array"},modified:{items:{$ref:"#/$defs/PrSymbolEntryV1"},type:"array"},next_cursor:{type:["string","null"]},removed:{items:{$ref:"#/$defs/GitComparedSymbolV1"},type:"array"},status:{$ref:"#/$defs/GitReadPartialV1"},symbol_changes_coverage:{$ref:"#/$defs/SymbolChangesUnavailableV1"},symbols_added:{format:"uint",minimum:0,type:"integer"},symbols_modified:{format:"uint",minimum:0,type:"integer"},symbols_removed:{format:"uint",minimum:0,type:"integer"},token_budget:{anyOf:[{$ref:"#/$defs/TokenBudgetCutV1"},{type:"null"}],description:"Budget accounting when the request supplies `budget_tokens`."}},required:["status","message","base","head","base_oid","head_oid","merge_base","graph_generation","commits","files_changed","changes","missing_co_change_partners","symbols_added","symbols_removed","symbols_modified","added","removed","modified","symbol_changes_coverage"],type:"object"},PrContextViewV1:_B,PrCoverageSelectionV1:{enum:["unavailable","deterministic_bounded_prefix"],type:"string"},PrSelectionCoverageV1:{additionalProperties:!1,properties:{complete:{type:"boolean"},selection:{$ref:"#/$defs/PrCoverageSelectionV1"}},required:["complete","selection"],type:"object"},PrSymbolChangesCompleteV1:{additionalProperties:!1,properties:{base_generation:{type:"string"},head_generation:{type:"string"},status:{$ref:"#/$defs/GitReadCompleteV1"}},required:["status","base_generation","head_generation"],type:"object"},PrSymbolEntryV1:{anyOf:[{$ref:"#/$defs/GitContextSymbolV1"},{$ref:"#/$defs/ConfigSummaryV1"}]},PrSymbolPageV1:{additionalProperties:!1,properties:{complete:{type:"boolean"},continuation_available:{type:"boolean"},has_more:{type:"boolean"},limit:{format:"uint",minimum:0,type:"integer"},returned:{format:"uint",minimum:0,type:"integer"},selection:{$ref:"#/$defs/PrSymbolSelectionV1"}},required:["limit","returned","has_more","complete","selection","continuation_available"],type:"object"},PrSymbolSelectionV1:{enum:["unavailable","stable_prefix"],type:"string"},PrimitiveFreshnessStateV1:_K,PrimitiveIndexingStateV1:_J,PrimitiveSearchFreshnessV1:_Y,PrimitiveUnavailableEvidenceV1:_2,PrimitiveUnavailableStatusV1:_4,SymbolChangesUnavailableV1:bq,TokenBudgetCutV1:bL,TokenBudgetSectionV1:bU},$schema:"https://json-schema.org/draft/2020-12/schema",anyOf:[{$ref:"#/$defs/PrContextBriefV1"},{$ref:"#/$defs/PrContextCompleteV1"},{$ref:"#/$defs/PrContextSymbolsUnavailableV1"},{$ref:"#/$defs/PrContextGraphPendingV1"},{$ref:"#/$defs/GitToolFailureV1"}],title:"PrContextResultV1"},{$defs:{BranchStackEdgeV1:f9,BranchStackId:f5,BranchStackNodeV1:f8,BranchStackRevisionId:f7,BranchStackRevisionV1:he,BranchStackSourceV1:ht,CommitId:hI,ManifestDigest:_p,MechanicalIntegrationModeV1:_u,NativeIntegrationDirectionV1:_q,NativeIntegrationSealedStackSnapshotV1:_j,NativeIntegrationSelectionBindingV1:_C,ProjectId:_6,RefId:vf,RepositoryId:v$,ResolvedScope:vP,ScopeSetId:v1,ScopeSetRevision:v0,StackNodeId:bV,WorktreeId:SJ,WorktreeInventoryEpoch:SZ,WorktreeInventorySnapshotId:SQ},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"Read-only preflight over one frozen snapshot identity.\n\n`preferred_mode` selects only one of the three fixed mechanical encodings.\nIt cannot change topology, commit order, or the commit set.",properties:{preferred_mode:{anyOf:[{$ref:"#/$defs/MechanicalIntegrationModeV1"},{type:"null"}],default:null},snapshot:{$ref:"#/$defs/NativeIntegrationSealedStackSnapshotV1"}},required:["snapshot"],title:"NativeIntegrationPreflightSurfaceRequest",type:"object"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{path:{description:"Project path or registered alias to resolve.",type:["string","null"]},project_selector:{additionalProperties:!1,default:null,description:"Registered project id to inspect. Omit to use path or the active\nproject.",properties:{project_id:{description:"Registered project id to query.",type:"string"}},required:["project_id"],type:"object"}},title:"ProjectContextSurfaceRequestV1",type:"object"},{$defs:{PublicCodeProject:vs},$schema:"https://json-schema.org/draft/2020-12/schema",description:"One registered project's context, or the registry's typed miss.",oneOf:[{additionalProperties:!1,properties:{aliases:{description:"Alias rows exactly as the registry serializes them.",items:!0,type:"array"},is_active:{type:"boolean"},project:{$ref:"#/$defs/PublicCodeProject"},registry_path:{type:"string"},status:{const:"ok",type:"string"},stores:{description:"Store rows exactly as the registry serializes them.",items:!0,type:"array"}},required:["status","is_active","registry_path","project","aliases","stores"],type:"object"},{additionalProperties:!1,description:"The registry answered and no registered project matches the selector.",properties:{aliases:{items:!0,type:"array"},project:{type:"null"},registry_path:{type:"string"},status:{const:"not_found",type:"string"},stores:{items:!0,type:"array"}},required:["status","registry_path","project","aliases","stores"],type:"object"}],title:"ProjectContextResultV1"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{limit:{description:"Maximum projects to return (default: 25, max: 100).",format:"uint",minimum:0,type:["integer","null"]}},title:"ProjectListSurfaceRequestV1",type:"object"},{$defs:{ProjectRegistryEntry:_3,ProjectRegistrySummary:_9,ProjectRepoGroup:_5,PublicCodeProject:vs},$schema:"https://json-schema.org/draft/2020-12/schema",description:"A bounded page of the profile's registered projects.",oneOf:[{additionalProperties:!1,properties:{limit:{format:"uint",minimum:0,type:"integer"},project_tree:{items:{$ref:"#/$defs/ProjectRepoGroup"},type:"array"},projects:{items:{$ref:"#/$defs/PublicCodeProject"},type:"array"},query:{type:["string","null"]},registry_path:{type:"string"},status:{const:"ok",type:"string"},summary:{$ref:"#/$defs/ProjectRegistrySummary"},title:{type:"string"},truncated:{type:"boolean"}},required:["status","title","registry_path","limit","truncated","summary","project_tree","projects"],type:"object"}],title:"ProjectRegistryListingResultV1"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{limit:{description:"Maximum projects to return (default: 10, max: 50).",format:"uint",minimum:0,type:["integer","null"]},query:{description:"Case-insensitive substring query over registry project metadata.",type:"string"}},required:["query"],title:"ProjectSearchSurfaceRequestV1",type:"object"},{$defs:{PageRequest:_H},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{page:{$ref:"#/$defs/PageRequest"},qualified_name:{type:"string"}},required:["qualified_name","page"],title:"QualifiedNamePrimitiveRequest",type:"object"},{$defs:{SymbolPrimitiveRecord:bj},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{next_cursor:{description:"Opaque resume token; its bounded string is the public wire form.",type:["string","null"]},symbols:{items:{$ref:"#/$defs/SymbolPrimitiveRecord"},type:"array"},total:{format:"uint64",minimum:0,type:["integer","null"]}},required:["symbols"],title:"QualifiedNamePrimitiveResult",type:"object"},{$defs:{RankDirectionV1:vl,RankEdgeKindV1:vp},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{direction:{anyOf:[{$ref:"#/$defs/RankDirectionV1"},{type:"null"}],description:"Edge direction: 'incoming' ranks targets (default, e.g.\nmost-implemented interface), 'outgoing' ranks sources (e.g. class that\nimplements the most interfaces)."},edge_kind:{$ref:"#/$defs/RankEdgeKindV1",description:"The relationship type to rank by (e.g. 'implements' to find\nmost-implemented interfaces)."},limit:{description:"Maximum number of results to return (default: 10, at most 100).",format:"uint32",minimum:0,type:["integer","null"]},node_kind:{description:"Optional filter for node kind (e.g. 'interface', 'class', 'trait',\n'function', 'method').",type:["string","null"]},path:{description:"Filter to files under this directory path (e.g. 'src/main/java').",type:["string","null"]}},required:["edge_kind"],title:"RankSurfaceRequestV1",type:"object"},{$defs:{CodeIndexBuildBlockedReasonV1:hv,CodeIndexConvergenceParkedV1:hb,CodeIndexStalenessStateV1:hw,PrimitiveFreshnessStateV1:_K,PrimitiveIndexingStateV1:_J,PrimitiveSearchFreshnessV1:_Y,RankDirectionV1:vl,RankEdgeKindV1:vp,RankEntryV1:{additionalProperties:!1,properties:{count:{format:"uint64",minimum:0,type:"integer"},file:{type:"string"},id:{type:"string"},kind:{type:"string"},line:{format:"uint32",minimum:0,type:"integer"},name:{type:"string"}},required:["id","name","kind","file","line","count"],type:"object"}},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{direction:{$ref:"#/$defs/RankDirectionV1"},edge_kind:{$ref:"#/$defs/RankEdgeKindV1"},freshness:{anyOf:[{$ref:"#/$defs/PrimitiveSearchFreshnessV1"},{type:"null"}],description:"The worktree verdict a served graph read opens with."},node_kind_filter:{type:["string","null"]},ranking:{items:{$ref:"#/$defs/RankEntryV1"},type:"array"},result_count:{format:"uint64",minimum:0,type:"integer"}},required:["edge_kind","direction","result_count","ranking"],title:"RankResultV1",type:"object"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{limit:{description:"Maximum number of cycles to return (default: 10, at most 100).",format:"uint32",minimum:0,type:["integer","null"]},path:{description:"Filter to files under this directory path (e.g. 'src/main/java').",type:["string","null"]}},title:"RecursionSurfaceRequestV1",type:"object"},{$defs:{CodeIndexBuildBlockedReasonV1:hv,CodeIndexConvergenceParkedV1:hb,CodeIndexStalenessStateV1:hw,PrimitiveFreshnessStateV1:_K,PrimitiveIndexingStateV1:_J,PrimitiveSearchFreshnessV1:_Y,RecursionCycleV1:{additionalProperties:!1,description:"One call cycle; `chain` repeats its first symbol at the end.",properties:{chain:{items:{$ref:"#/$defs/RecursionSymbolV1"},type:"array"},length:{format:"uint64",minimum:0,type:"integer"}},required:["length","chain"],type:"object"},RecursionSymbolV1:{additionalProperties:!1,properties:{file:{type:"string"},id:{type:"string"},kind:{type:"string"},line:{format:"uint32",minimum:0,type:"integer"},name:{type:"string"}},required:["id","name","kind","file","line"],type:"object"}},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{cycle_count:{format:"uint64",minimum:0,type:"integer"},cycles:{items:{$ref:"#/$defs/RecursionCycleV1"},type:"array"},freshness:{anyOf:[{$ref:"#/$defs/PrimitiveSearchFreshnessV1"},{type:"null"}],description:"The worktree verdict a served graph read opens with."}},required:["cycle_count","cycles"],title:"RecursionResultV1",type:"object"},{$defs:{CommitId:hI,ProjectId:_6,ProviderId:vn,RedundancyScopeV1:{oneOf:[{additionalProperties:!1,properties:{kind:{const:"repository",type:"string"}},required:["kind"],type:"object"},{additionalProperties:!1,properties:{kind:{const:"path",type:"string"},path:{type:"string"}},required:["kind","path"],type:"object"},{additionalProperties:!1,properties:{changed_paths:{items:{type:"string"},type:"array"},head_commit_id:{$ref:"#/$defs/CommitId"},kind:{const:"pull_request",type:"string"},provider:{$ref:"#/$defs/ProviderId"},pull_request_id:{type:"string"}},required:["kind","provider","pull_request_id","head_commit_id","changed_paths"],type:"object"}]},RepositoryId:v$,SimilarMatchClassV1:bp},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{cursor:{type:["string","null"]},family_limit:{description:"Preferred family page size, 1 through 100.",format:"uint32",maximum:100,minimum:1,type:"integer"},include_generated_paths:{type:"boolean"},match_classes:{items:{$ref:"#/$defs/SimilarMatchClassV1"},type:"array"},member_limit:{description:"Members listed per family, at least 2.",format:"uint32",minimum:2,type:"integer"},project_id:{$ref:"#/$defs/ProjectId"},repository_id:{$ref:"#/$defs/RepositoryId"},scope:{$ref:"#/$defs/RedundancyScopeV1"},work_limit:{description:"Clone-index work budget for this page, 3 through 10000. A page that\nexhausts it reports partial coverage.",format:"uint32",maximum:1e4,minimum:3,type:"integer"}},required:["project_id","repository_id","match_classes","scope","include_generated_paths","family_limit","member_limit","work_limit"],title:"RedundancySurfaceRequestV1",type:"object"},{$defs:{CodeGenerationId:hg,CodeIndexBuildBlockedReasonV1:hv,CodeIndexConvergenceParkedV1:hb,CodeIndexStalenessStateV1:hw,ManifestDigest:_p,PrimitiveFreshnessStateV1:_K,PrimitiveIndexingStateV1:_J,PrimitiveSearchFreshnessV1:_Y,ProjectId:_6,RedundancyCoverageV1:{oneOf:[{additionalProperties:!1,properties:{examined_families:{format:"uint",minimum:0,type:"integer"},examined_members:{format:"uint",minimum:0,type:"integer"},status:{const:"complete",type:"string"}},required:["status","examined_families","examined_members"],type:"object"},{additionalProperties:!1,properties:{examined_families:{format:"uint",minimum:0,type:"integer"},examined_members:{format:"uint",minimum:0,type:"integer"},reason:{$ref:"#/$defs/RedundancyPartialReasonV1"},status:{const:"partial",type:"string"}},required:["status","reason","examined_families","examined_members"],type:"object"}]},RedundancyFamilyV1:{additionalProperties:!1,properties:{family:{$ref:"#/$defs/SimilarFamilyV1"},generated_members:{items:{$ref:"#/$defs/SymbolOccurrenceId"},type:"array"},reviewable_source_bytes:{format:"uint64",minimum:0,type:"integer"},total_member_count:{format:"uint",minimum:0,type:"integer"}},required:["family","total_member_count","reviewable_source_bytes","generated_members"],type:"object"},RedundancyPartialReasonV1:{enum:["family_limit","work_limit"],type:"string"},RedundancyRankingV1:{enum:["reviewable_source_bytes"],type:"string"},RepositoryId:v$,SimilarFamilyV1:bl,SimilarMatchClassV1:bp,SimilarOccurrenceV1:bu,SourceSpan:bk,SymbolOccurrenceId:bx,WorktreeId:SJ},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{coverage:{$ref:"#/$defs/RedundancyCoverageV1"},families:{items:{$ref:"#/$defs/RedundancyFamilyV1"},type:"array"},freshness:{anyOf:[{$ref:"#/$defs/PrimitiveSearchFreshnessV1"},{type:"null"}],description:"The worktree verdict a served graph read opens with."},next_cursor:{type:["string","null"]},ranked_by:{$ref:"#/$defs/RedundancyRankingV1"},source_generation:{$ref:"#/$defs/CodeGenerationId"}},required:["source_generation","ranked_by","families","coverage"],title:"RedundancyResultV1",type:"object"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,title:"RemoteStatusSurfaceRequestV1",type:"object"},{$defs:{AuthorityEpoch:{description:"Monotonic epoch of the writer authority for a shard.",format:"uint64",minimum:0,type:"integer"},BrainId:f0,BrainNodeId:{description:"Strongly typed canonical identity: `BrainNodeId`.",type:"string"},CurrentRemoteAuthorityStateV1:{description:"Truthful authority lookup state. Missing evidence is never represented as\nan available authority or a successful empty response.",oneOf:[{properties:{state:{const:"available",type:"string"},value:{$ref:"#/$defs/CurrentRemoteAuthorityV1"}},required:["state","value"],type:"object"},{properties:{state:{const:"partial",type:"string"},value:{properties:{known_fence:{anyOf:[{$ref:"#/$defs/RemoteWriterFenceV1"},{type:"null"}]},missing:{items:{$ref:"#/$defs/RemoteAuthorityUnavailableReasonV1"},type:"array",uniqueItems:!0},observed_at:{$ref:"#/$defs/UtcMicros"}},required:["missing","observed_at"],type:"object"}},required:["state","value"],type:"object"},{properties:{state:{const:"unavailable",type:"string"},value:{properties:{observed_at:{$ref:"#/$defs/UtcMicros"},reason:{$ref:"#/$defs/RemoteAuthorityUnavailableReasonV1"}},required:["reason","observed_at"],type:"object"}},required:["state","value"],type:"object"}]},CurrentRemoteAuthorityV1:{additionalProperties:!1,description:"Authenticated current authority for a mutable shard.",properties:{credential_revision:{description:"Revision of the authority node's current enrollment credential.",format:"uint64",minimum:0,type:"integer"},fence:{$ref:"#/$defs/RemoteWriterFenceV1"},observed_at:{$ref:"#/$defs/UtcMicros"}},required:["fence","credential_revision","observed_at"],type:"object"},DoctorCoverageCompletenessV1:yw,ProjectionGenerationId:_8,RemoteAuthorityUnavailableReasonV1:{oneOf:[{enum:["registry_unavailable","placement_unknown","authority_unreachable","authority_authentication_failed","caller_authentication_failed","enrollment_expired","enrollment_revoked","insufficient_capability","scope_mismatch","fence_unverified","protocol_incompatible"],type:"string"},{const:"writer_authority_unpublished",description:"The RemoteNode store has never had a writer authority published for\nthis Brain, so no capture, replay, query, or failover can bind to one.",type:"string"}]},RemoteListenerReadV1:{enum:["serving","disabled","degraded"],type:"string"},RemoteOperationalReadinessV1:{enum:["unconfigured","partial","ready","recovery_required"],type:"string"},RemoteOperationalStatusV1:{additionalProperties:!1,properties:{authority:{$ref:"#/$defs/CurrentRemoteAuthorityStateV1"},enrollment_configured:{type:"boolean"},failover_in_progress:{type:"boolean"},observed_at:{$ref:"#/$defs/UtcMicros"},readiness:{$ref:"#/$defs/RemoteOperationalReadinessV1"},recovery_required:{type:"boolean"},replay_coverage_complete:{type:"boolean"},spool:{$ref:"#/$defs/RemoteSpoolOperationalStatusV1"}},required:["readiness","enrollment_configured","authority","spool","replay_coverage_complete","failover_in_progress","recovery_required","observed_at"],type:"object"},RemoteSpoolOperationalStatusV1:{additionalProperties:!1,properties:{has_sequence_gap:{type:"boolean"},pending_count:{format:"uint64",minimum:0,type:"integer"},quarantined_count:{format:"uint64",minimum:0,type:"integer"}},required:["pending_count","quarantined_count","has_sequence_gap"],type:"object"},RemoteWriterFenceV1:{additionalProperties:!1,description:"The complete single-writer identity for one mutable shard.",properties:{authority_epoch:{$ref:"#/$defs/AuthorityEpoch"},authority_node_id:{$ref:"#/$defs/BrainNodeId"},brain_id:{$ref:"#/$defs/BrainId"},generation_id:{$ref:"#/$defs/ProjectionGenerationId"},placement_revision:{format:"uint64",minimum:0,type:"integer"},shard_id:{$ref:"#/$defs/ShardId"}},required:["brain_id","shard_id","generation_id","placement_revision","authority_epoch","authority_node_id"],type:"object"},ShardId:{description:"Strongly typed canonical identity: `ShardId`.",type:"string"},UtcMicros:bX},$schema:"https://json-schema.org/draft/2020-12/schema",description:"Typed read of the Remote Brain operational plane as observed from the\nmounted daemon authorities. Every operator surface (Doctor, CLI, MCP,\ndashboard) reads this one shape; `Unavailable` is reserved for a genuinely\nunmounted or unreadable authority, never a rendering shortcut.",oneOf:[{properties:{coverage:{$ref:"#/$defs/DoctorCoverageCompletenessV1"},kind:{const:"observed",type:"string"},listener:{$ref:"#/$defs/RemoteListenerReadV1"},status:{$ref:"#/$defs/RemoteOperationalStatusV1"}},required:["kind","listener","status","coverage"],type:"object"},{properties:{kind:{const:"unconfigured",type:"string"}},required:["kind"],type:"object"},{properties:{kind:{const:"unavailable",type:"string"}},required:["kind"],type:"object"}],title:"RemoteOperationalStatusReadV1"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{new_name:{type:["string","null"]},node_id:{type:"string"}},required:["node_id"],title:"RenamePreviewPrimitiveRequestV1",type:"object"},{$defs:{CodeIndexBuildBlockedReasonV1:hv,CodeIndexConvergenceParkedV1:hb,CodeIndexStalenessStateV1:hw,PrimitiveFreshnessStateV1:_K,PrimitiveIndexingStateV1:_J,PrimitiveNotFoundV1:_Q,PrimitiveSearchFreshnessV1:_Y,PrimitiveSymbolLocationV1:_0,RenamePreviewNodeV1:{additionalProperties:!1,properties:{file:{type:"string"},id:{type:"string"},kind:{type:"string"},line:{format:"uint32",minimum:0,type:"integer"},name:{type:"string"},qualified_name:{type:"string"},snippet:{type:["string","null"]}},required:["id","name","qualified_name","kind","file","line"],type:"object"},RenamePreviewPrimitiveResultV1:{additionalProperties:!1,properties:{freshness:{anyOf:[{$ref:"#/$defs/PrimitiveSearchFreshnessV1"},{type:"null"}],description:"The worktree verdict a served graph read opens with."},new_name:{type:["string","null"]},node:{$ref:"#/$defs/RenamePreviewNodeV1"},note:{type:"string"},read_only:{type:"boolean"},reference_count:{format:"uint",minimum:0,type:"integer"},references:{items:{$ref:"#/$defs/RenamePreviewReferenceV1"},type:"array"},symbol:{type:"string"},text_only_matches:{items:{$ref:"#/$defs/RenamePreviewTextOnlyMatchV1"},type:"array"}},required:["read_only","note","symbol","node","reference_count","references","text_only_matches"],type:"object"},RenamePreviewReferenceV1:{additionalProperties:!1,properties:{edge_kind:{type:"string"},file:{type:"string"},from_kind:{type:"string"},from_name:{type:"string"},from_node_id:{type:"string"},line:{format:"uint32",minimum:0,type:"integer"},snippet:{type:["string","null"]}},required:["from_node_id","from_name","from_kind","edge_kind","file","line"],type:"object"},RenamePreviewTextOnlyMatchV1:{additionalProperties:!1,properties:{file:{type:"string"},note:{type:"string"},text_only_count:{format:"uint",minimum:0,type:"integer"}},required:["file","text_only_count","note"],type:"object"}},$schema:"https://json-schema.org/draft/2020-12/schema",anyOf:[{$ref:"#/$defs/RenamePreviewPrimitiveResultV1"},{$ref:"#/$defs/PrimitiveNotFoundV1"}],title:"RenamePreviewPrimitiveOutcomeV1"},{$defs:{ManifestDigest:_p,RenamePreviewAcceptanceV1:{additionalProperties:!1,description:"Exact preview material an apply must echo. Preview calls omit this value;\napply rejects any mismatch before publishing a file.",properties:{graph_revision:{$ref:"#/$defs/ManifestDigest"},plan_digest:{$ref:"#/$defs/ManifestDigest"},preview_digest:{$ref:"#/$defs/ManifestDigest"},preview_id:{$ref:"#/$defs/ManifestDigest"},repository_revision:{default:null,type:["string","null"]}},required:["preview_id","preview_digest","plan_digest","graph_revision"],type:"object"}},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"Exact public input accepted by `tracedecay_rename_symbol`.\n\nThe five identity fields consume the preview's exact symbol identity; the\nflattened control consumes its exact candidate-state digest.",properties:{accepted_preview:{anyOf:[{$ref:"#/$defs/RenamePreviewAcceptanceV1"},{type:"null"}],description:"Exact output identity from the accepted dry-run preview. Required when\n`dry_run=false` and omitted when computing a preview."},dry_run:{default:!0,type:"boolean"},expected_state:{description:"Exact `preview_digest`/`expected_state` returned by the dry run. Apply\nre-resolves the typed plan and rejects any candidate-state drift.",type:["string","null"]},file:{type:"string"},idempotency_key:{type:["string","null"]},kind:{type:"string"},new_name:{type:"string"},node_id:{description:"Canonical `SymbolOccurrenceId` returned by `tracedecay_rename_preview`.",type:"string"},old_name:{type:"string"},qualified_name:{type:"string"},verify:{default:!0,type:"boolean"}},required:["node_id","qualified_name","kind","file","old_name","new_name"],title:"RenameSymbolSurfaceRequestV1",type:"object"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"Exact public input accepted by `tracedecay_replace_symbol`.",properties:{dry_run:{default:!1,type:"boolean"},expected_state:{description:"Exact `preview_digest`/`expected_state` returned by the dry run. Apply\nre-resolves the typed plan and rejects any candidate-state drift.",type:["string","null"]},idempotency_key:{type:["string","null"]},new_source:{type:"string"},symbol:{type:"string"},verify:{default:!1,type:"boolean"}},required:["symbol","new_source"],title:"ReplaceSymbolSurfaceRequestV1",type:"object"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{handle:{description:"The required `handle` argument copied exactly from a truncated MCP\nresponse envelope.",type:"string"},max_chars:{description:"Maximum characters requested for this page. Values above the safe\nresponse-frame budget are clamped.",format:"uint64",minimum:1,type:["integer","null"]},offset:{default:0,description:"Character offset into the immutable stored response (default: 0). Use\nthe prior page's next_offset.",format:"uint64",minimum:0,type:["integer","null"]}},required:["handle"],title:"RetrieveSurfaceRequestV1",type:"object"},{$defs:{CodeIndexBuildBlockedReasonV1:hv,CodeIndexConvergenceParkedV1:hb,CodeIndexStalenessStateV1:hw,PrimitiveFreshnessStateV1:_K,PrimitiveIndexingStateV1:_J,PrimitiveSearchFreshnessV1:_Y,RetrieveHandleExpiredV1:{additionalProperties:!1,description:"The record expired and was removed.",properties:{content:{description:"Always null: the expired content was removed.",type:["string","null"]},created_at:{format:"int64",type:"integer"},expired:{description:"Always `true`.",type:"boolean"},expires_at:{format:"int64",type:"integer"},freshness:{anyOf:[{$ref:"#/$defs/PrimitiveSearchFreshnessV1"},{type:"null"}],description:"The worktree verdict a served graph read opens with."},handle:{type:"string"},message:{type:"string"},reason_code:{type:"string"},retry_instruction:{type:"string"},retryable:{type:"boolean"}},required:["handle","expired","reason_code","message","retryable","retry_instruction","created_at","expires_at"],type:"object"},RetrieveHandleMissingV1:{additionalProperties:!1,description:"No record exists under the handle in this project's store.",properties:{content:{description:"Always null: nothing is stored under the handle.",type:["string","null"]},expired:{description:"Always null: an absent record has no expiry to report.",type:["boolean","null"]},freshness:{anyOf:[{$ref:"#/$defs/PrimitiveSearchFreshnessV1"},{type:"null"}],description:"The worktree verdict a served graph read opens with."},handle:{type:"string"},message:{type:"string"},reason_code:{type:"string"},retry_instruction:{type:"string"},retryable:{type:"boolean"}},required:["handle","reason_code","message","retryable","retry_instruction"],type:"object"},RetrievedPageV1:{additionalProperties:!1,description:"One page of the stored response, sized so its response frame fits the\nresponse budget.",properties:{content:{type:"string"},created_at:{format:"int64",type:"integer"},expired:{description:"Always `false`: a page is only served from a live record.",type:"boolean"},expires_at:{format:"int64",type:"integer"},freshness:{anyOf:[{$ref:"#/$defs/PrimitiveSearchFreshnessV1"},{type:"null"}],description:"The worktree verdict a served graph read opens with."},handle:{type:"string"},has_more:{type:"boolean"},next_offset:{description:"Where the next page starts; absent on the last page.",format:"uint64",minimum:0,type:["integer","null"]},offset:{format:"uint64",minimum:0,type:"integer"},original_chars:{format:"uint64",minimum:0,type:"integer"},total_chars:{format:"uint64",minimum:0,type:"integer"}},required:["handle","expired","original_chars","total_chars","offset","has_more","created_at","expires_at","content"],type:"object"}},$schema:"https://json-schema.org/draft/2020-12/schema",anyOf:[{$ref:"#/$defs/RetrievedPageV1"},{$ref:"#/$defs/RetrieveHandleMissingV1"},{$ref:"#/$defs/RetrieveHandleExpiredV1"}],description:"What a retrieve found under the handle.",title:"RetrieveResultV1"},{$defs:{TestProfileV1:{description:"The cargo profile an affected-test run builds with.",enum:["debug","release"],type:"string"}},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{changed_paths:{description:"Explicit manifest of project-relative file paths used to compute\naffected tests.",items:{type:"string"},type:"array"},max_tests:{description:"Cap on tests dispatched in a single invocation, 1 through 500\n(default: 100).",format:"uint64",maximum:500,minimum:1,type:["integer","null"]},profile:{anyOf:[{$ref:"#/$defs/TestProfileV1"},{type:"null"}],description:"Cargo profile (default: debug)."},timeout_secs:{description:"Maximum wall time in seconds before the cargo subprocess is killed,\n1 through 300 (default: 300).",format:"uint64",maximum:300,minimum:1,type:["integer","null"]}},required:["changed_paths"],title:"RunAffectedTestsSurfaceRequestV1",type:"object"},{$defs:{AffectedTestErrorV1:{additionalProperties:!1,description:"Why a run failed or was refused.",properties:{kind:{type:"string"},message:{type:"string"},operation:{type:"string"}},required:["kind","operation","message"],type:"object"},AffectedTestOutcomeV1:{additionalProperties:!1,description:"One observed libtest outcome.",properties:{covers_source_ids:{description:"Graph symbols this test was selected to cover.",items:{type:"string"},type:"array"},passed:{type:"boolean"},test:{type:"string"}},required:["test","passed","covers_source_ids"],type:"object"},AffectedTestRunV1:{additionalProperties:!1,description:"A dispatched run, completed or failed, with what it observed.",properties:{dispatched_tests:{items:{type:"string"},type:"array"},error:{anyOf:[{$ref:"#/$defs/AffectedTestErrorV1"},{type:"null"}],description:"Present when the run did not complete."},exit_code:{format:"int32",type:["integer","null"]},failed:{format:"uint64",minimum:0,type:"integer"},ignored:{description:"Dispatched tests libtest reported as ignored.",format:"uint64",minimum:0,type:"integer"},passed:{format:"uint64",minimum:0,type:"integer"},results:{items:{$ref:"#/$defs/AffectedTestOutcomeV1"},type:"array"},stderr_tail:{type:"string"},stdout_tail:{type:"string"},terminal:{$ref:"#/$defs/ManagedTestTerminalV1"},total_observed:{format:"uint64",minimum:0,type:"integer"},truncated:{description:"More affected tests existed than `max_tests` admitted.",type:"boolean"}},required:["passed","failed","ignored","total_observed","dispatched_tests","truncated","results","stderr_tail","stdout_tail","terminal"],type:"object"},AffectedTestsNotRunV1:{additionalProperties:!1,description:"No test was dispatched: nothing covers the change, or the request was\nrefused before a run began.",properties:{error:{anyOf:[{$ref:"#/$defs/AffectedTestErrorV1"},{type:"null"}]},failed:{description:"Always 0.",format:"uint64",minimum:0,type:"integer"},note:{type:["string","null"]},passed:{description:"Always 0.",format:"uint64",minimum:0,type:"integer"},results:{description:"Always empty.",items:{$ref:"#/$defs/AffectedTestOutcomeV1"},type:"array"}},required:["passed","failed","results"],type:"object"},CancellationObservation:ha,CancellationStage:hs,Deadline:yb,ManagedTestTerminalV1:{additionalProperties:!1,description:"The managed test-run operation the run was recorded under.",properties:{operation_id:{type:"string"},receipt:{$ref:"#/$defs/OperationReceipt"},result_tool:{description:"The tool that reads the recorded results back.",type:"string"},session_id:{description:"The requesting session the run is recorded against; null when the\nrequest carried no session.",type:["string","null"]}},required:["operation_id","result_tool","receipt"],type:"object"},OperationBudgetUsage:_F,OperationReceipt:_L,OperationTermination:_U,UtcMicros:bX},$schema:"https://json-schema.org/draft/2020-12/schema",anyOf:[{$ref:"#/$defs/AffectedTestRunV1"},{$ref:"#/$defs/AffectedTestsNotRunV1"}],title:"RunAffectedTestsResultV1"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{authority_audit:{default:!1,description:"Run the exhaustive observation-authority audit and include\nauthority_audit_ok (true = audit ran and passed, false = audit ran and\nfailed, null = audit did not run or finish), authority_audit_reason\n(typed: authority_invariant_failed, authority_store_unavailable,\nauthority_store_missing, authority_audit_not_run,\nauthority_audit_budget_exceeded), and\nauthority_audit_error (observed detail) in database telemetry. Also\nincludes session-temporal health. Default false.",type:"boolean"},doctor_report:{default:!1,description:"Include the daemon-owned canonical Doctor report and typed per-table\ngrowth evidence. Default false.",type:"boolean"},session_ingest_health:{default:!1,description:"Include Cursor transcript-ingest health from the daemon-retained\nproject session authority. Default false.",type:"boolean"},session_temporal_health:{default:!1,description:"Include session-temporal health without the authority audit. Default\nfalse.",type:"boolean"},startup_health:{default:!1,description:"Ask a connection's first request for only the daemon-mounted database\nintegrity telemetry, for post-update startup validation; the daemon\ncore answers that probe before a project owner exists, and a project\nowner's snapshot already carries the same telemetry. Default false.",type:"boolean"}},title:"RuntimeSurfaceRequestV1",type:"object"},{$defs:{DoctorCoverageCompletenessV1:yw,DoctorCoverageStatementV1:{description:"A bounded, human-readable coverage statement plus its completeness.",properties:{completeness:{$ref:"#/$defs/DoctorCoverageCompletenessV1"},statement:{type:"string"}},required:["completeness","statement"],type:"object"},DoctorEvidenceRefV1:{description:"A typed reference to one piece of evidence Doctor composed into a finding.\n\nThe `family` records which audited input surface produced the evidence, so\na finding may cross-cite evidence from more than one family without losing\nprovenance.",properties:{family:{$ref:"#/$defs/DoctorFindingFamilyV1"},reference:{$ref:"#/$defs/DoctorEvidenceReferenceV1"}},required:["family","reference"],type:"object"},DoctorEvidenceReferenceV1:{description:"Durable, non-disclosing reference to one owning-authority evidence\nrecord (for example a `FeedbackFindingId`, configuration revision, or\nruntime read coverage anchor). Doctor stores the reference only; the\nowning authority remains the single source of the record.",type:"string"},DoctorEvidenceStateV1:{description:"Exact Doctor evidence states.\n\nMissing, partial, or unknown truth never becomes healthy or clean. Only\n[`DoctorEvidenceStateV1::HealthyCompleteCoverage`] asserts a healthy result,\nand only when its finding carries complete coverage (see\n[`DoctorFindingV1::new`]).",oneOf:[{const:"unsupported",description:"The owning authority does not support this evidence on this platform.",type:"string"},{const:"absent",description:"The evidence source is supported but produced nothing.",type:"string"},{const:"stale",description:"The evidence exists but is behind the current generation/watermark.",type:"string"},{const:"degraded",description:"The evidence proves a degraded but observed condition.",type:"string"},{const:"partial",description:"Only part of the evidence was observed.",type:"string"},{const:"unknown",description:"The evidence state could not be determined.",type:"string"},{const:"denied",description:"Authorization to read the evidence was denied.",type:"string"},{const:"healthy_complete_coverage",description:"The evidence proves a healthy condition with complete coverage.",type:"string"}]},DoctorFamilyConsultationV1:{description:"Whether a family was consulted from an observed source or is unavailable.",oneOf:[{description:"A source produced observed evidence for this family.",properties:{status:{const:"consulted",type:"string"}},required:["status"],type:"object"},{description:"Complete family coverage was unavailable. Storage may still carry\nfindings from resolved producers when an independent producer failed.",properties:{reason:{$ref:"#/$defs/DoctorFamilyUnavailableReasonV1"},status:{const:"unavailable",type:"string"}},required:["status","reason"],type:"object"}]},DoctorFamilyCoverageV1:{description:"The consultation status of one finding family within a report.",properties:{consultation:{$ref:"#/$defs/DoctorFamilyConsultationV1"},family:{$ref:"#/$defs/DoctorFindingFamilyV1"}},required:["family","consultation"],type:"object"},DoctorFamilyUnavailableReasonV1:{description:"Why complete coverage of a finding family was unavailable.",oneOf:[{const:"unwired",description:"No source port is wired for this family in this composition.",type:"string"},{const:"unsupported",description:"The source is unsupported on this build/platform.",type:"string"},{const:"absent",description:"The source is supported but produced nothing.",type:"string"},{const:"denied",description:"The source read was denied.",type:"string"},{const:"unknown",description:"The source state could not be determined.",type:"string"},{const:"unavailable",description:"The source could not be reached. Named separately from `Unknown`: the\nsource is identified and its unreachability is an observation, not an\nundetermined state.",type:"string"},{const:"reset_required",description:"The source must be rebuilt before it can be read again.",type:"string"},{const:"corrupt",description:"The source was read and found corrupt.",type:"string"}]},DoctorFindingFamilyV1:{description:"Stable Doctor finding families.\n\nThe initial list covers advisory findings from\nBrain, Explorer, Loom, Code, and Observatory, plus the legacy\n`core_doctor` checks (graph quick-check, temporal/migration health,\nconfiguration compatibility drift, code-index mount state, session ingest).\nEach family maps to one audited typed input surface. The set is kept small\nand honest; new families are added through a future versioned enum rather\nthan by widening the meaning of an existing variant.",oneOf:[{const:"advisory",description:"advisory/scout findings (GitHub review, CI localization,\nproximity, context scout): `crate::advisory` / domain feedback.",type:"string"},{const:"configuration",description:"Desired-versus-effective configuration and compatibility drift from\n`ProjectConfigurationRuntime` / `ConfigurationControlPlane`.",type:"string"},{const:"storage_runtime",description:"Store, graph, and temporal runtime health plus migration coverage\n(`RuntimeReadOperationV1` health family, `StoreRuntimeClientLease`).",type:"string"},{const:"storage",description:"Storage retention, size, and efficiency over canonical observability\nread models. Distinct from [`Self::StorageRuntime`] health: this\nfamily surfaces over-budget stores, identity-drift orphans, incident\ndebris, and retention backlog. The typed\nsubclass vocabulary is [`DoctorStorageFindingKindV1`].",type:"string"},{const:"language_server",description:"Language-server / analyzer engine status from the LSP gateway's\n`AnalyzerState`.",type:"string"},{const:"code_index",description:"Code index mount state (mounted, indexing, stale, unmounted,\nincompatible, parked).",type:"string"},{const:"observability",description:"Denominator-safe measurement and telemetry health from analytics,\naccounting read models, and session ingest.",type:"string"},{const:"memory",description:"Retained daemon memory as the resident-memory inventory reports it:\nRSS against the admission limit and pressure line, and each retained\nowner's bytes.",type:"string"}]},DoctorFindingV1:{description:"One canonical Doctor finding.\n\nA finding pins its diagnosis `family`, its evidence `state`, the typed\nevidence it composed, and a coverage statement. Construction enforces the\ninvariants that keep unknown/partial evidence from collapsing into a\nhealthy or clean result.",properties:{coverage:{$ref:"#/$defs/DoctorCoverageStatementV1"},evidence:{items:{$ref:"#/$defs/DoctorEvidenceRefV1"},type:"array"},family:{$ref:"#/$defs/DoctorFindingFamilyV1"},state:{$ref:"#/$defs/DoctorEvidenceStateV1"}},required:["family","state","evidence","coverage"],type:"object"},DoctorReportCoverageV1:{description:"The report-wide coverage statement: which families were consulted versus\nunavailable, plus an overall completeness and a bounded human statement.",properties:{completeness:{$ref:"#/$defs/DoctorCoverageCompletenessV1"},families:{items:{$ref:"#/$defs/DoctorFamilyCoverageV1"},type:"array"},statement:{$ref:"#/$defs/DoctorCoverageStatementV1"}},required:["families","completeness","statement"],type:"object"},DoctorReportEntryV1:{description:"One entry in a Doctor report: a canonical finding plus, for the storage\nfamily, its typed subclass. The subclass is present only for storage findings\n(a non-storage entry never carries one).",properties:{finding:{$ref:"#/$defs/DoctorFindingV1"},storage_kind:{anyOf:[{$ref:"#/$defs/DoctorStorageFindingKindV1"},{type:"null"}]}},required:["finding"],type:"object"},DoctorReportV1:{description:"One composed Doctor report.\n\nThe report carries one or more entries per family (findings are never merged\nby label) plus a coverage statement that enumerates every family consulted\nversus unavailable. Severity (the finding's evidence state) and evidence\nquality (coverage completeness) are kept as separate dimensions: a degraded\nfinding with complete coverage does not weaken report completeness, and only\ngenuinely complete coverage with every finding healthy makes the whole report\nassert health.",properties:{coverage:{$ref:"#/$defs/DoctorReportCoverageV1"},entries:{items:{$ref:"#/$defs/DoctorReportEntryV1"},type:"array"}},required:["entries","coverage"],type:"object"},DoctorStorageFindingKindV1:{description:"Typed subclasses of the [`DoctorFindingFamilyV1::Storage`] finding family.\n\nThe storage family never reports a silent overage: each subclass names one\nobservable retention/size condition Doctor surfaces over canonical size\nobservability read models. The set is closed and grows only through a future\nversioned enum, never by widening an existing subclass.",oneOf:[{const:"over_budget_store",description:"A store exceeds its owner-configured soft size budget.",type:"string"},{const:"orphan_store",description:"A store whose project identity no longer resolves to a live repository\nroot (identity-drift orphan), reported with age and size.",type:"string"},{const:"incident_debris_present",description:"Recovery/corruption artifacts are present beside a store and awaiting\ndeletion.",type:"string"},{const:"retention_backlog",description:"Retention-eligible rows or stores are past their window and awaiting\noffload/collection.",type:"string"},{const:"table_growth",description:"Per-table SQLite payload growth observed between two retained\nwatermarks, including baseline and unavailable measurement states.",type:"string"},{const:"pending_schema_migration",description:"A store whose historical schema convergence has not completed: the\nmigrations whose cost scales with store size are still pending, still\nrunning, or stopped on a failure. The daemon serves while they run, so\nthis is the surface that says which store is still migrating and why.",type:"string"},{const:"wal_checkpoint_pinned",description:"A store whose WAL checkpoint cannot restart the log because a reader\nstill holds a read slot past the checkpoint fence: a wedged reader of\nthis daemon or another process, named in the evidence. Writes run\nuntil the WAL reaches its ceiling, then wait.",type:"string"}]},LanguageServerAnalyzerStateV1:{description:"State of one analyzer as the daemon owner holds it.\n\n`Inactive` is the one state the aggregate never takes: the language has no\nfiles in the project, so Doctor does not grade it, but `lsp servers` still\nlists it from this same read so both surfaces share one authority.",enum:["ready","available","refreshing","disabled","unavailable","crashed","inactive"],type:"string"},LanguageServerAnalyzerV1:{description:"Live state of one analyzer the daemon resolved for the current project.\n\n`LanguageServerStateV1` is the aggregate the finding is graded on; this is\nthe per-analyzer evidence behind it, so an operator learns *which*\nexecutable is missing and how to install it, resolved by the daemon\nprocess (the only PATH that matters, since the daemon spawns analyzers)\nrather than by whichever shell ran the CLI.",properties:{command:{description:"The configured executable, after any operator command override.",type:"string"},detail:{description:"The owner's last recorded error for this analyzer, when one exists.",type:["string","null"]},executable_found:{description:"Whether the daemon process finds `command` on its own PATH. For an\nactive analyzer `state` is the finer verdict (a rustup proxy whose\ntoolchain lacks the component is found yet `Unavailable`); for an\ninactive one this is the only availability evidence.",type:"boolean"},install:{description:"The first install command the adapter advertises, when one exists.",type:["string","null"]},language:{description:"Adapter language (`typescript`, `rust`, …).",type:"string"},state:{$ref:"#/$defs/LanguageServerAnalyzerStateV1"}},required:["language","command","state","executable_found"],type:"object"},LanguageServerReadV1:{description:"One live read from the daemon language-server/analyzer owner.",oneOf:[{description:"The owner observed all project-active analyzer states.",properties:{analyzers:{default:[],description:"Every analyzer the owner resolved, active or not; the aggregate\n`state` covers the active ones only.",items:{$ref:"#/$defs/LanguageServerAnalyzerV1"},type:"array"},coverage:{$ref:"#/$defs/DoctorCoverageCompletenessV1"},kind:{const:"observed",type:"string"},state:{$ref:"#/$defs/LanguageServerStateV1"}},required:["kind","state","coverage"],type:"object"},{description:"Language-server inspection is unsupported on this build/platform.",properties:{kind:{const:"unsupported",type:"string"}},required:["kind"],type:"object"},{description:"No project-active analyzer is configured. The owner's inactive\nanalyzers are still carried so `lsp servers` can list them.",properties:{analyzers:{default:[],items:{$ref:"#/$defs/LanguageServerAnalyzerV1"},type:"array"},kind:{const:"absent",type:"string"}},required:["kind"],type:"object"},{description:"Authorization to inspect analyzer state was denied.",properties:{kind:{const:"denied",type:"string"}},required:["kind"],type:"object"},{description:"Analyzer state could not be determined.",properties:{kind:{const:"unknown",type:"string"}},required:["kind"],type:"object"}]},LanguageServerStateV1:{description:"Aggregate state of the project-active language-server analyzers.",oneOf:[{const:"ready",description:"Every active analyzer is ready.",type:"string"},{const:"available",description:"At least one analyzer is installed but has not produced a ready snapshot.",type:"string"},{const:"refreshing",description:"At least one analyzer is currently refreshing/indexing.",type:"string"},{const:"disabled",description:"At least one project analyzer is disabled.",type:"string"},{const:"unavailable",description:"At least one project analyzer executable is unavailable.",type:"string"},{const:"crashed",description:"At least one analyzer process crashed.",type:"string"}]},RuntimeDoctorReportV1:{description:"The daemon's canonical Doctor report as this route could read it.",oneOf:[{additionalProperties:!1,properties:{kind:{const:"observed",type:"string"},language_servers:{$ref:"#/$defs/LanguageServerReadV1"},report:{$ref:"#/$defs/DoctorReportV1"},schema_convergences:{items:{$ref:"#/$defs/SchemaConvergenceFindingV1"},type:"array"},table_growth_evidence:{items:{$ref:"#/$defs/TableGrowthDoctorEvidenceV1"},type:"array"}},required:["kind","report","table_growth_evidence","schema_convergences","language_servers"],type:"object"},{additionalProperties:!1,description:"The reader is mounted and the read failed.",properties:{kind:{const:"unknown",type:"string"},language_servers:{$ref:"#/$defs/LanguageServerReadV1"},schema_convergences:{items:{$ref:"#/$defs/SchemaConvergenceFindingV1"},type:"array"},table_growth_evidence:{items:{$ref:"#/$defs/TableGrowthDoctorEvidenceV1"},type:"array"}},required:["kind","table_growth_evidence","schema_convergences","language_servers"],type:"object"},{additionalProperties:!1,description:"No Doctor reader is mounted on this route.",properties:{kind:{const:"unsupported",type:"string"},language_servers:{$ref:"#/$defs/LanguageServerReadV1"},schema_convergences:{items:{$ref:"#/$defs/SchemaConvergenceFindingV1"},type:"array"},table_growth_evidence:{items:{$ref:"#/$defs/TableGrowthDoctorEvidenceV1"},type:"array"}},required:["kind","table_growth_evidence","schema_convergences","language_servers"],type:"object"}]},SchemaConvergenceFindingV1:vU,SchemaConvergenceProgressV1:vH,SchemaConvergenceStageV1:vG,SchemaConvergenceStateV1:vB,StorageByteSizeV1:{description:"A byte size measurement. A newtype keeps sizes from being confused with\ncounts, ratios, or timestamps in the read models and producers.",format:"uint64",minimum:0,type:"integer"},StoreKeyV1:{description:"Logical name of one owner-profile store (for example `sessions.db`,\n`graph.db`, or `projects/proj_x`). Never an absolute on-disk path.",type:"string"},TableGrowthDoctorEvidenceV1:{description:"Contract-independent evidence ready to wrap in a future `TableGrowth`\nStorage finding once that generated-contract variant is available.",oneOf:[{properties:{current_bytes:{$ref:"#/$defs/StorageByteSizeV1"},current_observed_at:{$ref:"#/$defs/UtcMicros"},growth_bytes:{$ref:"#/$defs/StorageByteSizeV1"},kind:{const:"significant_growth",type:"string"},previous_bytes:{$ref:"#/$defs/StorageByteSizeV1"},previous_observed_at:{$ref:"#/$defs/UtcMicros"},store:{$ref:"#/$defs/StoreKeyV1"},table:{$ref:"#/$defs/TableNameV1"}},required:["kind","store","table","previous_bytes","current_bytes","growth_bytes","previous_observed_at","current_observed_at"],type:"object"},{properties:{kind:{const:"baseline_established",type:"string"},observed_at:{$ref:"#/$defs/UtcMicros"},store:{$ref:"#/$defs/StoreKeyV1"},tables_observed:{format:"uint64",minimum:0,type:"integer"}},required:["kind","store","observed_at","tables_observed"],type:"object"},{properties:{current_bytes:{$ref:"#/$defs/StorageByteSizeV1"},kind:{const:"table_baseline_pending",type:"string"},observed_at:{$ref:"#/$defs/UtcMicros"},store:{$ref:"#/$defs/StoreKeyV1"},table:{$ref:"#/$defs/TableNameV1"}},required:["kind","store","table","current_bytes","observed_at"],type:"object"},{properties:{kind:{const:"unsupported",type:"string"},store:{$ref:"#/$defs/StoreKeyV1"}},required:["kind","store"],type:"object"},{properties:{kind:{const:"denied",type:"string"},store:{$ref:"#/$defs/StoreKeyV1"}},required:["kind","store"],type:"object"},{properties:{kind:{const:"unknown",type:"string"},reason:{$ref:"#/$defs/TableGrowthUnavailableReasonV1"},store:{$ref:"#/$defs/StoreKeyV1"}},required:["kind","store","reason"],type:"object"}]},TableGrowthUnavailableReasonV1:{description:"Why a per-table payload-growth measurement is unavailable.",oneOf:[{const:"not_yet_measured",description:"No maintenance pass has measured this store yet.",type:"string"},{const:"reader_unavailable",description:"No reader could be leased within the measurement's wait.",type:"string"},{const:"deadline_exceeded",description:"The `dbstat` walk was interrupted by its deadline.",type:"string"},{const:"cancelled",description:"The `dbstat` walk was cancelled.",type:"string"},{const:"storage_corrupt",description:"The store reported corruption.",type:"string"},{const:"storage_infrastructure",description:"The store failed with an infrastructure error.",type:"string"},{const:"storage_other",description:"The store failed for another reason.",type:"string"},{const:"invalid_table_name",description:"`dbstat` named a table that is not a valid table identifier.",type:"string"},{const:"clock_regressed",description:"The previous watermark is later than the current measurement.",type:"string"},{const:"exceeds_measurement_budget",description:"The store is larger than the `dbstat` walk can cover within its\ndeadline.",type:"string"}]},TableNameV1:{description:"A physical table name inside a store, used for per-table growth telemetry.",type:"string"},UtcMicros:bX},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"Process, database, and session-observation telemetry for the running\ndaemon, with the sections the request opted into.",properties:{captured_at:{description:"Unix epoch seconds.",format:"uint64",minimum:0,type:"integer"},cursor_session_ingest:!0,cursor_session_placeholder_paths:{items:{type:"string"},type:["array","null"]},database:{description:"Store telemetry, with the authority-audit verdict when it ran."},doctor_report:{anyOf:[{$ref:"#/$defs/RuntimeDoctorReportV1"},{type:"null"}]},host_os:{type:"string"},process:{description:"Cached process sample."},session_temporal_health:!0,tracedecay_version:{type:"string"}},required:["captured_at","tracedecay_version","host_os","process","database"],title:"RuntimeResultV1",type:"object"},{$defs:{SearchLexicalAliasV1:{additionalProperties:!1,description:"One named query-time vocabulary alias.",properties:{alternative:{maxLength:128,type:"string"},strict_query:{maxLength:128,type:"string"}},required:["strict_query","alternative"],type:"object"},SearchLexicalFieldFilterV1:{additionalProperties:!1,properties:{field:{$ref:"#/$defs/SearchLexicalFieldV1"},include:{type:"boolean"}},required:["field","include"],type:"object"},SearchLexicalFieldV1:{description:"A lexical posting field a search may include or exclude.",enum:["symbol_name","qualified_name","path","signature","documentation","body_text","preamble_text","exact_term","subtoken"],type:"string"},SearchLexicalProximityV1:{additionalProperties:!1,description:"Ordered terms that must occur in one field within `maximum_gap`\nintervening tokens of each other.",properties:{maximum_gap:{format:"uint32",maximum:8,minimum:0,type:"integer"},terms:{items:{type:"string"},maxItems:8,minItems:2,type:"array"}},required:["terms","maximum_gap"],type:"object"}},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{cursor:{description:"Authenticated opaque continuation returned as next_cursor. Repeat the same query and lexical options with it.",type:["string","null"]},lazy_index_ignored_dependencies:{description:"Opt in to bounded indexing of ignored dependency entry files when an import hint matches (default: false).",type:["boolean","null"]},lexical_aliases:{description:"Named query-time vocabulary aliases. The strict query always ranks first. Alias-only hits follow it with the strict query, alternative, and configured-vocabulary reason disclosed.",items:{$ref:"#/$defs/SearchLexicalAliasV1"},maxItems:8,type:["array","null"]},lexical_anchors:{description:"Exact identifiers or technical terms (e.g. 'reserve_stock', 'Foo::bar', 'E0308') that the answer must be about. Each is ranked through the lexical lane as its own route: a hit carrying an anchor outranks every hit that carries none, exact hits included, every anchor with matches keeps at least its best sites through the lane cap, and `lexical_anchors` in the response reports each anchor's outcome (`matched` rows, `admitted` sites this response returns, `dropped` admitted sites it could not carry with the reason, `unmatched`, or `not_served`). Ranked retrieval, not exhaustive grep (use tracedecay_grep for that). Each result names the routes that ranked it. At most 8 anchors, each one whitespace-free term of at most 128 bytes, no repeats.",items:{type:"string"},maxItems:8,type:["array","null"]},lexical_field_filters:{description:"Include or exclude lexical symbol_name, qualified_name, path, signature, documentation, body_text, preamble_text, exact_term, or subtoken fields.",items:{$ref:"#/$defs/SearchLexicalFieldFilterV1"},maxItems:9,type:["array","null"]},lexical_phrases:{description:"Exact lexical phrases to rank through n-gram candidate pruning.",items:{type:"string"},maxItems:4,type:["array","null"]},lexical_proximities:{description:"Ordered lexical terms that must occur within the bounded intervening-token gap.",items:{$ref:"#/$defs/SearchLexicalProximityV1"},maxItems:4,type:["array","null"]},limit:{description:"Maximum number of results to return (default: 10)",format:"uint64",minimum:0,type:["integer","null"]},prefer_symbol:{description:"Add a lexical route restricted to symbol-name matches for the identifier-shaped words of the query. Omitted, it runs when the query is name-shaped (at least half its content words are identifiers such as 'getUserById' or 'Foo::bar'); true forces it, false suppresses it. `query_route` in the response reports the decision and its margin. Query words such as class/struct/function/find/explain are ignored; 'Foo::bar' and 'Foo.bar' contribute 'bar'.",type:["boolean","null"]},query:{description:"Search query string to match against symbol names",type:"string"}},required:["query"],title:"SearchSurfaceRequestV1",type:"object"},{$defs:{ApplicationProblemDetailV1:fW,CalibrationProfileId:ho,CandidateContribution:hd,CodeIndexBuildBlockedReasonV1:hv,CodeIndexConvergenceParkedV1:hb,CodeIndexStalenessStateV1:hw,ComponentRevision:hC,ContextLexicalAnchorV1:hL,DaemonServiceUnitObservationV1:yv,DiagnosticsSearchedTsconfigV1:yk,EvidenceRole:yT,ExactClass:yO,FileOccurrenceId:gd,FixedPointScore:gl,FreshnessCompatibilityV1:gp,FusedCandidate:gu,LexicalAnchorDropReasonV1:_t,LexicalAnchorDropV1:_r,LogicalCopyClusterId:_o,LogicalEvidenceId:_n,OccurrenceProvenance:_D,PrimitiveFreshnessStateV1:_K,PrimitiveIndexingStateV1:_J,PrimitiveLaneCompleteV1:_Z,PrimitiveRecallV1:_X,PrimitiveSearchFreshnessV1:_Y,PrimitiveUnavailableEvidenceV1:_2,PrimitiveUnavailableStatusV1:_4,RankingDecision:vu,RankingDecisionKind:vm,RepositoryId:v$,RetrievalAnchorId:vx,RetrievalSourceRoleV1:vT,RetrieverKind:vE,ScoreDomainId:v6,SearchCompleteV1:{additionalProperties:!1,properties:{code_generation:{type:"string"},coverage:{$ref:"#/$defs/SearchCoverageV1"},external_import_hint:{anyOf:[{$ref:"#/$defs/SearchExternalImportHintV1"},{type:"null"}]},freshness:{$ref:"#/$defs/PrimitiveSearchFreshnessV1",description:"Freshness of the served code generation, derived from the typed lane\ncoverage and the daemon scheduler's worktree state."},lexical_anchors:{description:"Outcome of every caller `lexical_anchors` entry, beside the routes.",items:{$ref:"#/$defs/ContextLexicalAnchorV1"},type:["array","null"]},lexical_routes:{description:"Every lexical route fused into this page; present only when a route\nbeyond the strict query ran or ranked a result.",items:{$ref:"#/$defs/SearchLexicalRouteV1"},type:["array","null"]},next_cursor:{description:"Authenticated continuation for the next page; null on the last page.",type:["string","null"]},query_fallback_digest:{type:"string"},query_route:{anyOf:[{$ref:"#/$defs/SearchQueryRouteV1"},{type:"null"}],description:"Which lane the query's shape selected, and its margin."},results:{items:{$ref:"#/$defs/SearchResultRowV1"},type:"array"},scope_prefix:{description:"The session's scope prefix. Ranked candidates carry no file path, so\nthe scope is reported and not applied.",type:["string","null"]},scope_prefix_applied:{type:["boolean","null"]},verified_graph_evidence:{anyOf:[{$ref:"#/$defs/PrimitiveUnavailableEvidenceV1"},{type:"null"}]}},required:["freshness","code_generation","query_fallback_digest","coverage","results"],type:"object"},SearchCoverageV1:{additionalProperties:!1,description:"Per-lane recall of one search, so a full-recall answer is told apart from\none produced while a lane was down.",properties:{exact:{$ref:"#/$defs/SearchLaneStatusV1"},graph:{$ref:"#/$defs/SearchLaneStatusV1"},lexical:{$ref:"#/$defs/SearchLaneStatusV1"},recall:{$ref:"#/$defs/PrimitiveRecallV1"}},required:["exact","lexical","graph","recall"],type:"object"},SearchDisplayUnavailableV1:{description:"Why a ranked candidate's display metadata was not hydrated: the answering\ngeneration no longer matches the request (`stale`), its record is\nincompatible or does not bind the candidate (`incompatible`, `invalid`),\nthe read failed (`internal`), the hydration budget was spent\n(`budget_exceeded`), or the request was cancelled (`cancelled`).",enum:["stale","incompatible","invalid","internal","budget_exceeded","cancelled"],type:"string"},SearchExternalImportCandidatesV1:{additionalProperties:!1,properties:{candidates:{items:{$ref:"#/$defs/SearchExternalImportV1"},type:"array"},evidence:{type:"string"},message:{type:"string"},resolution_status:{type:"string"},suggested_action:{type:"string"}},required:["message","evidence","resolution_status","candidates","suggested_action"],type:"object"},SearchExternalImportHintV1:{anyOf:[{$ref:"#/$defs/SearchExternalImportCandidatesV1"},{$ref:"#/$defs/PrimitiveUnavailableEvidenceV1"}],description:"Advisory evidence that a sparse search matched external-module imports,\nor why that evidence could not be read."},SearchExternalImportV1:{additionalProperties:!1,properties:{import_file:{type:"string"},line:{format:"uint32",minimum:0,type:"integer"},module:{type:"string"},symbol:{description:"The imported name; null for a whole-module import.",type:["string","null"]}},required:["module","import_file","line"],type:"object"},SearchLaneStateV1:{description:"A lane that did not serve the current complete generation. A partial\nlane names its generation and reason when it has them, null otherwise.",oneOf:[{additionalProperties:!1,properties:{generation:{type:"string"},status:{const:"stale",type:"string"}},required:["status","generation"],type:"object"},{additionalProperties:!1,properties:{generation:{type:["string","null"]},reason:{type:["string","null"]},status:{const:"partial",type:"string"}},required:["status"],type:"object"},{additionalProperties:!1,properties:{reason:{type:"string"},status:{const:"unavailable",type:"string"}},required:["status","reason"],type:"object"}]},SearchLaneStatusV1:{anyOf:[{$ref:"#/$defs/PrimitiveLaneCompleteV1"},{$ref:"#/$defs/SearchLaneStateV1"}]},SearchLexicalAlternativeReasonV1:{description:"Why the lexical lane tried a configured alternative.",enum:["configured_vocabulary_alias"],type:"string"},SearchLexicalRouteV1:{description:"One lexical route fused into the page, with its display label.",oneOf:[{additionalProperties:!1,description:"The caller's strict lexical query.",properties:{label:{type:"string"},route:{const:"query",type:"string"}},required:["route","label"],type:"object"},{additionalProperties:!1,description:"One caller-supplied exact identifier or term.",properties:{anchor:{type:"string"},label:{type:"string"},route:{const:"anchor",type:"string"}},required:["route","anchor","label"],type:"object"},{additionalProperties:!1,description:"Identifier-shaped tokens of the query, restricted to symbol names.",properties:{label:{type:"string"},route:{const:"preferred_symbol",type:"string"},tokens:{items:{type:"string"},type:"array"}},required:["route","tokens","label"],type:"object"},{additionalProperties:!1,description:"Identifier and path components recovered from the strict query.",properties:{label:{type:"string"},route:{const:"identifier_split",type:"string"},strict_query:{type:"string"},terms:{items:{type:"string"},type:"array"}},required:["route","strict_query","terms","label"],type:"object"},{additionalProperties:!1,description:"A configured query-time vocabulary alternative.",properties:{alternative:{type:"string"},label:{type:"string"},reason:{$ref:"#/$defs/SearchLexicalAlternativeReasonV1"},route:{const:"alias",type:"string"},strict_query:{type:"string"}},required:["route","strict_query","alternative","reason","label"],type:"object"}]},SearchQueryRouteDeciderV1:{description:"Who chose the query route: the query-shape gate or the caller's\n`prefer_symbol`.",enum:["query_shape","caller"],type:"string"},SearchQueryRouteKindV1:{description:"Which lexical lane the query's shape selected.",oneOf:[{const:"name",description:"The symbol-name route ran beside the strict query.",type:"string"},{const:"prose",description:"The strict query ran without the symbol-name route.",type:"string"}]},SearchQueryRouteV1:{additionalProperties:!1,description:"The query-shape routing decision behind a page.",properties:{decided_by:{$ref:"#/$defs/SearchQueryRouteDeciderV1"},margin:{description:"Distance from the name gate in [-0.5, 0.5]: the share of the query's\ncontent words that are identifier-shaped, minus one half. The gate\nselects `name` at or above 0. Reported when the caller decided too.\nIt describes query shape only and is not an answerability signal.",format:"double",type:"number"},route:{$ref:"#/$defs/SearchQueryRouteKindV1"}},required:["route","margin","decided_by"],type:"object"},SearchResultDisplayV1:{additionalProperties:!1,properties:{kind:{type:"string"},name:{type:"string"},path:{type:"string"},qualified_name:{type:"string"}},required:["name","qualified_name","kind","path"],type:"object"},SearchResultRowV1:{additionalProperties:!1,description:"One ranked candidate with its generation-bound display metadata.",properties:{candidate:{$ref:"#/$defs/FusedCandidate"},display:{anyOf:[{$ref:"#/$defs/SearchResultDisplayV1"},{type:"null"}]},display_unavailable:{anyOf:[{$ref:"#/$defs/SearchDisplayUnavailableV1"},{type:"null"}],description:"Why `display` is absent from this ranked candidate."},final_ordinal:{format:"uint32",minimum:0,type:"integer"},lexical_routes:{description:"The lexical routes that ranked this candidate.",items:{$ref:"#/$defs/SearchRouteMatchV1"},type:["array","null"]},node_id:{description:"The graph symbol to read with `tracedecay_source_body`.",type:["string","null"]}},required:["candidate","final_ordinal"],type:"object"},SearchRouteMatchV1:{additionalProperties:!1,description:"One route that ranked a candidate, named by its route label.",properties:{matched_terms:{items:{type:"string"},type:"array"},route:{type:"string"},score_micros:{format:"uint64",minimum:0,type:"integer"},spelling_variants:{items:{$ref:"#/$defs/SearchSpellingVariantV1"},type:"array"}},required:["route","score_micros","matched_terms"],type:"object"},SearchSpellingVariantV1:{additionalProperties:!1,properties:{alternative:{type:"string"},query:{type:"string"}},required:["query","alternative"],type:"object"},SearchUnavailableV1:{additionalProperties:!1,properties:{code_generation:{type:["string","null"]},coverage:{$ref:"#/$defs/SearchCoverageV1"},detail:{anyOf:[{$ref:"#/$defs/ApplicationProblemDetailV1"},{type:"null"}],description:"Present when indexing is parked: its cause, remedy, and wake retry."},freshness:{$ref:"#/$defs/PrimitiveSearchFreshnessV1"},query_fallback_digest:{description:"Always null: no fallback subpayload was produced.",type:["string","null"]},reason:{type:"string"},results:{description:"Always empty: no generation answered.",items:{$ref:"#/$defs/SearchResultRowV1"},type:"array"},status:{$ref:"#/$defs/PrimitiveUnavailableStatusV1"},verified_graph_evidence:{anyOf:[{$ref:"#/$defs/PrimitiveUnavailableEvidenceV1"},{type:"null"}]}},required:["freshness","results","status","reason","coverage"],type:"object"},SessionOrThreadId:bt,SourceFreshness:b_,SourceInstanceKey:bv,SourceNamespace:b$,SourceOccurrenceId:bS,UtcMicros:bX},$schema:"https://json-schema.org/draft/2020-12/schema",anyOf:[{$ref:"#/$defs/SearchCompleteV1"},{$ref:"#/$defs/SearchUnavailableV1"}],description:"What a search served: a ranked page, or the typed reason no generation\ncould answer.",title:"SearchResultV1"},{$defs:{PageRequest:_H,ResultProjection:vV,RetrievalOrder:vj,RetrievalRequestMeta:vC,SessionId:be,TemporalModeV1:bN,UtcMicros:bX},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{meta:{$ref:"#/$defs/RetrievalRequestMeta"},session_id:{$ref:"#/$defs/SessionId"}},required:["session_id","meta"],title:"SessionLookupRequest",type:"object"},{$defs:{RetrievalAnchorId:vx},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{anchors:{items:{$ref:"#/$defs/RetrievalAnchorId"},type:"array"}},required:["anchors"],title:"SessionLookupResult",type:"object"},{$defs:{SessionRefreshFrontierV1:{additionalProperties:!1,properties:{committed_through:{format:"uint64",minimum:0,type:"integer"},observed_through:{format:"uint64",minimum:0,type:"integer"}},required:["observed_through","committed_through"],type:"object"},SessionRefreshGrainV1:{enum:["occurrence","logical_message","turn","session","thread","agent","summary"],type:"string"},SessionRefreshScopeV1:{description:"Session-store owner one refresh is bound to.\n\nThe caller selects the already-mounted project or profile authority. Exact\nprofile, project, repository, worktree, branch, store, and root identities\nstay daemon-owned and are resolved from that authority during admission.",oneOf:[{additionalProperties:!1,properties:{kind:{const:"project",type:"string"}},required:["kind"],type:"object"},{additionalProperties:!1,properties:{kind:{const:"profile",type:"string"}},required:["kind"],type:"object"}]},SessionRefreshSessionV1:{additionalProperties:!1,properties:{id:{type:"string"}},required:["id"],type:"object"},SessionRefreshSourceV1:{additionalProperties:!1,properties:{scope:{type:"string"}},required:["scope"],type:"object"},SessionRefreshTargetV1:{additionalProperties:!1,properties:{frontier:{$ref:"#/$defs/SessionRefreshFrontierV1"},grain:{$ref:"#/$defs/SessionRefreshGrainV1"},temporal_mode:{$ref:"#/$defs/TemporalModeV1"}},required:["temporal_mode","grain","frontier"],type:"object"},TemporalModeV1:bN,UtcMicros:bX},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"Exact route-selected session-refresh request body.\n\nEach current route selects the action itself; `scope` selects the mounted\nsession-store owner. Project-scoped requests are served under project-open\nadmission, profile-scoped requests by the authenticated profile authority.",properties:{handle:{type:["string","null"]},scope:{$ref:"#/$defs/SessionRefreshScopeV1"},session:{$ref:"#/$defs/SessionRefreshSessionV1"},source:{$ref:"#/$defs/SessionRefreshSourceV1"},target:{$ref:"#/$defs/SessionRefreshTargetV1"}},required:["scope","session","source","target"],title:"SessionRefreshActionRequestV1",type:"object"},{$defs:{ClosedUtcIntervalV1:hf,RetainedErrorV1:vR,RetainedOutcomeStatusV1:vq,SessionCoverageIntervalV1:v9,SessionCoverageReasonV1:v5,SessionCoverageRequestV1:v8,SessionCoverageStateV1:v7,SessionRefreshFrontierResultV1:br,SessionRefreshProgressV1:bi,SessionRefreshReceiptV1:bo,SessionRefreshTerminalStateResultV1:bn,SessionSourceCoverageV1:bs,TemporalCoverageV1:bA,TemporalModeV1:bN,UtcMicros:bX,ValidCoverageIntervalV1:bY},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{accepted_at:{format:"int64",type:["integer","null"]},error:{anyOf:[{$ref:"#/$defs/RetainedErrorV1"},{type:"null"}]},handle:{type:["string","null"]},operation_id:{type:["string","null"]},outcome:{$ref:"#/$defs/RetainedOutcomeStatusV1"},progress:{anyOf:[{$ref:"#/$defs/SessionRefreshProgressV1"},{type:"null"}]},receipt:{anyOf:[{$ref:"#/$defs/SessionRefreshReceiptV1"},{type:"null"}]},scope:{type:"string"},tool:{type:"string"}},required:["outcome","scope","tool"],title:"SessionRefreshBeginResultV1",type:"object"},{$defs:{ClosedUtcIntervalV1:hf,RetainedErrorV1:vR,RetainedOutcomeStatusV1:vq,SessionCoverageIntervalV1:v9,SessionCoverageReasonV1:v5,SessionCoverageRequestV1:v8,SessionCoverageStateV1:v7,SessionRefreshFrontierResultV1:br,SessionRefreshProgressV1:bi,SessionRefreshReceiptV1:bo,SessionRefreshTerminalStateResultV1:bn,SessionSourceCoverageV1:bs,TemporalCoverageV1:bA,TemporalModeV1:bN,UtcMicros:bX,ValidCoverageIntervalV1:bY},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{accepted_at:{format:"int64",type:["integer","null"]},error:{anyOf:[{$ref:"#/$defs/RetainedErrorV1"},{type:"null"}]},handle:{type:["string","null"]},operation_id:{type:["string","null"]},outcome:{$ref:"#/$defs/RetainedOutcomeStatusV1"},progress:{anyOf:[{$ref:"#/$defs/SessionRefreshProgressV1"},{type:"null"}]},receipt:{anyOf:[{$ref:"#/$defs/SessionRefreshReceiptV1"},{type:"null"}]},scope:{type:"string"},tool:{type:"string"}},required:["outcome","scope","tool"],title:"SessionRefreshCancelResultV1",type:"object"},{$defs:{ClosedUtcIntervalV1:hf,RetainedErrorV1:vR,RetainedOutcomeStatusV1:vq,SessionCoverageIntervalV1:v9,SessionCoverageReasonV1:v5,SessionCoverageRequestV1:v8,SessionCoverageStateV1:v7,SessionRefreshFrontierResultV1:br,SessionRefreshProgressV1:bi,SessionRefreshReceiptV1:bo,SessionRefreshTerminalStateResultV1:bn,SessionSourceCoverageV1:bs,TemporalCoverageV1:bA,TemporalModeV1:bN,UtcMicros:bX,ValidCoverageIntervalV1:bY},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{error:{anyOf:[{$ref:"#/$defs/RetainedErrorV1"},{type:"null"}]},outcome:{$ref:"#/$defs/RetainedOutcomeStatusV1"},progress:{anyOf:[{$ref:"#/$defs/SessionRefreshProgressV1"},{type:"null"}]},receipt:{anyOf:[{$ref:"#/$defs/SessionRefreshReceiptV1"},{type:"null"}]},scope:{type:"string"},tool:{type:"string"}},required:["outcome","scope","tool"],title:"SessionRefreshStatusResultV1",type:"object"},{$defs:{RetainedTimeFilterV1:vI,SessionGitRefV1:{enum:["branch","worktree","commit"],type:"string"},SessionGitRelationV1:{enum:["produced","observed","all"],type:"string"}},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{git_ref:{$ref:"#/$defs/SessionGitRefV1"},limit:{format:"uint64",minimum:0,type:["integer","null"]},relation:{anyOf:[{$ref:"#/$defs/SessionGitRelationV1"},{type:"null"}]},since:{anyOf:[{$ref:"#/$defs/RetainedTimeFilterV1"},{type:"null"}]},until:{anyOf:[{$ref:"#/$defs/RetainedTimeFilterV1"},{type:"null"}]},value:{type:"string"}},required:["git_ref","value"],title:"SessionsForRequestV1",type:"object"},{$defs:{CorrelationIndexCountModeV1:{enum:["presence_only"],type:"string"},CorrelationIndexV1:{additionalProperties:!1,properties:{backfill_watermark:{format:"int64",type:["integer","null"]},commit_count:{format:"uint64",minimum:0,type:["integer","null"]},commits_present:{type:"boolean"},count_mode:{$ref:"#/$defs/CorrelationIndexCountModeV1"},generation:{type:["string","null"]},projection_available:{type:"boolean"},source_watermark:{type:["string","null"]},span_count:{format:"uint64",minimum:0,type:["integer","null"]},spans_present:{type:"boolean"}},required:["projection_available","spans_present","commits_present","count_mode"],type:"object"},RetainedOutcomeStatusV1:vq,SessionCorrelationHitV1:{additionalProperties:!1,properties:{branch:{type:["string","null"]},commit_sha:{type:["string","null"]},committed_at:{format:"int64",type:["integer","null"]},confidence:{format:"int64",type:["integer","null"]},event_count:{format:"int64",type:"integer"},evidence:{type:["string","null"]},evidence_message_id:{type:["string","null"]},first_ts:{format:"int64",type:["integer","null"]},last_ts:{format:"int64",type:["integer","null"]},provider:{type:"string"},relation:{type:["string","null"]},session_id:{type:"string"},sources:{items:{type:"string"},type:"array"},span_count:{format:"int64",type:"integer"},span_overlap_kind:{type:["string","null"]},worktree:{type:["string","null"]}},required:["provider","session_id","event_count","span_count","sources"],type:"object"}},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{count:{format:"uint",minimum:0,type:"integer"},git_ref:{type:["string","null"]},index:{anyOf:[{$ref:"#/$defs/CorrelationIndexV1"},{type:"null"}]},index_empty:{type:["boolean","null"]},message:{type:["string","null"]},observed_count:{format:"uint",minimum:0,type:["integer","null"]},observed_sessions:{items:{$ref:"#/$defs/SessionCorrelationHitV1"},type:["array","null"]},problem_code:{type:["string","null"]},relation:{type:["string","null"]},results:{items:{$ref:"#/$defs/SessionCorrelationHitV1"},type:"array"},since:{format:"int64",type:["integer","null"]},status:{$ref:"#/$defs/RetainedOutcomeStatusV1"},until:{format:"int64",type:["integer","null"]},value:{type:["string","null"]}},required:["count","results","status"],title:"SessionsForResultV1",type:"object"},{$defs:{NodeExpansionCostV1:_W,SymbolSignatureV1:{additionalProperties:!1,properties:{cost_to_expand:{$ref:"#/$defs/NodeExpansionCostV1"},docstring:{type:["string","null"]},end_line:{format:"uint32",minimum:0,type:"integer"},file:{type:"string"},is_async:{type:"boolean"},kind:{type:"string"},name:{type:"string"},node_id:{type:"string"},qualified_name:{type:"string"},signature:{type:["string","null"]},start_line:{format:"uint32",minimum:0,type:"integer"},unavailable_fields:{items:{type:"string"},type:"array"},visibility:{type:"string"}},required:["node_id","name","qualified_name","kind","visibility","is_async","file","start_line","end_line","cost_to_expand","unavailable_fields"],type:"object"}},$schema:"https://json-schema.org/draft/2020-12/schema",items:{$ref:"#/$defs/SymbolSignatureV1"},title:"Array_of_SymbolSignatureV1",type:"array"},{$defs:{ProjectId:_6,RepositoryId:v$,SimilarMatchClassV1:bp,SimilarTargetV1:{oneOf:[{additionalProperties:!1,properties:{kind:{const:"symbol_occurrence",type:"string"},symbol_occurrence_id:{$ref:"#/$defs/SymbolOccurrenceId"}},required:["kind","symbol_occurrence_id"],type:"object"},{additionalProperties:!1,properties:{kind:{const:"source_range",type:"string"},path:{type:"string"},span:{$ref:"#/$defs/SourceSpan"}},required:["kind","path","span"],type:"object"}]},SourceSpan:bk,SymbolOccurrenceId:bx},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{cursor:{type:["string","null"]},match_classes:{items:{$ref:"#/$defs/SimilarMatchClassV1"},type:"array"},project_id:{$ref:"#/$defs/ProjectId"},repository_id:{$ref:"#/$defs/RepositoryId"},result_limit:{description:"Preferred result page size.",format:"uint32",minimum:0,type:"integer"},target:{$ref:"#/$defs/SimilarTargetV1"},work_limit:{format:"uint32",minimum:0,type:"integer"}},required:["project_id","repository_id","target","match_classes","result_limit","work_limit"],title:"SimilarSurfaceRequestV1",type:"object"},{$defs:{CodeGenerationId:hg,CodeIndexBuildBlockedReasonV1:hv,CodeIndexConvergenceParkedV1:hb,CodeIndexStalenessStateV1:hw,ManifestDigest:_p,PrimitiveFreshnessStateV1:_K,PrimitiveIndexingStateV1:_J,PrimitiveSearchFreshnessV1:_Y,ProjectId:_6,RepositoryId:v$,SimilarCoverageV1:{oneOf:[{additionalProperties:!1,properties:{status:{const:"complete",type:"string"}},required:["status"],type:"object"},{additionalProperties:!1,properties:{status:{const:"partial",type:"string"}},required:["status"],type:"object"},{additionalProperties:!1,properties:{minimum_tokens:{format:"uint32",minimum:0,type:"integer"},status:{const:"excluded_too_small",type:"string"}},required:["status","minimum_tokens"],type:"object"},{additionalProperties:!1,properties:{maximum_bytes:{format:"uint64",minimum:0,type:"integer"},maximum_tokens:{format:"uint32",minimum:0,type:"integer"},status:{const:"excluded_too_large",type:"string"}},required:["status","maximum_tokens","maximum_bytes"],type:"object"},{additionalProperties:!1,properties:{status:{const:"excluded_incomplete_tokenization",type:"string"}},required:["status"],type:"object"}]},SimilarFamilyV1:bl,SimilarMatchClassV1:bp,SimilarOccurrenceV1:bu,SourceSpan:bk,SymbolOccurrenceId:bx,WorktreeId:SJ},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{coverage:{$ref:"#/$defs/SimilarCoverageV1"},families:{items:{$ref:"#/$defs/SimilarFamilyV1"},type:"array"},freshness:{anyOf:[{$ref:"#/$defs/PrimitiveSearchFreshnessV1"},{type:"null"}],description:"The worktree verdict a served graph read opens with."},source:{$ref:"#/$defs/SimilarOccurrenceV1"},source_generation:{$ref:"#/$defs/CodeGenerationId"}},required:["source","families","source_generation","coverage"],title:"SimilarResultV1",type:"object"},{$defs:{ManagedSkillState:_l},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{include_body:{default:!1,description:"If true, include each skill's body_markdown in the list response\n(default: false).",type:"boolean"},state:{anyOf:[{$ref:"#/$defs/ManagedSkillState"},{type:"null"}],description:"Optional managed-skill lifecycle state filter."}},title:"SkillListSurfaceRequestV1",type:"object"},{$defs:{AutomationReadStatusV1:fG,ManagedSkillMaterializationScope:_a,ManagedSkillMetadata:_s,ManagedSkillProvenance:_d,ManagedSkillSource:_c,ManagedSkillState:_l,SkillImprovementRecommendation:bm,SkillInstallTarget:bf,SkillListEntryV1:{additionalProperties:!1,properties:{body_markdown:{description:"Present only when the request asked for bodies.",type:["string","null"]},improvement_recommendation:{anyOf:[{$ref:"#/$defs/SkillImprovementRecommendation"},{type:"null"}]},metadata:{$ref:"#/$defs/ManagedSkillMetadata"},stale_recommendation:{anyOf:[{$ref:"#/$defs/SkillStaleRecommendation"},{type:"null"}]},support_file_count:{format:"uint",minimum:0,type:"integer"},support_file_paths:{items:{type:"string"},type:"array"},usage_summary:{$ref:"#/$defs/SkillUsageRecord"}},required:["metadata","support_file_count","support_file_paths","usage_summary"],type:"object"},SkillStaleRecommendation:bh,SkillUsageRecord:by},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{count:{format:"uint",minimum:0,type:"integer"},profile_root:{type:"string"},skills:{items:{$ref:"#/$defs/SkillListEntryV1"},type:"array"},status:{$ref:"#/$defs/AutomationReadStatusV1"}},required:["status","profile_root","count","skills"],title:"SkillListResultV1",type:"object"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{id:{description:"Managed skill id to read.",type:"string"},include_support_files:{default:!1,description:"Include support-file byte payloads. Default false; the response still\nlists each path and byte length.",type:"boolean"}},required:["id"],title:"SkillViewSurfaceRequestV1",type:"object"},{$defs:{AutomationReadStatusV1:fG,ManagedSkill:{properties:{body_markdown:{type:"string"},metadata:{$ref:"#/$defs/ManagedSkillMetadata"},support_files:{items:{$ref:"#/$defs/ManagedSupportFile"},type:"array"}},required:["metadata","body_markdown","support_files"],type:"object"},ManagedSkillMaterializationScope:_a,ManagedSkillMetadata:_s,ManagedSkillProvenance:_d,ManagedSkillSource:_c,ManagedSkillState:_l,ManagedSupportFile:{properties:{bytes:{items:{format:"uint8",maximum:255,minimum:0,type:"integer"},type:"array"},path:{type:"string"}},required:["path","bytes"],type:"object"},SkillImprovementRecommendation:bm,SkillInstallTarget:bf,SkillStaleRecommendation:bh,SkillSupportFileSummaryV1:{additionalProperties:!1,properties:{byte_len:{format:"uint",minimum:0,type:"integer"},path:{type:"string"}},required:["path","byte_len"],type:"object"},SkillUsageRecord:by},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{improvement_recommendation:{anyOf:[{$ref:"#/$defs/SkillImprovementRecommendation"},{type:"null"}]},profile_root:{type:"string"},skill:{$ref:"#/$defs/ManagedSkill",description:"The skill package; `support_files` is empty unless the request\nincluded them."},stale_recommendation:{anyOf:[{$ref:"#/$defs/SkillStaleRecommendation"},{type:"null"}]},status:{$ref:"#/$defs/AutomationReadStatusV1"},support_file_summaries:{items:{$ref:"#/$defs/SkillSupportFileSummaryV1"},type:"array"},support_files_included:{type:"boolean"},usage_summary:{$ref:"#/$defs/SkillUsageRecord"}},required:["status","profile_root","skill","usage_summary","support_files_included","support_file_summaries"],title:"SkillViewResultV1",type:"object"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{node_id:{type:"string"}},required:["node_id"],title:"SourceBodyPrimitiveRequest",type:"object"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{body:{type:"string"},end_line:{format:"uint32",minimum:0,type:"integer"},file:{type:"string"},node_id:{type:"string"},start_line:{format:"uint32",minimum:0,type:"integer"}},required:["node_id","file","start_line","end_line","body"],title:"SourceBodyPrimitiveResult",type:"object"},{$defs:{ManifestDigest:_p,UseCaseId:bZ},$schema:"https://json-schema.org/draft/2020-12/schema",description:"Exact public input accepted by `tracedecay_source_edit_reconcile`.",oneOf:[{additionalProperties:!1,description:"Exact public input accepted by `tracedecay_source_edit_reconcile`.",properties:{attempt_idempotency_key:{type:"string"},confirm:{default:!1,type:"boolean"},disposition:{const:"inspect",type:"string"},effect_id:{type:"string"},idempotency_key:{type:"string"},input_digest:{type:"string"},original_operation:{$ref:"#/$defs/UseCaseId"}},required:["original_operation","effect_id","idempotency_key","attempt_idempotency_key","input_digest","disposition"],type:"object"},{additionalProperties:!1,description:"Exact public input accepted by `tracedecay_source_edit_reconcile`.",properties:{attempt_idempotency_key:{type:"string"},committed_state:{$ref:"#/$defs/ManifestDigest"},confirm:{default:!1,type:"boolean"},disposition:{const:"confirm_committed",type:"string"},effect_id:{type:"string"},idempotency_key:{type:"string"},input_digest:{type:"string"},original_operation:{$ref:"#/$defs/UseCaseId"}},required:["original_operation","effect_id","idempotency_key","attempt_idempotency_key","input_digest","disposition","committed_state"],type:"object"},{additionalProperties:!1,description:"Exact public input accepted by `tracedecay_source_edit_reconcile`.",properties:{attempt_idempotency_key:{type:"string"},confirm:{default:!1,type:"boolean"},disposition:{const:"confirm_unchanged",type:"string"},effect_id:{type:"string"},idempotency_key:{type:"string"},input_digest:{type:"string"},original_operation:{$ref:"#/$defs/UseCaseId"}},required:["original_operation","effect_id","idempotency_key","attempt_idempotency_key","input_digest","disposition"],type:"object"},{additionalProperties:!1,description:"Exact public input accepted by `tracedecay_source_edit_reconcile`.",properties:{attempt_idempotency_key:{type:"string"},confirm:{default:!1,type:"boolean"},disposition:{const:"acknowledge_partial",type:"string"},effect_id:{type:"string"},idempotency_key:{type:"string"},input_digest:{type:"string"},observed_state:{$ref:"#/$defs/ManifestDigest"},original_operation:{$ref:"#/$defs/UseCaseId"}},required:["original_operation","effect_id","idempotency_key","attempt_idempotency_key","input_digest","disposition","observed_state"],type:"object"}],title:"SourceEditReconcileSurfaceRequestV1",type:"object"},{$defs:{FileOccurrenceId:gd,GitOidV1:gI,PageRequest:_H,ResultProjection:vV,RetrievalOrder:vj,RetrievalRequestMeta:vC,SourceSpan:bk,TemporalModeV1:bN,UtcMicros:bX},$schema:"https://json-schema.org/draft/2020-12/schema",anyOf:[{additionalProperties:!1,description:"Read an exact byte span from the current indexed file occurrence.",properties:{file:{$ref:"#/$defs/FileOccurrenceId",description:"Canonical file occurrence from `code_exact_occurrence` at\n`items[].occurrence.file`; a logical path is not a file occurrence identity."},meta:{$ref:"#/$defs/RetrievalRequestMeta"},span:{$ref:"#/$defs/SourceSpan"}},required:["file","span","meta"],type:"object"},{additionalProperties:!1,description:"Read a bounded range of whole lines from an immutable Git revision.",properties:{end_line:{description:"One-based last line, inclusive. Large ranges are clipped with `next_line`.",format:"uint32",minimum:0,type:"integer"},file:{description:"Canonical repository-relative path in that revision.",type:"string"},revision:{$ref:"#/$defs/GitOidV1",description:"Full lowercase commit OID; mutable names and abbreviations are refused."},start_line:{description:"One-based first line, inclusive.",format:"uint32",minimum:0,type:"integer"}},required:["revision","file","start_line","end_line"],type:"object"}],title:"SourceLinesRequest"},{$defs:{GitOidV1:gI,RetrievalAnchorId:vx,SourceReference:{additionalProperties:!1,properties:{anchor:{$ref:"#/$defs/RetrievalAnchorId"},span:{$ref:"#/$defs/SourceSpan"}},required:["anchor","span"],type:"object"},SourceSpan:bk},$schema:"https://json-schema.org/draft/2020-12/schema",anyOf:[{additionalProperties:!1,properties:{body:{type:["string","null"]},file:{type:["string","null"]},references:{items:{$ref:"#/$defs/SourceReference"},type:"array"}},required:["references"],type:"object"},{additionalProperties:!1,properties:{blob_oid:{$ref:"#/$defs/GitOidV1"},body:{type:"string"},end_line:{format:"uint32",minimum:0,type:"integer"},file:{type:"string"},next_line:{description:"First unread line within the requested range. Keep the original\nrevision, file, and requested end line when continuing.",format:"uint32",minimum:0,type:["integer","null"]},revision:{$ref:"#/$defs/GitOidV1"},span:{$ref:"#/$defs/SourceSpan"},start_line:{format:"uint32",minimum:0,type:"integer"}},required:["file","revision","blob_oid","start_line","end_line","span","body"],type:"object"}],title:"SourceLinesResult"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{file:{type:"string"}},required:["file"],title:"SourceOutlinePrimitiveRequest",type:"object"},{$defs:{SymbolPrimitiveRecord:bj},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{file:{type:"string"},symbols:{items:{$ref:"#/$defs/SymbolPrimitiveRecord"},type:"array"}},required:["file","symbols"],title:"SourceOutlinePrimitiveResult",type:"object"},{$defs:{BranchStackEdgeV1:f9,BranchStackId:f5,BranchStackNodeV1:f8,BranchStackRevisionId:f7,CommitId:hI,ManifestDigest:_p,NativeIntegrationDirectionV1:_q,NativeIntegrationSelectionDeclarationV1:{description:"Explicit caller declaration for one native-integration selection.\n\nDeclared stacks contain the visible nodes and edges, while the daemon\nderives canonical order and the revision digest through the domain\nconstructor. Callers cannot submit either derived field.",oneOf:[{additionalProperties:!1,properties:{binding:{additionalProperties:!1,properties:{destination_node_id:{$ref:"#/$defs/StackNodeId"},direction:{$ref:"#/$defs/NativeIntegrationDirectionV1"},edges:{items:{$ref:"#/$defs/BranchStackEdgeV1"},type:"array"},nodes:{items:{$ref:"#/$defs/BranchStackNodeV1"},type:"array"},revision_id:{$ref:"#/$defs/BranchStackRevisionId"},source_node_id:{$ref:"#/$defs/StackNodeId"},stack_id:{$ref:"#/$defs/BranchStackId"}},required:["stack_id","revision_id","nodes","edges","source_node_id","destination_node_id","direction"],type:"object"},kind:{const:"declared_stack_edge",type:"string"}},required:["kind","binding"],type:"object"},{additionalProperties:!1,properties:{binding:{additionalProperties:!1,properties:{destination_ref:{$ref:"#/$defs/RefId"},proposal_digest:{$ref:"#/$defs/ManifestDigest"},source_ref:{$ref:"#/$defs/RefId"}},required:["proposal_digest","source_ref","destination_ref"],type:"object"},kind:{const:"independent_branch",type:"string"}},required:["kind","binding"],type:"object"}]},ProjectId:_6,RefId:vf,RepositoryId:v$,ResolvedScope:vP,ScopeSetId:v1,ScopeSetRevision:v0,StackNodeId:bV,WorktreeId:SJ,WorktreeInventoryEpoch:SZ,WorktreeInventorySnapshotId:SQ},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"Exact caller-supplied identity frozen by `stack_snapshot`.\n\nThis proof binds the exact authorized `ProjectId`, `RepositoryId`, source\nand destination worktree/ref identity, frozen inventory, scope/grant/policy\nrevisions, and one declared-edge or independent-branch selection. Paths,\nfree-form SHA values, branch display names, and provider topology remain\nunrepresentable.",properties:{authorized_scope_set_digest:{$ref:"#/$defs/ManifestDigest"},authorized_scope_set_id:{$ref:"#/$defs/ScopeSetId"},authorized_scope_set_revision:{$ref:"#/$defs/ScopeSetRevision"},destination:{$ref:"#/$defs/ResolvedScope"},grant_digest:{$ref:"#/$defs/ManifestDigest"},inventory_epoch:{$ref:"#/$defs/WorktreeInventoryEpoch"},inventory_snapshot_id:{$ref:"#/$defs/WorktreeInventorySnapshotId"},policy_digest:{$ref:"#/$defs/ManifestDigest"},selection:{$ref:"#/$defs/NativeIntegrationSelectionDeclarationV1"},source:{$ref:"#/$defs/ResolvedScope"}},required:["source","destination","authorized_scope_set_id","authorized_scope_set_revision","authorized_scope_set_digest","inventory_snapshot_id","inventory_epoch","selection","grant_digest","policy_digest"],title:"NativeIntegrationStackSnapshotSurfaceRequest",type:"object"},{$defs:{CodeIndexReadinessTargetV1:{description:"The readiness a status caller can wait for.",oneOf:[{const:"fresh",description:"A sealed complete generation serves exact and lexical reads for the\ncurrent source: `code_index_freshness.status` is `current`.",type:"string"},{const:"ready",description:"`fresh`, and the generation's native code graph also serves.",type:"string"},{const:"graph_ready",description:"A published generation's native code graph serves and no convergence\npark is set, whatever the source freshness. Waiting for it never\nsweeps the source, so it cannot arm the reconcile it would observe.",type:"string"}]},CodeIndexReadinessWaitV1:{additionalProperties:!1,description:"`tracedecay_status` `wait_for`: hold the status read until the worktree\nreaches `state`, for at most the caller's `timeout_ms`.",properties:{state:{$ref:"#/$defs/CodeIndexReadinessTargetV1"},timeout_ms:{format:"uint64",minimum:0,type:"integer"}},required:["state","timeout_ms"],type:"object"}},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{admission_only:{default:!1,description:"Report only that the project route is admitted, reading no graph,\nindex, or session state. Default false.",type:"boolean"},include_branch_diagnostics:{default:!1,description:"Full tracked-branch diagnostic list. Default false.",type:"boolean"},include_session_ingest:{default:!1,description:"Session-ingest health. Default false.",type:"boolean"},include_staleness:{default:!1,description:"Git staleness object. Default false.",type:"boolean"},include_storage_health:{default:!1,description:"Storage-health snapshot. Default false.",type:"boolean"},wait_for:{anyOf:[{$ref:"#/$defs/CodeIndexReadinessWaitV1"},{type:"null"}],description:"Hold the status read until the code index reaches `state` (`fresh`:\nstatus `current`; `ready`: also native graph serving; `graph_ready`: a\npublished generation's native graph serves, whatever the freshness),\nfor at most `timeout_ms`. The payload's `wait` reports `reached`,\n`timed_out` with `last_state`, or `unavailable` with `reason`."}},title:"StatusSurfaceRequestV1",type:"object"},{$defs:{CodeCloneIndexBudgetsV1:{description:"Fixed automatic clone-discovery limits.",properties:{minimum_body_tokens:{format:"uint64",minimum:0,type:"integer"}},required:["minimum_body_tokens"],type:"object"},CodeCloneIndexCoverageV1:{description:"Coverage retained by one clone-index artifact or in-progress successor.\n\nCounts are `None` until the clone artifact has observed the corresponding\ndenominator. A complete empty repository reports `Some(0)`, which keeps a\ndesigned zero distinct from unavailable coverage.",properties:{conservative_normalized_bodies:{description:"Eligible bodies with a conservative exact posting.",format:"uint64",minimum:0,type:["integer","null"]},eligible_source_bodies:{description:"Source bodies admitted for automatic clone discovery.",format:"uint64",minimum:0,type:["integer","null"]},exact_postings:{description:"Conservative and rename-normalized exact posting rows.",format:"uint64",minimum:0,type:["integer","null"]},excluded_incomplete_tokenization_bodies:{description:"Bodies excluded because conservative tokenization was incomplete.",format:"uint64",minimum:0,type:["integer","null"]},excluded_too_large_bodies:{description:"Bodies excluded because they exceed the automatic-discovery token maximum.",format:"uint64",minimum:0,type:["integer","null"]},excluded_too_small_bodies:{description:"Bodies excluded because they are below the automatic-discovery minimum.",format:"uint64",minimum:0,type:["integer","null"]},payloads_reused:{description:"Current payload occurrences reused from the preceding generation.",format:"uint64",minimum:0,type:["integer","null"]},rename_normalized_bodies:{description:"Eligible bodies with a complete rename-normalized exact posting.",format:"uint64",minimum:0,type:["integer","null"]},rename_partial_bodies:{description:"Eligible bodies whose rename normalization is partial.",format:"uint64",minimum:0,type:["integer","null"]},rename_unsupported_bodies:{description:"Eligible bodies whose language has no rename normalization.",format:"uint64",minimum:0,type:["integer","null"]},source_bodies:{description:"Clone body occurrences observed in the sealed lexical source.",format:"uint64",minimum:0,type:["integer","null"]},unique_payloads:{description:"Distinct content-addressed payloads retained by the artifact.",format:"uint64",minimum:0,type:["integer","null"]}},type:"object"},CodeCloneIndexObservationV1:{description:"Generation-pinned clone-index evidence shared by non-error readiness states.",properties:{artifact_format_revision:{format:"uint32",minimum:0,type:["integer","null"]},budgets:{$ref:"#/$defs/CodeCloneIndexBudgetsV1"},conservative_normalization_revision:{format:"uint16",maximum:65535,minimum:0,type:"integer"},coverage:{$ref:"#/$defs/CodeCloneIndexCoverageV1"},generation_id:{type:"string"},rename_normalization_revision:{format:"uint16",maximum:65535,minimum:0,type:"integer"},resources:{$ref:"#/$defs/CodeCloneIndexResourcesV1"},source_revision:{type:["string","null"]}},required:["generation_id","conservative_normalization_revision","rename_normalization_revision","coverage","budgets","resources"],type:"object"},CodeCloneIndexResourcesV1:{description:"Measured resources and update accounting for one clone-index generation.",properties:{bytes_on_disk:{description:"Durable artifact bytes.",format:"uint64",minimum:0,type:["integer","null"]},changed_symbol_update_micros:{description:"Latest observed source-edit arrival through clone-ready publication.",format:"uint64",minimum:0,type:["integer","null"]},peak_scratch_memory_bytes:{description:"Largest measured clone-row serialization scratch during the build.",format:"uint64",minimum:0,type:["integer","null"]},stale_invalidations:{description:"Prior clone payload bindings invalidated by the latest publication.",format:"uint64",minimum:0,type:["integer","null"]}},type:"object"},CodeCloneIndexStatusV1:{description:"Clone readiness, independent from lexical and graph serving.",oneOf:[{description:"The sealed lexical artifact or its clone rows cannot be read.",properties:{reason:{type:"string"},state:{const:"unavailable",type:"string"}},required:["state","reason"],type:"object"},{description:"Some clone evidence is readable, but required postings are missing.",properties:{observation:{$ref:"#/$defs/CodeCloneIndexObservationV1"},omission_reasons:{items:{type:"string"},type:"array"},state:{const:"partial",type:"string"}},required:["state","observation","omission_reasons"],type:"object"},{description:"Required exact postings cover every eligible body.",properties:{observation:{$ref:"#/$defs/CodeCloneIndexObservationV1"},state:{const:"ready",type:"string"}},required:["state","observation"],type:"object"},{description:"The artifact is readable but belongs to a superseded source generation.",properties:{observation:{$ref:"#/$defs/CodeCloneIndexObservationV1"},reason:{type:"string"},state:{const:"stale",type:"string"}},required:["state","observation","reason"],type:"object"}]},CodeGraphServingReadinessV1:{description:"Interactive graph-serving state for the latest sealed generation.\n\nA sealed generation can expose truthful census statistics before its graph\nprojection is ready to serve queries, so readiness is reported separately.",oneOf:[{description:"No graph-serving authority exists for this worktree or generation.",properties:{reason:{type:"string"},state:{const:"unavailable",type:"string"}},required:["state","reason"],type:"object"},{description:"The sealed generation exists, but graph activation has not completed.",properties:{state:{const:"pending",type:"string"}},required:["state"],type:"object"},{description:"Graph activation completed without a serving projection.",properties:{reason:{type:"string"},state:{const:"refused",type:"string"}},required:["state","reason"],type:"object"},{description:"The verified graph projection is installed, but the engine or catalog\nits reads need is not resident: it is still being built, or it was\nreleased for memory. Graph reads answer the retryable warming state\nand restore it.",properties:{reason:{type:"string"},state:{const:"warming",type:"string"}},required:["state","reason"],type:"object"},{description:"The verified graph projection is installed for interactive reads.",properties:{state:{const:"ready",type:"string"}},required:["state"],type:"object"}]},CodeIndexBuildBlockedReasonV1:hv,CodeIndexBuildPhaseV1:{description:"The durable build phase whose committed boundary the dashboard is reading.\n\nA phase is not inferred from scheduler state. The mounted registry publishes\nthe exact phase that owns the active generation.",oneOf:[{enum:["source_scan","relational_preparation","bulk_commit","index_build","verification","ready"],type:"string"},{const:"graph_publication",description:"Text serving is built and the pass that sealed the generation is\nstill publishing its native graph.",type:"string"}]},CodeIndexBuildProgressV1:{description:"The latest committed progress boundary for one active code-index generation.\n\nEvery count is scoped to `generation_id`. The snapshot never includes a\nstaged page: work is reported only after the batch that owns it commits.",properties:{blocked_reason:{anyOf:[{$ref:"#/$defs/CodeIndexBuildBlockedReasonV1"},{type:"null"}],description:"Reason the active generation cannot currently advance, when known."},committed_chunks:{description:"Search chunks committed to the artifact database.",format:"uint64",minimum:0,type:"integer"},committed_imports:{description:"Import evidence rows committed to the artifact database.",format:"uint64",minimum:0,type:"integer"},committed_pages:{description:"Source pages committed to the artifact database.",format:"uint64",minimum:0,type:"integer"},committed_payload_bytes:{description:"Payload bytes committed to the artifact database.",format:"uint64",minimum:0,type:"integer"},completed_files:{description:"Authenticated sealed-source file boundary completed by committed work.",format:"uint64",minimum:0,type:"integer"},completed_lexical_units:{description:"Authenticated lexical-span boundary completed by committed work, in the\nsealed source's own advance unit.\n\nThe unit is the source's, not this surface's: a sealed-layout source\nadvances over the files-array byte span, while a published or\npartitioned source advances over file ordinals because its file records\nare not a contiguous byte range at all. Both are monotone and share the\ndenominator below, so completion and the derived estimate are truthful;\nnaming them bytes was not, and a consumer that multiplied this by an\naverage file size was wrong by orders of magnitude (issue #1205).",format:"uint64",minimum:0,type:"integer"},current_batch_pages:{description:"Source pages in the batch currently being processed.",format:"uint64",minimum:0,type:"integer"},current_batch_payload_bytes:{description:"Sealed payload bytes in the batch currently being processed.",format:"uint64",minimum:0,type:"integer"},daemon_incarnation:{description:"Durable daemon-authority epoch that produced this snapshot.\n\nThis orders snapshots across daemon restarts without relying on wall\nclock time.",format:"uint64",minimum:0,type:"integer"},elapsed_micros:{description:"Monotonic elapsed time for this process's active generation build.",format:"uint64",minimum:0,type:"integer"},estimated_remaining_seconds:{description:"Estimated remaining build duration, absent without a truthful rate.",format:"uint64",minimum:0,type:["integer","null"]},files_per_second:{description:"Rolling committed-file throughput, absent until it is established.",format:"double",type:["number","null"]},generation_id:{description:"Exact generation receiving the committed build work.",type:"string"},last_commit_latency_micros:{description:"Duration of the last committed SQLite batch, when one exists.",format:"uint64",minimum:0,type:["integer","null"]},last_progress_micros:{description:"Unix-epoch timestamp of the last durable progress publication.",format:"int64",type:"integer"},lexical_units_per_second:{description:"Rolling committed lexical-span throughput in units per second, absent\nuntil it is established. Not a byte rate; see\n[`Self::completed_lexical_units`].",format:"double",type:["number","null"]},phase:{$ref:"#/$defs/CodeIndexBuildPhaseV1",description:"Durable pipeline phase that published this snapshot."},producer_incarnation:{description:"Registry-minted scheduler incarnation within one daemon.\n\nA worktree retirement/remount creates a new value. `progress_epoch` is\ncomparable only when both incarnation fields match.",format:"uint64",minimum:0,type:"integer"},progress_epoch:{description:"Monotonic publication epoch for replacing delayed progress reads.",format:"uint64",minimum:0,type:"integer"},sealed_source_digest:{description:"Identity of the sealed source whose authenticated bounds define progress.",type:"string"},total_files:{description:"Authenticated sealed-source file bound for this generation.",format:"uint64",minimum:0,type:"integer"},total_lexical_units:{description:"Authenticated lexical-span bound for this generation, in the same unit\nas [`Self::completed_lexical_units`].",format:"uint64",minimum:0,type:"integer"}},required:["generation_id","daemon_incarnation","producer_incarnation","progress_epoch","sealed_source_digest","phase","committed_pages","committed_chunks","committed_imports","committed_payload_bytes","completed_files","total_files","completed_lexical_units","total_lexical_units","current_batch_pages","current_batch_payload_bytes","elapsed_micros","last_progress_micros"],type:"object"},CodeIndexConvergenceParkedV1:hb,CodeIndexFreshnessCoverageV1:{description:"Coverage of one freshness read. Distinct from [`CodeIndexStalenessStateV1`]:\na generation can be fresh and still omit hook-hint counts, or unverified\nwhile the ladder would otherwise say ready.\n\n`Unobserved` is only the constructed default. A projected read never emits\nit, so an absent observation cannot be mistaken for `complete`.",oneOf:[{enum:["unobserved","complete","partial_refresh_in_progress","partial_artifact_restore","partial_source_verification","partial_unverified_restore","partial_hook_hint_overflow"],type:"string"},{const:"partial_omitted_sources",description:"The sealed generation is fresh for every source it can index, and\n[`CodeIndexWorktreeFreshnessV1::omitted_sources`] names the sources it\ncannot. Waiting cannot change it.",type:"string"}]},CodeIndexGenerationRecoveryServingV1:{description:"Serving disposition of an incompatible generation during recovery.",enum:["preserved","refused"],type:"string"},CodeIndexGenerationRecoveryV1:{description:"Recovery state for a durable generation sealed under a different production\nowner configuration.",properties:{incompatibilities:{description:"Stable owner-input reason codes reported by the code-index authority.",items:{type:"string"},type:"array"},incompatible_generation_id:{description:"Generation retired from incremental reuse.",type:"string"},serving:{$ref:"#/$defs/CodeIndexGenerationRecoveryServingV1",description:"Whether the prior generation may continue serving while its replacement\nbuilds under the current configuration."}},required:["incompatible_generation_id","incompatibilities","serving"],type:"object"},CodeIndexOmittedSourceV1:h$,CodeIndexOmittedSourcesV1:hS,CodeIndexReadinessWaitOutcomeV1:{description:"How a `wait_for` status read ended. The status payload beside it is read\nafter the wait ends.",oneOf:[{properties:{outcome:{const:"reached",type:"string"}},required:["outcome"],type:"object"},{description:"The caller's budget elapsed; `last_state` is the last observed\n`code_index_freshness.status`.",properties:{last_state:{type:"string"},outcome:{const:"timed_out",type:"string"}},required:["outcome","last_state"],type:"object"},{description:"Waiting cannot reach the target: no scheduler is mounted, graph\nserving was refused, convergence is parked, or the request ended.",properties:{outcome:{const:"unavailable",type:"string"},reason:{type:"string"}},required:["outcome","reason"],type:"object"}]},CodeIndexRestoreProgressV1:{description:"Bounded authentication work required to restore one immutable lexical\nartifact as a serving reader.\n\nThe unit is a fixed restore check, not bytes or build work. Completed\nchecks are published only after they pass. `authenticated_remaining` is\nalways `authenticated_total - authenticated_completed`, so a caller can\ndistinguish bounded cold restore from an unbounded rebuild.",properties:{artifact_digest:{description:"Whole-file content address from the durable artifact descriptor.",type:"string"},authenticated_completed:{description:"Successfully completed authentication checks.",format:"uint64",minimum:0,type:"integer"},authenticated_remaining:{description:"Checks that have not completed yet.",format:"uint64",minimum:0,type:"integer"},authenticated_total:{description:"Fixed number of authentication checks for this restore.",format:"uint64",minimum:0,type:"integer"},generation_id:{description:"Generation whose lexical serving seat is being restored.",type:"string"}},required:["generation_id","artifact_digest","authenticated_completed","authenticated_total","authenticated_remaining"],type:"object"},CodeIndexSourceOmissionReasonV1:hk,CodeIndexStalenessStateV1:hw,CodeIndexWorktreeFreshnessV1:{description:"Freshness/generation state for one mounted worktree.\n\n`Deserialize` is part of the wire contract: the CLI status command decodes\nexactly this type back out of the daemon's `tracedecay_status` response,\nkeeping one authority for the freshness shape.",properties:{clone_index:{anyOf:[{$ref:"#/$defs/CodeCloneIndexStatusV1"},{type:"null"}],description:"Clone readiness from the same sealed lexical artifact."},code_graph_serving:{anyOf:[{$ref:"#/$defs/CodeGraphServingReadinessV1"},{type:"null"}],description:"Whether that generation's verified graph projection can serve reads."},coverage:{$ref:"#/$defs/CodeIndexFreshnessCoverageV1",description:"Whether this read covers the complete mounted scheduler state."},generation_recovery:{anyOf:[{$ref:"#/$defs/CodeIndexGenerationRecoveryV1"},{type:"null"}],description:"One-shot owner-configuration recovery currently replacing an\nincompatible durable generation."},hook_hint_count:{description:"Pending hook-hint count, when cheaply available.",format:"uint64",minimum:0,type:["integer","null"]},last_reconcile_micros:{description:"Last reconcile observation time (microseconds since the Unix epoch).",format:"int64",type:["integer","null"]},latest_generation_id:{description:"Latest sealed generation identity, when a complete generation exists.",type:["string","null"]},omitted_sources:{anyOf:[{$ref:"#/$defs/CodeIndexOmittedSourcesV1"},{type:"null"}],description:"Sources the serving snapshot captured but does not index, when any."},parked:{anyOf:[{$ref:"#/$defs/CodeIndexConvergenceParkedV1"},{type:"null"}],description:"Deterministic contract violation currently parking background\nconvergence, when one is observed. `staleness_state` reads `parked`\nwhile this is set and no generation serves."},progress:{anyOf:[{$ref:"#/$defs/CodeIndexBuildProgressV1"},{type:"null"}],description:"Latest committed progress for the active generation, if one is mounted."},rebuild_in_flight:{default:!1,description:"Whether the exact scheduler route owns a reconcile pass or has a\npending wake. A stale seated generation with this false is stalled,\nnot in a routine rebuild window.",type:"boolean"},repository_id:{description:"Stable repository identity resolved by the scheduler.",type:["string","null"]},restore_progress:{anyOf:[{$ref:"#/$defs/CodeIndexRestoreProgressV1"},{type:"null"}],description:"Bounded immutable-artifact restore work currently in flight. This is\nseparate from build progress because restore commits no index data."},sealed_at_micros:{description:"Time the complete generation was durably sealed.",format:"int64",type:["integer","null"]},snapshot_content_identity:{description:"Content identity of the complete source snapshot.",type:["string","null"]},source_reference:{description:"Exact source reference captured by the sealed generation.",type:["string","null"]},source_revision:{description:"Exact source revision captured by the sealed generation.",type:["string","null"]},staleness_state:{anyOf:[{$ref:"#/$defs/CodeIndexStalenessStateV1"},{type:"null"}],description:"Staleness-ladder state from the last scheduler execution. `fresh` means\nthe scheduler most recently observed a fresh source; the status read\ndoes not probe the worktree to revalidate that observation."},worktree_id:{description:"Stable worktree identity resolved by the scheduler.",type:["string","null"]},worktree_root:{description:"Display path of the mounted worktree root.",type:"string"}},required:["worktree_root","coverage"],type:"object"},LcmConvergenceStateV1:gY,LcmConvergenceV1:g1,LcmDoctorProjectionStateV1:g0,LcmDoctorProjectionV1:g2,NativeHostIdentityV1:{enum:["claude_code","cursor_desktop","cursor_cloud","codex","hermes","kiro","cline","roo_code","kilo","kimi_code","open_code","pi","factory_droid"],type:"string"},ProjectStatusV1:{additionalProperties:!1,properties:{active_branch:{type:["string","null"]},branch_diagnostics:!0,branch_drifted:{type:["boolean","null"]},branch_mismatch:{anyOf:[{$ref:"#/$defs/StatusBranchMismatchV1"},{type:"null"}]},branch_resolution:{type:["string","null"]},branch_warnings:{items:{type:"string"},type:["array","null"]},code_index_freshness:{$ref:"#/$defs/StatusCodeIndexFreshnessV1"},code_index_freshness_warning:{type:["string","null"]},current_branch:{type:["string","null"]},git_staleness:{anyOf:[{$ref:"#/$defs/StatusGitStalenessV1"},{type:"null"}]},github_source:{description:"The checkout's GitHub source as its advisory owner observed it."},graph_statistics:{description:"The exact-scope sealed-generation census."},hook_replay:{$ref:"#/$defs/StatusHookReplayV1",description:"The daemon's drain of this project's hook spools, as its last sweep\nleft it."},live_branch:{type:["string","null"]},memory:{$ref:"#/$defs/StatusMemoryV1"},parent_branch:{type:["string","null"]},project_root:{type:"string"},reset_required_stores:{description:"Registered stores this binary serves only as a typed reset-required\nrefusal, each with the command that resets it.",items:{$ref:"#/$defs/StoreResetRequiredV1"},type:"array"},retrieval_serving:{anyOf:[{$ref:"#/$defs/StatusRetrievalServingV1"},{type:"null"}],description:"Whether exact-scope retrieval can serve, when the census authority is\nattached."},schema_convergence:{$ref:"#/$defs/StatusSchemaConvergenceV1"},scope_prefix:{type:["string","null"]},server:{description:"The serving MCP server's request counters."},serving_branch:{type:["string","null"]},session_git_evidence:{$ref:"#/$defs/StatusSessionGitEvidenceV1",description:"The session↔Git evidence `tracedecay_sessions_for` and the\nbranch/commit session filters read."},session_history_catch_up:!0,session_ingest:!0,session_projection:{$ref:"#/$defs/LcmDoctorProjectionV1",description:"The project session projection's serving state, the same reading\n`tracedecay_lcm_doctor` reports."},storage_health:!0,tracked_branch_count:{format:"uint",minimum:0,type:["integer","null"]},wait:{anyOf:[{$ref:"#/$defs/CodeIndexReadinessWaitOutcomeV1"},{type:"null"}]}},required:["project_root","graph_statistics","memory","schema_convergence","reset_required_stores","code_index_freshness","github_source","session_projection","session_git_evidence","hook_replay"],type:"object"},ResidentMemoryHolderReadV1:{description:"One worktree holding a retained owner's memory, and what it holds: a\ngeneration id, or an LSP session id.",properties:{holding:{type:"string"},worktree_id:{type:"string"}},required:["worktree_id","holding"],type:"object"},RetrievalWorkerStatusV1:vO,SchemaConvergenceFindingV1:vU,SchemaConvergenceProgressV1:vH,SchemaConvergenceStageV1:vG,SchemaConvergenceStateV1:vB,StatusAdmissionV1:{additionalProperties:!1,properties:{project_admitted:{type:"boolean"},project_root:{type:"string"},scope_prefix:{type:["string","null"]},server:{description:"The serving MCP server's request counters."}},required:["project_admitted","project_root"],type:"object"},StatusBranchMismatchV1:{additionalProperties:!1,properties:{git_branch:{type:["string","null"]},indexed_branch:{type:["string","null"]},serving_branch:{type:["string","null"]}},type:"object"},StatusCodeIndexFreshnessV1:{description:"The code-index freshness of the served worktree, labeled the way readiness\nwaits report their last state.",oneOf:[{additionalProperties:!1,properties:{status:{const:"current",type:"string"},worktree:{$ref:"#/$defs/CodeIndexWorktreeFreshnessV1"}},required:["status","worktree"],type:"object"},{additionalProperties:!1,properties:{status:{const:"stale",type:"string"},worktree:{$ref:"#/$defs/CodeIndexWorktreeFreshnessV1"}},required:["status","worktree"],type:"object"},{additionalProperties:!1,properties:{status:{const:"restoring",type:"string"},worktree:{$ref:"#/$defs/CodeIndexWorktreeFreshnessV1"}},required:["status","worktree"],type:"object"},{additionalProperties:!1,properties:{status:{const:"warming",type:"string"},worktree:{$ref:"#/$defs/CodeIndexWorktreeFreshnessV1"}},required:["status","worktree"],type:"object"},{additionalProperties:!1,properties:{status:{const:"parked",type:"string"},worktree:{$ref:"#/$defs/CodeIndexWorktreeFreshnessV1"}},required:["status","worktree"],type:"object"},{additionalProperties:!1,description:"The last code-index mount failed; explicit reconciliation can retry it.",properties:{message:{type:"string"},remediation:{type:"string"},status:{const:"mount_failed",type:"string"}},required:["status","message","remediation"],type:"object"},{additionalProperties:!1,properties:{reason:{type:"string"},status:{const:"unavailable",type:"string"}},required:["status","reason"],type:"object"}]},StatusGitStalenessUnavailableV1:{oneOf:[{const:"no_sealed_generation",description:"No complete generation has sealed for the worktree yet.",type:"string"},{const:"sealed_generation_has_no_commit",description:"The sealed generation captured no commit, as in an unborn repository.",type:"string"},{const:"git_head_unreadable",description:"The worktree's checked-out commit could not be read.",type:"string"}]},StatusGitStalenessV1:{description:"The sealed generation's Git watermark, the commit its source snapshot was\ncaptured from, against the worktree's checked-out commit.",oneOf:[{additionalProperties:!1,description:"HEAD is the commit the sealed generation was built from.",properties:{status:{const:"current",type:"string"},watermark:{type:"string"}},required:["status","watermark"],type:"object"},{additionalProperties:!1,description:"HEAD has moved off the commit the sealed generation was built from.",properties:{head:{type:"string"},status:{const:"stale",type:"string"},watermark:{type:"string"}},required:["status","watermark","head"],type:"object"},{additionalProperties:!1,description:"No watermark or no HEAD to compare it with.",properties:{reason:{$ref:"#/$defs/StatusGitStalenessUnavailableV1"},status:{const:"unavailable",type:"string"}},required:["status","reason"],type:"object"}]},StatusHookReplayFailureV1:{additionalProperties:!1,description:"One hook spool the last replay sweep could not drain.",properties:{cause:{type:"string"},host:{$ref:"#/$defs/NativeHostIdentityV1"},spool:{$ref:"#/$defs/StatusHookReplaySpoolV1"}},required:["host","spool","cause"],type:"object"},StatusHookReplaySpoolV1:{oneOf:[{const:"records",description:"The host's spooled hook events.",type:"string"},{const:"delivery_receipts",description:"The host's hook delivery receipts.",type:"string"},{const:"pending_work",description:"The producer work the host's admission ledger still owes.",type:"string"}]},StatusHookReplayV1:{description:"The daemon's hook spool drain for one project.",oneOf:[{additionalProperties:!1,description:"No replay consumer drains this project's hook spools in this daemon.",properties:{status:{const:"unowned",type:"string"}},required:["status"],type:"object"},{additionalProperties:!1,description:"The replay consumer has not finished its first sweep.",properties:{status:{const:"starting",type:"string"}},required:["status"],type:"object"},{additionalProperties:!1,description:"The last sweep drained every hook spool it found.",properties:{status:{const:"drained",type:"string"}},required:["status"],type:"object"},{additionalProperties:!1,description:"The spools drained, but producer work they admitted waits for the\nproject's hook orchestrator to mount. The work stays owed and runs\nonce it does; nothing has failed.",properties:{status:{const:"waiting",type:"string"},waiting:{items:{$ref:"#/$defs/StatusHookReplayFailureV1"},type:"array"}},required:["status","waiting"],type:"object"},{additionalProperties:!1,description:"The last sweep could not drain these spools. Their records stay\ndurable and the next sweep retries them.",properties:{failures:{items:{$ref:"#/$defs/StatusHookReplayFailureV1"},type:"array"},status:{const:"failed",type:"string"}},required:["status","failures"],type:"object"}]},StatusMemoryOwnerV1:{additionalProperties:!1,properties:{bytes:{format:"uint64",minimum:0,type:["integer","null"]},content_digest:{type:["string","null"]},holders:{items:{$ref:"#/$defs/ResidentMemoryHolderReadV1"},type:"array"},idle_seconds:{format:"uint64",minimum:0,type:"integer"},kind:{type:"string"},measured:{type:"boolean"},project_id:{type:"string"},protected:{type:"boolean"}},required:["project_id","kind","holders","measured","idle_seconds","protected"],type:"object"},StatusMemoryPressureV1:{enum:["unobserved","nominal","over_budget"],type:"string"},StatusMemoryReservationV1:{additionalProperties:!1,properties:{bytes:{format:"uint64",minimum:0,type:"integer"},component:{type:"string"}},required:["component","bytes"],type:"object"},StatusMemoryV1:{additionalProperties:!1,description:"The daemon's memory admission and resident accounting as one project sees it.",properties:{high_watermark_bytes:{format:"uint64",minimum:0,type:"integer"},idle_window_seconds:{format:"uint64",minimum:0,type:"integer"},limit_bytes:{format:"uint64",minimum:0,type:"integer"},low_watermark_bytes:{format:"uint64",minimum:0,type:"integer"},owners:{description:"This project's retained owners; other projects' belong to the\ndaemon-wide Doctor inventory.",items:{$ref:"#/$defs/StatusMemoryOwnerV1"},type:"array"},psi_some_avg10:{format:"double",type:["number","null"]},reservations:{description:"`reserved_bytes` per component, largest first.",items:{$ref:"#/$defs/StatusMemoryReservationV1"},type:"array"},reserved_bytes:{description:"Bytes admitted work has reserved daemon-wide: the admission model of\nin-flight builds and decodes, not a measurement.",format:"uint64",minimum:0,type:"integer"},resident_bytes:{description:"Observed admission occupancy: anonymous/shared process pages plus swap,\nconstrained by shared cgroup headroom. This is not raw process RSS.",format:"uint64",minimum:0,type:["integer","null"]},retained_bytes:{format:"uint64",minimum:0,type:"integer"},shed_order:{items:{type:"string"},type:"array"},status:{$ref:"#/$defs/StatusMemoryPressureV1"},unattributed_bytes:{description:"Raw process RSS from the last successful canonical sample minus the\ndaemon-wide measured `retained_bytes`, saturating at zero. Unlike\n`resident_bytes`, this excludes swap and shared cgroup pressure. Work in\nflight, runtime allocations, SQLite page caches, and allocator-held pages\ncan contribute. `None` until a resident sample has been published.",format:"uint64",minimum:0,type:["integer","null"]},unmeasured_owners:{format:"uint",minimum:0,type:"integer"}},required:["status","limit_bytes","high_watermark_bytes","low_watermark_bytes","idle_window_seconds","shed_order","retained_bytes","unmeasured_owners","reserved_bytes","reservations","owners"],type:"object"},StatusRetrievalServingV1:{oneOf:[{additionalProperties:!1,description:"A sealed complete generation serves the exact worktree. The ages tell a\nroutine rebuild window from a wedged route.",properties:{condition:{anyOf:[{$ref:"#/$defs/StatusServingConditionV1"},{type:"null"}]},freshness:{$ref:"#/$defs/StatusServingFreshnessV1"},last_reconcile_age_seconds:{format:"int64",type:["integer","null"]},seated_generation_age_seconds:{format:"int64",type:["integer","null"]},status:{const:"serving",type:"string"}},required:["status","freshness"],type:"object"},{additionalProperties:!1,description:"The census answered and nothing is servable yet.",properties:{reason:{type:"string"},status:{const:"unavailable",type:"string"}},required:["status","reason"],type:"object"}]},StatusSchemaConvergenceStateV1:{enum:["completed","in_progress","degraded"],type:"string"},StatusSchemaConvergenceV1:{additionalProperties:!1,properties:{findings:{items:{$ref:"#/$defs/SchemaConvergenceFindingV1"},type:"array"},status:{$ref:"#/$defs/StatusSchemaConvergenceStateV1"}},required:["status","findings"],type:"object"},StatusServingConditionV1:{enum:["artifact_restore","source_verification","rebuilding","stalled"],type:"string"},StatusServingFreshnessV1:{enum:["current","restoring","last_complete_stale","unknown"],type:"string"},StatusSessionGitEvidenceUnavailableV1:{oneOf:[{const:"session_store_denied",description:"This request holds no project session store.",type:"string"},{const:"read_failed",description:"The session store refused the evidence read.",type:"string"}]},StatusSessionGitEvidenceV1:{description:"The project's session↔Git evidence generation.",oneOf:[{additionalProperties:!1,description:"A convergence pass installed this generation.",properties:{backfill_watermark:{format:"int64",type:["integer","null"]},commit_count:{format:"uint64",minimum:0,type:"integer"},generation:{type:"string"},source_watermark:{type:"string"},span_count:{format:"uint64",minimum:0,type:"integer"},status:{const:"recorded",type:"string"}},required:["status","generation","source_watermark","span_count","commit_count"],type:"object"},{additionalProperties:!1,description:"No convergence pass has written evidence for this project yet.",properties:{backfill_watermark:{format:"int64",type:["integer","null"]},status:{const:"unrecorded",type:"string"}},required:["status"],type:"object"},{additionalProperties:!1,description:"The evidence could not be read.",properties:{message:{type:["string","null"]},reason:{$ref:"#/$defs/StatusSessionGitEvidenceUnavailableV1"},status:{const:"unavailable",type:"string"}},required:["status","reason"],type:"object"}]},StoreResetRequiredV1:{description:"A persisted store the daemon keeps mounted in a typed reset-required state\ninstead of refusing to serve: every read against it returns the typed\nrefusal, stores that admit keep serving, and `remedy` is the exact command\nthe operator runs to reset it.",properties:{authority:{type:"string"},found_version:{format:"int64",type:["integer","null"]},reason:{type:"string"},remedy:{type:"string"},required_version:{format:"int64",type:["integer","null"]},store:{type:"string"}},required:["store","authority","reason","remedy"],type:"object"}},$schema:"https://json-schema.org/draft/2020-12/schema",anyOf:[{$ref:"#/$defs/StatusAdmissionV1"},{$ref:"#/$defs/ProjectStatusV1"}],description:"`tracedecay_status` for an `admission_only` read, or the project's status.",title:"StatusResultV1"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{include_details:{default:!1,type:"boolean"}},title:"StorageStatusPrimitiveRequest",type:"object"},{$defs:{StorageStatusHistoryPointV1:{additionalProperties:!1,properties:{database_bytes:{format:"uint64",minimum:0,type:"integer"},observed_at:{format:"int64",type:"integer"}},required:["observed_at","database_bytes"],type:"object"}},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{database_bytes:{format:"uint64",minimum:0,type:["integer","null"]},details:{items:{type:"string"},type:"array"},freelist_pages:{default:null,format:"uint64",minimum:0,type:["integer","null"]},history:{default:[],items:{$ref:"#/$defs/StorageStatusHistoryPointV1"},type:"array"},history_coverage:{default:null,type:["string","null"]},page_count:{default:null,format:"uint64",minimum:0,type:["integer","null"]},page_size_bytes:{default:null,format:"uint32",minimum:0,type:["integer","null"]},project_id:{default:null,type:["string","null"]},read_only:{type:"boolean"},status:{type:"string"},store_path:{default:null,type:["string","null"]}},required:["status","read_only","details"],title:"StorageStatusPrimitiveResult",type:"object"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"Exact public input accepted by `tracedecay_str_replace`.",properties:{dry_run:{default:!1,type:"boolean"},expected_state:{description:"Exact `preview_digest`/`expected_state` returned by the dry run. Apply\nre-resolves the typed plan and rejects any candidate-state drift.",type:["string","null"]},idempotency_key:{type:["string","null"]},new_str:{type:"string"},old_str:{type:"string"},path:{type:"string"},verify:{default:!1,type:"boolean"}},required:["path","old_str","new_str"],title:"StrReplaceSurfaceRequestV1",type:"object"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{file:{description:"Source file path to find test coverage for.",type:["string","null"]},node_id:{description:"Specific node ID to find test coverage for (alternative to file).",type:["string","null"]}},title:"TestMapSurfaceRequestV1",type:"object"},{$defs:{CodeIndexBuildBlockedReasonV1:hv,CodeIndexConvergenceParkedV1:hb,CodeIndexStalenessStateV1:hw,PrimitiveFreshnessStateV1:_K,PrimitiveIndexingStateV1:_J,PrimitiveSearchFreshnessV1:_Y,TestMapSourceCoverageV1:{additionalProperties:!1,properties:{source_file:{type:"string"},source_id:{type:"string"},source_line:{format:"uint32",minimum:0,type:"integer"},source_name:{type:"string"},tests:{items:{$ref:"#/$defs/TestMapTestV1"},type:"array"}},required:["source_name","source_id","source_file","source_line","tests"],type:"object"},TestMapTestV1:{additionalProperties:!1,properties:{attribution_depth:{format:"uint32",minimum:0,type:"integer"},test_file:{type:"string"},test_line:{format:"uint32",minimum:0,type:"integer"},test_name:{type:"string"}},required:["test_name","test_file","test_line","attribution_depth"],type:"object"},TestMapUncoveredV1:{additionalProperties:!1,properties:{file:{type:"string"},id:{type:"string"},line:{format:"uint32",minimum:0,type:"integer"},name:{type:"string"}},required:["id","name","file","line"],type:"object"}},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{coverage:{items:{$ref:"#/$defs/TestMapSourceCoverageV1"},type:"array"},covered_symbols:{format:"uint64",minimum:0,type:"integer"},freshness:{anyOf:[{$ref:"#/$defs/PrimitiveSearchFreshnessV1"},{type:"null"}],description:"The worktree verdict a served graph read opens with."},test_files:{items:{type:"string"},type:"array"},uncovered:{items:{$ref:"#/$defs/TestMapUncoveredV1"},type:"array"},uncovered_symbols:{format:"uint64",minimum:0,type:"integer"}},required:["covered_symbols","uncovered_symbols","test_files","coverage","uncovered"],title:"TestMapResultV1",type:"object"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"The admitted project selects the retained managed test run, so this exact\nrequest intentionally carries no caller-selectable scope or identity.",title:"TestResultsSurfaceRequestV1",type:"object"},{$defs:{CancellationObservation:ha,CancellationStage:hs,CodeGenerationId:hg,CommitId:hI,Deadline:yb,OperationBudgetUsage:_F,OperationReceipt:_L,OperationTermination:_U,TestResultProjectionV1:{additionalProperties:!1,description:"One result emitted by the daemon-managed test-run authority.",properties:{passed:{type:"boolean"},test:{type:"string"}},required:["test","passed"],type:"object"},UtcMicros:bX},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"Exact retained managed-test-run projection returned by `test_results`.\n\nThe daemon resolves the admitted project, reads its newest durable managed\nrun, and verifies that the run's head and code generation are current\nbefore it serializes this payload. `result_offset` and `available_results`\nretain the authoritative page position. The outcome fields (`finished_at`,\n`exit_code`, the counts, `termination`, `receipt`) are present only after\nthe managed run terminates.",properties:{available_results:{format:"uint64",minimum:0,type:"integer"},code_generation_id:{anyOf:[{$ref:"#/$defs/CodeGenerationId"},{type:"null"}]},completed:{format:"uint64",minimum:0,type:"integer"},exit_code:{format:"int32",type:["integer","null"]},failed:{format:"uint64",minimum:0,type:["integer","null"]},finished_at:{anyOf:[{$ref:"#/$defs/UtcMicros"},{type:"null"}]},head_commit_id:{anyOf:[{$ref:"#/$defs/CommitId"},{type:"null"}]},ignored:{format:"uint64",minimum:0,type:["integer","null"]},operation_id:{type:"string"},passed:{format:"uint64",minimum:0,type:["integer","null"]},receipt:{anyOf:[{$ref:"#/$defs/OperationReceipt"},{type:"null"}]},result_offset:{format:"uint64",minimum:0,type:"integer"},results:{items:{$ref:"#/$defs/TestResultProjectionV1"},type:"array"},session_id:{description:"The session the run was requested by; null when the request named none.",type:["string","null"]},started_at:{$ref:"#/$defs/UtcMicros"},termination:{anyOf:[{$ref:"#/$defs/OperationTermination"},{type:"null"}]},total:{format:"uint64",minimum:0,type:["integer","null"]}},required:["operation_id","started_at","results","completed","result_offset","available_results"],title:"TestResultsResultV1",type:"object"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{include_tested:{description:"Include already-tested functions in results (default: false).",type:["boolean","null"]},limit:{description:"Maximum number of results to return (default: 20, at most 200).",format:"uint32",minimum:0,type:["integer","null"]},path:{description:"Filter to files under this directory path.",type:["string","null"]}},title:"TestRiskSurfaceRequestV1",type:"object"},{$defs:{CodeIndexBuildBlockedReasonV1:hv,CodeIndexConvergenceParkedV1:hb,CodeIndexStalenessStateV1:hw,ComplexityAnalysisV1:hj,PrimitiveFreshnessStateV1:_K,PrimitiveIndexingStateV1:_J,PrimitiveSearchFreshnessV1:_Y,TestAttributionMethodV1:{description:"How a source symbol's static test evidence was attributed.",enum:["none","direct_unit","closure"],type:"string"},TestRiskAttributionSummaryV1:{additionalProperties:!1,properties:{cli_entry_attributed:{format:"uint64",minimum:0,type:"integer"},closure_attributed:{format:"uint64",minimum:0,type:"integer"},depth:{format:"uint64",minimum:0,type:"integer"},direct_unit_attributed:{format:"uint64",minimum:0,type:"integer"},public_api_attributed:{format:"uint64",minimum:0,type:"integer"},total_attributed:{format:"uint64",minimum:0,type:"integer"},trait_resolved_attributed:{format:"uint64",minimum:0,type:"integer"}},required:["depth","direct_unit_attributed","closure_attributed","trait_resolved_attributed","public_api_attributed","cli_entry_attributed","total_attributed"],type:"object"},TestRiskBucketSummaryV1:{additionalProperties:!1,properties:{attributed:{format:"uint64",minimum:0,type:"integer"},excluded:{format:"uint64",minimum:0,type:"integer"},orphan_entry:{format:"uint64",minimum:0,type:"integer"},reachable_unattributed:{format:"uint64",minimum:0,type:"integer"}},required:["attributed","reachable_unattributed","orphan_entry","excluded"],type:"object"},TestRiskConfidenceV1:{description:"What the reported coverage percentage bounds.",enum:["static_lower_bound"],type:"string"},TestRiskEntryV1:{additionalProperties:!1,properties:{attribution_depth:{format:"uint64",minimum:0,type:["integer","null"]},attribution_method:{$ref:"#/$defs/TestAttributionMethodV1"},churn:{format:"uint64",minimum:0,type:"integer"},complexity:{description:"`None` when `complexity_analysis` reports the bounded walk did not\ncover the body; `risk` then weighs the lower-bound counters.",format:"uint32",minimum:0,type:["integer","null"]},complexity_analysis:{$ref:"#/$defs/ComplexityAnalysisV1"},fan_in:{format:"uint64",minimum:0,type:"integer"},file:{type:"string"},has_test:{type:"boolean"},id:{type:"string"},line:{format:"uint32",minimum:0,type:"integer"},name:{type:"string"},risk:{format:"double",type:"number"}},required:["id","name","file","line","complexity_analysis","fan_in","has_test","attribution_method","risk","churn"],type:"object"},TestRiskSummaryV1:{additionalProperties:!1,properties:{attribution:{$ref:"#/$defs/TestRiskAttributionSummaryV1"},buckets:{$ref:"#/$defs/TestRiskBucketSummaryV1"},confidence:{$ref:"#/$defs/TestRiskConfidenceV1"},confidence_note:{type:"string"},coverage_pct:{format:"double",type:"number"},skipped:{format:"uint64",minimum:0,type:"integer"},tested:{format:"uint64",minimum:0,type:"integer"},top_risk_unattributed:{type:"string"},top_risk_untested:{type:"string"},total_functions:{format:"uint64",minimum:0,type:"integer"}},required:["total_functions","tested","skipped","coverage_pct","top_risk_untested","top_risk_unattributed","attribution","buckets","confidence","confidence_note"],type:"object"}},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{freshness:{anyOf:[{$ref:"#/$defs/PrimitiveSearchFreshnessV1"},{type:"null"}],description:"The worktree verdict a served graph read opens with."},risks:{items:{$ref:"#/$defs/TestRiskEntryV1"},type:"array"},summary:{$ref:"#/$defs/TestRiskSummaryV1"}},required:["risks","summary"],title:"TestRiskResultV1",type:"object"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{kinds:{items:{type:"string"},type:["array","null"]},limit:{format:"uint32",minimum:0,type:["integer","null"]},path:{type:["string","null"]}},title:"TodosSurfaceRequestV1",type:"object"},{$defs:{CodeIndexBuildBlockedReasonV1:hv,CodeIndexConvergenceParkedV1:hb,CodeIndexStalenessStateV1:hw,PrimitiveFreshnessStateV1:_K,PrimitiveIndexingStateV1:_J,PrimitiveSearchFreshnessV1:_Y,TodoMarkerV1:{additionalProperties:!1,properties:{enclosing:{type:["string","null"]},file:{type:"string"},kind:{type:"string"},line:{format:"uint32",minimum:0,type:"integer"},text:{type:"string"}},required:["kind","file","line","text"],type:"object"}},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{by_kind:{additionalProperties:{format:"uint64",minimum:0,type:"integer"},type:"object"},freshness:{anyOf:[{$ref:"#/$defs/PrimitiveSearchFreshnessV1"},{type:"null"}],description:"The worktree verdict a served graph read opens with."},markers:{items:{$ref:"#/$defs/TodoMarkerV1"},type:"array"},match_count:{format:"uint",minimum:0,type:"integer"}},required:["match_count","by_kind","markers"],title:"TodosResultV1",type:"object"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{ecosystem:{description:"Filter findings to one ecosystem ('rust' or 'typescript'). Every\necosystem section is still reported, so the scope of the answer stays\nvisible.",type:["string","null"]},limit:{description:"Maximum unmounted files to return (default: 200, max: 2000). The\nresponse always states the true total and how many rows were omitted.",format:"uint32",minimum:0,type:["integer","null"]},path:{description:"Filter findings to files under this directory path (e.g. 'src/daemon').\nThe whole project is still walked, reachability is not a per-directory\nquestion.",type:["string","null"]}},title:"UnmountedFilesSurfaceRequestV1",type:"object"},{$defs:{CodeIndexBuildBlockedReasonV1:hv,CodeIndexConvergenceParkedV1:hb,CodeIndexStalenessStateV1:hw,PrimitiveFreshnessStateV1:_K,PrimitiveIndexingStateV1:_J,PrimitiveSearchFreshnessV1:_Y,UnmountedEcosystemStatusV1:{description:"Whether an ecosystem was audited, absent, or recognised but unmodelled.",enum:["audited","partial","not_present","unsupported"],type:"string"},UnmountedEcosystemV1:{additionalProperties:!1,properties:{blind_spots:{items:{type:"string"},type:"array"},ecosystem:{type:"string"},entry_point_count:{format:"uint64",minimum:0,type:"integer"},excluded_path_globs:{items:{type:"string"},type:"array"},mounted_file_count:{format:"uint64",minimum:0,type:"integer"},note:{type:["string","null"]},package_count:{format:"uint64",minimum:0,type:"integer"},scanned_file_count:{format:"uint64",minimum:0,type:"integer"},status:{$ref:"#/$defs/UnmountedEcosystemStatusV1"},unclaimed_file_count:{format:"uint64",minimum:0,type:"integer"},unmounted_file_count:{format:"uint64",minimum:0,type:"integer"},verdict:{type:"string"}},required:["ecosystem","status","package_count","entry_point_count","scanned_file_count","mounted_file_count","unclaimed_file_count","unmounted_file_count","verdict","blind_spots","excluded_path_globs"],type:"object"},UnmountedFileV1:{additionalProperties:!1,properties:{ecosystem:{type:"string"},file:{type:"string"},manifest:{type:"string"},nearest_mounted_parent:{type:["string","null"]},package:{type:"string"},suggested_declaration:{type:["string","null"]}},required:["file","ecosystem","package","manifest"],type:"object"}},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{complete:{type:"boolean"},ecosystem:{type:["string","null"]},ecosystems:{items:{$ref:"#/$defs/UnmountedEcosystemV1"},type:"array"},freshness:{anyOf:[{$ref:"#/$defs/PrimitiveSearchFreshnessV1"},{type:"null"}],description:"The worktree verdict a served graph read opens with."},limit:{format:"uint64",minimum:0,type:"integer"},omitted_count:{format:"uint64",minimum:0,type:"integer"},path:{type:["string","null"]},returned_count:{format:"uint64",minimum:0,type:"integer"},unmounted:{items:{$ref:"#/$defs/UnmountedFileV1"},type:"array"},unmounted_file_count:{format:"uint64",minimum:0,type:"integer"}},required:["unmounted_file_count","returned_count","omitted_count","complete","ecosystems","limit","unmounted"],title:"UnmountedFilesResultV1",type:"object"},{$defs:{UnsafePatternKindV1:bJ},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{exclude_tests:{description:"When true, skips files whose path looks like a test (default: false).",type:["boolean","null"]},kinds:{description:"Subset of patterns to search. Default (or an empty list): every kind.",items:{$ref:"#/$defs/UnsafePatternKindV1"},type:["array","null"]},limit:{description:"Maximum number of matches to return (default: 200, max: 2000).",format:"uint32",minimum:0,type:["integer","null"]},path:{description:"Filter to files under this directory (relative to project root).",type:["string","null"]}},title:"UnsafePatternsSurfaceRequestV1",type:"object"},{$defs:{CodeIndexBuildBlockedReasonV1:hv,CodeIndexConvergenceParkedV1:hb,CodeIndexStalenessStateV1:hw,CoverageCompleteness:ym,PrimitiveFreshnessStateV1:_K,PrimitiveIndexingStateV1:_J,PrimitiveSearchFreshnessV1:_Y,UnsafePatternFileOmissionV1:{additionalProperties:!1,description:"One scanned file whose sites are not reported as verified matches.",properties:{cause:{$ref:"#/$defs/UnsafePatternOmissionCauseV1"},file:{type:"string"},reason:{$ref:"#/$defs/UnsafePatternOmissionReasonV1"},withheld_match_count:{description:"Sites of the requested kinds found in the file and withheld.",format:"uint64",minimum:0,type:"integer"}},required:["file","reason","cause","withheld_match_count"],type:"object"},UnsafePatternKindV1:bJ,UnsafePatternMatchV1:{additionalProperties:!1,properties:{enclosing:{type:["string","null"]},file:{type:"string"},in_test:{type:"boolean"},kind:{$ref:"#/$defs/UnsafePatternKindV1"},line:{format:"uint32",minimum:0,type:"integer"},snippet:{type:"string"}},required:["kind","file","line","snippet","in_test"],type:"object"},UnsafePatternOmissionCauseV1:{description:"What prevented the file from being classified.",oneOf:[{const:"syntax_errors",description:"The Rust grammar parsed the file with error nodes. Valid Rust it only\npartly parses (heavy `macro_rules!`) lands here.",type:"string"}]},UnsafePatternOmissionReasonV1:{description:"Why a file's risky-pattern sites are withheld from the verified result.",oneOf:[{const:"test_scope_unclassified",description:"Whether a site is test-only cannot be decided for this file.",type:"string"}]}},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{by_kind:{additionalProperties:{format:"uint64",minimum:0,type:"integer"},description:"Match count per pattern kind, keyed by its wire spelling.",type:"object"},coverage:{$ref:"#/$defs/CoverageCompleteness",description:"`partial` exactly when `omissions` names a file whose sites are withheld."},freshness:{anyOf:[{$ref:"#/$defs/PrimitiveSearchFreshnessV1"},{type:"null"}],description:"The worktree verdict a served graph read opens with."},match_count:{format:"uint64",minimum:0,type:"integer"},matches:{items:{$ref:"#/$defs/UnsafePatternMatchV1"},type:"array"},omissions:{items:{$ref:"#/$defs/UnsafePatternFileOmissionV1"},type:"array"}},required:["match_count","by_kind","matches","coverage","omissions"],title:"UnsafePatternsResultV1",type:"object"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{agent_label:{type:["string","null"]},branch:{type:["string","null"]},commit:{type:["string","null"]},limit:{format:"uint64",minimum:0,type:["integer","null"]},run_id:{type:["string","null"]},session_id:{type:["string","null"]},worktree:{type:["string","null"]}},title:"WorkflowsRequestV1",type:"object"},{$defs:{GitScopeV1:gA,RetainedErrorV1:vR,RetainedOutcomeStatusV1:vq,WorkflowAgentV1:{additionalProperties:!1,properties:{agent_id:{type:"string"},agent_label:{type:"string"},agent_session_id:{type:["string","null"]},ended_ts:{format:"int64",type:["integer","null"]},model:{type:["string","null"]},phase:{type:["string","null"]},run_id:{type:"string"},started_ts:{format:"int64",type:["integer","null"]},status:{$ref:"#/$defs/WorkflowStatusV1"},tokens:{format:"int64",type:"integer"},transcript_path:{type:["string","null"]}},required:["run_id","agent_label","agent_id","status"],type:"object"},WorkflowCoverageV1:{enum:["complete","conclusive","bounded_prefix"],type:"string"},WorkflowQueryModeV1:{enum:["session","git_scope","run","agent"],type:"string"},WorkflowRunV1:{additionalProperties:!1,properties:{agent_count:{format:"int64",type:"integer"},description:{type:["string","null"]},ended_ts:{format:"int64",type:["integer","null"]},name:{type:["string","null"]},parent_session_id:{type:"string"},phase_json:{type:["string","null"]},result_summary:{type:["string","null"]},run_id:{type:"string"},started_ts:{format:"int64",type:["integer","null"]},status:{$ref:"#/$defs/WorkflowStatusV1"}},required:["run_id","parent_session_id","status"],type:"object"},WorkflowStatusV1:{enum:["running","completed","failed","unknown"],type:"string"}},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{agent:{anyOf:[{$ref:"#/$defs/WorkflowAgentV1"},{type:"null"}]},agent_count:{format:"int64",type:["integer","null"]},agent_label:{type:["string","null"]},agents:{items:{$ref:"#/$defs/WorkflowAgentV1"},type:["array","null"]},agents_complete:{type:["boolean","null"]},agents_coverage:{anyOf:[{$ref:"#/$defs/WorkflowCoverageV1"},{type:"null"}]},agents_returned:{format:"uint",minimum:0,type:["integer","null"]},count:{format:"uint",minimum:0,type:["integer","null"]},error:{anyOf:[{$ref:"#/$defs/RetainedErrorV1"},{type:"null"}]},found:{type:["boolean","null"]},git_filter:{anyOf:[{$ref:"#/$defs/GitScopeV1"},{type:"null"}]},lookup_complete:{type:["boolean","null"]},lookup_coverage:{anyOf:[{$ref:"#/$defs/WorkflowCoverageV1"},{type:"null"}]},message:{type:["string","null"]},mode:{anyOf:[{$ref:"#/$defs/WorkflowQueryModeV1"},{type:"null"}]},run:{anyOf:[{$ref:"#/$defs/WorkflowRunV1"},{type:"null"}]},run_id:{type:["string","null"]},runs:{items:{$ref:"#/$defs/WorkflowRunV1"},type:["array","null"]},session_id:{type:["string","null"]},status:{$ref:"#/$defs/RetainedOutcomeStatusV1"}},required:["status"],title:"WorkflowsResultV1",type:"object"},{$defs:{ManifestDigest:_p,NativeWorktreeTargetV1:_A,ProjectId:_6,RepositoryId:v$,ScopeSetId:v1,ScopeSetRevision:v0,WorktreeId:SJ},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"Confirmation names the exact inspection digest, not a worktree id alone.",properties:{inspection_digest:{$ref:"#/$defs/ManifestDigest"},scope_set_digest:{$ref:"#/$defs/ManifestDigest"},scope_set_id:{$ref:"#/$defs/ScopeSetId"},scope_set_revision:{$ref:"#/$defs/ScopeSetRevision"},target:{$ref:"#/$defs/NativeWorktreeTargetV1"}},required:["scope_set_id","scope_set_revision","scope_set_digest","target","inspection_digest"],title:"WorktreeCleanupConfirmRequestV1",type:"object"},{$defs:{ManifestDigest:_p,NativeWorktreeTargetV1:_A,ProjectId:_6,RepositoryId:v$,ScopeSetId:v1,ScopeSetRevision:v0,WorktreeId:SJ},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{scope_set_digest:{$ref:"#/$defs/ManifestDigest"},scope_set_id:{$ref:"#/$defs/ScopeSetId"},scope_set_revision:{$ref:"#/$defs/ScopeSetRevision"},target:{$ref:"#/$defs/NativeWorktreeTargetV1"}},required:["scope_set_id","scope_set_revision","scope_set_digest","target"],title:"WorktreeCleanupInspectRequestV1",type:"object"},{$defs:{ManifestDigest:_p,NativeWorktreeTargetV1:_A,ProjectId:_6,RepositoryId:v$,ScopeSetId:v1,ScopeSetRevision:v0,WorktreeId:SJ},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{confirmation_digest:{$ref:"#/$defs/ManifestDigest"},scope_set_digest:{$ref:"#/$defs/ManifestDigest"},scope_set_id:{$ref:"#/$defs/ScopeSetId"},scope_set_revision:{$ref:"#/$defs/ScopeSetRevision"},target:{$ref:"#/$defs/NativeWorktreeTargetV1"}},required:["scope_set_id","scope_set_revision","scope_set_digest","target","confirmation_digest"],title:"WorktreeCleanupReconcileRequestV1",type:"object"},{$defs:{ManifestDigest:_p,NativeWorktreeTargetV1:_A,ProjectId:_6,RepositoryId:v$,ScopeSetId:v1,ScopeSetRevision:v0,UtcMicros:bX,WorktreeId:SJ},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"Removal carries both proofs so a stale confirmation cannot be replayed\nagainst another inspection of the same opaque worktree identity.",properties:{confirmation_digest:{$ref:"#/$defs/ManifestDigest"},confirmed_at:{$ref:"#/$defs/UtcMicros"},inspection_digest:{$ref:"#/$defs/ManifestDigest"},scope_set_digest:{$ref:"#/$defs/ManifestDigest"},scope_set_id:{$ref:"#/$defs/ScopeSetId"},scope_set_revision:{$ref:"#/$defs/ScopeSetRevision"},target:{$ref:"#/$defs/NativeWorktreeTargetV1"}},required:["scope_set_id","scope_set_revision","scope_set_digest","target","inspection_digest","confirmed_at","confirmation_digest"],title:"WorktreeCleanupRemoveRequestV1",type:"object"},{$defs:{ManifestDigest:_p,NativeWorktreeTargetV1:_A,ProjectId:_6,RepositoryId:v$,ScopeSetId:v1,ScopeSetRevision:v0,WorktreeId:SJ},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{scope_set_digest:{$ref:"#/$defs/ManifestDigest"},scope_set_id:{$ref:"#/$defs/ScopeSetId"},scope_set_revision:{$ref:"#/$defs/ScopeSetRevision"},target:{$ref:"#/$defs/NativeWorktreeTargetV1"}},required:["scope_set_id","scope_set_revision","scope_set_digest","target"],title:"WorktreeInventoryRequestV1",type:"object"},{$defs:{ActorId:f$,TaskId:bE},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"Issues a short-lived, version-bound task-opening token.\n\nIdentity, scope, authority revisions, issuance time, and expiry are all\nsupplied by the admitted daemon request. The caller supplies only the\nbearer, destination session, exact task version, and enrolled recipient\nprincipal it intends to authorize.",properties:{recipient_actor_id:{$ref:"#/$defs/ActorId"},session_id:{type:"string"},task_id:{$ref:"#/$defs/TaskId"},token:{type:"string"},version:{format:"uint64",minimum:0,type:"integer"}},required:["token","session_id","task_id","version","recipient_actor_id"],title:"IssueTaskHandoffRequestV1",type:"object"},{$defs:{ManifestDigest:_p,TaskId:bE,UtcMicros:bX},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"Flat public receipt for a committed task-handoff issue.\n\nThe complete binding remains inside the daemon authority. Publishing only\nthese exact identifiers avoids turning mutable grant and policy internals\ninto a second public wire authority.",properties:{expires_at:{$ref:"#/$defs/UtcMicros"},issued_at:{$ref:"#/$defs/UtcMicros"},issued_request_id:{type:"string"},session_id:{type:"string"},task_id:{$ref:"#/$defs/TaskId"},token_digest:{$ref:"#/$defs/ManifestDigest"},version:{format:"uint64",minimum:0,type:"integer"}},required:["token_digest","issued_request_id","session_id","task_id","version","issued_at","expires_at"],title:"IssueTaskHandoffResultV1",type:"object"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:'Enumerates the handoff tokens this caller could redeem in one session.\n\nThe two `open_*` operations redeem a bearer the caller already holds; they\ncannot answer "what has been handed to me and not yet taken up". This one\ncan, and it does so without any bearer: the request carries no token, and\nthe result carries only digests.',properties:{session_id:{type:"string"}},required:["session_id"],title:"ListTaskHandoffsRequestV1",type:"object"},{$defs:{FeedbackFindingId:y7,HandoffOpenKindV1:{enum:["investigation","task"],type:"string"},HandoffOpenTargetV1:{oneOf:[{properties:{finding_id:{$ref:"#/$defs/FeedbackFindingId"},kind:{const:"investigation",type:"string"},owner_version_digest:{$ref:"#/$defs/ManifestDigest"}},required:["kind","finding_id","owner_version_digest"],type:"object"},{properties:{kind:{const:"task",type:"string"},owner_version_digest:{$ref:"#/$defs/ManifestDigest"},task_id:{$ref:"#/$defs/TaskId"},version:{format:"uint64",minimum:0,type:"integer"}},required:["kind","task_id","version","owner_version_digest"],type:"object"}]},ListedTaskHandoffV1:{additionalProperties:!1,description:"One handoff token, projected for public reading.\n\nMirrors [`IssueTaskHandoffResultV1`]'s doctrine: the complete binding stays\ninside the daemon authority, and only these identifiers cross the wire. No\nbearer secret exists to leak here. The authority never stored one, and the\nissuer's grant identity and policy digests stay concealed.",properties:{consumed_at:{anyOf:[{$ref:"#/$defs/UtcMicros"},{type:"null"}],description:"Set only when `state` is `consumed`."},expires_at:{$ref:"#/$defs/UtcMicros"},issued_at:{$ref:"#/$defs/UtcMicros"},issued_request_id:{type:"string"},kind:{$ref:"#/$defs/HandoffOpenKindV1"},session_id:{type:"string"},state:{$ref:"#/$defs/TaskHandoffTokenStateV1"},target:{$ref:"#/$defs/HandoffOpenTargetV1"},token_digest:{$ref:"#/$defs/ManifestDigest"}},required:["token_digest","issued_request_id","session_id","kind","target","issued_at","expires_at","state"],type:"object"},ManifestDigest:_p,TaskHandoffTokenStateV1:{description:"Where one enumerated token stands at the observed instant.",oneOf:[{const:"open",description:"Not yet redeemed, and not yet expired: the live frontier.",type:"string"},{const:"consumed",description:"Redeemed. Single-use, so it can never be redeemed again.",type:"string"},{const:"expired",description:"Its window closed with no redemption. A dropped handoff, which is\nexactly the fact a frontier exists to surface.",type:"string"}]},TaskId:bE,UtcMicros:bX},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"The handoff-token frontier for one session.",properties:{consumed_count:{format:"uint32",minimum:0,type:"integer"},expired_count:{format:"uint32",minimum:0,type:"integer"},handoffs:{items:{$ref:"#/$defs/ListedTaskHandoffV1"},type:"array"},observed_at:{$ref:"#/$defs/UtcMicros",description:"The instant the states below were decided at. Without it, `open` and\n`expired` are claims with no clock behind them."},open_count:{format:"uint32",minimum:0,type:"integer"},truncated:{description:"True when the enumeration ceiling was reached, so the counts describe a\nprefix of the frontier rather than all of it.",type:"boolean"}},required:["observed_at","handoffs","open_count","consumed_count","expired_count","truncated"],title:"ListTaskHandoffsResultV1",type:"object"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{session_id:{type:"string"},token:{type:"string"}},required:["token","session_id"],title:"OpenInvestigationHandoffRequestV1",type:"object"},{$defs:{FeedbackFindingId:y7,HandoffOpenReceiptV1:gF,InvestigationHandoffSurfaceV1:{additionalProperties:!1,properties:{finding_id:{$ref:"#/$defs/FeedbackFindingId"},owner_version_digest:{$ref:"#/$defs/ManifestDigest"}},required:["finding_id","owner_version_digest"],type:"object"},ManifestDigest:_p,UtcMicros:bX},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{receipt:{$ref:"#/$defs/HandoffOpenReceiptV1"},surface:{$ref:"#/$defs/InvestigationHandoffSurfaceV1"}},required:["surface","receipt"],title:"OpenInvestigationHandoffResultV1",type:"object"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{session_id:{type:"string"},token:{type:"string"}},required:["token","session_id"],title:"OpenTaskHandoffRequestV1",type:"object"},{$defs:{HandoffOpenReceiptV1:gF,ManifestDigest:_p,TaskHandoffSurfaceV1:{additionalProperties:!1,properties:{task_id:{$ref:"#/$defs/TaskId"},version:{format:"uint64",minimum:0,type:"integer"}},required:["task_id","version"],type:"object"},TaskId:bE,UtcMicros:bX},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{receipt:{$ref:"#/$defs/HandoffOpenReceiptV1"},surface:{$ref:"#/$defs/TaskHandoffSurfaceV1"}},required:["surface","receipt"],title:"OpenTaskHandoffResultV1",type:"object"},{$defs:{ManifestDigest:_p,MultiRootContinuationV1:_V,MultiRootOperationV1:{description:"Closed federated read families. The family is typed while its existing\noperation-specific request remains the canonical JSON payload owned by that\napplication surface.",oneOf:[{properties:{kind:{const:"work",type:"string"},request:!0},required:["kind","request"],type:"object"},{properties:{kind:{const:"git",type:"string"},request:!0},required:["kind","request"],type:"object"},{properties:{kind:{const:"feedback",type:"string"},request:!0},required:["kind","request"],type:"object"},{properties:{kind:{const:"impact",type:"string"},request:!0},required:["kind","request"],type:"object"},{properties:{kind:{const:"query",type:"string"},request:!0},required:["kind","request"],type:"object"}]},RootGenerationV1:vN,RootScopeOutcomeV1_for_Nullable_RootGenerationV1:vz,RootScopeOutcomeV1_for_Nullable_string:vD,ScopeOutcome_for_Nullable_RootGenerationV1:vQ,ScopeOutcome_for_Nullable_string:vX,ScopePartialReasonV1:vY,ScopeSetId:v1,ScopeSetRevision:v0,ScopeUnavailableReasonV1:v4},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"External federated request bound to one persisted scope-set revision and\ndigest. Query/order digests and root generations are server-derived.",properties:{continuation:{anyOf:[{$ref:"#/$defs/MultiRootContinuationV1"},{type:"null"}]},operation:{$ref:"#/$defs/MultiRootOperationV1"},page:{format:"uint64",minimum:0,type:"integer"},scope_set_digest:{$ref:"#/$defs/ManifestDigest"},scope_set_id:{$ref:"#/$defs/ScopeSetId"},scope_set_revision:{$ref:"#/$defs/ScopeSetRevision"}},required:["scope_set_id","scope_set_revision","scope_set_digest","operation","page"],title:"MultiRootExecuteRequestV1",type:"object"},{$defs:{ManifestDigest:_p,MultiRootContinuationV1:_V,RootGenerationV1:vN,RootScopeOutcomeV1_for_Array_of_AnyValue:{additionalProperties:!1,description:"One typed outcome pinned to the digest of an exact resolved root.",properties:{outcome:{$ref:"#/$defs/ScopeOutcome_for_Array_of_AnyValue"},scope_digest:{$ref:"#/$defs/ManifestDigest"}},required:["scope_digest","outcome"],type:"object"},RootScopeOutcomeV1_for_Nullable_RootGenerationV1:vz,RootScopeOutcomeV1_for_Nullable_string:vD,ScopeOutcome_for_Array_of_AnyValue:{description:"Truthful outcome for one authorized root or an aggregate over roots.\n\n`Denied` and `Unavailable` carry no value and therefore cannot be confused\nwith a successful empty result.",oneOf:[{properties:{outcome:{const:"exact",type:"string"},value:{items:!0,type:"array"}},required:["outcome","value"],type:"object"},{properties:{outcome:{const:"partial",type:"string"},value:{properties:{reason:{$ref:"#/$defs/ScopePartialReasonV1"},value:{items:!0,type:"array"}},required:["value","reason"],type:"object"}},required:["outcome","value"],type:"object"},{properties:{outcome:{const:"denied",type:"string"}},required:["outcome"],type:"object"},{properties:{outcome:{const:"unavailable",type:"string"},value:{properties:{reason:{$ref:"#/$defs/ScopeUnavailableReasonV1"}},required:["reason"],type:"object"}},required:["outcome","value"],type:"object"}]},ScopeOutcome_for_Nullable_RootGenerationV1:vQ,ScopeOutcome_for_Nullable_string:vX,ScopePartialReasonV1:vY,ScopeSetId:v1,ScopeSetRevision:v0,ScopeUnavailableReasonV1:v4},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"Federated page preserving each root outcome and aggregate partial truth.",properties:{aggregate:{$ref:"#/$defs/ScopeOutcome_for_Array_of_AnyValue"},continuation:{anyOf:[{$ref:"#/$defs/MultiRootContinuationV1"},{type:"null"}]},roots:{items:{$ref:"#/$defs/RootScopeOutcomeV1_for_Array_of_AnyValue"},type:"array"},scope_set_digest:{$ref:"#/$defs/ManifestDigest"},scope_set_id:{$ref:"#/$defs/ScopeSetId"},scope_set_revision:{$ref:"#/$defs/ScopeSetRevision"}},required:["scope_set_id","scope_set_revision","scope_set_digest","roots","aggregate"],title:"MultiRootQueryPageV1_for_AnyValue",type:"object"},{$defs:{ProjectId:_6,RegisteredRootSelectorV1:{additionalProperties:!1,description:"Exact registered-root selector accepted by scope-set CAS.",properties:{project_id:{$ref:"#/$defs/ProjectId"},root:{type:"string"}},required:["project_id","root"],type:"object"},ScopeSetId:v1,ScopeSetRevision:v0},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"Canonical external selector for creating or updating an authorized scope\nset. Every member names one exact registered root; project-only selection\ncannot silently widen to an active or first-mounted graph.",properties:{expected_revision:{anyOf:[{$ref:"#/$defs/ScopeSetRevision"},{type:"null"}]},roots:{items:{$ref:"#/$defs/RegisteredRootSelectorV1"},type:"array"},scope_set_id:{$ref:"#/$defs/ScopeSetId"}},required:["scope_set_id","roots"],title:"MultiRootScopeSetCasRequestV1",type:"object"},{$defs:{ActorId:f$,AuthorizedRoot:fz,AuthorizedScopeSet:fD,BrainId:f0,ManifestDigest:_p,MultiRootScopeSetCasStatusV1:{enum:["applied","conflict"],type:"string"},ProjectId:_6,RefId:vf,RegisteredRootLocatorV1:vh,RepositoryId:v$,ResolvedScope:vP,ScopeSetId:v1,ScopeSetRevision:v0,SharedProfileStoreLocatorV1:bc,UserProfileId:bQ,WorktreeId:SJ},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{scope_set:{anyOf:[{$ref:"#/$defs/AuthorizedScopeSet"},{type:"null"}]},status:{$ref:"#/$defs/MultiRootScopeSetCasStatusV1"}},required:["status"],title:"MultiRootScopeSetCasResultV1",type:"object"},{$defs:{ScopeSetId:v1},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{scope_set_id:{$ref:"#/$defs/ScopeSetId"}},required:["scope_set_id"],title:"MultiRootScopeSetReadRequestV1",type:"object"},{$defs:{ActorId:f$,AuthorizedRoot:fz,AuthorizedScopeSet:fD,BrainId:f0,ManifestDigest:_p,ProjectId:_6,RefId:vf,RegisteredRootLocatorV1:vh,RepositoryId:v$,ResolvedScope:vP,ScopeSetId:v1,ScopeSetRevision:v0,SharedProfileStoreLocatorV1:bc,UserProfileId:bQ,WorktreeId:SJ},$schema:"https://json-schema.org/draft/2020-12/schema",anyOf:[{$ref:"#/$defs/AuthorizedScopeSet"},{type:"null"}],title:"Nullable_AuthorizedScopeSet"},{$defs:{AcceptWorkProposalDispositionV1:{description:"The accept-proposal operation can commit acceptance only.",enum:["accepted"],type:"string"},CatalogGenerationId:hu,ConfigurationRevisionId:hN,ManifestDigest:_p,ProjectId:_6,ProposalId:_7,ProviderId:vn,RepositoryId:v$,RetrievalAnchorId:vx,SourceStoreId:bw,TaskId:bE,UtcMicros:bX,VerifiedWorkGraphVersionV1:b1,WorkCommandId:$m,WorkProductAuthorizedRelationScopeV1:$1,WorkProductEventEvidenceV1:$0,WorkProductExpectedAuthorityV1:$6,WorkProductMutationIdentityV1:$9,WorkProductRevisionPinsV1:Se,WorkProductSelectionScopeV1:St,WorkProposalV1:So,WorkProposedChildV1:Sn,WorkProviderRouteId:Sl,WorkProviderRouteV1:Sp,WorkRouteDecisionV1:Sb,WorkScoreKindV1:SR,WorkShapeAssessmentV1:Sq,WorkSizingV1:SI},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{disposition:{$ref:"#/$defs/AcceptWorkProposalDispositionV1"},mutation:{$ref:"#/$defs/WorkProductMutationIdentityV1"},proposal:{$ref:"#/$defs/WorkProposalV1"},selection:{$ref:"#/$defs/WorkProductSelectionScopeV1"}},required:["selection","proposal","disposition","mutation"],title:"AcceptWorkProposalRequestV1",type:"object"},{$defs:{ActorId:f$,AttemptId:fM,BrainId:f0,CatalogGenerationId:hu,ConfigurationRevisionId:hN,ManifestDigest:_p,ProjectId:_6,ProposalId:_7,ProviderId:vn,RepositoryId:v$,RetrievalAnchorId:vx,RunId:vL,SourceStoreId:bw,TaskEvidenceLinkV1:bT,TaskId:bE,UserProfileId:bQ,UtcMicros:bX,VerifiedWorkGraphVersionV1:b1,WorkAcceptanceCriterionV1:b0,WorkAttemptIdentityV1:b9,WorkCommandId:$m,WorkGraphChangeV1:$T,WorkHandoffV1:$W,WorkHierarchyV1:$M,WorkInitiativeV1:$N,WorkItemInputV1:$z,WorkItemV1:$D,WorkMilestoneV1:$H,WorkPlanV1:$Y,WorkProductAuthorizedRelationScopeV1:$1,WorkProductEventEvidenceV1:$0,WorkProductEventPayloadV1:$2,WorkProductEventV1:$4,WorkProductGraphV1:$3,WorkProductProfileScopeV1:$8,WorkProposalDecisionV1:Sr,WorkProposalDispositionV1:Si,WorkProposalV1:So,WorkProposedChildV1:Sn,WorkProviderRouteId:Sl,WorkProviderRouteV1:Sp,WorkRelationReplanDecisionV1:Sm,WorkRelationReplanProposalV1:Sf,WorkRouteDecisionV1:Sb,WorkScoreKindV1:SR,WorkShapeAssessmentV1:Sq,WorkSizingV1:SI},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{event:{$ref:"#/$defs/WorkProductEventV1"},replayed:{type:"boolean"},verified_graph_version:{$ref:"#/$defs/VerifiedWorkGraphVersionV1"}},required:["event","verified_graph_version","replayed"],title:"WorkProductMutationReceiptV1",type:"object"},{$defs:{AttemptId:fM,CoverageStateV1:yh,DuplicateEffectOutcomeV1:yV,DuplicateEffortKindV1:yR,ProjectionGenerationId:_8,QuantityEvidenceClassV1:vd,RunId:vL,TaskId:bE,UtcMicros:bX,WorkAttemptIdentityV1:b9,WorkCommandId:$m,WorkDuplicateAdjudicationEvidenceV1:$h,WorkDuplicateAdjudicationQuantitiesV1:$y,WorkTopologyGenerationRefV1:SW},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{command_id:{$ref:"#/$defs/WorkCommandId"},evidence:{$ref:"#/$defs/WorkDuplicateAdjudicationEvidenceV1"},expected_revision:{format:"uint64",minimum:0,type:["integer","null"]},first_attempt:{$ref:"#/$defs/WorkAttemptIdentityV1"},occurred_at:{$ref:"#/$defs/UtcMicros"},quantities:{$ref:"#/$defs/WorkDuplicateAdjudicationQuantitiesV1"},reason:{type:"string"},second_attempt:{$ref:"#/$defs/WorkAttemptIdentityV1"},verdict:{$ref:"#/$defs/DuplicateEffortKindV1"}},required:["first_attempt","second_attempt","evidence","verdict","quantities","reason","command_id","occurred_at"],title:"WorkDuplicateAdjudicationCommandV1",type:"object"},{$defs:{ActorId:f$,AttemptId:fM,CoverageStateV1:yh,DuplicateEffectOutcomeV1:yV,DuplicateEffortKindV1:yR,ManifestDigest:_p,ProjectionGenerationId:_8,QuantityEvidenceClassV1:vd,RunId:vL,TaskId:bE,UtcMicros:bX,WorkAttemptIdentityV1:b9,WorkCommandId:$m,WorkDuplicateAdjudicationCommandV1:{additionalProperties:!1,properties:{command_id:{$ref:"#/$defs/WorkCommandId"},evidence:{$ref:"#/$defs/WorkDuplicateAdjudicationEvidenceV1"},expected_revision:{format:"uint64",minimum:0,type:["integer","null"]},first_attempt:{$ref:"#/$defs/WorkAttemptIdentityV1"},occurred_at:{$ref:"#/$defs/UtcMicros"},quantities:{$ref:"#/$defs/WorkDuplicateAdjudicationQuantitiesV1"},reason:{type:"string"},second_attempt:{$ref:"#/$defs/WorkAttemptIdentityV1"},verdict:{$ref:"#/$defs/DuplicateEffortKindV1"}},required:["first_attempt","second_attempt","evidence","verdict","quantities","reason","command_id","occurred_at"],type:"object"},WorkDuplicateAdjudicationEvidenceV1:$h,WorkDuplicateAdjudicationQuantitiesV1:$y,WorkDuplicateAdjudicationReceiptV1:{additionalProperties:!1,properties:{actor_id:{$ref:"#/$defs/ActorId"},adjudication_ref:{$ref:"#/$defs/ManifestDigest"},canonical_input_digest:{$ref:"#/$defs/ManifestDigest"},command:{$ref:"#/$defs/WorkDuplicateAdjudicationCommandV1"},revision:{format:"uint64",minimum:0,type:"integer"}},required:["command","revision","actor_id","canonical_input_digest","adjudication_ref"],type:"object"},WorkTopologyGenerationRefV1:SW},$schema:"https://json-schema.org/draft/2020-12/schema",oneOf:[{properties:{outcome:{const:"appended",type:"string"},receipt:{$ref:"#/$defs/WorkDuplicateAdjudicationReceiptV1"}},required:["outcome","receipt"],type:"object"},{properties:{outcome:{const:"replayed",type:"string"},receipt:{$ref:"#/$defs/WorkDuplicateAdjudicationReceiptV1"}},required:["outcome","receipt"],type:"object"}],title:"WorkDuplicateAdjudicationAppendOutcomeV1"},{$defs:{AttemptId:fM,RunId:vL,TaskId:bE,WorkAttemptIdentityV1:b9,WorkCommandId:$m},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{adjudication_id:{type:"string"},attempt:{$ref:"#/$defs/WorkAttemptIdentityV1"},command_id:{$ref:"#/$defs/WorkCommandId"},detection_horizon_micros:{format:"uint64",minimum:0,type:"integer"},expected_revision:{format:"uint64",minimum:0,type:["integer","null"]}},required:["adjudication_id","attempt","detection_horizon_micros","command_id"],title:"AdjudicateWorkLeakCommandV1",type:"object"},{$defs:{AdjudicateWorkLeakCommandV1:{additionalProperties:!1,properties:{adjudication_id:{type:"string"},attempt:{$ref:"#/$defs/WorkAttemptIdentityV1"},command_id:{$ref:"#/$defs/WorkCommandId"},detection_horizon_micros:{format:"uint64",minimum:0,type:"integer"},expected_revision:{format:"uint64",minimum:0,type:["integer","null"]}},required:["adjudication_id","attempt","detection_horizon_micros","command_id"],title:"AdjudicateWorkLeakCommandV1",type:"object"},AttemptId:fM,CoverageStateV1:yh,LeakOwnerClassV1:{enum:["work","workflow","git","delivery","unknown"],type:"string"},ManifestDigest:_p,RunId:vL,TaskId:bE,UtcMicros:bX,VerifiedWorkLeakEvidenceV1:{additionalProperties:!1,description:"Exact result of one scan by the canonical lease/process/effect/placement/\ndelivery evidence owner. Evidence references are opaque local anchors;\ntheir owning records remain behind normal authorization.",properties:{attempt:{$ref:"#/$defs/WorkAttemptIdentityV1"},coverage:{$ref:"#/$defs/CoverageStateV1"},detection_horizon_micros:{format:"uint64",minimum:0,type:"integer"},evidence_refs:{items:{type:"string"},type:"array"},kind:{$ref:"#/$defs/WorkExecutionLeakKindV1"},owner_class:{$ref:"#/$defs/LeakOwnerClassV1"},recovery:{$ref:"#/$defs/WorkExecutionLeakRecoveryV1"},scan_completed_at:{$ref:"#/$defs/UtcMicros"},scan_started_at:{$ref:"#/$defs/UtcMicros"}},required:["attempt","kind","recovery","owner_class","coverage","detection_horizon_micros","scan_started_at","scan_completed_at","evidence_refs"],type:"object"},WorkAttemptIdentityV1:b9,WorkCommandId:$m,WorkExecutionLeakKindV1:{enum:["lease_after_terminal","attempt_without_live_owner","effect_unknown_past_deadline","missing_worktree_binding","unbounded_delivery","none","unknown"],type:"string"},WorkExecutionLeakRecoveryV1:{enum:["not_required","pending","recovered","failed","unknown"],type:"string"},WorkLeakAdjudicationReceiptV1:{additionalProperties:!1,properties:{canonical_input_digest:{$ref:"#/$defs/ManifestDigest"},command:{$ref:"#/$defs/AdjudicateWorkLeakCommandV1"},evidence:{$ref:"#/$defs/VerifiedWorkLeakEvidenceV1"},revision:{format:"uint64",minimum:0,type:"integer"},scan_deadline:{$ref:"#/$defs/UtcMicros",description:"Daemon/request-owned deadline that bounded the source scan."}},required:["command","revision","evidence","scan_deadline","canonical_input_digest"],type:"object"}},$schema:"https://json-schema.org/draft/2020-12/schema",oneOf:[{properties:{outcome:{const:"appended",type:"string"},receipt:{$ref:"#/$defs/WorkLeakAdjudicationReceiptV1"}},required:["outcome","receipt"],type:"object"},{properties:{outcome:{const:"replayed",type:"string"},receipt:{$ref:"#/$defs/WorkLeakAdjudicationReceiptV1"}},required:["outcome","receipt"],type:"object"}],title:"WorkLeakAdjudicationOutcomeV1"},{$defs:{CatalogGenerationId:hu,ConfigurationRevisionId:hN,ManifestDigest:_p,ProjectId:_6,RepositoryId:v$,RetrievalAnchorId:vx,SourceStoreId:bw,TaskId:bE,UtcMicros:bX,VerifiedWorkGraphVersionV1:b1,WorkCommandId:$m,WorkProductAuthorizedRelationScopeV1:$1,WorkProductEventEvidenceV1:$0,WorkProductExpectedAuthorityV1:$6,WorkProductMutationIdentityV1:$9,WorkProductRevisionPinsV1:Se,WorkProductSelectionScopeV1:St},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{based_on_version:{format:"uint64",minimum:0,type:"integer"},mutation:{$ref:"#/$defs/WorkProductMutationIdentityV1"},selection:{$ref:"#/$defs/WorkProductSelectionScopeV1"},task_id:{$ref:"#/$defs/TaskId"}},required:["selection","task_id","based_on_version","mutation"],title:"AdmitWorkExecutionRequestV1",type:"object"},{$defs:{ActorId:f$,AttemptId:fM,AutomaticWorktreeGcV1:fL,BrainId:f0,BranchCollisionPolicyV1:f2,BranchNameComponentV1:f4,BranchNameSeparatorV1:f6,BranchNamingPolicyV1:f3,BranchTopologyKindV1:hr,BranchTopologyPolicyV1:hi,CanonicalGitRefNameV1:hc,CanonicalGitRefPrefix:hl,CapabilityId:hp,CatalogGenerationId:hu,ConfigurationRevisionId:hN,ConfigurationSnapshotId:hz,CredentialReferenceId:yy,CrossMergeModeV1:yg,CrossMergePolicyV1:y_,GitHubStackedPullRequestPolicyV1:gP,HistoryRewritePolicyV1:gL,LocatorDigest:_i,ManifestDigest:_p,ProjectId:_6,ProposalId:_7,ProtectedRefDispositionV1:ve,ProtectedRefRuleV1:vt,ProtectedRefSelectorV1:vr,ProviderId:vn,RepositoryId:v$,RepositoryPlacementScopeV1:vS,RequiredCheckExpectationV1:vk,RequiredCheckV1:vw,RetrievalAnchorId:vx,ReviewRequirementV1:vA,ReviewTopologyKindV1:vW,ReviewTopologyPolicyV1:vM,RunId:vL,SensitiveFilesystemLocatorV1:v3,SourceStoreId:bw,TaskEvidenceLinkV1:bT,TaskId:bE,TopologyConcurrencyPolicyV1:bH,TopologyEscalationPolicyV1:bG,TopologyGatePolicyV1:bB,TopologyNotificationLevelV1:bK,UserProfileId:bQ,UtcMicros:bX,VerifiedWorkGraphVersionV1:b1,WorkAcceptanceCriterionV1:b0,WorkApprovalPolicy:b2,WorkAttemptIdentityV1:b9,WorkCommandId:$m,WorkEgressPolicy:$v,WorkExecutableReference:$w,WorkExecutionLimits:$V,WorkExecutionSnapshot:$R,WorkFallbackTopology:$x,WorkFilesystemPolicy:$C,WorkGraphChangeV1:$T,WorkHandoffV1:$W,WorkHierarchyV1:$M,WorkInitiativeV1:$N,WorkItemInputV1:$z,WorkItemV1:$D,WorkMilestoneV1:$H,WorkPlanV1:$Y,WorkProductAuthorizedRelationScopeV1:$1,WorkProductEventEvidenceV1:$0,WorkProductEventPayloadV1:$2,WorkProductEventV1:$4,WorkProductGraphV1:$3,WorkProductMutationReceiptV1:$5,WorkProductProfileScopeV1:$8,WorkProposalDecisionV1:Sr,WorkProposalDispositionV1:Si,WorkProposalV1:So,WorkProposedChildV1:Sn,WorkProviderBackendV1:Ss,WorkProviderProtocol:Sc,WorkProviderRouteId:Sl,WorkProviderRouteV1:Sp,WorkRelationReplanDecisionV1:Sm,WorkRelationReplanProposalV1:Sf,WorkRouteDecisionV1:Sb,WorkSandboxPolicy:SV,WorkScoreKindV1:SR,WorkShapeAssessmentV1:Sq,WorkSizingV1:SI,WorkTopologyPolicyV1:SM,WorktreeCleanlinessRequirementV1:SK,WorktreePlacementModeV1:SX,WorktreeRetentionPolicyV1:SY,WorktreeRootPolicyV1:S1},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"Execution admission together with the immutable provider snapshot licensed\nby the accepted proposal and current configuration authority.",properties:{execution_snapshot:{$ref:"#/$defs/WorkExecutionSnapshot"},mutation:{$ref:"#/$defs/WorkProductMutationReceiptV1"}},required:["mutation","execution_snapshot"],title:"AdmittedWorkExecutionV1",type:"object"},{$defs:{RunId:vL,TaskId:bE,UtcMicros:bX,WorkPlacementKindV1:$J,WorkPlacementTargetV1:$Q},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{occurred_at:{$ref:"#/$defs/UtcMicros"},retention_eligible_at:{anyOf:[{$ref:"#/$defs/UtcMicros"},{type:"null"}],default:null,description:"When retention makes this placement eligible for a fresh cleanup\npreflight. Eligibility is not delete authority."},run_id:{$ref:"#/$defs/RunId"},target:{$ref:"#/$defs/WorkPlacementTargetV1"},task_id:{$ref:"#/$defs/TaskId"}},required:["task_id","run_id","target","occurred_at"],title:"AdmitWorkPlacementCommand",type:"object"},{$defs:{RunId:vL,TaskId:bE,UtcMicros:bX,WorkPlacementBlockerV1:$B,WorkPlacementIdentityV1:$K,WorkPlacementKindV1:$J,WorkPlacementStateV1:$Z,WorkPlacementTargetV1:$Q},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"One run's durable placement relation.",properties:{authority_version:{format:"uint64",minimum:0,type:"integer"},blockers:{items:{$ref:"#/$defs/WorkPlacementBlockerV1"},type:"array",uniqueItems:!0},identity:{$ref:"#/$defs/WorkPlacementIdentityV1"},retention_eligible_at:{anyOf:[{$ref:"#/$defs/UtcMicros"},{type:"null"}],description:"When retention makes this placement *eligible* for a fresh cleanup\npreflight. Eligibility is not delete authority."},state:{$ref:"#/$defs/WorkPlacementStateV1"},target:{$ref:"#/$defs/WorkPlacementTargetV1"},transitioned_at:{$ref:"#/$defs/UtcMicros"}},required:["identity","target","state","authority_version","transitioned_at","blockers"],title:"WorkPlacementV1",type:"object"},{$defs:{CommitId:hI,RefId:vf,WorkEffectStateV1:$g,WorkJobBaseV1:{additionalProperties:!1,description:"The source revision every attempt in the job starts from.",properties:{commit:{$ref:"#/$defs/CommitId"},reference:{anyOf:[{$ref:"#/$defs/RefId"},{type:"null"}]}},required:["commit"],type:"object"},WorkJobKeyV1:$F,WorkJobNameV1:{description:"A job name: `[a-z0-9-]`, 1 to 48 bytes. Identities derive from it.",type:"string"},WorkJobSynthesisV1:{additionalProperties:!1,properties:{instructions:{type:"string"},output_name:{$ref:"#/$defs/WorkflowOutputName"},task:{$ref:"#/$defs/WorkJobKeyV1",description:"The synthesis attempt runs under this task's run and execution snapshot."}},required:["task","output_name","instructions"],type:"object"},WorkJobTaskV1:{additionalProperties:!1,properties:{instructions:{type:"string"},key:{$ref:"#/$defs/WorkJobKeyV1"},placement:{$ref:"#/$defs/WorkPlacementTargetV1"},title:{type:"string"}},required:["key","title","instructions","placement"],type:"object"},WorkPlacementKindV1:$J,WorkPlacementTargetV1:$Q,WorkflowOutputName:SL},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"One guided job: the tasks to run in parallel, where each runs, and the\nsynthesis that reviews them.",properties:{base:{$ref:"#/$defs/WorkJobBaseV1"},effect_state:{$ref:"#/$defs/WorkEffectStateV1"},job:{$ref:"#/$defs/WorkJobNameV1"},synthesis:{$ref:"#/$defs/WorkJobSynthesisV1"},tasks:{items:{$ref:"#/$defs/WorkJobTaskV1"},type:"array"},title:{type:"string"}},required:["job","title","base","effect_state","tasks","synthesis"],title:"AdvanceWorkJobRequestV1",type:"object"},{$defs:{ActorId:f$,AdmittedWorkExecutionV1:{additionalProperties:!1,description:"Execution admission together with the immutable provider snapshot licensed\nby the accepted proposal and current configuration authority.",properties:{execution_snapshot:{$ref:"#/$defs/WorkExecutionSnapshot"},mutation:{$ref:"#/$defs/WorkProductMutationReceiptV1"}},required:["mutation","execution_snapshot"],type:"object"},ApplicationExecutionFailureClassV1:{description:"Stable non-retryable class for an admitted execution failure.",enum:["denied","malformed_output","permanent"],type:"string"},ApplicationProblemDetailV1:fW,ApplicationProblemKind:{description:"Stable problem-code taxonomy for request failures and admitted terminals.",enum:["invalid_request","not_found_or_not_authorized","conflict","partial_effect","stale","unsupported","unavailable","execution_failed","reset_required","saturated","cancelled","timed_out"],type:"string"},ApplicationProblemRecord:{additionalProperties:!1,description:"Stable application problem record shared verbatim by every adapter.",properties:{cancellation_stage:{$ref:"#/$defs/RequiredNullable3"},code:{type:"string"},committed_receipt:{$ref:"#/$defs/RequiredNullable2",description:"A committed effect is present only for an admitted partial effect.\nThe nullable field is always serialized: omitting it would create a\ncompatibility/default path that could hide a missing receipt."},coverage:{anyOf:[{$ref:"#/$defs/EvidenceCoverage"},{type:"null"}]},detail:{$ref:"#/$defs/RequiredNullable",description:"The structured facts `message` is rendered from, when the problem has\nany. Always serialized so a client never mistakes an omitted detail\nfor a problem without one."},details:{items:{$ref:"#/$defs/SafeDiagnostic"},type:"array"},diagnostic:{anyOf:[{$ref:"#/$defs/SafeDiagnostic"},{type:"null"}]},execution_failure_classification:{$ref:"#/$defs/RequiredNullable5"},kind:{$ref:"#/$defs/ApplicationProblemKind"},legal_actions:{items:{$ref:"#/$defs/LegalAction"},type:"array"},message:{type:"string"},owning_layer:{$ref:"#/$defs/ProblemOwningLayer"},request_id:{type:"string"},retry:{$ref:"#/$defs/RetryDirective"},retry_after_millis:{format:"uint64",minimum:0,type:["integer","null"]},retry_scope:{anyOf:[{$ref:"#/$defs/RetryScope"},{type:"null"}]},retryable:{type:"boolean"},revision:{format:"uint32",minimum:0,type:"integer"},terminality:{$ref:"#/$defs/ProblemTerminality"},trace_id:{type:"string"},unavailable_classification:{$ref:"#/$defs/RequiredNullable4"}},required:["revision","kind","code","message","detail","committed_receipt","owning_layer","terminality","retryable","retry","cancellation_stage","unavailable_classification","execution_failure_classification","request_id","trace_id","details","legal_actions"],type:"object"},ApplicationUnavailableClassV1:{description:"Stable reason an application authority is unavailable.",enum:["authority","backend_unavailable","backend_disconnected","backend_retryable"],type:"string"},AttemptId:fM,AutomaticWorktreeGcV1:fL,BrainId:f0,BranchCollisionPolicyV1:f2,BranchNameComponentV1:f4,BranchNameSeparatorV1:f6,BranchNamingPolicyV1:f3,BranchTopologyKindV1:hr,BranchTopologyPolicyV1:hi,CancellationStage:hs,CanonicalGitRefNameV1:hc,CanonicalGitRefPrefix:hl,CapabilityId:hp,CatalogGenerationId:hu,CommitId:hI,ConfigurationRevisionId:hN,ConfigurationSnapshotId:hz,CoverageCompleteness:ym,CoverageDomainState:yf,CredentialReferenceId:yy,CrossMergeModeV1:yg,CrossMergePolicyV1:y_,DaemonServiceUnitObservationV1:yv,DiagnosticsSearchedTsconfigV1:yk,EffectClass:yq,EffectReceipt:yI,EffectTermination:yx,EvidenceCoverage:yj,EvidenceDomain:yC,GitHubStackedPullRequestPolicyV1:gP,HistoryRewritePolicyV1:gL,LegalAction:{description:"Bounded action an adapter may offer without inferring executable authority.",enum:["correct_request","reauthorize","refresh","retry","reconcile","reset","restart_without_cursor","contact_administrator"],type:"string"},LocatorDigest:_i,ManifestDigest:_p,ProblemOwningLayer:{description:"Layer that owns resolving the problem rather than merely presenting it.",enum:["adapter","application","runtime","port"],type:"string"},ProblemTerminality:{description:"Whether the problem occurred before admission or is an admitted terminal.",enum:["pre_admission","admitted_terminal"],type:"string"},ProjectId:_6,ProposalId:_7,ProtectedRefDispositionV1:ve,ProtectedRefRuleV1:vt,ProtectedRefSelectorV1:vr,ProviderId:vn,RefId:vf,RepositoryId:v$,RepositoryPlacementScopeV1:vS,RequiredCheckExpectationV1:vk,RequiredCheckV1:vw,RequiredNullable:{anyOf:[{$ref:"#/$defs/ApplicationProblemDetailV1"},{type:"null"}],description:"Unlike `Option`, this wrapper distinguishes an explicit JSON `null`\nfrom an omitted field. New terminal-state fields must be present on every\nrecord so a missing committed receipt cannot be mistaken for `None`."},RequiredNullable2:{anyOf:[{$ref:"#/$defs/EffectReceipt"},{type:"null"}],description:"Unlike `Option`, this wrapper distinguishes an explicit JSON `null`\nfrom an omitted field. New terminal-state fields must be present on every\nrecord so a missing committed receipt cannot be mistaken for `None`."},RequiredNullable3:{anyOf:[{$ref:"#/$defs/CancellationStage"},{type:"null"}],description:"Unlike `Option`, this wrapper distinguishes an explicit JSON `null`\nfrom an omitted field. New terminal-state fields must be present on every\nrecord so a missing committed receipt cannot be mistaken for `None`."},RequiredNullable4:{anyOf:[{$ref:"#/$defs/ApplicationUnavailableClassV1"},{type:"null"}],description:"Unlike `Option`, this wrapper distinguishes an explicit JSON `null`\nfrom an omitted field. New terminal-state fields must be present on every\nrecord so a missing committed receipt cannot be mistaken for `None`."},RequiredNullable5:{anyOf:[{$ref:"#/$defs/ApplicationExecutionFailureClassV1"},{type:"null"}],description:"Unlike `Option`, this wrapper distinguishes an explicit JSON `null`\nfrom an omitted field. New terminal-state fields must be present on every\nrecord so a missing committed receipt cannot be mistaken for `None`."},ResolvedScope:vP,RetrievalAnchorId:vx,RetryDirective:{description:"Safe adapter-independent retry instruction. Adapters preserve it verbatim.",enum:["never","same_request","after_delay","after_revalidate","after_reconcile"],type:"string"},RetryScope:{description:"Request identity boundary within which a retry remains valid.",enum:["same_request","same_operation","fresh_request"],type:"string"},ReviewRequirementV1:vA,ReviewTopologyKindV1:vW,ReviewTopologyPolicyV1:vM,RunId:vL,SafeDiagnostic:{additionalProperties:!1,description:"Sanitized detail that may cross the application boundary.",properties:{code:{type:"string"},message:{type:"string"}},required:["code","message"],type:"object"},SensitiveFilesystemLocatorV1:v3,SourceStoreId:bw,TaskEvidenceLinkV1:bT,TaskId:bE,TopologyConcurrencyPolicyV1:bH,TopologyEscalationPolicyV1:bG,TopologyGatePolicyV1:bB,TopologyNotificationLevelV1:bK,UseCaseId:bZ,UserProfileId:bQ,UtcMicros:bX,VerifiedWorkGraphVersionV1:b1,WorkAcceptanceCriterionV1:b0,WorkApprovalPolicy:b2,WorkArtifactId:b4,WorkArtifactRefV1:b6,WorkAttemptIdentityV1:b9,WorkAttemptProgressV1:b7,WorkAttemptProjectionBindingV1:$e,WorkAttemptStateV1:$i,WorkAttemptV1:$s,WorkCancellationAcknowledgementV1:$d,WorkCancellationEscalationV1:$c,WorkCancellationRequestId:$l,WorkCancellationRequestV1:$p,WorkCancellationStateV1:$u,WorkCommandId:$m,WorkEffectStateV1:$g,WorkEgressPolicy:$v,WorkExecutableReference:$w,WorkExecutionEnvelopeV1:$P,WorkExecutionLimits:$V,WorkExecutionSnapshot:$R,WorkFallbackTopology:$x,WorkFenceEpochV1:$j,WorkFilesystemPolicy:$C,WorkGraphChangeV1:$T,WorkHandoffV1:$W,WorkHierarchyV1:$M,WorkInitiativeV1:$N,WorkItemInputV1:$z,WorkItemV1:$D,WorkJobIdentitiesV1:{additionalProperties:!1,properties:{operation:{$ref:"#/$defs/WorkflowOperationRef"},synthesis:{$ref:"#/$defs/WorkAttemptIdentityV1"},tasks:{items:{$ref:"#/$defs/WorkJobTaskIdentitiesV1"},type:"array"}},required:["operation","tasks","synthesis"],type:"object"},WorkJobKeyV1:$F,WorkJobStateV1:{oneOf:[{additionalProperties:!1,description:"The call's deadline floor arrived with work left; call again now.",properties:{state:{const:"advancing",type:"string"}},required:["state"],type:"object"},{additionalProperties:!1,description:"Nothing can move until providers, routing, or capacity progress.",properties:{on:{items:{$ref:"#/$defs/WorkJobWaitV1"},type:"array"},state:{const:"waiting",type:"string"}},required:["state","on"],type:"object"},{additionalProperties:!1,description:"The chain stopped at `step`. `problem` is the record the step's own\noperation produced, or a guided refusal naming the job-level cause.",properties:{problem:{$ref:"#/$defs/ApplicationProblemRecord"},state:{const:"refused",type:"string"},step:{$ref:"#/$defs/WorkJobStepV1"}},required:["state","step","problem"],type:"object"},{additionalProperties:!1,properties:{sources:{items:{$ref:"#/$defs/WorkAttemptV1"},type:"array"},state:{const:"completed",type:"string"},synthesis:{$ref:"#/$defs/WorkAttemptV1"}},required:["state","sources","synthesis"],type:"object"}]},WorkJobStepRecordV1:{additionalProperties:!1,description:"A step this call executed, with its operation's own effect receipt.",properties:{receipt:{$ref:"#/$defs/EffectReceipt"},request_id:{type:"string"},result:{$ref:"#/$defs/WorkJobStepResultV1"},step:{$ref:"#/$defs/WorkJobStepV1"}},required:["step","request_id","receipt","result"],type:"object"},WorkJobStepResultV1:{description:"Every arm is an existing Work operation's own output.",oneOf:[{properties:{result:{const:"graph",type:"string"},value:{$ref:"#/$defs/WorkProductMutationReceiptV1"}},required:["result","value"],type:"object"},{properties:{result:{const:"execution",type:"string"},value:{$ref:"#/$defs/AdmittedWorkExecutionV1"}},required:["result","value"],type:"object"},{properties:{result:{const:"placement",type:"string"},value:{$ref:"#/$defs/WorkPlacementV1"}},required:["result","value"],type:"object"},{properties:{result:{const:"attempt",type:"string"},value:{$ref:"#/$defs/WorkAttemptV1"}},required:["result","value"],type:"object"},{properties:{result:{const:"synthesis",type:"string"},value:{$ref:"#/$defs/WorkSynthesisAttemptV1"}},required:["result","value"],type:"object"}]},WorkJobStepV1:{description:"One existing Work operation the guided job runs. There is deliberately no\narm that advances a job, so a step can never recurse into the guided path.",oneOf:[{additionalProperties:!1,properties:{step:{const:"create_task",type:"string"},task:{$ref:"#/$defs/WorkJobKeyV1"}},required:["step","task"],type:"object"},{additionalProperties:!1,properties:{step:{const:"accept_proposal",type:"string"},task:{$ref:"#/$defs/WorkJobKeyV1"}},required:["step","task"],type:"object"},{additionalProperties:!1,properties:{step:{const:"admit_execution",type:"string"},task:{$ref:"#/$defs/WorkJobKeyV1"}},required:["step","task"],type:"object"},{additionalProperties:!1,properties:{step:{const:"admit_placement",type:"string"},task:{$ref:"#/$defs/WorkJobKeyV1"}},required:["step","task"],type:"object"},{additionalProperties:!1,properties:{step:{const:"start_source",type:"string"},task:{$ref:"#/$defs/WorkJobKeyV1"}},required:["step","task"],type:"object"},{additionalProperties:!1,properties:{step:{const:"await_sources",type:"string"}},required:["step"],type:"object"},{additionalProperties:!1,properties:{step:{const:"synthesize",type:"string"}},required:["step"],type:"object"},{additionalProperties:!1,properties:{step:{const:"await_synthesis",type:"string"}},required:["step"],type:"object"},{additionalProperties:!1,properties:{step:{const:"release_placement",type:"string"},task:{$ref:"#/$defs/WorkJobKeyV1"}},required:["step","task"],type:"object"}]},WorkJobTaskIdentitiesV1:{additionalProperties:!1,properties:{key:{$ref:"#/$defs/WorkJobKeyV1"},proposal_id:{$ref:"#/$defs/ProposalId"},source:{$ref:"#/$defs/WorkAttemptIdentityV1"}},required:["key","proposal_id","source"],type:"object"},WorkJobWaitV1:{oneOf:[{additionalProperties:!1,description:"The proposal route abstained, as it does while routing warms.",properties:{reason:{type:"string"},task:{$ref:"#/$defs/WorkJobKeyV1"},wait:{const:"proposal_route",type:"string"}},required:["wait","task","reason"],type:"object"},{additionalProperties:!1,properties:{identity:{$ref:"#/$defs/WorkAttemptIdentityV1"},state:{$ref:"#/$defs/WorkAttemptStateV1"},wait:{const:"attempt",type:"string"}},required:["wait","identity","state"],type:"object"},{additionalProperties:!1,description:"The registered topology has no free attempt slot for this task.",properties:{problem:{$ref:"#/$defs/ApplicationProblemRecord"},task:{$ref:"#/$defs/WorkJobKeyV1"},wait:{const:"capacity",type:"string"}},required:["wait","task","problem"],type:"object"}]},WorkLeaseFenceV1:$L,WorkLeaseId:$U,WorkMilestoneV1:$H,WorkPlacementBlockerV1:$B,WorkPlacementIdentityV1:$K,WorkPlacementKindV1:$J,WorkPlacementStateV1:$Z,WorkPlacementTargetV1:$Q,WorkPlacementV1:$X,WorkPlanV1:$Y,WorkProductAuthorizedRelationScopeV1:$1,WorkProductEventEvidenceV1:$0,WorkProductEventPayloadV1:$2,WorkProductEventV1:$4,WorkProductGraphV1:$3,WorkProductMutationReceiptV1:$5,WorkProductProfileScopeV1:$8,WorkProposalDecisionV1:Sr,WorkProposalDispositionV1:Si,WorkProposalV1:So,WorkProposedChildV1:Sn,WorkProviderBackendV1:Ss,WorkProviderProtocol:Sc,WorkProviderRouteId:Sl,WorkProviderRouteV1:Sp,WorkRecoveryStateV1:Su,WorkRelationReplanDecisionV1:Sm,WorkRelationReplanProposalV1:Sf,WorkRestartReasonV1:Sh,WorkRouteDecisionV1:Sb,WorkSandboxPolicy:SV,WorkScoreKindV1:SR,WorkShapeAssessmentV1:Sq,WorkSizingV1:SI,WorkSynthesisAttemptV1:{description:"The typed outcome of a synthesis request: an admitted attempt, or the\nsealed unsynthesized set when synthesis could not truthfully begin.",oneOf:[{additionalProperties:!1,description:"The admitted synthesis attempt and everything it is accountable to.",properties:{attempt:{$ref:"#/$defs/WorkAttemptV1",description:"The leased (or idempotently replayed) synthesis attempt."},draft:{$ref:"#/$defs/WorkflowSynthesisDraft",description:"The citation obligation, complete by construction: the draft cites\nevery citable source digest and is verified downstream by\n[`crate::workflow_synthesis::verify_workflow_synthesis_draft`]."},groups:{description:"Disagreement structure over the succeeded sources.",items:{$ref:"#/$defs/WorkSynthesisEvidenceGroupV1"},type:"array"},source_set:{$ref:"#/$defs/WorkSynthesisSourceSetV1",description:"The sealed source envelopes the attempt was admitted against."},synthesis:{const:"admitted",type:"string"},uncited:{description:"Sources preserved without citations: failures, unknowns, and\nartifact-less successes, in the caller's requested order.",items:{$ref:"#/$defs/WorkAttemptIdentityV1"},type:"array"}},required:["synthesis","attempt","source_set","groups","draft","uncited"],type:"object"},{properties:{refusal:{$ref:"#/$defs/WorkSynthesisRefusalV1"},sources:{$ref:"#/$defs/WorkSynthesisSourceSetV1"},synthesis:{const:"unsynthesized",type:"string"}},required:["synthesis","sources","refusal"],type:"object"}]},WorkSynthesisEvidenceGroupV1:Sx,WorkSynthesisRefusalV1:Sj,WorkSynthesisSourceEnvelopeV1:SC,WorkSynthesisSourceOutcomeV1:ST,WorkSynthesisSourceSetV1:SO,WorkTerminalEvidenceV1:SA,WorkTopologyPolicyV1:SM,WorkflowOperationRef:SF,WorkflowOutputName:SL,WorkflowSynthesisDraft:SB,WorktreeCleanlinessRequirementV1:SK,WorktreeId:SJ,WorktreePlacementModeV1:SX,WorktreeRetentionPolicyV1:SY,WorktreeRootPolicyV1:S1},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"What one call did and where the job now stands.",properties:{job:{$ref:"#/$defs/WorkJobIdentitiesV1",description:"The derived identities, so the advanced operations can target them."},performed:{description:"Only the steps this call executed, in order.",items:{$ref:"#/$defs/WorkJobStepRecordV1"},type:"array"},state:{$ref:"#/$defs/WorkJobStateV1"}},required:["job","performed","state"],title:"AdvanceWorkJobResultV1",type:"object"},{$defs:{AttemptId:fM,RunId:vL,TaskId:bE},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{attempt_id:{$ref:"#/$defs/AttemptId"},run_id:{$ref:"#/$defs/RunId"},task_id:{$ref:"#/$defs/TaskId"}},required:["task_id","run_id","attempt_id"],title:"WorkAttemptStatusRequestV1",type:"object"},{$defs:{AttemptId:fM,AutomaticWorktreeGcV1:fL,BranchCollisionPolicyV1:f2,BranchNameComponentV1:f4,BranchNameSeparatorV1:f6,BranchNamingPolicyV1:f3,BranchTopologyKindV1:hr,BranchTopologyPolicyV1:hi,CanonicalGitRefNameV1:hc,CanonicalGitRefPrefix:hl,CapabilityId:hp,CommitId:hI,ConfigurationRevisionId:hN,ConfigurationSnapshotId:hz,CredentialReferenceId:yy,CrossMergeModeV1:yg,CrossMergePolicyV1:y_,GitHubStackedPullRequestPolicyV1:gP,HistoryRewritePolicyV1:gL,LocatorDigest:_i,ManifestDigest:_p,ProjectId:_6,ProposalId:_7,ProtectedRefDispositionV1:ve,ProtectedRefRuleV1:vt,ProtectedRefSelectorV1:vr,ProviderId:vn,RefId:vf,RepositoryId:v$,RepositoryPlacementScopeV1:vS,RequiredCheckExpectationV1:vk,RequiredCheckV1:vw,ReviewRequirementV1:vA,ReviewTopologyKindV1:vW,ReviewTopologyPolicyV1:vM,RunId:vL,SensitiveFilesystemLocatorV1:v3,TaskId:bE,TopologyConcurrencyPolicyV1:bH,TopologyEscalationPolicyV1:bG,TopologyGatePolicyV1:bB,TopologyNotificationLevelV1:bK,UtcMicros:bX,WorkApprovalPolicy:b2,WorkArtifactId:b4,WorkArtifactRefV1:b6,WorkAttemptIdentityV1:b9,WorkAttemptProgressV1:b7,WorkAttemptProjectionBindingV1:$e,WorkAttemptStateV1:$i,WorkCancellationAcknowledgementV1:$d,WorkCancellationEscalationV1:$c,WorkCancellationRequestId:$l,WorkCancellationRequestV1:$p,WorkCancellationStateV1:$u,WorkEffectStateV1:$g,WorkEgressPolicy:$v,WorkExecutableReference:$w,WorkExecutionEnvelopeV1:$P,WorkExecutionLimits:$V,WorkExecutionSnapshot:$R,WorkFallbackTopology:$x,WorkFenceEpochV1:$j,WorkFilesystemPolicy:$C,WorkLeaseFenceV1:$L,WorkLeaseId:$U,WorkProviderBackendV1:Ss,WorkProviderProtocol:Sc,WorkProviderRouteId:Sl,WorkProviderRouteV1:Sp,WorkRecoveryStateV1:Su,WorkRestartReasonV1:Sh,WorkSandboxPolicy:SV,WorkTerminalEvidenceV1:SA,WorkTopologyPolicyV1:SM,WorkflowOperationRef:SF,WorktreeCleanlinessRequirementV1:SK,WorktreeId:SJ,WorktreePlacementModeV1:SX,WorktreeRetentionPolicyV1:SY,WorktreeRootPolicyV1:S1},$schema:"https://json-schema.org/draft/2020-12/schema",properties:{actual_route:{anyOf:[{$ref:"#/$defs/WorkProviderRouteV1"},{type:"null"}]},artifacts:{items:{$ref:"#/$defs/WorkArtifactRefV1"},type:"array"},cancellation:{$ref:"#/$defs/WorkCancellationStateV1"},execution:{$ref:"#/$defs/WorkExecutionEnvelopeV1"},identity:{$ref:"#/$defs/WorkAttemptIdentityV1"},lease:{$ref:"#/$defs/WorkLeaseFenceV1"},progress:{anyOf:[{$ref:"#/$defs/WorkAttemptProgressV1"},{type:"null"}]},projection_binding:{$ref:"#/$defs/WorkAttemptProjectionBindingV1"},recovery:{$ref:"#/$defs/WorkRecoveryStateV1"},requested_route:{$ref:"#/$defs/WorkProviderRouteV1"},state:{$ref:"#/$defs/WorkAttemptStateV1"},terminal:{anyOf:[{$ref:"#/$defs/WorkTerminalEvidenceV1"},{type:"null"}]}},required:["identity","projection_binding","execution","lease","state","artifacts","cancellation","recovery","requested_route"],title:"WorkAttemptV1",type:"object"},{$defs:{AttemptId:fM,RunId:vL,TaskId:bE,UtcMicros:bX,WorkCancellationRequestId:$l},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{attempt_id:{$ref:"#/$defs/AttemptId"},occurred_at:{$ref:"#/$defs/UtcMicros"},request_id:{$ref:"#/$defs/WorkCancellationRequestId"},run_id:{$ref:"#/$defs/RunId"},task_id:{$ref:"#/$defs/TaskId"}},required:["task_id","run_id","attempt_id","request_id","occurred_at"],title:"CancelWorkAttemptCommand",type:"object"},{$defs:{ManifestDigest:_p,ProjectId:_6,RepositoryId:v$,TaskId:bE,UtcMicros:bX,VerifiedWorkGraphVersionV1:b1,WorkProductAuthorizedRelationScopeV1:$1,WorkProductSelectionScopeV1:St},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{new_version:{$ref:"#/$defs/VerifiedWorkGraphVersionV1"},observed_at:{$ref:"#/$defs/UtcMicros"},old_version:{$ref:"#/$defs/VerifiedWorkGraphVersionV1"},selection:{$ref:"#/$defs/WorkProductSelectionScopeV1"},task_id:{$ref:"#/$defs/TaskId"}},required:["selection","task_id","old_version","new_version","observed_at"],title:"WorkProposalComparisonRequestV1",type:"object"},{$defs:{ActorId:f$,AttemptId:fM,ManifestDigest:_p,ProposalId:_7,ProviderId:vn,RetrievalAnchorId:vx,RunId:vL,TaskEvidenceLinkV1:bT,TaskId:bE,UtcMicros:bX,VerifiedWorkEvidenceRootV1:{additionalProperties:!1,properties:{item:{$ref:"#/$defs/WorkItemV1"},links:{items:{$ref:"#/$defs/TaskEvidenceLinkV1"},type:"array"},proposal_decisions:{items:{$ref:"#/$defs/WorkProposalDecisionV1"},type:"array"},relation_replan_decisions:{items:{$ref:"#/$defs/WorkRelationReplanDecisionV1"},type:"array"},relations:{items:{$ref:"#/$defs/WorkProductRelationV1"},type:"array"},verified_version:{$ref:"#/$defs/VerifiedWorkGraphVersionV1"}},required:["verified_version","item","relations","proposal_decisions","relation_replan_decisions","links"],type:"object"},VerifiedWorkGraphVersionV1:b1,WorkAcceptanceCriterionV1:b0,WorkAttemptIdentityV1:b9,WorkHandoffV1:$W,WorkHierarchyV1:$M,WorkItemInputV1:$z,WorkItemV1:$D,WorkProductRelationV1:$7,WorkProposalComparisonEffectV1:{oneOf:[{const:"advisory_only",description:"Comparison is evidence only. There is no apply edge from this result.",type:"string"}]},WorkProposalDecisionV1:Sr,WorkProposalDispositionV1:Si,WorkProposalV1:So,WorkProposedChildV1:Sn,WorkProviderRouteId:Sl,WorkProviderRouteV1:Sp,WorkRelationReplanDecisionV1:Sm,WorkRelationReplanProposalV1:Sf,WorkRouteDecisionV1:Sb,WorkScoreKindV1:SR,WorkShapeAssessmentV1:Sq,WorkSizingV1:SI},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{added_evidence:{items:{$ref:"#/$defs/TaskEvidenceLinkV1"},type:"array"},added_relations:{items:{$ref:"#/$defs/WorkProductRelationV1"},type:"array"},effect:{$ref:"#/$defs/WorkProposalComparisonEffectV1"},item_changed:{type:"boolean"},new:{$ref:"#/$defs/VerifiedWorkEvidenceRootV1"},old:{$ref:"#/$defs/VerifiedWorkEvidenceRootV1"},removed_evidence:{items:{$ref:"#/$defs/TaskEvidenceLinkV1"},type:"array"},removed_relations:{items:{$ref:"#/$defs/WorkProductRelationV1"},type:"array"},task_id:{$ref:"#/$defs/TaskId"}},required:["task_id","old","new","added_relations","removed_relations","added_evidence","removed_evidence","item_changed","effect"],title:"WorkProposalComparisonV1",type:"object"},{$defs:{ActorId:f$,AttemptId:fM,CatalogGenerationId:hu,ConfigurationRevisionId:hN,ManifestDigest:_p,ProjectId:_6,ProposalId:_7,ProviderId:vn,RepositoryId:v$,RetrievalAnchorId:vx,RunId:vL,SourceStoreId:bw,TaskId:bE,UtcMicros:bX,VerifiedWorkGraphVersionV1:b1,WorkAcceptanceCriterionV1:b0,WorkAttemptIdentityV1:b9,WorkCommandId:$m,WorkHandoffV1:$W,WorkHierarchyV1:$M,WorkInitiativeV1:$N,WorkItemInputV1:$z,WorkItemV1:$D,WorkMilestoneV1:$H,WorkPlanV1:$Y,WorkProductAuthorizedRelationScopeV1:$1,WorkProductEventEvidenceV1:$0,WorkProductExpectedAuthorityV1:$6,WorkProductMutationIdentityV1:$9,WorkProductRevisionPinsV1:Se,WorkProductSelectionScopeV1:St,WorkProviderRouteId:Sl,WorkProviderRouteV1:Sp,WorkRouteDecisionV1:Sb},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{initiative:{$ref:"#/$defs/WorkInitiativeV1"},item:{$ref:"#/$defs/WorkItemV1"},milestone:{$ref:"#/$defs/WorkMilestoneV1"},mutation:{$ref:"#/$defs/WorkProductMutationIdentityV1"},plan:{$ref:"#/$defs/WorkPlanV1"},selection:{$ref:"#/$defs/WorkProductSelectionScopeV1"}},required:["selection","initiative","plan","milestone","item","mutation"],title:"CreateWorkTaskRequestV1",type:"object"},{$defs:{WorkAttemptListCursorV1:b8},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{cursor:{anyOf:[{$ref:"#/$defs/WorkAttemptListCursorV1"},{type:"null"}],default:null},page_size:{format:"uint32",minimum:0,type:"integer"}},required:["page_size"],title:"WorkAttemptListRequestV1",type:"object"},{$defs:{AttemptId:fM,ManifestDigest:_p,RunId:vL,TaskId:bE,UtcMicros:bX,WorkAttemptIdentityV1:b9,WorkAttemptListCoverageV1:b5,WorkAttemptListCursorV1:b8,WorkAttemptStateV1:$i,WorkEffectStateV1:$g,WorkExecutionSpanV1:{additionalProperties:!1,properties:{admitted_projection_sequence:{description:"Durable Work projection sequence under which execution was admitted.",format:"uint64",minimum:0,type:"integer"},effect_state:{$ref:"#/$defs/WorkEffectStateV1"},ended_at:{anyOf:[{$ref:"#/$defs/UtcMicros"},{type:"null"}]},identity:{$ref:"#/$defs/WorkAttemptIdentityV1"},started_at:{$ref:"#/$defs/UtcMicros"},state:{$ref:"#/$defs/WorkAttemptStateV1"},terminal_evidence_digest:{anyOf:[{$ref:"#/$defs/ManifestDigest"},{type:"null"}]},wall_micros:{description:"Present only when both owner instants form a valid non-negative span.",format:"uint64",minimum:0,type:["integer","null"]}},required:["identity","admitted_projection_sequence","state","effect_state","started_at"],type:"object"},WorkExecutionTimingCoverageV1:{oneOf:[{additionalProperties:!1,properties:{coverage:{const:"complete",type:"string"}},required:["coverage"],type:"object"},{additionalProperties:!1,properties:{coverage:{const:"partial",type:"string"},invalid_terminal_span:{items:{$ref:"#/$defs/WorkAttemptIdentityV1"},type:"array"},missing_dispatch:{items:{$ref:"#/$defs/WorkAttemptIdentityV1"},type:"array"}},required:["coverage","missing_dispatch","invalid_terminal_span"],type:"object"}]},WorkObservedExecutionOrderBasisV1:{enum:["terminal_observed_at_then_admitted_projection_sequence_then_attempt_identity"],type:"string"},WorkObservedExecutionV1:{additionalProperties:!1,properties:{admitted_projection_sequence:{format:"uint64",minimum:0,type:"integer"},evidence_digest:{$ref:"#/$defs/ManifestDigest"},identity:{$ref:"#/$defs/WorkAttemptIdentityV1"},observed_at:{$ref:"#/$defs/UtcMicros"},ordinal:{description:"One-based order assigned after sorting the durable terminal instants.",format:"uint32",minimum:0,type:"integer"},state:{$ref:"#/$defs/WorkAttemptStateV1"}},required:["ordinal","identity","admitted_projection_sequence","observed_at","state","evidence_digest"],type:"object"}},$schema:"https://json-schema.org/draft/2020-12/schema",oneOf:[{additionalProperties:!1,properties:{state:{const:"absent",type:"string"}},required:["state"],type:"object"},{additionalProperties:!1,properties:{attempt_coverage:{$ref:"#/$defs/WorkAttemptListCoverageV1"},observed_order:{items:{$ref:"#/$defs/WorkObservedExecutionV1"},type:"array"},order_basis:{$ref:"#/$defs/WorkObservedExecutionOrderBasisV1"},spans:{items:{$ref:"#/$defs/WorkExecutionSpanV1"},type:"array"},state:{const:"listed",type:"string"},timing_coverage:{$ref:"#/$defs/WorkExecutionTimingCoverageV1"}},required:["state","spans","observed_order","order_basis","attempt_coverage","timing_coverage"],type:"object"}],title:"WorkExecutionHistoryV1"},{$defs:{ManifestDigest:_p,ProjectId:_6,RepositoryId:v$,TaskId:bE,UtcMicros:bX,VerifiedWorkGraphVersionV1:b1,WorkExpertiseCategoryV1:$q,WorkProductAuthorizedRelationScopeV1:$1,WorkProductSelectionScopeV1:St},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{evidence_not_before:{$ref:"#/$defs/UtcMicros",description:"Evidence before this owner-supplied horizon is excluded as stale."},expertise_categories:{description:"Categories for which the returned context will be used ephemerally.",items:{$ref:"#/$defs/WorkExpertiseCategoryV1"},type:"array",uniqueItems:!0},limit:{format:"uint32",minimum:0,type:"integer"},observed_at:{$ref:"#/$defs/UtcMicros"},selection:{$ref:"#/$defs/WorkProductSelectionScopeV1"},task_id:{$ref:"#/$defs/TaskId"},verified_version:{$ref:"#/$defs/VerifiedWorkGraphVersionV1"}},required:["selection","task_id","verified_version","evidence_not_before","expertise_categories","limit","observed_at"],title:"WorkExperienceRequestV1",type:"object"},{$defs:{ActorId:f$,AttemptId:fM,ConfigurationRevisionId:hN,ConfigurationSnapshotId:hz,ManifestDigest:_p,ObservationSourceIdentityV1:_N,ProposalId:_7,ProviderId:vn,RetrievalAnchorId:vx,RunId:vL,SessionId:be,TaskEvidenceLinkV1:bT,TaskId:bE,UtcMicros:bX,VerifiedWorkGraphVersionV1:b1,WorkAcceptanceCriterionV1:b0,WorkArtifactId:b4,WorkArtifactRefV1:b6,WorkAttemptEvidenceRecordV1:b3,WorkAttemptIdentityV1:b9,WorkAttemptProviderOutcomeV1:$t,WorkAttemptReceiptV1:$r,WorkAttemptStreamChannelV1:$o,WorkAttemptStreamSummaryV1:$n,WorkExperienceApplicabilityV1:{enum:["same_accepted_route","same_milestone"],type:"string"},WorkExperienceCandidateV1:{additionalProperties:!1,properties:{applicability:{description:"Separate declared applicability facts. This is intentionally not a\nscore and candidates remain in canonical TaskId order.",items:{$ref:"#/$defs/WorkExperienceApplicabilityV1"},type:"array",uniqueItems:!0},attempt_receipts:{description:"Exact receipts for accepted successful attempts whose sealed provider\nevidence and declared artifacts establish reusable observed work. The\nidentity is also the canonical `work_retrieve_evidence` drill target.",items:{$ref:"#/$defs/WorkAttemptReceiptV1"},type:"array"},evidence:{description:"Exact anchored evidence establishing that this is observed experience.",items:{$ref:"#/$defs/TaskEvidenceLinkV1"},type:"array"},item:{$ref:"#/$defs/WorkItemV1"}},required:["item","evidence","attempt_receipts","applicability"],type:"object"},WorkExperienceCoverageV1:{oneOf:[{additionalProperties:!1,properties:{coverage:{const:"unavailable",type:"string"}},required:["coverage"],type:"object"},{additionalProperties:!1,properties:{applicable:{format:"uint32",minimum:0,type:"integer"},coverage:{const:"complete",type:"string"},returned:{format:"uint32",minimum:0,type:"integer"},stale_excluded:{format:"uint32",minimum:0,type:"integer"}},required:["coverage","returned","applicable","stale_excluded"],type:"object"},{additionalProperties:!1,properties:{applicable:{format:"uint32",minimum:0,type:"integer"},coverage:{const:"partial",type:"string"},omitted_by_limit:{format:"uint32",minimum:0,type:"integer"},returned:{format:"uint32",minimum:0,type:"integer"},stale_excluded:{format:"uint32",minimum:0,type:"integer"}},required:["coverage","returned","applicable","stale_excluded","omitted_by_limit"],type:"object"}]},WorkExpertiseAuthorizationV1:{oneOf:[{additionalProperties:!1,properties:{availability:{const:"available",type:"string"},categories:{items:{$ref:"#/$defs/WorkExpertiseCategoryV1"},type:"array",uniqueItems:!0},durability:{$ref:"#/$defs/WorkExpertiseContextDurabilityV1"},expires_at:{$ref:"#/$defs/UtcMicros"},pin:{$ref:"#/$defs/WorkExpertiseConsentPinV1"}},required:["availability","categories","expires_at","pin","durability"],type:"object"},{additionalProperties:!1,properties:{availability:{const:"unavailable",type:"string"},legal_actions:{items:{$ref:"#/$defs/WorkExpertiseLegalActionV1"},type:"array",uniqueItems:!0},pin:{$ref:"#/$defs/WorkExpertiseConsentPinV1"},reasons:{items:{$ref:"#/$defs/WorkExpertiseUnavailableReasonV1"},type:"array",uniqueItems:!0}},required:["availability","reasons","legal_actions","pin"],type:"object"}]},WorkExpertiseCategoryV1:$q,WorkExpertiseConsentPinV1:{additionalProperties:!1,properties:{configuration_digest:{$ref:"#/$defs/ManifestDigest"},configuration_revision:{$ref:"#/$defs/ConfigurationRevisionId"},configuration_snapshot:{$ref:"#/$defs/ConfigurationSnapshotId"},provenance_digest:{$ref:"#/$defs/ManifestDigest"}},required:["configuration_revision","configuration_snapshot","configuration_digest","provenance_digest"],type:"object"},WorkExpertiseContextDurabilityV1:{oneOf:[{const:"ephemeral_only",description:"Context is returned for this read only and cannot establish evidence,\nrouting, proposal acceptance, execution admission, or completion.",type:"string"}]},WorkExpertiseLegalActionV1:{enum:["grant_user_consent","grant_project_consent","renew_user_consent","renew_project_consent","allow_requested_categories"],type:"string"},WorkExpertiseUnavailableReasonV1:{enum:["user_consent_disabled","project_consent_disabled","user_consent_not_yet_effective","project_consent_not_yet_effective","user_consent_expired","project_consent_expired","requested_category_not_allowed"],type:"string"},WorkHandoffV1:$W,WorkHierarchyV1:$M,WorkItemInputV1:$z,WorkItemV1:$D,WorkProviderAvailabilityV1:Sa,WorkProviderBackendV1:Ss,WorkProviderFallbackRecordV1:Sd,WorkProviderRouteId:Sl,WorkProviderRouteV1:Sp,WorkRouteDecisionV1:Sb},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{candidates:{items:{$ref:"#/$defs/WorkExperienceCandidateV1"},type:"array"},coverage:{$ref:"#/$defs/WorkExperienceCoverageV1"},evidence_not_before:{$ref:"#/$defs/UtcMicros"},expertise:{$ref:"#/$defs/WorkExpertiseAuthorizationV1"},observed_at:{$ref:"#/$defs/UtcMicros"},task_id:{$ref:"#/$defs/TaskId"},verified_version:{$ref:"#/$defs/VerifiedWorkGraphVersionV1"}},required:["task_id","verified_version","evidence_not_before","observed_at","expertise","candidates","coverage"],title:"WorkExperienceV1",type:"object"},{$defs:{ManifestDigest:_p,ProjectId:_6,ProposalId:_7,RepositoryId:v$,TaskId:bE,UtcMicros:bX,WorkEvidenceFrontierV1:$$,WorkProductAuthorizedRelationScopeV1:$1,WorkProductSelectionScopeV1:St},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"Read-only proposal generation over one exact current product graph.",properties:{live_git_evidence:{anyOf:[{$ref:"#/$defs/WorkEvidenceFrontierV1"},{type:"null"}],default:null},occurred_at:{$ref:"#/$defs/UtcMicros"},proposal_id:{$ref:"#/$defs/ProposalId"},selection:{$ref:"#/$defs/WorkProductSelectionScopeV1"},task_id:{$ref:"#/$defs/TaskId"}},required:["selection","task_id","proposal_id","occurred_at"],title:"GenerateProposalRequest",type:"object"},{$defs:{ConfigurationRevisionId:hN,ManifestDigest:_p,PolicyIdentifierV1:{description:"A bounded, canonical identifier owned by the policy input schema.\n\nIt represents immutable references only; it is never a path, display\nlabel, provider account, branch name, or native object identifier.",type:"string"},ProposalId:_7,ProviderId:vn,TaskId:bE,UtcMicros:bX,VerifiedWorkGraphVersionV1:b1,WorkCalibratedSizingV1:{additionalProperties:!1,description:"Calibrated sizing. Emitted ONLY when support >= floor. Every field is\nnamed separately (Plan 06); `support_floor` carries the governing floor\ninto the record.",properties:{band:{$ref:"#/$defs/WorkOrdinalBandV1",description:"The sizing band itself: the stronger of the route's declared effort and\nthe derived shape magnitude, widened when the cohort error is high."},cohort:{description:"Identity of the cohort the sizing was calibrated over: the top-ranked\nroute id. Sizing from one cohort is never reused for another.",type:"string"},drift_valid:{description:"False when the cohort contains incomparable or stale observations, so a\nconsumer can refuse a sizing that drifted rather than silently trust it.",type:"boolean"},error:{$ref:"#/$defs/WorkOrdinalBandV1",description:"Observed adverse-outcome band over the cohort. An ordinal band, never a\nrate and never a probability."},horizon:{$ref:"#/$defs/UtcMicros",description:"Latest comparable observation in the cohort. Nothing after\n`evaluated_at` contributes, so the horizon never runs ahead of the input."},support:{description:"Count of comparable in-cohort outcomes backing this sizing.",format:"uint32",minimum:0,type:"integer"},support_floor:{description:"The floor that governed this emission, carried so replay shows which\nfloor applied rather than assuming the current constant.",format:"uint32",minimum:0,type:"integer"}},required:["cohort","horizon","support","support_floor","error","drift_valid","band"],type:"object"},WorkCalibrationEvidenceV1:{additionalProperties:!1,description:"Raw calibration values and their exact decision provenance.\n\nNo rate, probability, or composite score is derived here. Consumers see\nthe authority-supplied outcome rows, categorical uncertainty, and exact\ndenominator counts that produced the proposal's existing calibrated sizing.",properties:{cohort_route:{type:["string","null"]},comparable_outcomes:{format:"uint32",minimum:0,type:"integer"},eligible_route_count:{format:"uint32",minimum:0,type:"integer"},incomparable_outcomes:{format:"uint32",minimum:0,type:"integer"},provenance:{$ref:"#/$defs/WorkCalibrationProvenanceV1"},raw_outcomes:{items:{$ref:"#/$defs/WorkPriorOutcomeV1"},type:"array"},routes_with_outcomes:{format:"uint32",minimum:0,type:"integer"},uncertainty:{$ref:"#/$defs/WorkCalibrationUncertaintyV1"}},required:["raw_outcomes","eligible_route_count","routes_with_outcomes","comparable_outcomes","incomparable_outcomes","uncertainty","provenance"],type:"object"},WorkCalibrationProvenanceV1:{additionalProperties:!1,properties:{configuration_digest:{$ref:"#/$defs/ManifestDigest"},configuration_revision:{anyOf:[{$ref:"#/$defs/ConfigurationRevisionId"},{type:"null"}]},evaluated_at:{$ref:"#/$defs/UtcMicros"},evaluator_id:{type:"string"},evaluator_revision:{format:"uint64",minimum:0,type:"integer"},input_digest:{$ref:"#/$defs/ManifestDigest"},local_evidence:{anyOf:[{$ref:"#/$defs/WorkEvidenceFrontierV1"},{type:"null"}]}},required:["evaluator_id","evaluator_revision","input_digest","configuration_digest","evaluated_at"],type:"object"},WorkCalibrationUncertaintyV1:{enum:["supported","sparse","stale","incomparable"],type:"string"},WorkDecompositionProposalV1:{additionalProperties:!1,description:"A one-level decomposition proposal. Never recursive: a deeper split is a\nseparate sequenced capability, not something this evaluator may invent.",properties:{candidates:{description:"The proposed sketches, ordinal ascending from 0.",items:{$ref:"#/$defs/WorkSubtaskSketchV1"},type:"array"},rationale:{description:"Why the proposal was emitted, in the same ordered reason vocabulary the\ndecision uses.",items:{$ref:"#/$defs/WorkProposalReasonV1"},type:"array"}},required:["candidates","rationale"],type:"object"},WorkEvidenceFrontierV1:$$,WorkFrontierComparisonV1:{description:"Recorded relation between the two supplied frontiers. `Incomparable` means\nat least one side was absent; it is not collapsed into agreement.",enum:["agree","disagree","incomparable"],type:"string"},WorkOrdinalBandV1:$G,WorkPriorOutcomeV1:{additionalProperties:!1,description:"Cohort denominator. APPLICATION-supplied, never worker-supplied.\n\nA worker cannot widen its own calibration cohort, so a route cannot earn\ncalibrated sizing by reporting its own successes.",properties:{accepted:{description:"Whether the produced work was accepted.",type:"boolean"},escaped_defect:{description:"Whether a defect escaped review.",type:"boolean"},observed_at:{$ref:"#/$defs/UtcMicros",description:"When the outcome was observed. Outcomes later than `evaluated_at` are\nINCOMPARABLE and are excluded from support rather than trusted."},rework:{description:"Whether the accepted work required rework.",type:"boolean"},route_id:{description:"The route this outcome belongs to. May name a retired route; only\noutcomes matching the top-ranked route form the sizing cohort.",type:"string"},terminal:{$ref:"#/$defs/WorkPriorTerminalV1",description:"How the attempt terminated."}},required:["route_id","accepted","rework","escaped_defect","terminal","observed_at"],type:"object"},WorkPriorTerminalV1:{description:"How a prior attempt on a route ended. Recorded, never inferred.",enum:["succeeded","failed","timed_out","cancelled"],type:"string"},WorkProposalActionV1:{description:"The explicit command the decision recommends next. A recommendation never\nexecutes; each action names a separate version-checked application command.",enum:["proceed_to_acceptance","hold_for_dependencies","admit_execution","replan"],type:"string"},WorkProposalDecisionV1:{additionalProperties:!1,description:"One explained, replayable work-loop decision.",properties:{based_on_version:{format:"uint64",minimum:0,type:"integer"},configuration_digest:{$ref:"#/$defs/ManifestDigest"},configuration_revision:{anyOf:[{$ref:"#/$defs/ConfigurationRevisionId"},{type:"null"}]},decomposition:{anyOf:[{$ref:"#/$defs/WorkDecompositionProposalV1"},{type:"null"}],description:"One-level decomposition sketch, present only when more than one\ndependency is unresolved."},deterministic_fallback:{description:"True when the recommendation is the declared deterministic baseline\nselected because the evidence cannot support a stronger claim.",type:"boolean"},disposition:{$ref:"#/$defs/WorkProposalDispositionV1"},evaluator_id:{$ref:"#/$defs/PolicyIdentifierV1"},evaluator_revision:{format:"uint64",minimum:0,type:"integer"},frontier_comparison:{$ref:"#/$defs/WorkFrontierComparisonV1"},input_digest:{$ref:"#/$defs/ManifestDigest"},live_git_evidence:{anyOf:[{$ref:"#/$defs/WorkEvidenceFrontierV1"},{type:"null"}],description:"The live Git frontier, returned exactly as supplied."},local_evidence:{anyOf:[{$ref:"#/$defs/WorkEvidenceFrontierV1"},{type:"null"}],description:"The local code/session frontier, returned exactly as supplied."},ordered_reason_codes:{items:{$ref:"#/$defs/WorkProposalReasonV1"},type:"array"},policy_digest:{$ref:"#/$defs/ManifestDigest"},policy_revision:{format:"uint64",minimum:0,type:"integer"},recommended_action:{anyOf:[{$ref:"#/$defs/WorkProposalActionV1"},{type:"null"}]},route_plan:{anyOf:[{$ref:"#/$defs/WorkRoutePlanV1"},{type:"null"}],description:"The explained route plan. Present on every evaluation that reached the\ngates, including the one that found no eligible route."},shape:{anyOf:[{$ref:"#/$defs/WorkTaskShapeV1"},{type:"null"}],description:"Derived task shape. Absent on the invalid, cancelled, and deadline\nshort-circuits, where no planner claim is licensed."},sizing:{anyOf:[{$ref:"#/$defs/WorkCalibratedSizingV1"},{type:"null"}],description:"Calibrated sizing, present only when in-cohort support reached the\ngoverning floor. Absence is a recorded fact, never a fabricated estimate."},task_id:{$ref:"#/$defs/TaskId"}},required:["evaluator_id","evaluator_revision","input_digest","task_id","based_on_version","policy_revision","policy_digest","configuration_digest","disposition","deterministic_fallback","ordered_reason_codes","frontier_comparison"],type:"object"},WorkProposalDispositionV1:{description:"Exactly one disposition per decision.",enum:["allow","deny","abstain","indeterminate"],type:"string"},WorkProposalReasonV1:{enum:["invalid_request","request_cancelled","deadline_exceeded","frontier_agreement","frontier_disagreement","frontier_incomparable","task_accepted","runtime_coverage_partial","runtime_coverage_unavailable","terminal_evidence_observed","execution_in_flight","proposal_accepted","dependencies_unresolved","ready","insufficient_calibration_support","route_budget_exceeded","route_content_location_refused","route_evidence_sparse","route_evidence_stale","human_override_applied","no_eligible_routes","deterministic_baseline_selected"],type:"string"},WorkProposalV1:So,WorkProposedChildV1:Sn,WorkProviderRouteId:Sl,WorkProviderRouteV1:Sp,WorkRankedRouteV1:{additionalProperties:!1,description:"Ranked route. Dimensions stay SEPARATE. No scalar score field is permitted here.",properties:{autonomy:{$ref:"#/$defs/WorkOrdinalBandV1",description:"Autonomy fitness, echoed unmerged."},correctness:{$ref:"#/$defs/WorkOrdinalBandV1",description:"Correctness fitness, echoed so the ranking can be audited without the input."},cost:{$ref:"#/$defs/WorkOrdinalBandV1",description:"Cost fitness, oriented so `Highest` is best-fitting."},evidence_quality:{$ref:"#/$defs/WorkOrdinalBandV1",description:"Evidence-quality fitness, echoed unmerged."},latency:{$ref:"#/$defs/WorkOrdinalBandV1",description:"Latency fitness, oriented so `Highest` is best-fitting."},rank:{description:"Position in the ranking, ascending from 1.",format:"uint32",minimum:0,type:"integer"},route_id:{description:"The ranked route's identity.",type:"string"},sensitive_data_fitness:{$ref:"#/$defs/WorkOrdinalBandV1",description:"Sensitive-data fitness, echoed unmerged."}},required:["rank","route_id","correctness","sensitive_data_fitness","latency","cost","autonomy","evidence_quality"],type:"object"},WorkRouteDecisionV1:Sb,WorkRouteExclusionV1:{additionalProperties:!1,description:"One refused route and the single reason that refused it. Exclusion is\nrecorded rather than silent so a missing route is always explained.",properties:{reason:{$ref:"#/$defs/WorkProposalReasonV1",description:"The first limit the route failed, in the declared exclusion order."},route_id:{description:"The refused route's identity.",type:"string"}},required:["route_id","reason"],type:"object"},WorkRoutePlanV1:{additionalProperties:!1,description:"The explained route plan for one decision. Recommends; never dispatches.",properties:{coverage:{$ref:"#/$defs/WorkOrdinalBandV1",description:"Fraction-free ordinal coverage of the cohort evidence over the ranked set."},deterministic_baseline:{description:"The declared deterministic baseline, selected when evidence cannot support a\nstronger claim. Always names a route that survived exclusion, or None when none did.",type:["string","null"]},exclusions:{description:"Every refused route with its reason, in supplied order.",items:{$ref:"#/$defs/WorkRouteExclusionV1"},type:"array"},human_override_applied:{description:"True only when a recorded human override named a route that survived\nexclusion. An excluded or unknown override leaves ranking untouched.",type:"boolean"},ranked:{description:"Surviving routes in total, deterministic order, rank ascending from 1.",items:{$ref:"#/$defs/WorkRankedRouteV1"},type:"array"},uncertainty:{$ref:"#/$defs/WorkOrdinalBandV1",description:"Widens on sparse / stale / incomparable evidence."}},required:["ranked","exclusions","coverage","uncertainty","human_override_applied"],type:"object"},WorkScoreKindV1:SR,WorkShapeAssessmentV1:Sq,WorkSizingV1:SI,WorkSubtaskSketchV1:{additionalProperties:!1,description:"One level only (Q3). Read-only sketch; accepting it stays a separate version-checked command.",properties:{ordinal:{description:"Position in the proposal, ascending from 0. Stable across replays of the\nsame input.",format:"uint32",minimum:0,type:"integer"},shape:{$ref:"#/$defs/WorkTaskShapeKindV1",description:"Kind the sketch would carry if it were accepted as its own task."},summary:{description:"What the sketch covers, phrased from the declared counts alone.",type:"string"}},required:["ordinal","summary","shape"],type:"object"},WorkTaskShapeKindV1:{description:"Kind of work the snapshot facts describe. Derived only from facts already in\nthe input; `Unclassified` when those facts do not distinguish a kind.",enum:["investigation","change","synthesis","unclassified"],type:"string"},WorkTaskShapeV1:{additionalProperties:!1,description:"The derived shape of the task: what kind of work it is and how large the\ndeclared dependency and evidence counts make it.",properties:{band:{$ref:"#/$defs/WorkOrdinalBandV1",description:"Magnitude band derived from the declared dependency and evidence counts."},kind:{$ref:"#/$defs/WorkTaskShapeKindV1",description:"Kind derived from the gate booleans and counts. No new discovery."}},required:["kind","band"],type:"object"}},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"A canonical product proposal and the exact verified graph that licensed it.\n\n`proposal` can be moved directly into a `DecideWorkProposalRequestV1`;\ncallers use `verified_graph_version` to construct that mutation's CAS pin.",properties:{calibration:{$ref:"#/$defs/WorkCalibrationEvidenceV1"},decision:{$ref:"#/$defs/WorkProposalDecisionV1"},proposal:{$ref:"#/$defs/WorkProposalV1"},verified_graph_version:{$ref:"#/$defs/VerifiedWorkGraphVersionV1"}},required:["proposal","verified_graph_version","decision","calibration"],title:"GeneratedWorkProposal",type:"object"},{$defs:{WorkAttemptListCursorV1:b8},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"One authority-scoped artifact hydration request, paged like the attempt\nlist and pinned to the same verified topology generation.",properties:{cursor:{anyOf:[{$ref:"#/$defs/WorkAttemptListCursorV1"},{type:"null"}],default:null},page_size:{format:"uint32",minimum:0,type:"integer"}},required:["page_size"],title:"WorkArtifactHydrationRequestV1",type:"object"},{$defs:{AttemptId:fM,ManifestDigest:_p,ObservationSourceIdentityV1:_N,ProviderId:vn,RunId:vL,SessionId:be,TaskId:bE,UtcMicros:bX,WorkArtifactId:b4,WorkArtifactRefV1:b6,WorkAttemptArtifactsV1:{additionalProperties:!1,description:"The artifacts and evidence one attempt declared.",properties:{artifacts:{description:"Every artifact reference the attempt declared, in its canonical\nstored order. References carry digest and byte length; bytes are\nnever part of this read.",items:{$ref:"#/$defs/WorkArtifactRefV1"},type:"array"},evidence:{$ref:"#/$defs/WorkAttemptEvidenceStateV1"},identity:{$ref:"#/$defs/WorkAttemptIdentityV1"}},required:["identity","artifacts","evidence"],type:"object"},WorkAttemptEvidenceRecordV1:b3,WorkAttemptEvidenceStateV1:{description:"Whether an attempt's terminal evidence has been sealed. An attempt that\nhas not reported an outcome yet is a typed state, not a missing record.",oneOf:[{additionalProperties:!1,description:"The attempt has not sealed terminal evidence yet.",properties:{state:{const:"pending",type:"string"}},required:["state"],type:"object"},{additionalProperties:!1,description:"The sealed terminal evidence record, exactly as it was written.",properties:{record:{$ref:"#/$defs/WorkAttemptEvidenceRecordV1"},state:{const:"sealed",type:"string"}},required:["state","record"],type:"object"}]},WorkAttemptIdentityV1:b9,WorkAttemptListCoverageV1:b5,WorkAttemptListCursorV1:b8,WorkAttemptProviderOutcomeV1:$t,WorkAttemptStreamChannelV1:$o,WorkAttemptStreamSummaryV1:$n,WorkAttemptTopologyBindingV1:$a,WorkProviderAvailabilityV1:Sa,WorkProviderBackendV1:Ss,WorkProviderFallbackRecordV1:Sd,WorkProviderRouteId:Sl,WorkProviderRouteV1:Sp},$schema:"https://json-schema.org/draft/2020-12/schema",description:"One authority-scoped artifact hydration read. Absence of any Work in\nscope is a typed state, distinct from an authorized-but-empty page.",oneOf:[{additionalProperties:!1,description:"No Work exists in this authority scope, so there is no attempt set to\nhydrate. Concealed scopes never reach this state: they are refused as\nnot-found-or-not-authorized before any read.",properties:{state:{const:"absent",type:"string"}},required:["state"],type:"object"},{additionalProperties:!1,description:"One page of attempt artifact sets under the verified topology\nsnapshot.",properties:{attempts:{items:{$ref:"#/$defs/WorkAttemptArtifactsV1"},type:"array"},coverage:{$ref:"#/$defs/WorkAttemptListCoverageV1"},state:{const:"hydrated",type:"string"},topology:{$ref:"#/$defs/WorkAttemptTopologyBindingV1"}},required:["state","topology","attempts","coverage"],type:"object"}],title:"WorkArtifactHydrationV1"},{$defs:{AttemptId:fM,AutomaticWorktreeGcV1:fL,BranchCollisionPolicyV1:f2,BranchNameComponentV1:f4,BranchNameSeparatorV1:f6,BranchNamingPolicyV1:f3,BranchTopologyKindV1:hr,BranchTopologyPolicyV1:hi,CanonicalGitRefNameV1:hc,CanonicalGitRefPrefix:hl,CapabilityId:hp,CommitId:hI,ConfigurationRevisionId:hN,ConfigurationSnapshotId:hz,CredentialReferenceId:yy,CrossMergeModeV1:yg,CrossMergePolicyV1:y_,GitHubStackedPullRequestPolicyV1:gP,HistoryRewritePolicyV1:gL,LocatorDigest:_i,ManifestDigest:_p,ProjectId:_6,ProposalId:_7,ProtectedRefDispositionV1:ve,ProtectedRefRuleV1:vt,ProtectedRefSelectorV1:vr,ProviderId:vn,RefId:vf,RepositoryId:v$,RepositoryPlacementScopeV1:vS,RequiredCheckExpectationV1:vk,RequiredCheckV1:vw,ReviewRequirementV1:vA,ReviewTopologyKindV1:vW,ReviewTopologyPolicyV1:vM,RunId:vL,SensitiveFilesystemLocatorV1:v3,TaskId:bE,TopologyConcurrencyPolicyV1:bH,TopologyEscalationPolicyV1:bG,TopologyGatePolicyV1:bB,TopologyNotificationLevelV1:bK,UtcMicros:bX,WorkApprovalPolicy:b2,WorkArtifactId:b4,WorkArtifactRefV1:b6,WorkAttemptIdentityV1:b9,WorkAttemptListCoverageV1:b5,WorkAttemptListCursorV1:b8,WorkAttemptProgressV1:b7,WorkAttemptProjectionBindingV1:$e,WorkAttemptStateV1:$i,WorkAttemptTopologyBindingV1:$a,WorkAttemptV1:$s,WorkCancellationAcknowledgementV1:$d,WorkCancellationEscalationV1:$c,WorkCancellationRequestId:$l,WorkCancellationRequestV1:$p,WorkCancellationStateV1:$u,WorkEffectStateV1:$g,WorkEgressPolicy:$v,WorkExecutableReference:$w,WorkExecutionEnvelopeV1:$P,WorkExecutionLimits:$V,WorkExecutionSnapshot:$R,WorkFallbackTopology:$x,WorkFenceEpochV1:$j,WorkFilesystemPolicy:$C,WorkLeaseFenceV1:$L,WorkLeaseId:$U,WorkProviderBackendV1:Ss,WorkProviderProtocol:Sc,WorkProviderRouteId:Sl,WorkProviderRouteV1:Sp,WorkRecoveryStateV1:Su,WorkRestartReasonV1:Sh,WorkSandboxPolicy:SV,WorkTerminalEvidenceV1:SA,WorkTopologyPolicyV1:SM,WorkflowOperationRef:SF,WorktreeCleanlinessRequirementV1:SK,WorktreeId:SJ,WorktreePlacementModeV1:SX,WorktreeRetentionPolicyV1:SY,WorktreeRootPolicyV1:S1},$schema:"https://json-schema.org/draft/2020-12/schema",description:"One authority-scoped attempt-list read. Absence of any Work in scope is a\ntyped state, distinct from an authorized-but-empty page.",oneOf:[{additionalProperties:!1,description:"No Work exists in this authority scope, so there is no attempt set to\npage. Concealed scopes never reach this state: they are refused as\nnot-found-or-not-authorized before any read.",properties:{state:{const:"absent",type:"string"}},required:["state"],type:"object"},{additionalProperties:!1,description:"One page of durable attempts under the verified topology snapshot.",properties:{attempts:{items:{$ref:"#/$defs/WorkAttemptV1"},type:"array"},coverage:{$ref:"#/$defs/WorkAttemptListCoverageV1"},state:{const:"listed",type:"string"},topology:{$ref:"#/$defs/WorkAttemptTopologyBindingV1"}},required:["state","topology","attempts","coverage"],type:"object"}],title:"WorkAttemptListV1"},{$defs:{AcceptWorkTaskRequestV1:{additionalProperties:!1,properties:{evidence_by_criterion:{additionalProperties:{type:"string"},type:"object"},mutation:{$ref:"#/$defs/WorkProductMutationIdentityV1"},selection:{$ref:"#/$defs/WorkProductSelectionScopeV1"},task_id:{$ref:"#/$defs/TaskId"}},required:["selection","task_id","evidence_by_criterion","mutation"],type:"object"},ActorId:f$,AddWorkTaskRequestV1:{additionalProperties:!1,properties:{item:{$ref:"#/$defs/WorkItemV1"},mutation:{$ref:"#/$defs/WorkProductMutationIdentityV1"},selection:{$ref:"#/$defs/WorkProductSelectionScopeV1"}},required:["selection","item","mutation"],type:"object"},AdmitWorkExecutionRequestV1:{additionalProperties:!1,properties:{based_on_version:{format:"uint64",minimum:0,type:"integer"},mutation:{$ref:"#/$defs/WorkProductMutationIdentityV1"},selection:{$ref:"#/$defs/WorkProductSelectionScopeV1"},task_id:{$ref:"#/$defs/TaskId"}},required:["selection","task_id","based_on_version","mutation"],type:"object"},ApplyWorkRelationReplanRequestV1:{additionalProperties:!1,properties:{mutation:{$ref:"#/$defs/WorkProductMutationIdentityV1"},proposal_id:{$ref:"#/$defs/ProposalId"},selection:{$ref:"#/$defs/WorkProductSelectionScopeV1"}},required:["selection","proposal_id","mutation"],type:"object"},AttemptId:fM,CatalogGenerationId:hu,ConfigurationRevisionId:hN,CreateWorkProductRequestV1:{additionalProperties:!1,properties:{initial_graph:{$ref:"#/$defs/WorkProductGraphV1"},mutation:{$ref:"#/$defs/WorkProductMutationIdentityV1"},selection:{$ref:"#/$defs/WorkProductSelectionScopeV1"}},required:["selection","initial_graph","mutation"],type:"object"},CreateWorkTaskRequestV1:{additionalProperties:!1,properties:{initiative:{$ref:"#/$defs/WorkInitiativeV1"},item:{$ref:"#/$defs/WorkItemV1"},milestone:{$ref:"#/$defs/WorkMilestoneV1"},mutation:{$ref:"#/$defs/WorkProductMutationIdentityV1"},plan:{$ref:"#/$defs/WorkPlanV1"},selection:{$ref:"#/$defs/WorkProductSelectionScopeV1"}},required:["selection","initiative","plan","milestone","item","mutation"],type:"object"},DecideWorkProposalRequestV1:{additionalProperties:!1,properties:{disposition:{$ref:"#/$defs/WorkProposalDispositionV1"},mutation:{$ref:"#/$defs/WorkProductMutationIdentityV1"},proposal:{$ref:"#/$defs/WorkProposalV1"},selection:{$ref:"#/$defs/WorkProductSelectionScopeV1"}},required:["selection","proposal","disposition","mutation"],type:"object"},DecideWorkRelationReplanRequestV1:{additionalProperties:!1,properties:{disposition:{$ref:"#/$defs/WorkProposalDispositionV1"},mutation:{$ref:"#/$defs/WorkProductMutationIdentityV1"},proposal:{$ref:"#/$defs/WorkRelationReplanProposalV1"},selection:{$ref:"#/$defs/WorkProductSelectionScopeV1"}},required:["selection","proposal","disposition","mutation"],type:"object"},LinkAcceptedWorkAttemptRequestV1:{additionalProperties:!1,properties:{based_on_version:{format:"uint64",minimum:0,type:"integer"},identity:{$ref:"#/$defs/WorkAttemptIdentityV1"},mutation:{$ref:"#/$defs/WorkProductMutationIdentityV1"},selection:{$ref:"#/$defs/WorkProductSelectionScopeV1"},task_id:{$ref:"#/$defs/TaskId"}},required:["selection","task_id","based_on_version","identity","mutation"],type:"object"},ManifestDigest:_p,ProjectId:_6,ProposalId:_7,ProviderId:vn,RecordWorkHandoffRequestV1:{additionalProperties:!1,properties:{handoff:{$ref:"#/$defs/WorkHandoffV1"},mutation:{$ref:"#/$defs/WorkProductMutationIdentityV1"},selection:{$ref:"#/$defs/WorkProductSelectionScopeV1"}},required:["selection","handoff","mutation"],type:"object"},RepositoryId:v$,RetrievalAnchorId:vx,RunId:vL,SourceStoreId:bw,TaskEvidenceLinkV1:bT,TaskId:bE,UtcMicros:bX,VerifiedWorkGraphVersionV1:b1,WorkAcceptanceCriterionV1:b0,WorkAttemptIdentityV1:b9,WorkCommandId:$m,WorkHandoffV1:$W,WorkHierarchyV1:$M,WorkInitiativeV1:$N,WorkItemInputV1:$z,WorkItemV1:$D,WorkMilestoneV1:$H,WorkPlanV1:$Y,WorkProductAuthorizedRelationScopeV1:$1,WorkProductEventEvidenceV1:$0,WorkProductExpectedAuthorityV1:$6,WorkProductGraphV1:$3,WorkProductMutationIdentityV1:$9,WorkProductRevisionPinsV1:Se,WorkProductSelectionScopeV1:St,WorkProposalDecisionV1:Sr,WorkProposalDispositionV1:Si,WorkProposalV1:So,WorkProposedChildV1:Sn,WorkProviderRouteId:Sl,WorkProviderRouteV1:Sp,WorkRelationReplanDecisionV1:Sm,WorkRelationReplanProposalV1:Sf,WorkRouteDecisionV1:Sb,WorkScoreKindV1:SR,WorkShapeAssessmentV1:Sq,WorkSizingV1:SI},$schema:"https://json-schema.org/draft/2020-12/schema",description:"Closed public mutation surface for the Work-product graph authority.",oneOf:[{properties:{mutation:{const:"create",type:"string"},request:{$ref:"#/$defs/CreateWorkProductRequestV1"}},required:["mutation","request"],type:"object"},{properties:{mutation:{const:"add_task",type:"string"},request:{$ref:"#/$defs/AddWorkTaskRequestV1"}},required:["mutation","request"],type:"object"},{properties:{mutation:{const:"create_task",type:"string"},request:{$ref:"#/$defs/CreateWorkTaskRequestV1"}},required:["mutation","request"],type:"object"},{properties:{mutation:{const:"decide_proposal",type:"string"},request:{$ref:"#/$defs/DecideWorkProposalRequestV1"}},required:["mutation","request"],type:"object"},{properties:{mutation:{const:"decide_relation_replan",type:"string"},request:{$ref:"#/$defs/DecideWorkRelationReplanRequestV1"}},required:["mutation","request"],type:"object"},{properties:{mutation:{const:"apply_relation_replan",type:"string"},request:{$ref:"#/$defs/ApplyWorkRelationReplanRequestV1"}},required:["mutation","request"],type:"object"},{properties:{mutation:{const:"accept_task",type:"string"},request:{$ref:"#/$defs/AcceptWorkTaskRequestV1"}},required:["mutation","request"],type:"object"},{properties:{mutation:{const:"admit_execution",type:"string"},request:{$ref:"#/$defs/AdmitWorkExecutionRequestV1"}},required:["mutation","request"],type:"object"},{properties:{mutation:{const:"link_accepted_attempt",type:"string"},request:{$ref:"#/$defs/LinkAcceptedWorkAttemptRequestV1"}},required:["mutation","request"],type:"object"},{properties:{mutation:{const:"record_handoff",type:"string"},request:{$ref:"#/$defs/RecordWorkHandoffRequestV1"}},required:["mutation","request"],type:"object"}],title:"WorkProductMutationRequestV1",type:"object"},{$defs:{RunId:vL,TaskId:bE,UtcMicros:bX,WorkRunControlReasonV1:Sk},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{expected_authority_version:{default:null,description:'The authority version the caller read. Absent means "no control row was\npublished yet"; a mismatch is a conflict, never an overwrite.',format:"uint64",minimum:0,type:["integer","null"]},occurred_at:{$ref:"#/$defs/UtcMicros"},reason:{$ref:"#/$defs/WorkRunControlReasonV1"},run_id:{$ref:"#/$defs/RunId"},task_id:{$ref:"#/$defs/TaskId"}},required:["task_id","run_id","reason","occurred_at"],title:"PauseWorkRunCommand",type:"object"},{$defs:{AttemptId:fM,RunId:vL,TaskId:bE,UtcMicros:bX,WorkRunControlAuthorityV1:SS,WorkRunControlReasonV1:Sk,WorkRunControlStateV1:Sw,WorkRunDeadlineCheckpointV1:SP},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"One run's durable control aggregate.",properties:{authority:{$ref:"#/$defs/WorkRunControlAuthorityV1"},deadline:{$ref:"#/$defs/WorkRunDeadlineCheckpointV1"},fenced_attempts:{description:'The exact attempts that were live when the current state published.\nEmpty means "none were live", never "we did not look".',items:{$ref:"#/$defs/AttemptId"},type:"array"},reason:{anyOf:[{$ref:"#/$defs/WorkRunControlReasonV1"},{type:"null"}]},run_id:{$ref:"#/$defs/RunId"},state:{$ref:"#/$defs/WorkRunControlStateV1"},task_id:{$ref:"#/$defs/TaskId"},transitioned_at:{$ref:"#/$defs/UtcMicros"}},required:["task_id","run_id","state","authority","deadline","transitioned_at","fenced_attempts"],title:"WorkRunControlV1",type:"object"},{$defs:{RunId:vL,TaskId:bE,UtcMicros:bX,WorkPlacementKindV1:$J,WorkPlacementTargetV1:$Q},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{occurred_at:{$ref:"#/$defs/UtcMicros"},run_id:{$ref:"#/$defs/RunId"},target:{$ref:"#/$defs/WorkPlacementTargetV1"},task_id:{$ref:"#/$defs/TaskId"}},required:["task_id","run_id","target","occurred_at"],title:"WorkPlacementPreflightRequestV1",type:"object"},{$defs:{RunId:vL,TaskId:bE,UtcMicros:bX,WorkPlacementBlockerV1:$B,WorkPlacementIdentityV1:$K,WorkPlacementKindV1:$J,WorkPlacementObservationV1:{additionalProperties:!1,description:'What was actually observed at the target, in counts rather than prose.\n\nCounts are measurements: a zero is "we looked and found none", and\n`readable: false` is the separate state for "we could not look". Collapsing\nthem would let an unreadable target read as a clean one.',properties:{active_holder:{description:"Whether another admitted placement already holds this target.",type:"boolean"},dirty_tracked_paths:{description:"Tracked paths that differ from the index or HEAD.",format:"uint32",minimum:0,type:"integer"},network_required:{description:"Whether the declared network-free placement would require network.",type:"boolean"},observed_at:{$ref:"#/$defs/UtcMicros"},readable:{description:"Whether the target could be read at all.",type:"boolean"},unique_commits:{description:'Commits in the target reachable from nowhere else.\n\n`None` means reachability was not measured, and it blocks removal\nexactly as a positive count does: an unmeasured target is "unknown"\nand is retained rather than assumed worthless. Only removal consults\nthis; admission does not.',format:"uint32",minimum:0,type:["integer","null"]},untracked_paths:{description:"Untracked paths present in the target.",format:"uint32",minimum:0,type:"integer"}},required:["dirty_tracked_paths","untracked_paths","readable","active_holder","network_required","observed_at"],title:"WorkPlacementObservationV1",type:"object"},WorkPlacementTargetV1:$Q},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"One placement preflight reading: what was asked for, what was seen, and\nexactly what blocks it.",properties:{blockers:{items:{$ref:"#/$defs/WorkPlacementBlockerV1"},type:"array",uniqueItems:!0},identity:{$ref:"#/$defs/WorkPlacementIdentityV1"},observation:{$ref:"#/$defs/WorkPlacementObservationV1"},target:{$ref:"#/$defs/WorkPlacementTargetV1"}},required:["identity","target","observation","blockers"],title:"WorkPlacementPreflightV1",type:"object"},{$defs:{RunId:vL,TaskId:bE},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{run_id:{$ref:"#/$defs/RunId"},task_id:{$ref:"#/$defs/TaskId"}},required:["task_id","run_id"],title:"WorkPlacementStatusRequestV1",type:"object"},{$defs:{RunId:vL,TaskId:bE,UtcMicros:bX,WorkPlacementBlockerV1:$B,WorkPlacementIdentityV1:$K,WorkPlacementKindV1:$J,WorkPlacementStateV1:$Z,WorkPlacementTargetV1:$Q,WorkPlacementV1:$X},$schema:"https://json-schema.org/draft/2020-12/schema",description:"One placement reading. Absence is a state, not an empty placement.",oneOf:[{additionalProperties:!1,description:"No placement was ever admitted for this run.",properties:{state:{const:"absent",type:"string"}},required:["state"],type:"object"},{additionalProperties:!1,description:"The durable placement relation.",properties:{placement:{$ref:"#/$defs/WorkPlacementV1"},state:{const:"placed",type:"string"}},required:["state","placement"],type:"object"}],title:"WorkPlacementReadingV1"},{$defs:{AttemptId:fM,CoverageStateV1:yh,DuplicateEffectOutcomeV1:yV,DuplicateEffortKindV1:yR,QuantityEvidenceClassV1:vd,RunId:vL,TaskId:bE,WorkAttemptIdentityV1:b9,WorkDuplicateAdjudicationQuantitiesV1:$y},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"Operator judgment before the owning Work authority binds exact current\ngenerations, relation revision, command identity, and observation time.",properties:{first_attempt:{$ref:"#/$defs/WorkAttemptIdentityV1"},quantities:{$ref:"#/$defs/WorkDuplicateAdjudicationQuantitiesV1"},reason:{type:"string"},second_attempt:{$ref:"#/$defs/WorkAttemptIdentityV1"},verdict:{$ref:"#/$defs/DuplicateEffortKindV1"}},required:["first_attempt","second_attempt","verdict","quantities","reason"],title:"PrepareWorkDuplicateAdjudicationRequestV1",type:"object"},{$defs:{ActorId:f$,AttemptId:fM,ManifestDigest:_p,ProjectId:_6,ProposalId:_7,ProviderId:vn,RepositoryId:v$,RetrievalAnchorId:vx,RunId:vL,SourceStoreId:bw,TaskId:bE,UtcMicros:bX,WorkAcceptanceCriterionV1:b0,WorkAttemptIdentityV1:b9,WorkHandoffV1:$W,WorkHierarchyV1:$M,WorkInitiativeV1:$N,WorkItemInputV1:$z,WorkItemV1:$D,WorkMilestoneV1:$H,WorkPlanV1:$Y,WorkProductAuthorizedRelationScopeV1:$1,WorkProductChangeDraftV1:{description:"Operator-selected graph change before the owning Work authority binds the\ncurrent verified head and revision authorities.",oneOf:[{properties:{change:{const:"add_task",type:"string"},item:{$ref:"#/$defs/WorkItemV1"}},required:["change","item"],type:"object"},{properties:{change:{const:"create_task",type:"string"},initiative:{$ref:"#/$defs/WorkInitiativeV1"},item:{$ref:"#/$defs/WorkItemV1"},milestone:{$ref:"#/$defs/WorkMilestoneV1"},plan:{$ref:"#/$defs/WorkPlanV1"}},required:["change","initiative","plan","milestone","item"],type:"object"},{properties:{change:{const:"decide_proposal",type:"string"},disposition:{$ref:"#/$defs/WorkProposalDispositionV1"},proposal:{$ref:"#/$defs/WorkProposalV1"}},required:["change","proposal","disposition"],type:"object"},{properties:{change:{const:"decide_relation_replan",type:"string"},disposition:{$ref:"#/$defs/WorkProposalDispositionV1"},proposal:{$ref:"#/$defs/WorkRelationReplanProposalV1"}},required:["change","proposal","disposition"],type:"object"},{properties:{change:{const:"apply_relation_replan",type:"string"},proposal_id:{$ref:"#/$defs/ProposalId"}},required:["change","proposal_id"],type:"object"},{properties:{change:{const:"accept_task",type:"string"},evidence_by_criterion:{additionalProperties:{type:"string"},type:"object"},task_id:{$ref:"#/$defs/TaskId"}},required:["change","task_id","evidence_by_criterion"],type:"object"},{properties:{change:{const:"admit_execution",type:"string"},task_id:{$ref:"#/$defs/TaskId"}},required:["change","task_id"],type:"object"},{properties:{change:{const:"link_accepted_attempt",type:"string"},identity:{$ref:"#/$defs/WorkAttemptIdentityV1"},task_id:{$ref:"#/$defs/TaskId"}},required:["change","task_id","identity"],type:"object"},{properties:{change:{const:"record_handoff",type:"string"},handoff:{$ref:"#/$defs/WorkHandoffV1"}},required:["change","handoff"],type:"object"}]},WorkProductEventEvidenceV1:$0,WorkProductSelectionScopeV1:St,WorkProposalDispositionV1:Si,WorkProposalV1:So,WorkProposedChildV1:Sn,WorkProviderRouteId:Sl,WorkProviderRouteV1:Sp,WorkRelationReplanProposalV1:Sf,WorkRouteDecisionV1:Sb,WorkScoreKindV1:SR,WorkShapeAssessmentV1:Sq,WorkSizingV1:SI},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"Read-only preparation input. Authority identities, clocks, and revision\npins are deliberately absent because the backend owns them.",properties:{causation_event_id:{type:["string","null"]},change:{$ref:"#/$defs/WorkProductChangeDraftV1"},evidence:{items:{$ref:"#/$defs/WorkProductEventEvidenceV1"},type:"array"},selection:{$ref:"#/$defs/WorkProductSelectionScopeV1"}},required:["selection","change","evidence"],title:"PrepareWorkProductMutationRequestV1",type:"object"},{$defs:{RunId:vL,TaskId:bE,UtcMicros:bX},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{expected_authority_version:{format:"uint64",minimum:0,type:"integer"},occurred_at:{$ref:"#/$defs/UtcMicros"},run_id:{$ref:"#/$defs/RunId"},task_id:{$ref:"#/$defs/TaskId"}},required:["task_id","run_id","expected_authority_version","occurred_at"],title:"ReleaseWorkPlacementCommand",type:"object"},{$defs:{UtcMicros:bX},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{occurred_at:{$ref:"#/$defs/UtcMicros"}},required:["occurred_at"],title:"ResumeWorkAttemptsCommand",type:"object"},{$defs:{AttemptId:fM,AutomaticWorktreeGcV1:fL,BranchCollisionPolicyV1:f2,BranchNameComponentV1:f4,BranchNameSeparatorV1:f6,BranchNamingPolicyV1:f3,BranchTopologyKindV1:hr,BranchTopologyPolicyV1:hi,CanonicalGitRefNameV1:hc,CanonicalGitRefPrefix:hl,CapabilityId:hp,CommitId:hI,ConfigurationRevisionId:hN,ConfigurationSnapshotId:hz,CredentialReferenceId:yy,CrossMergeModeV1:yg,CrossMergePolicyV1:y_,GitHubStackedPullRequestPolicyV1:gP,HistoryRewritePolicyV1:gL,LocatorDigest:_i,ManifestDigest:_p,ProjectId:_6,ProposalId:_7,ProtectedRefDispositionV1:ve,ProtectedRefRuleV1:vt,ProtectedRefSelectorV1:vr,ProviderId:vn,RefId:vf,RepositoryId:v$,RepositoryPlacementScopeV1:vS,RequiredCheckExpectationV1:vk,RequiredCheckV1:vw,ReviewRequirementV1:vA,ReviewTopologyKindV1:vW,ReviewTopologyPolicyV1:vM,RunId:vL,SensitiveFilesystemLocatorV1:v3,TaskId:bE,TopologyConcurrencyPolicyV1:bH,TopologyEscalationPolicyV1:bG,TopologyGatePolicyV1:bB,TopologyNotificationLevelV1:bK,UtcMicros:bX,WorkApprovalPolicy:b2,WorkArtifactId:b4,WorkArtifactRefV1:b6,WorkAttemptIdentityV1:b9,WorkAttemptProgressV1:b7,WorkAttemptProjectionBindingV1:$e,WorkAttemptStateV1:$i,WorkAttemptV1:$s,WorkCancellationAcknowledgementV1:$d,WorkCancellationEscalationV1:$c,WorkCancellationRequestId:$l,WorkCancellationRequestV1:$p,WorkCancellationStateV1:$u,WorkEffectStateV1:$g,WorkEgressPolicy:$v,WorkExecutableReference:$w,WorkExecutionEnvelopeV1:$P,WorkExecutionLimits:$V,WorkExecutionSnapshot:$R,WorkFallbackTopology:$x,WorkFenceEpochV1:$j,WorkFilesystemPolicy:$C,WorkLeaseFenceV1:$L,WorkLeaseId:$U,WorkProviderBackendV1:Ss,WorkProviderProtocol:Sc,WorkProviderRouteId:Sl,WorkProviderRouteV1:Sp,WorkRecoveryStateV1:Su,WorkRestartReasonV1:Sh,WorkSandboxPolicy:SV,WorkTerminalEvidenceV1:SA,WorkTopologyPolicyV1:SM,WorkflowOperationRef:SF,WorktreeCleanlinessRequirementV1:SK,WorktreeId:SJ,WorktreePlacementModeV1:SX,WorktreeRetentionPolicyV1:SY,WorktreeRootPolicyV1:S1},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"What restart recovery did to each open attempt.\n\nThis report never claims that a provider resumed. An attempt in\n`recovery_required` remains fenced under its original identity. This report\ndoes not authorize another launch; an explicit `retry_attempt` must verify\nthe exact recovery fence and effect safety before it can atomically admit a\nnew identity.",properties:{cancelled:{description:"Attempts whose in-flight cancellation was completed during recovery.",items:{$ref:"#/$defs/WorkAttemptV1"},type:"array"},recovery_required:{description:"Attempts fenced onto a new epoch and awaiting an explicit recovery\ndecision.",items:{$ref:"#/$defs/WorkAttemptV1"},type:"array"}},required:["recovery_required","cancelled"],title:"WorkAttemptRecoveryReportV1",type:"object"},{$defs:{RunId:vL,TaskId:bE,UtcMicros:bX,WorkRunControlReasonV1:Sk},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{expected_authority_version:{format:"uint64",minimum:0,type:"integer"},occurred_at:{$ref:"#/$defs/UtcMicros"},reason:{$ref:"#/$defs/WorkRunControlReasonV1"},run_id:{$ref:"#/$defs/RunId"},task_id:{$ref:"#/$defs/TaskId"}},required:["task_id","run_id","reason","expected_authority_version","occurred_at"],title:"ResumeWorkRunCommand",type:"object"},{$defs:{AttemptId:fM,ManifestDigest:_p,ObservationSourceIdentityV1:_N,ProjectId:_6,ProviderId:vn,RepositoryId:v$,RunId:vL,SessionId:be,TaskId:bE,TemporalModeV1:bN,UtcMicros:bX,VerifiedWorkGraphVersionV1:b1,WorkAttemptIdentityV1:b9,WorkEvidenceContinuationV1:$b,WorkEvidenceExpansionSelectorV1:{oneOf:[{additionalProperties:!1,properties:{kind:{const:"anchor",type:"string"},link_id:{type:"string"}},required:["kind","link_id"],type:"object"},{additionalProperties:!1,properties:{attempt:{$ref:"#/$defs/WorkAttemptIdentityV1"},kind:{const:"task_session",type:"string"}},required:["kind","attempt"],type:"object"}]},WorkProductAuthorizedRelationScopeV1:$1,WorkProductSelectionScopeV1:St,WorkTaskSessionContinuationV1:SE},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"One TaskId-rooted read. The exact Work graph identity remains mandatory on\ncontinuation and expansion requests, so neither an anchor nor a cursor is\nauthority by possession.",properties:{continuation:{anyOf:[{$ref:"#/$defs/WorkEvidenceContinuationV1"},{type:"null"}],default:null},expansion:{anyOf:[{$ref:"#/$defs/WorkEvidenceExpansionSelectorV1"},{type:"null"}],default:null},observed_at:{$ref:"#/$defs/UtcMicros"},page_size:{format:"uint32",minimum:0,type:"integer"},selection:{$ref:"#/$defs/WorkProductSelectionScopeV1"},task_id:{$ref:"#/$defs/TaskId"},temporal:{$ref:"#/$defs/TemporalModeV1"},verified_version:{$ref:"#/$defs/VerifiedWorkGraphVersionV1"}},required:["selection","task_id","verified_version","temporal","page_size","observed_at"],title:"WorkEvidenceRetrieveRequestV1",type:"object"},{$defs:{ActorId:f$,AttemptId:fM,ManifestDigest:_p,ObservationSourceIdentityV1:_N,ProposalId:_7,ProviderId:vn,RetrievalAnchorId:vx,RunId:vL,SessionId:be,SessionRetrievalBudgetAccountingV1:{additionalProperties:!1,description:"The ceiling and count behind a budget refusal.\n\n`stage` names which budget refused; this is what tells an oversized request\napart from a read whose cost was mis-sized for it. The ceiling value also\ndistinguishes the resources inside one stage: a record read that stopped at\n1024 hit the item count, one that stopped at 16 MiB hit the byte total, so\nthe kernel's resource spelling stays in the kernel instead of becoming a\nsecond wire vocabulary to keep in step.",properties:{limit:{format:"uint64",minimum:0,type:"integer"},observed:{$ref:"#/$defs/SessionRetrievalBudgetObservationV1"}},required:["limit","observed"],type:"object"},SessionRetrievalBudgetObservationV1:{description:"What a refusing budget boundary had counted.\n\nBoth variants are exact. A bounded read never counts the rows it declined to\nread, so an exhausted read reports what it consumed and that storage held\nmore, never a total it would have to run the refused scan to learn.",oneOf:[{additionalProperties:!1,description:"The request asked for more units than the admitted maximum.",properties:{observation:{const:"requested",type:"string"},units:{format:"uint64",minimum:0,type:"integer"}},required:["observation","units"],type:"object"},{additionalProperties:!1,description:"The read consumed its whole budget and storage still held more.",properties:{observation:{const:"consumed_with_more_available",type:"string"},units:{format:"uint64",minimum:0,type:"integer"}},required:["observation","units"],type:"object"}]},SessionRetrievalBudgetStageV1:ba,SessionRetrievalStructuralRefusalV1:{oneOf:[{additionalProperties:!1,properties:{kind:{type:"string"},maximum:{format:"uint",minimum:0,type:"integer"},observed:{format:"uint",minimum:0,type:"integer"},refusal:{const:"cursor_manifest_limit_exceeded",type:"string"}},required:["refusal","kind","observed","maximum"],type:"object"},{additionalProperties:!1,properties:{accounting:{anyOf:[{$ref:"#/$defs/SessionRetrievalBudgetAccountingV1"},{type:"null"}],description:"Present when the refusing boundary keeps a counter. A request-shape\ncheck has none and reports `None` rather than inventing numbers."},refusal:{const:"budget_exhausted",type:"string"},stage:{$ref:"#/$defs/SessionRetrievalBudgetStageV1"}},required:["refusal","stage"],type:"object"}]},TaskEvidenceLinkV1:bT,TaskId:bE,UtcMicros:bX,VerifiedWorkGraphVersionV1:b1,WorkAcceptanceCriterionV1:b0,WorkAnchorHydrationV1:{additionalProperties:!1,properties:{anchor_id:{$ref:"#/$defs/RetrievalAnchorId"},content:{items:{type:"string"},type:"array"},continuation:{type:["string","null"]},coverage:{$ref:"#/$defs/WorkEvidenceCoverageStateV1"},exact_anchors:{items:{$ref:"#/$defs/RetrievalAnchorId"},type:"array"},freshness:{$ref:"#/$defs/WorkEvidenceFreshnessV1"},redacted:{type:"boolean"}},required:["anchor_id","exact_anchors","content","coverage","freshness","redacted"],type:"object"},WorkArtifactId:b4,WorkArtifactRefV1:b6,WorkAttemptEvidenceRecordV1:b3,WorkAttemptIdentityV1:b9,WorkAttemptProviderOutcomeV1:$t,WorkAttemptReceiptV1:$r,WorkAttemptStreamChannelV1:$o,WorkAttemptStreamSummaryV1:$n,WorkEvidenceContinuationV1:$b,WorkEvidenceCoverageStateV1:{enum:["complete","partial","unknown"],type:"string"},WorkEvidenceCoverageV1:{additionalProperties:!1,properties:{hydrated:{format:"uint32",minimum:0,type:"integer"},omitted:{format:"uint32",minimum:0,type:"integer"},selected:{format:"uint32",minimum:0,type:"integer"},state:{$ref:"#/$defs/WorkEvidenceCoverageStateV1"}},required:["state","selected","hydrated","omitted"],type:"object"},WorkEvidenceFreshnessV1:{enum:["current","stale","unknown"],type:"string"},WorkEvidenceOmissionReasonV1:{oneOf:[{enum:["limit_reached","pending","not_found_or_not_authorized","unavailable","reset_required","stale","cancelled","timed_out","redacted"],type:"string"},{additionalProperties:!1,properties:{structural_refusal:{$ref:"#/$defs/SessionRetrievalStructuralRefusalV1"}},required:["structural_refusal"],type:"object"}]},WorkEvidenceOmissionV1:{additionalProperties:!1,properties:{reason:{$ref:"#/$defs/WorkEvidenceOmissionReasonV1"},relation:{type:"string"}},required:["relation","reason"],type:"object"},WorkEvidenceSourceV1:{oneOf:[{additionalProperties:!1,properties:{kind:{const:"attempt_receipt",type:"string"},receipt:{$ref:"#/$defs/WorkAttemptReceiptV1"}},required:["kind","receipt"],type:"object"},{additionalProperties:!1,properties:{attempt:{$ref:"#/$defs/WorkAttemptIdentityV1"},evidence:{$ref:"#/$defs/WorkTaskSessionEvidenceV1"},kind:{const:"task_session",type:"string"}},required:["kind","attempt","evidence"],type:"object"},{additionalProperties:!1,properties:{hydration:{$ref:"#/$defs/WorkAnchorHydrationV1"},kind:{const:"anchor",type:"string"},link:{$ref:"#/$defs/TaskEvidenceLinkV1"}},required:["kind","link","hydration"],type:"object"}]},WorkHandoffV1:$W,WorkHierarchyV1:$M,WorkItemInputV1:$z,WorkItemV1:$D,WorkProductRelationV1:$7,WorkProposalDecisionV1:Sr,WorkProposalDispositionV1:Si,WorkProposalV1:So,WorkProposedChildV1:Sn,WorkProviderAvailabilityV1:Sa,WorkProviderBackendV1:Ss,WorkProviderFallbackRecordV1:Sd,WorkProviderRouteId:Sl,WorkProviderRouteV1:Sp,WorkRelationReplanDecisionV1:Sm,WorkRelationReplanProposalV1:Sf,WorkRouteDecisionV1:Sb,WorkScoreKindV1:SR,WorkShapeAssessmentV1:Sq,WorkSizingV1:SI,WorkTaskSessionContinuationV1:SE,WorkTaskSessionCoverageV1:{additionalProperties:!1,properties:{hidden:{format:"uint64",minimum:0,type:"integer"},redacted:{format:"uint64",minimum:0,type:"integer"},unknown:{format:"uint64",minimum:0,type:"integer"},visible:{format:"uint64",minimum:0,type:"integer"}},required:["visible","hidden","unknown","redacted"],type:"object"},WorkTaskSessionEvidenceV1:{additionalProperties:!1,properties:{attempt:{$ref:"#/$defs/WorkAttemptIdentityV1"},continuation:{anyOf:[{$ref:"#/$defs/WorkTaskSessionContinuationV1"},{type:"null"}]},coverage:{$ref:"#/$defs/WorkEvidenceCoverageStateV1"},coverage_counts:{$ref:"#/$defs/WorkTaskSessionCoverageV1"},freshness:{$ref:"#/$defs/WorkEvidenceFreshnessV1"},hydrated:{items:{$ref:"#/$defs/WorkTaskSessionHydrationV1"},type:"array"},participant_epoch:{$ref:"#/$defs/ManifestDigest"},ranked_anchors:{items:{$ref:"#/$defs/WorkTaskSessionRankedAnchorV1"},type:"array"},redacted:{type:"boolean"},source:{$ref:"#/$defs/ObservationSourceIdentityV1"},task_id:{$ref:"#/$defs/TaskId"},verified_version:{$ref:"#/$defs/VerifiedWorkGraphVersionV1"}},required:["task_id","verified_version","attempt","source","participant_epoch","ranked_anchors","hydrated","coverage","coverage_counts","freshness","redacted"],type:"object"},WorkTaskSessionHydrationStateV1:{enum:["available","retained_but_unavailable","redacted","deleted","retention_expired","unauthorized","locked","unverifiable"],type:"string"},WorkTaskSessionHydrationV1:{additionalProperties:!1,properties:{anchor_id:{$ref:"#/$defs/RetrievalAnchorId"},content:{items:{format:"uint8",maximum:255,minimum:0,type:"integer"},type:["array","null"]},rank:{format:"uint32",minimum:0,type:"integer"},state:{$ref:"#/$defs/WorkTaskSessionHydrationStateV1"}},required:["rank","anchor_id","state"],type:"object"},WorkTaskSessionRankContributionV1:{additionalProperties:!1,properties:{calibrated_feature_micros:{format:"uint32",minimum:0,type:"integer"},calibration_profile:{type:"string"},ordinal_rank:{format:"uint32",minimum:0,type:"integer"},raw_score_micros:{format:"int64",type:"integer"},retriever:{type:"string"},retriever_revision:{type:"string"},score_domain:{type:"string"},source_occurrence:{type:"string"},weight_micros:{format:"uint32",minimum:0,type:"integer"},weighted_contribution_micros:{format:"uint64",minimum:0,type:"integer"}},required:["retriever","retriever_revision","source_occurrence","ordinal_rank","raw_score_micros","score_domain","calibration_profile","calibrated_feature_micros","weight_micros","weighted_contribution_micros"],type:"object"},WorkTaskSessionRankedAnchorV1:{additionalProperties:!1,properties:{anchor_id:{$ref:"#/$defs/RetrievalAnchorId"},contributions:{items:{$ref:"#/$defs/WorkTaskSessionRankContributionV1"},type:"array"},final_ordinal:{format:"uint32",minimum:0,type:"integer"},utility_micros:{format:"uint64",minimum:0,type:"integer"}},required:["anchor_id","final_ordinal","utility_micros","contributions"],type:"object"}},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{continuations:{items:{$ref:"#/$defs/WorkEvidenceContinuationV1"},type:"array"},coverage:{$ref:"#/$defs/WorkEvidenceCoverageV1"},freshness:{$ref:"#/$defs/WorkEvidenceFreshnessV1"},item:{$ref:"#/$defs/WorkItemV1"},omissions:{items:{$ref:"#/$defs/WorkEvidenceOmissionV1"},type:"array"},proposal_decisions:{items:{$ref:"#/$defs/WorkProposalDecisionV1"},type:"array"},redacted:{type:"boolean"},relation_replan_decisions:{items:{$ref:"#/$defs/WorkRelationReplanDecisionV1"},type:"array"},relations:{items:{$ref:"#/$defs/WorkProductRelationV1"},type:"array"},sources:{items:{$ref:"#/$defs/WorkEvidenceSourceV1"},type:"array"},task_id:{$ref:"#/$defs/TaskId"},verified_version:{$ref:"#/$defs/VerifiedWorkGraphVersionV1"}},required:["task_id","verified_version","item","relations","proposal_decisions","relation_replan_decisions","sources","coverage","omissions","freshness","redacted","continuations"],title:"WorkEvidenceRetrievalV1",type:"object"},{$defs:{AttemptId:fM,RunId:vL,TaskId:bE,WorkAttemptIdentityV1:b9,WorkCommandId:$m,WorkRetryCauseV1:Sy,WorkRetryFailureSelectorV1:Sg,WorkRetrySourceV1:S_},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{command_id:{$ref:"#/$defs/WorkCommandId"},failure:{$ref:"#/$defs/WorkRetryFailureSelectorV1"},new_attempt_id:{$ref:"#/$defs/AttemptId"},original_attempt:{$ref:"#/$defs/WorkAttemptIdentityV1"}},required:["original_attempt","new_attempt_id","failure","command_id"],title:"RetryWorkAttemptCommandV1",type:"object"},{$defs:{AttemptId:fM,AutomaticWorktreeGcV1:fL,BranchCollisionPolicyV1:f2,BranchNameComponentV1:f4,BranchNameSeparatorV1:f6,BranchNamingPolicyV1:f3,BranchTopologyKindV1:hr,BranchTopologyPolicyV1:hi,CanonicalGitRefNameV1:hc,CanonicalGitRefPrefix:hl,CapabilityId:hp,CommitId:hI,ConfigurationRevisionId:hN,ConfigurationSnapshotId:hz,CredentialReferenceId:yy,CrossMergeModeV1:yg,CrossMergePolicyV1:y_,GitHubStackedPullRequestPolicyV1:gP,HistoryRewritePolicyV1:gL,LocatorDigest:_i,ManifestDigest:_p,ProjectId:_6,ProposalId:_7,ProtectedRefDispositionV1:ve,ProtectedRefRuleV1:vt,ProtectedRefSelectorV1:vr,ProviderId:vn,RefId:vf,RepositoryId:v$,RepositoryPlacementScopeV1:vS,RequiredCheckExpectationV1:vk,RequiredCheckV1:vw,RetryWorkAttemptCommandV1:{additionalProperties:!1,properties:{command_id:{$ref:"#/$defs/WorkCommandId"},failure:{$ref:"#/$defs/WorkRetryFailureSelectorV1"},new_attempt_id:{$ref:"#/$defs/AttemptId"},original_attempt:{$ref:"#/$defs/WorkAttemptIdentityV1"}},required:["original_attempt","new_attempt_id","failure","command_id"],title:"RetryWorkAttemptCommandV1",type:"object"},ReviewRequirementV1:vA,ReviewTopologyKindV1:vW,ReviewTopologyPolicyV1:vM,RunId:vL,SensitiveFilesystemLocatorV1:v3,TaskId:bE,TopologyConcurrencyPolicyV1:bH,TopologyEscalationPolicyV1:bG,TopologyGatePolicyV1:bB,TopologyNotificationLevelV1:bK,UtcMicros:bX,VerifiedWorkRetryFailureV1:{additionalProperties:!1,description:"Failure fact returned by a canonical evidence authority.",properties:{evidence_digest:{$ref:"#/$defs/ManifestDigest"},observed_at:{$ref:"#/$defs/UtcMicros"},selector:{$ref:"#/$defs/WorkRetryFailureSelectorV1"}},required:["selector","evidence_digest","observed_at"],type:"object"},WorkApprovalPolicy:b2,WorkArtifactId:b4,WorkArtifactRefV1:b6,WorkAttemptIdentityV1:b9,WorkAttemptProgressV1:b7,WorkAttemptProjectionBindingV1:$e,WorkAttemptStateV1:$i,WorkAttemptV1:$s,WorkCancellationAcknowledgementV1:$d,WorkCancellationEscalationV1:$c,WorkCancellationRequestId:$l,WorkCancellationRequestV1:$p,WorkCancellationStateV1:$u,WorkCommandId:$m,WorkEffectStateV1:$g,WorkEgressPolicy:$v,WorkExecutableReference:$w,WorkExecutionEnvelopeV1:$P,WorkExecutionLimits:$V,WorkExecutionSnapshot:$R,WorkFallbackTopology:$x,WorkFenceEpochV1:$j,WorkFilesystemPolicy:$C,WorkLeaseFenceV1:$L,WorkLeaseId:$U,WorkProviderBackendV1:Ss,WorkProviderProtocol:Sc,WorkProviderRouteId:Sl,WorkProviderRouteV1:Sp,WorkRecoveryStateV1:Su,WorkRestartReasonV1:Sh,WorkRetryCauseV1:Sy,WorkRetryFailureSelectorV1:Sg,WorkRetryReceiptV1:{additionalProperties:!1,properties:{canonical_input_digest:{$ref:"#/$defs/ManifestDigest"},command:{$ref:"#/$defs/RetryWorkAttemptCommandV1"},failure:{$ref:"#/$defs/VerifiedWorkRetryFailureV1"},new_attempt:{$ref:"#/$defs/WorkAttemptIdentityV1"},owner_receipt_digest:{$ref:"#/$defs/ManifestDigest"},restarted_at:{$ref:"#/$defs/UtcMicros",description:"Daemon-owned admission time at which the new attempt was created."},retry_required_at:{$ref:"#/$defs/UtcMicros",description:"Exact source-owned time at which the failure made a retry necessary."}},required:["command","failure","new_attempt","retry_required_at","restarted_at","canonical_input_digest","owner_receipt_digest"],type:"object"},WorkRetrySourceV1:S_,WorkSandboxPolicy:SV,WorkTerminalEvidenceV1:SA,WorkTopologyPolicyV1:SM,WorkflowOperationRef:SF,WorktreeCleanlinessRequirementV1:SK,WorktreeId:SJ,WorktreePlacementModeV1:SX,WorktreeRetentionPolicyV1:SY,WorktreeRootPolicyV1:S1},$schema:"https://json-schema.org/draft/2020-12/schema",oneOf:[{additionalProperties:!1,properties:{attempt:{$ref:"#/$defs/WorkAttemptV1"},outcome:{const:"created",type:"string"},receipt:{$ref:"#/$defs/WorkRetryReceiptV1"}},required:["outcome","receipt","attempt"],type:"object"},{additionalProperties:!1,properties:{attempt:{$ref:"#/$defs/WorkAttemptV1"},outcome:{const:"replayed",type:"string"},receipt:{$ref:"#/$defs/WorkRetryReceiptV1"}},required:["outcome","receipt","attempt"],type:"object"}],title:"WorkRetryAttemptOutcomeV1"},{$defs:{CatalogGenerationId:hu,ConfigurationRevisionId:hN,ManifestDigest:_p,ProjectId:_6,ProposalId:_7,ProviderId:vn,RepositoryId:v$,RetrievalAnchorId:vx,ReviewWorkProposalDispositionV1:{description:"The only non-accepting dispositions the proposal-review operation can\ncommit. The broader decision request remains available to the graph\nmutation operation, which owns all decision forms.",enum:["rejected","superseded"],type:"string"},SourceStoreId:bw,TaskId:bE,UtcMicros:bX,VerifiedWorkGraphVersionV1:b1,WorkCommandId:$m,WorkProductAuthorizedRelationScopeV1:$1,WorkProductEventEvidenceV1:$0,WorkProductExpectedAuthorityV1:$6,WorkProductMutationIdentityV1:$9,WorkProductRevisionPinsV1:Se,WorkProductSelectionScopeV1:St,WorkProposalV1:So,WorkProposedChildV1:Sn,WorkProviderRouteId:Sl,WorkProviderRouteV1:Sp,WorkRouteDecisionV1:Sb,WorkScoreKindV1:SR,WorkShapeAssessmentV1:Sq,WorkSizingV1:SI},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{disposition:{$ref:"#/$defs/ReviewWorkProposalDispositionV1"},mutation:{$ref:"#/$defs/WorkProductMutationIdentityV1"},proposal:{$ref:"#/$defs/WorkProposalV1"},selection:{$ref:"#/$defs/WorkProductSelectionScopeV1"}},required:["selection","proposal","disposition","mutation"],title:"ReviewWorkProposalRequestV1",type:"object"},{$defs:{RunId:vL,TaskId:bE},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{run_id:{$ref:"#/$defs/RunId"},task_id:{$ref:"#/$defs/TaskId"}},required:["task_id","run_id"],title:"WorkRunControlRequestV1",type:"object"},{$defs:{AttemptId:fM,RunId:vL,TaskId:bE,UtcMicros:bX,WorkRunControlAuthorityV1:SS,WorkRunControlReasonV1:Sk,WorkRunControlStateV1:Sw,WorkRunControlV1:{additionalProperties:!1,description:"One run's durable control aggregate.",properties:{authority:{$ref:"#/$defs/WorkRunControlAuthorityV1"},deadline:{$ref:"#/$defs/WorkRunDeadlineCheckpointV1"},fenced_attempts:{description:'The exact attempts that were live when the current state published.\nEmpty means "none were live", never "we did not look".',items:{$ref:"#/$defs/AttemptId"},type:"array"},reason:{anyOf:[{$ref:"#/$defs/WorkRunControlReasonV1"},{type:"null"}]},run_id:{$ref:"#/$defs/RunId"},state:{$ref:"#/$defs/WorkRunControlStateV1"},task_id:{$ref:"#/$defs/TaskId"},transitioned_at:{$ref:"#/$defs/UtcMicros"}},required:["task_id","run_id","state","authority","deadline","transitioned_at","fenced_attempts"],title:"WorkRunControlV1",type:"object"},WorkRunDeadlineCheckpointV1:SP},$schema:"https://json-schema.org/draft/2020-12/schema",description:"One run's control reading.\n\n`Uncontrolled` is a distinct answer from `Controlled`: it says the run is\nadmitted and running under its admitted deadline with no control transition\never published, which is not the same as a control row that happens to say\n`Running`.",oneOf:[{additionalProperties:!1,description:"The run holds durable attempts but no control transition has ever been\npublished for it.",properties:{deadline:{$ref:"#/$defs/UtcMicros",description:"The admitted deadline the run is running against."},live_attempts:{description:"Attempts that have not reached a terminal state.",items:{$ref:"#/$defs/AttemptId"},type:"array"},state:{const:"uncontrolled",type:"string"},total_attempts:{format:"uint32",minimum:0,type:"integer"}},required:["state","deadline","live_attempts","total_attempts"],type:"object"},{additionalProperties:!1,description:"The published control aggregate, plus the live frontier as of this\nread (which may differ from the frontier the transition fenced).",properties:{control:{$ref:"#/$defs/WorkRunControlV1"},live_attempts:{items:{$ref:"#/$defs/AttemptId"},type:"array"},state:{const:"controlled",type:"string"},total_attempts:{format:"uint32",minimum:0,type:"integer"}},required:["state","control","live_attempts","total_attempts"],type:"object"}],title:"WorkRunControlReadingV1"},{$defs:{AttemptId:fM,AutomaticWorktreeGcV1:fL,BranchCollisionPolicyV1:f2,BranchNameComponentV1:f4,BranchNameSeparatorV1:f6,BranchNamingPolicyV1:f3,BranchTopologyKindV1:hr,BranchTopologyPolicyV1:hi,CanonicalGitRefNameV1:hc,CanonicalGitRefPrefix:hl,CapabilityId:hp,CommitId:hI,ConfigurationRevisionId:hN,ConfigurationSnapshotId:hz,CredentialReferenceId:yy,CrossMergeModeV1:yg,CrossMergePolicyV1:y_,GitHubStackedPullRequestPolicyV1:gP,HistoryRewritePolicyV1:gL,LocatorDigest:_i,ManifestDigest:_p,ProtectedRefDispositionV1:ve,ProtectedRefRuleV1:vt,ProtectedRefSelectorV1:vr,ProviderId:vn,RefId:vf,RepositoryId:v$,RepositoryPlacementScopeV1:vS,RequiredCheckExpectationV1:vk,RequiredCheckV1:vw,ReviewRequirementV1:vA,ReviewTopologyKindV1:vW,ReviewTopologyPolicyV1:vM,RunId:vL,SensitiveFilesystemLocatorV1:v3,TaskId:bE,TopologyConcurrencyPolicyV1:bH,TopologyEscalationPolicyV1:bG,TopologyGatePolicyV1:bB,TopologyNotificationLevelV1:bK,UtcMicros:bX,WorkApprovalPolicy:b2,WorkEffectStateV1:$g,WorkEgressPolicy:$v,WorkExecutableReference:$w,WorkExecutionLimits:$V,WorkExecutionSnapshot:$R,WorkFallbackTopology:$x,WorkFilesystemPolicy:$C,WorkProviderBackendV1:Ss,WorkProviderProtocol:Sc,WorkProviderRouteId:Sl,WorkProviderRouteV1:Sp,WorkSandboxPolicy:SV,WorkTopologyPolicyV1:SM,WorkflowOperationRef:SF,WorktreeCleanlinessRequirementV1:SK,WorktreePlacementModeV1:SX,WorktreeRetentionPolicyV1:SY,WorktreeRootPolicyV1:S1},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"Starts one admitted provider attempt. Every field is a typed fact; there\nis no argv, environment entry, executable path, or shell string here. The\nprojection binding and admission facts are re-read from the canonical Work\nauthority, never trusted from the caller.",properties:{attempt_id:{$ref:"#/$defs/AttemptId"},commit:{$ref:"#/$defs/CommitId"},effect_state:{$ref:"#/$defs/WorkEffectStateV1"},execution_snapshot:{$ref:"#/$defs/WorkExecutionSnapshot"},instructions:{type:"string"},occurred_at:{$ref:"#/$defs/UtcMicros"},operation:{$ref:"#/$defs/WorkflowOperationRef"},reference:{anyOf:[{$ref:"#/$defs/RefId"},{type:"null"}]},run_id:{$ref:"#/$defs/RunId"},task_id:{$ref:"#/$defs/TaskId"},worktree_root:{type:"string"}},required:["task_id","run_id","attempt_id","operation","execution_snapshot","worktree_root","commit","instructions","effect_state","occurred_at"],title:"StartWorkAttemptCommand",type:"object"},{$defs:{AttemptId:fM,AutomaticWorktreeGcV1:fL,BranchCollisionPolicyV1:f2,BranchNameComponentV1:f4,BranchNameSeparatorV1:f6,BranchNamingPolicyV1:f3,BranchTopologyKindV1:hr,BranchTopologyPolicyV1:hi,CanonicalGitRefNameV1:hc,CanonicalGitRefPrefix:hl,CapabilityId:hp,CommitId:hI,ConfigurationRevisionId:hN,ConfigurationSnapshotId:hz,CredentialReferenceId:yy,CrossMergeModeV1:yg,CrossMergePolicyV1:y_,GitHubStackedPullRequestPolicyV1:gP,HistoryRewritePolicyV1:gL,LocatorDigest:_i,ManifestDigest:_p,ProtectedRefDispositionV1:ve,ProtectedRefRuleV1:vt,ProtectedRefSelectorV1:vr,ProviderId:vn,RefId:vf,RepositoryId:v$,RepositoryPlacementScopeV1:vS,RequiredCheckExpectationV1:vk,RequiredCheckV1:vw,ReviewRequirementV1:vA,ReviewTopologyKindV1:vW,ReviewTopologyPolicyV1:vM,RunId:vL,SensitiveFilesystemLocatorV1:v3,StartWorkAttemptCommand:{additionalProperties:!1,description:"Starts one admitted provider attempt. Every field is a typed fact; there\nis no argv, environment entry, executable path, or shell string here. The\nprojection binding and admission facts are re-read from the canonical Work\nauthority, never trusted from the caller.",properties:{attempt_id:{$ref:"#/$defs/AttemptId"},commit:{$ref:"#/$defs/CommitId"},effect_state:{$ref:"#/$defs/WorkEffectStateV1"},execution_snapshot:{$ref:"#/$defs/WorkExecutionSnapshot"},instructions:{type:"string"},occurred_at:{$ref:"#/$defs/UtcMicros"},operation:{$ref:"#/$defs/WorkflowOperationRef"},reference:{anyOf:[{$ref:"#/$defs/RefId"},{type:"null"}]},run_id:{$ref:"#/$defs/RunId"},task_id:{$ref:"#/$defs/TaskId"},worktree_root:{type:"string"}},required:["task_id","run_id","attempt_id","operation","execution_snapshot","worktree_root","commit","instructions","effect_state","occurred_at"],type:"object"},TaskId:bE,TopologyConcurrencyPolicyV1:bH,TopologyEscalationPolicyV1:bG,TopologyGatePolicyV1:bB,TopologyNotificationLevelV1:bK,UtcMicros:bX,WorkApprovalPolicy:b2,WorkAttemptIdentityV1:b9,WorkEffectStateV1:$g,WorkEgressPolicy:$v,WorkExecutableReference:$w,WorkExecutionLimits:$V,WorkExecutionSnapshot:$R,WorkFallbackTopology:$x,WorkFilesystemPolicy:$C,WorkProviderBackendV1:Ss,WorkProviderProtocol:Sc,WorkProviderRouteId:Sl,WorkProviderRouteV1:Sp,WorkSandboxPolicy:SV,WorkTopologyPolicyV1:SM,WorkflowOperationRef:SF,WorkflowOutputName:SL,WorktreeCleanlinessRequirementV1:SK,WorktreePlacementModeV1:SX,WorktreeRetentionPolicyV1:SY,WorktreeRootPolicyV1:S1},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"Admits one synthesis attempt over an ordered set of sibling sources.",properties:{output_name:{$ref:"#/$defs/WorkflowOutputName",description:"The fan-out output the synthesis belongs to, carried into the draft\nthe workflow completion path verifies."},sources:{description:"The ordered sibling sources the synthesis consumes.",items:{$ref:"#/$defs/WorkAttemptIdentityV1"},type:"array"},start:{$ref:"#/$defs/StartWorkAttemptCommand",description:"The synthesis attempt's own admission facts; it is started through\nthe same admission machinery as any other attempt."}},required:["start","output_name","sources"],title:"AdmitWorkSynthesisCommand",type:"object"},{$defs:{AttemptId:fM,AutomaticWorktreeGcV1:fL,BranchCollisionPolicyV1:f2,BranchNameComponentV1:f4,BranchNameSeparatorV1:f6,BranchNamingPolicyV1:f3,BranchTopologyKindV1:hr,BranchTopologyPolicyV1:hi,CanonicalGitRefNameV1:hc,CanonicalGitRefPrefix:hl,CapabilityId:hp,CommitId:hI,ConfigurationRevisionId:hN,ConfigurationSnapshotId:hz,CredentialReferenceId:yy,CrossMergeModeV1:yg,CrossMergePolicyV1:y_,GitHubStackedPullRequestPolicyV1:gP,HistoryRewritePolicyV1:gL,LocatorDigest:_i,ManifestDigest:_p,ProjectId:_6,ProposalId:_7,ProtectedRefDispositionV1:ve,ProtectedRefRuleV1:vt,ProtectedRefSelectorV1:vr,ProviderId:vn,RefId:vf,RepositoryId:v$,RepositoryPlacementScopeV1:vS,RequiredCheckExpectationV1:vk,RequiredCheckV1:vw,ReviewRequirementV1:vA,ReviewTopologyKindV1:vW,ReviewTopologyPolicyV1:vM,RunId:vL,SensitiveFilesystemLocatorV1:v3,TaskId:bE,TopologyConcurrencyPolicyV1:bH,TopologyEscalationPolicyV1:bG,TopologyGatePolicyV1:bB,TopologyNotificationLevelV1:bK,UtcMicros:bX,WorkApprovalPolicy:b2,WorkArtifactId:b4,WorkArtifactRefV1:b6,WorkAttemptIdentityV1:b9,WorkAttemptProgressV1:b7,WorkAttemptProjectionBindingV1:$e,WorkAttemptStateV1:$i,WorkAttemptV1:$s,WorkCancellationAcknowledgementV1:$d,WorkCancellationEscalationV1:$c,WorkCancellationRequestId:$l,WorkCancellationRequestV1:$p,WorkCancellationStateV1:$u,WorkEffectStateV1:$g,WorkEgressPolicy:$v,WorkExecutableReference:$w,WorkExecutionEnvelopeV1:$P,WorkExecutionLimits:$V,WorkExecutionSnapshot:$R,WorkFallbackTopology:$x,WorkFenceEpochV1:$j,WorkFilesystemPolicy:$C,WorkLeaseFenceV1:$L,WorkLeaseId:$U,WorkProviderBackendV1:Ss,WorkProviderProtocol:Sc,WorkProviderRouteId:Sl,WorkProviderRouteV1:Sp,WorkRecoveryStateV1:Su,WorkRestartReasonV1:Sh,WorkSandboxPolicy:SV,WorkSynthesisEvidenceGroupV1:Sx,WorkSynthesisRefusalV1:Sj,WorkSynthesisSourceEnvelopeV1:SC,WorkSynthesisSourceOutcomeV1:ST,WorkSynthesisSourceSetV1:SO,WorkTerminalEvidenceV1:SA,WorkTopologyPolicyV1:SM,WorkflowOperationRef:SF,WorkflowOutputName:SL,WorkflowSynthesisDraft:SB,WorktreeCleanlinessRequirementV1:SK,WorktreeId:SJ,WorktreePlacementModeV1:SX,WorktreeRetentionPolicyV1:SY,WorktreeRootPolicyV1:S1},$schema:"https://json-schema.org/draft/2020-12/schema",description:"The typed outcome of a synthesis request: an admitted attempt, or the\nsealed unsynthesized set when synthesis could not truthfully begin.",oneOf:[{additionalProperties:!1,description:"The admitted synthesis attempt and everything it is accountable to.",properties:{attempt:{$ref:"#/$defs/WorkAttemptV1",description:"The leased (or idempotently replayed) synthesis attempt."},draft:{$ref:"#/$defs/WorkflowSynthesisDraft",description:"The citation obligation, complete by construction: the draft cites\nevery citable source digest and is verified downstream by\n[`crate::workflow_synthesis::verify_workflow_synthesis_draft`]."},groups:{description:"Disagreement structure over the succeeded sources.",items:{$ref:"#/$defs/WorkSynthesisEvidenceGroupV1"},type:"array"},source_set:{$ref:"#/$defs/WorkSynthesisSourceSetV1",description:"The sealed source envelopes the attempt was admitted against."},synthesis:{const:"admitted",type:"string"},uncited:{description:"Sources preserved without citations: failures, unknowns, and\nartifact-less successes, in the caller's requested order.",items:{$ref:"#/$defs/WorkAttemptIdentityV1"},type:"array"}},required:["synthesis","attempt","source_set","groups","draft","uncited"],type:"object"},{properties:{refusal:{$ref:"#/$defs/WorkSynthesisRefusalV1"},sources:{$ref:"#/$defs/WorkSynthesisSourceSetV1"},synthesis:{const:"unsynthesized",type:"string"}},required:["synthesis","sources","refusal"],type:"object"}],title:"WorkSynthesisAttemptV1"},{$defs:{WorkAttemptListCursorV1:b8},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"One page-bounded topology view read. The cursor vocabulary is the attempt\nlist's: a cursor minted under a superseded topology generation is a typed\nstaleness refusal, never a silently different page.",properties:{cursor:{anyOf:[{$ref:"#/$defs/WorkAttemptListCursorV1"},{type:"null"}],default:null},page_size:{format:"uint32",minimum:0,type:"integer"}},required:["page_size"],title:"WorkTopologyViewRequestV1",type:"object"},{$defs:{BranchTopologyKindV1:hr,BranchTopologyPolicyV1:hi,CanonicalGitRefNameV1:hc,CanonicalGitRefPrefix:hl,CapabilityId:hp,CrossMergeModeV1:yg,CrossMergePolicyV1:y_,GitHubStackedPullRequestPolicyV1:gP,ProtectedRefDispositionV1:ve,ProtectedRefRuleV1:vt,ProtectedRefSelectorV1:vr,RequiredCheckExpectationV1:vk,RequiredCheckV1:vw,ReviewRequirementV1:vA,ReviewTopologyKindV1:vW,ReviewTopologyPolicyV1:vM,RunId:vL,TaskId:bE,TopologyGatePolicyV1:bB,UtcMicros:bX,WorkAttemptListCoverageV1:b5,WorkAttemptListCursorV1:b8,WorkAttemptTopologyBindingV1:$a,WorkPlacementBlockerV1:$B,WorkPlacementIdentityV1:$K,WorkPlacementKindV1:$J,WorkPlacementReadingV1:{description:"One placement reading. Absence is a state, not an empty placement.",oneOf:[{additionalProperties:!1,description:"No placement was ever admitted for this run.",properties:{state:{const:"absent",type:"string"}},required:["state"],type:"object"},{additionalProperties:!1,description:"The durable placement relation.",properties:{placement:{$ref:"#/$defs/WorkPlacementV1"},state:{const:"placed",type:"string"}},required:["state","placement"],type:"object"}],title:"WorkPlacementReadingV1"},WorkPlacementStateV1:$Z,WorkPlacementTargetV1:$Q,WorkPlacementV1:$X,WorkTopologyExecutionPlacementV1:{additionalProperties:!1,description:"The execution-placement dimension: the policy's placement mode plus one\nlane per distinct `(task, run)` pair in page order.",properties:{lanes:{items:{$ref:"#/$defs/WorkTopologyPlacementLaneV1"},type:"array"},mode:{$ref:"#/$defs/WorktreePlacementModeV1"}},required:["mode","lanes"],title:"WorkTopologyExecutionPlacementV1",type:"object"},WorkTopologyIntegrationStrategyV1:{additionalProperties:!1,description:"The integration-strategy dimension, read verbatim from the resolved work\ntopology policy the runs in scope are admitted against.",properties:{cross_merge:{$ref:"#/$defs/CrossMergePolicyV1"},gates:{$ref:"#/$defs/TopologyGatePolicyV1"},protected_refs:{items:{$ref:"#/$defs/ProtectedRefRuleV1"},type:"array"}},required:["cross_merge","gates","protected_refs"],title:"WorkTopologyIntegrationStrategyV1",type:"object"},WorkTopologyPlacementLaneV1:{additionalProperties:!1,description:"One execution-placement lane: a distinct `(task, run)` pair from the\nattempt page joined to its durable placement reading. Placement absence is\na state on the lane, not a dropped lane.",properties:{attempt_count:{description:"Attempts this lane carried within the requested page.",format:"uint32",minimum:0,type:"integer"},placement:{$ref:"#/$defs/WorkPlacementReadingV1"},run_id:{$ref:"#/$defs/RunId"},task_id:{$ref:"#/$defs/TaskId"}},required:["task_id","run_id","attempt_count","placement"],title:"WorkTopologyPlacementLaneV1",type:"object"},WorktreeCleanlinessRequirementV1:SK,WorktreePlacementModeV1:SX},$schema:"https://json-schema.org/draft/2020-12/schema",description:"The application-owned execution-topology view. Absence of any Work in\nscope is a typed state, distinct from an authorized-but-empty page.",oneOf:[{additionalProperties:!1,description:"No Work exists in this authority scope, so there is no topology to\ndraw. Concealed scopes are refused before any read.",properties:{state:{const:"absent",type:"string"}},required:["state"],type:"object"},{additionalProperties:!1,description:"The four dimensions, pinned to one verified topology generation.",properties:{branch_topology:{$ref:"#/$defs/BranchTopologyPolicyV1"},coverage:{$ref:"#/$defs/WorkAttemptListCoverageV1"},execution_placement:{$ref:"#/$defs/WorkTopologyExecutionPlacementV1"},integration_strategy:{$ref:"#/$defs/WorkTopologyIntegrationStrategyV1"},review_topology:{$ref:"#/$defs/ReviewTopologyPolicyV1"},state:{const:"view",type:"string"},topology:{$ref:"#/$defs/WorkAttemptTopologyBindingV1"}},required:["state","topology","coverage","execution_placement","branch_topology","review_topology","integration_strategy"],type:"object"}],title:"ExecutionTopologyViewV1"},{$defs:{ObservabilityHorizonV1:_M},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"One horizon-bounded execution-topology metrics read. The authorized scope\nis taken from the request context, not from the request, so a caller can\nnever widen the population it reads.",properties:{horizon:{$ref:"#/$defs/ObservabilityHorizonV1"},max_events:{description:"Event budget for this read, at most\n[`MAX_EXECUTION_TOPOLOGY_EVENTS_V1`].",format:"uint32",minimum:0,type:"integer"}},required:["horizon","max_events"],title:"ExecutionTopologyMetricsRequestV1",type:"object"},{$defs:{CoverageStateV1:yh,ExecutionBlockedCauseV1:{description:"Cause a work item was blocked for.",enum:["dependency","needs_input","capability","policy","scope","conflict","lease","backpressure","test","ci","review","effect_unknown","other","unknown"],type:"string"},ExecutionConcurrencyPhaseV1:{description:"Concurrency-width phase. `Useful` counts only distinct admitted\nattempts that advanced a committed progress frontier; heartbeats,\nqueued work, child processes, and transport fanout never reach it.",enum:["requested","accepted","admitted","active","useful"],type:"string"},ExecutionConflictKindV1:{description:"Conflict prediction kind. Mechanical and semantic keep separate\ndenominators because their adjudicators are not interchangeable.",enum:["mechanical","semantic","combined"],type:"string"},ExecutionConflictOutcomeV1:{description:"Independently observed conflict outcome. `Censored` and `Unknown`\nnever enter a confusion-matrix denominator.",enum:["conflict","no_conflict","censored","unknown"],type:"string"},ExecutionDeliveryOutcomeV1:{description:"Per-surface delivery outcome. A multi-surface delivery is never a\nduplicate of product work; only `Deduplicated` is.",enum:["delivered","deduplicated","dropped","unknown"],type:"string"},ExecutionDuplicateKindV1:{description:"Adjudicated duplicate-work relation. Similarity, proximity, shared\npaths, and concurrency never produce one of these.",enum:["exact_duplicate","superseded_overlap","repeated_investigation","duplicate_effect","not_duplicate","censored","unknown"],type:"string"},ExecutionDuplicateOutcomeV1:{description:"Whether a duplicate effect was prevented or actually committed. The\ntwo never collapse into one count.",enum:["prevented","committed","unknown","not_applicable"],type:"string"},ExecutionDurationBucketV1:{description:"Fixed duration buckets shared by stale stack age, blocked time, and\nrerun latency. Raw timestamps and exact durations stay authorized\nlocal detail.",enum:["under1m","from1m_to5m","from5m_to15m","from15m_to1h","from1h_to4h","from4h_to24h","from1d_to7d","over7d"],type:"string"},ExecutionFanoutPhaseV1:{description:"Fan-out width phase. `PeakActive` is the sampled active width; the\nfan-out distribution is unweighted so serialized and blocked samples,\nwhich carry no interval, are preserved rather than dropped.",enum:["requested","accepted","admitted","peak_active","useful"],type:"string"},ExecutionGitHubStackCapabilityReadingV1:{additionalProperties:!1,description:"Latest trustworthy GitHub stacked-PR capability observation in the\nhorizon. It is a typed operational state, not a metric or success claim.",properties:{capability:{anyOf:[{$ref:"#/$defs/ExecutionGitHubStackCapabilityV1"},{type:"null"}]},coverage:{$ref:"#/$defs/MetricCoverageV1"},other_forge_fallback_available:{type:["boolean","null"]},standard_git_fallback_available:{type:["boolean","null"]},unavailable:{anyOf:[{$ref:"#/$defs/ExecutionMetricUnavailableV1"},{type:"null"}]}},required:["coverage"],title:"ExecutionGitHubStackCapabilityReadingV1",type:"object"},ExecutionGitHubStackCapabilityV1:{description:"Last bounded GitHub stacked-PR capability state observed in the\nhorizon. This remains orthogonal to GitHub ingress and item lifecycle.",enum:["unavailable","private_preview_disabled","enabled","degraded"],type:"string"},ExecutionIntegrationKindV1:{description:"Integration operation kind. Rebase remains external observation only.",enum:["fast_forward","merge_commit","rebase","cherry_pick","stack_retarget","graph_only","external_observed","unknown"],type:"string"},ExecutionIntegrationOutcomeV1:{description:"Terminal result of an observed native integration.",enum:["succeeded","conflicted","rejected","denied","stale","locked","cancelled","timed_out","failed","partial","effect_unknown","unsupported","unknown"],type:"string"},ExecutionIntervalStateV1:{description:"Whether the owning drift interval is still open or exactly closed.",enum:["open","closed"],type:"string"},ExecutionLeakKindV1:{description:"Independently proved execution-leak class.",enum:["lease_after_terminal","attempt_without_live_owner","effect_unknown_past_deadline","missing_worktree_binding","unbounded_delivery","none","unknown"],type:"string"},ExecutionLeakOutcomeV1:{description:"Recovery state a proved leak reached.",enum:["not_required","pending","recovered","failed","unknown"],type:"string"},ExecutionMetricUnavailableV1:{description:"Why a measurement carries no value. Absence is always one of these typed\nreasons; it is never an empty string, a zero, or a silently dropped row.",oneOf:[{const:"store_unavailable",description:"The observation store could not be read at all for this horizon.",type:"string"},{const:"event_budget_exceeded",description:"The horizon holds more events than one read may draw, so every\ndenominator here would be a partial count presented as a total.",type:"string"},{const:"cell_budget_exceeded",description:"The bounded projection would exceed the Plan 26 result-cell ceiling.\nThe whole read refuses rather than returning a misleading subset.",type:"string"},{const:"no_eligible_evidence",description:"No recorded event in the family supplies this metric's numerator or\ndenominator.",type:"string"},{const:"support_floor_unmet",description:"Eligible cases exist but fall below the metric's support floor.",type:"string"},{const:"coverage_floor_unmet",description:"Observed cases cover less of the eligible population than the metric's\ncoverage floor allows.",type:"string"},{const:"censoring_ceiling_exceeded",description:"More of the eligible population is censored than the metric admits.",type:"string"},{const:"unbounded_interval",description:"The interval this metric integrates over has no proved upper bound, so\nits duration cannot be measured without inventing a terminal.",type:"string"}]},ExecutionQuantityUnitV1:{description:"Quantity unit for duplicate-effort accounting. Each unit is reported\nseparately: wall time, tokens, cost, tests, and effects are never\nsummed into one number.",enum:["wall_micros","tokens","cost_micros","tests","effects"],type:"string"},ExecutionRerunCauseV1:{description:"Typed rerun cause. Repeated logs and transport redelivery are not\nreruns and never carry one of these.",enum:["runtime_retry","runtime_fallback","test_rerun","ci_rerun","recovery","human_requested","unknown"],type:"string"},ExecutionRerunSourceV1:{description:"Which independent system observed the rerun.",enum:["runtime","test","ci"],type:"string"},ExecutionStackDriftKindV1:{description:"Exact reason a stack became stale. The enum is bounded and never\ncarries a branch, ref, worktree, repository, or provider identity.",enum:["head_advanced","base_advanced","merge_base_changed","retargeted","superseded"],type:"string"},ExecutionSurfaceFamilyV1:{description:"Delivery surface family. Addresses, payloads, principals, and\nrecipients are never observed, so the family is the whole label.",enum:["hook","mcp","lsp","dashboard","cli","other"],type:"string"},ExecutionTopologyDimensionV1:{description:"One allowed local grouping dimension. The set is closed by construction:\nevery value is produced by an exhaustive match over a bounded domain class,\nso no person, agent, task, project, repository, worktree, branch, ref,\ncommit, model version, or route can ever appear as a label.",oneOf:[{properties:{dimension:{const:"concurrency_phase",type:"string"},value:{$ref:"#/$defs/ExecutionConcurrencyPhaseV1"}},required:["dimension","value"],type:"object"},{properties:{dimension:{const:"fanout_phase",type:"string"},value:{$ref:"#/$defs/ExecutionFanoutPhaseV1"}},required:["dimension","value"],type:"object"},{properties:{dimension:{const:"width_bucket",type:"string"},value:{$ref:"#/$defs/ExecutionWidthBucketV1"}},required:["dimension","value"],type:"object"},{properties:{dimension:{const:"duration_bucket",type:"string"},value:{$ref:"#/$defs/ExecutionDurationBucketV1"}},required:["dimension","value"],type:"object"},{properties:{dimension:{const:"duplicate_kind",type:"string"},value:{$ref:"#/$defs/ExecutionDuplicateKindV1"}},required:["dimension","value"],type:"object"},{properties:{dimension:{const:"unit",type:"string"},value:{$ref:"#/$defs/ExecutionQuantityUnitV1"}},required:["dimension","value"],type:"object"},{properties:{dimension:{const:"duplicate_outcome",type:"string"},value:{$ref:"#/$defs/ExecutionDuplicateOutcomeV1"}},required:["dimension","value"],type:"object"},{properties:{dimension:{const:"conflict_kind",type:"string"},value:{$ref:"#/$defs/ExecutionConflictKindV1"}},required:["dimension","value"],type:"object"},{properties:{dimension:{const:"conflict_outcome",type:"string"},value:{$ref:"#/$defs/ExecutionConflictOutcomeV1"}},required:["dimension","value"],type:"object"},{properties:{dimension:{const:"integration_kind",type:"string"},value:{$ref:"#/$defs/ExecutionIntegrationKindV1"}},required:["dimension","value"],type:"object"},{properties:{dimension:{const:"integration_outcome",type:"string"},value:{$ref:"#/$defs/ExecutionIntegrationOutcomeV1"}},required:["dimension","value"],type:"object"},{properties:{dimension:{const:"stack_drift_kind",type:"string"},value:{$ref:"#/$defs/ExecutionStackDriftKindV1"}},required:["dimension","value"],type:"object"},{properties:{dimension:{const:"interval_state",type:"string"},value:{$ref:"#/$defs/ExecutionIntervalStateV1"}},required:["dimension","value"],type:"object"},{properties:{dimension:{const:"blocked_cause",type:"string"},value:{$ref:"#/$defs/ExecutionBlockedCauseV1"}},required:["dimension","value"],type:"object"},{properties:{dimension:{const:"rerun_source",type:"string"},value:{$ref:"#/$defs/ExecutionRerunSourceV1"}},required:["dimension","value"],type:"object"},{properties:{dimension:{const:"rerun_cause",type:"string"},value:{$ref:"#/$defs/ExecutionRerunCauseV1"}},required:["dimension","value"],type:"object"},{properties:{dimension:{const:"leak_kind",type:"string"},value:{$ref:"#/$defs/ExecutionLeakKindV1"}},required:["dimension","value"],type:"object"},{properties:{dimension:{const:"leak_outcome",type:"string"},value:{$ref:"#/$defs/ExecutionLeakOutcomeV1"}},required:["dimension","value"],type:"object"},{properties:{dimension:{const:"surface",type:"string"},value:{$ref:"#/$defs/ExecutionSurfaceFamilyV1"}},required:["dimension","value"],type:"object"},{properties:{dimension:{const:"delivery_outcome",type:"string"},value:{$ref:"#/$defs/ExecutionDeliveryOutcomeV1"}},required:["dimension","value"],type:"object"}]},ExecutionTopologyDrillAnchorV1:{additionalProperties:!1,description:"An opaque cursor minted by the registered observation authority. It can be\nresolved only through that same authorized local query boundary and is not\na metric dimension or exportable identity.",properties:{cursor:{type:"string"}},required:["cursor"],title:"ExecutionTopologyDrillAnchorV1",type:"object"},ExecutionTopologyEmissionCoverageV1:{additionalProperties:!1,description:"Envelope-level delivery evidence for this read. `None` means the store did\nnot answer, so no zero may be inferred. `dropped` is the proved lower bound\nfrom the bound producer scope, deduplicated across explicit loss receipts\nand their next-envelope carriers; it is not attributed to a topology\nfamily. Sampling stays a count of sampled topology envelopes and is never\nexpanded into a fabricated population estimate.",properties:{delayed:{format:"uint64",minimum:0,type:["integer","null"]},dropped:{format:"uint64",minimum:0,type:["integer","null"]},emitted:{format:"uint64",minimum:0,type:["integer","null"]},sampled_events:{format:"uint64",minimum:0,type:["integer","null"]}},title:"ExecutionTopologyEmissionCoverageV1",type:"object"},ExecutionTopologyMeasurementV1:{additionalProperties:!1,description:"One descriptor cell: the Plan 26 descriptor name, its grouping dimensions,\nand the landed metric envelope carrying value, denominator, coverage, and\nprovenance.",properties:{dimensions:{description:"Allowed local grouping dimensions, at most\n[`MAX_METRIC_DIMENSIONS_V1`], in a fixed order per descriptor.",items:{$ref:"#/$defs/ExecutionTopologyDimensionV1"},type:"array"},unavailable:{anyOf:[{$ref:"#/$defs/ExecutionMetricUnavailableV1"},{type:"null"}],description:"Typed absence reason. It is `Some` exactly when `value.value` is\n`None`, so a reader can never mistake a refused metric for a zero."},value:{$ref:"#/$defs/MetricValueV1"}},required:["dimensions","value"],title:"ExecutionTopologyMeasurementV1",type:"object"},ExecutionWidthBucketV1:{description:"Fixed width buckets. Raw widths stay authorized local detail; only\nbucket counts leave the projection.",enum:["zero","one","two","from3_to4","from5_to8","from9_to16","from17_to32","from33_to64","over64"],type:"string"},MetricCalibrationV1:_y,MetricCohortV1:_g,MetricCoverageV1:__,MetricEvidenceClassV1:_v,MetricProvenanceV1:_b,MetricSourceV1:_$,MetricTemporalV1:_S,MetricUncertaintyV1:_k,MetricValueV1:_w,ObservabilityHorizonV1:_M},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"The canonical execution-topology read model. Observatory and Costs render\nthis without local formulas; CLI, MCP, and HTTP return the same bytes.",properties:{authorized_scope_ref:{description:"Local authorization anchor the read was admitted under. It is derived\nfrom the resolved scope, never from a caller-supplied string.",type:"string"},coverage:{$ref:"#/$defs/MetricCoverageV1",description:"Family-level coverage over the event population, independent of any\nsingle descriptor's denominator."},current:{description:"True only when the whole family was read with `Known` coverage. A\nfalse value means at least one descriptor below is a typed absence.",type:"boolean"},drill_anchors:{description:"Bounded registered source cursors for authorized local drill-down.\nPayload anchors, traces, and scope identifiers never enter this list.",items:{$ref:"#/$defs/ExecutionTopologyDrillAnchorV1"},type:"array"},emission_coverage:{$ref:"#/$defs/ExecutionTopologyEmissionCoverageV1"},github_stack_capability:{$ref:"#/$defs/ExecutionGitHubStackCapabilityReadingV1"},horizon:{$ref:"#/$defs/ObservabilityHorizonV1"},measurements:{items:{$ref:"#/$defs/ExecutionTopologyMeasurementV1"},type:"array"},observed_at_micros:{format:"int64",type:"integer"},watermark:{description:"Watermark of the last event this projection consumed. A rebuild at the\nsame watermark yields the same values.",type:"string"}},required:["authorized_scope_ref","horizon","watermark","observed_at_micros","current","coverage","emission_coverage","github_stack_capability","drill_anchors","measurements"],title:"ExecutionTopologyMetricsV1",type:"object"},{$defs:{ProjectId:_6,RepositoryId:v$,UtcMicros:bX,WorkGraphReadModeV1:{oneOf:[{properties:{mode:{const:"current",type:"string"}},required:["mode"],type:"object"},{properties:{mode:{const:"as_of",type:"string"},valid_at:{$ref:"#/$defs/UtcMicros"}},required:["mode","valid_at"],type:"object"},{properties:{from_valid_at:{$ref:"#/$defs/UtcMicros"},mode:{const:"evolution",type:"string"},through_valid_at:{$ref:"#/$defs/UtcMicros"}},required:["mode","from_valid_at","through_valid_at"],type:"object"},{properties:{from_observed_at:{$ref:"#/$defs/UtcMicros"},mode:{const:"forensic",type:"string"},through_observed_at:{$ref:"#/$defs/UtcMicros"}},required:["mode","from_observed_at","through_observed_at"],type:"object"}]},WorkProductAuthorizedRelationScopeV1:$1,WorkProductSelectionScopeV1:St},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{continuation:{type:["string","null"]},mode:{$ref:"#/$defs/WorkGraphReadModeV1"},observed_at:{$ref:"#/$defs/UtcMicros"},selection:{$ref:"#/$defs/WorkProductSelectionScopeV1"}},required:["selection","mode","observed_at"],title:"WorkGraphReadRequestV1",type:"object"},{$defs:{ActorId:f$,AttemptId:fM,AuthorizedWorkProductScopeV1:{additionalProperties:!1,description:"Owner identity resolved by the registered profile authority. It is never\naccepted from a Work request.",properties:{owner_brain_id:{$ref:"#/$defs/BrainId"},owner_profile_id:{$ref:"#/$defs/UserProfileId"},selection:{$ref:"#/$defs/WorkProductSelectionScopeV1"}},required:["owner_brain_id","owner_profile_id","selection"],type:"object"},BrainId:f0,ManifestDigest:_p,ProjectId:_6,ProjectionGenerationId:_8,ProposalId:_7,ProviderId:vn,RepositoryId:v$,RetrievalAnchorId:vx,RunId:vL,TaskEvidenceLinkV1:bT,TaskId:bE,UserProfileId:bQ,UtcMicros:bX,VerifiedWorkGraphVersionV1:b1,WorkAcceptanceCriterionV1:b0,WorkAttemptIdentityV1:b9,WorkAttemptStateV1:$i,WorkCausalProjectionV1:{additionalProperties:!1,properties:{candidate_edges:{items:{$ref:"#/$defs/WorkDagEdgeV1"},type:"array"},graph_version:{format:"uint64",minimum:0,type:"integer"}},required:["graph_version","candidate_edges"],type:"object"},WorkCriticalPathProjectionV1:{additionalProperties:!1,properties:{graph_version:{format:"uint64",minimum:0,type:"integer"},task_ids:{items:{$ref:"#/$defs/TaskId"},type:"array"},total_effort:{format:"uint32",minimum:0,type:"integer"}},required:["graph_version","task_ids","total_effort"],type:"object"},WorkDagEdgeV1:{additionalProperties:!1,properties:{dependency:{$ref:"#/$defs/TaskId"},dependent:{$ref:"#/$defs/TaskId"}},required:["dependency","dependent"],type:"object"},WorkDagProjectionV1:{additionalProperties:!1,properties:{gating_edges:{items:{$ref:"#/$defs/WorkDagEdgeV1"},type:"array"},graph_version:{format:"uint64",minimum:0,type:"integer"},task_ids:{items:{$ref:"#/$defs/TaskId"},type:"array"}},required:["graph_version","task_ids","gating_edges"],type:"object"},WorkGraphSelectionCoverageV1:{description:"How much of the owner's journal the read's selection actually covers.\n\nA selection names a slice of the owner's work, not the whole journal: an\nevent records the relation scopes it was admitted under, and a selection\nthat does not name them puts that event *outside* the slice. The events\noutside a selection do not poison the ones inside it, but they must never be\nconcealed either, a caller who is shown the covered slice with no way to\nlearn that more exists is reading a silently incomplete graph.\n\nSo the read answers over the covered slice and says so, in the same\n`Complete`/`Partial` vocabulary [`WorkGraphTimelineCoverageV1`] and\n[`WorkHistoryCoverageV1`](crate::WorkHistoryCoverageV1) already use.\n\nThe covered slice is always a *prefix* of the journal, and that is a\nproperty of folding rather than a simplification. A graph version is folded\nfrom every event up to its own sequence, so the first event a selection does\nnot cover ends the readable slice: every later version, whatever scopes its\nown event named, would have to be folded across that event to exist at all.\n`excluded_events` therefore counts every event from the first uncovered one\nonward.",oneOf:[{description:"The selection covers the owner's whole journal. Nothing was withheld.",properties:{coverage:{const:"complete",type:"string"},covered_events:{format:"uint32",minimum:0,type:"integer"}},required:["coverage","covered_events"],type:"object"},{description:"The selection covers `covered_events` events and `excluded_events`\nevents lie outside it, starting at `first_excluded_sequence`. Every\nentry this read returned was folded from covered events alone.",properties:{coverage:{const:"partial",type:"string"},covered_events:{format:"uint32",minimum:0,type:"integer"},excluded_events:{format:"uint32",minimum:0,type:"integer"},first_excluded_sequence:{format:"uint64",minimum:0,type:"integer"}},required:["coverage","covered_events","excluded_events","first_excluded_sequence"],type:"object"}]},WorkGraphTimelineCoverageV1:{oneOf:[{properties:{coverage:{const:"complete",type:"string"},returned:{format:"uint32",minimum:0,type:"integer"}},required:["coverage","returned"],type:"object"},{properties:{continuation:{type:"string"},coverage:{const:"partial",type:"string"},returned:{format:"uint32",minimum:0,type:"integer"}},required:["coverage","returned","continuation"],type:"object"}]},WorkGraphTimelineV1:{additionalProperties:!1,properties:{coverage:{$ref:"#/$defs/WorkGraphTimelineCoverageV1"},entries:{items:{$ref:"#/$defs/WorkGraphVersionEntryV1"},type:"array"}},required:["entries","coverage"],type:"object"},WorkGraphVersionEntryV1:{additionalProperties:!1,description:"One immutable graph version and every Work projection derived from that\nsame version at the caller's explicit observation time.",properties:{graph:{$ref:"#/$defs/WorkProductGraphV1"},observed_at:{$ref:"#/$defs/UtcMicros"},projected_at:{$ref:"#/$defs/UtcMicros"},projections:{$ref:"#/$defs/WorkProductProjectionBundleV1"},runtime:{$ref:"#/$defs/WorkRuntimeProjectionV1"},valid_at:{$ref:"#/$defs/UtcMicros"},verified_version:{$ref:"#/$defs/VerifiedWorkGraphVersionV1"}},required:["valid_at","observed_at","projected_at","verified_version","graph","runtime","projections"],type:"object"},WorkHandoffV1:$W,WorkHierarchyV1:$M,WorkInitiativeV1:$N,WorkItemInputV1:$z,WorkItemV1:$D,WorkKanbanCardV1:{additionalProperties:!1,properties:{effort:{format:"uint32",minimum:0,type:"integer"},lane:{$ref:"#/$defs/WorkTimelineLaneV1"},legal_actions:{items:{$ref:"#/$defs/WorkLegalActionV1"},type:"array",uniqueItems:!0},task_id:{$ref:"#/$defs/TaskId"}},required:["task_id","lane","effort","legal_actions"],type:"object"},WorkKanbanProjectionV1:{additionalProperties:!1,properties:{cards:{items:{$ref:"#/$defs/WorkKanbanCardV1"},type:"array"},graph_version:{format:"uint64",minimum:0,type:"integer"}},required:["graph_version","cards"],type:"object"},WorkLegalActionV1:{enum:["view_evidence","generate_proposal","accept_proposal","link_accepted_attempt","accept_task","handoff","archive"],type:"string"},WorkMilestoneV1:$H,WorkPlanV1:$Y,WorkProductAuthorizedRelationScopeV1:$1,WorkProductGraphV1:$3,WorkProductProjectionBundleV1:{additionalProperties:!1,properties:{causal:{$ref:"#/$defs/WorkCausalProjectionV1"},critical_path:{$ref:"#/$defs/WorkCriticalPathProjectionV1"},dag:{$ref:"#/$defs/WorkDagProjectionV1"},graph_version:{format:"uint64",minimum:0,type:"integer"},kanban:{$ref:"#/$defs/WorkKanbanProjectionV1"},runtime:{$ref:"#/$defs/WorkRuntimeProjectionV1"},timeline:{$ref:"#/$defs/WorkTimelineProjectionV1"},workload:{$ref:"#/$defs/WorkWorkloadProjectionV1"}},required:["graph_version","runtime","kanban","dag","timeline","causal","critical_path","workload"],type:"object"},WorkProductSelectionScopeV1:St,WorkProjectionSequenceV1:{format:"uint64",minimum:0,title:"WorkProjectionSequenceV1",type:"integer"},WorkProposalDecisionV1:Sr,WorkProposalDispositionV1:Si,WorkProposalV1:So,WorkProposedChildV1:Sn,WorkProviderRouteId:Sl,WorkProviderRouteV1:Sp,WorkRelationReplanDecisionV1:Sm,WorkRelationReplanProposalV1:Sf,WorkRouteDecisionV1:Sb,WorkRuntimeAttemptProjectionV1:{additionalProperties:!1,properties:{identity:{$ref:"#/$defs/WorkAttemptIdentityV1"},state:{$ref:"#/$defs/WorkAttemptStateV1"}},required:["identity","state"],type:"object"},WorkRuntimeProjectionCoverageV1:{oneOf:[{additionalProperties:!1,properties:{coverage:{const:"complete",type:"string"}},required:["coverage"],type:"object"},{additionalProperties:!1,properties:{coverage:{const:"partial",type:"string"},unavailable_attempts:{items:{$ref:"#/$defs/WorkAttemptIdentityV1"},type:"array",uniqueItems:!0}},required:["coverage","unavailable_attempts"],type:"object"},{additionalProperties:!1,properties:{coverage:{const:"unavailable",type:"string"}},required:["coverage"],type:"object"}]},WorkRuntimeProjectionV1:{additionalProperties:!1,properties:{attempts:{items:{$ref:"#/$defs/WorkRuntimeAttemptProjectionV1"},type:"array"},coverage:{$ref:"#/$defs/WorkRuntimeProjectionCoverageV1"},generation_id:{$ref:"#/$defs/ProjectionGenerationId"},graph_version:{format:"uint64",minimum:0,type:"integer"},observed_at:{$ref:"#/$defs/UtcMicros"},sequence:{$ref:"#/$defs/WorkProjectionSequenceV1"}},required:["graph_version","generation_id","sequence","observed_at","attempts","coverage"],type:"object"},WorkScoreKindV1:SR,WorkShapeAssessmentV1:Sq,WorkSizingV1:SI,WorkTimelineEntryV1:{additionalProperties:!1,properties:{created_at:{$ref:"#/$defs/UtcMicros"},deadline:{anyOf:[{$ref:"#/$defs/UtcMicros"},{type:"null"}]},scheduled_at:{anyOf:[{$ref:"#/$defs/UtcMicros"},{type:"null"}]},task_id:{$ref:"#/$defs/TaskId"},updated_at:{$ref:"#/$defs/UtcMicros"}},required:["task_id","created_at","updated_at"],type:"object"},WorkTimelineLaneV1:{enum:["triage","todo","scheduled","ready","running","blocked","review","done","archived","cancelled","unavailable"],type:"string"},WorkTimelineProjectionV1:{additionalProperties:!1,properties:{entries:{items:{$ref:"#/$defs/WorkTimelineEntryV1"},type:"array"},graph_version:{format:"uint64",minimum:0,type:"integer"}},required:["graph_version","entries"],type:"object"},WorkWorkloadProjectionV1:{additionalProperties:!1,properties:{actual_concurrency:{format:"uint32",minimum:0,type:["integer","null"]},blocked_effort:{format:"uint32",minimum:0,type:["integer","null"]},graph_version:{format:"uint64",minimum:0,type:"integer"},ready_effort:{format:"uint32",minimum:0,type:["integer","null"]},requested_concurrency:{format:"uint32",minimum:0,type:["integer","null"]},running_effort:{format:"uint32",minimum:0,type:["integer","null"]},total_effort:{format:"uint32",minimum:0,type:"integer"}},required:["graph_version","total_effort"],type:"object"}},$schema:"https://json-schema.org/draft/2020-12/schema",oneOf:[{properties:{authorized_scope:{$ref:"#/$defs/AuthorizedWorkProductScopeV1"},mode:{const:"current",type:"string"},selection_coverage:{$ref:"#/$defs/WorkGraphSelectionCoverageV1"},snapshot:{$ref:"#/$defs/WorkGraphVersionEntryV1"}},required:["mode","authorized_scope","selection_coverage","snapshot"],type:"object"},{properties:{authorized_scope:{$ref:"#/$defs/AuthorizedWorkProductScopeV1"},mode:{const:"as_of",type:"string"},selection_coverage:{$ref:"#/$defs/WorkGraphSelectionCoverageV1"},snapshot:{$ref:"#/$defs/WorkGraphVersionEntryV1"}},required:["mode","authorized_scope","selection_coverage","snapshot"],type:"object"},{properties:{authorized_scope:{$ref:"#/$defs/AuthorizedWorkProductScopeV1"},mode:{const:"evolution",type:"string"},selection_coverage:{$ref:"#/$defs/WorkGraphSelectionCoverageV1"},timeline:{$ref:"#/$defs/WorkGraphTimelineV1"}},required:["mode","authorized_scope","selection_coverage","timeline"],type:"object"},{properties:{authorized_scope:{$ref:"#/$defs/AuthorizedWorkProductScopeV1"},mode:{const:"forensic",type:"string"},selection_coverage:{$ref:"#/$defs/WorkGraphSelectionCoverageV1"},timeline:{$ref:"#/$defs/WorkGraphTimelineV1"}},required:["mode","authorized_scope","selection_coverage","timeline"],type:"object"},{description:"A `Current` or `AsOf` point read under an authorized selection that has\nno published graph version at that point: no task has been created yet.\nThe caller was authorized; the legal next action is creating a task.",properties:{authorized_scope:{$ref:"#/$defs/AuthorizedWorkProductScopeV1"},mode:{const:"absent",type:"string"},selection_coverage:{$ref:"#/$defs/WorkGraphSelectionCoverageV1"}},required:["mode","authorized_scope","selection_coverage"],type:"object"}],title:"WorkGraphReadV1"},{$defs:{WorkflowDefinitionId:Sz},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"Wire request for [`WorkflowDefinitionService::activate`].",properties:{definition_id:{$ref:"#/$defs/WorkflowDefinitionId"},definition_version:{format:"uint64",minimum:1,type:"integer"},expected_revision:{description:"Current candidate disposition revision. A newly registered candidate\nstarts at revision 1; activation reports expected and observed values\nwhen this compare-and-swap precondition is stale.",format:"uint64",minimum:1,type:"integer"}},required:["definition_id","definition_version","expected_revision"],title:"WorkflowDefinitionActivateRequest",type:"object"},{$defs:{UtcMicros:bX,WorkflowDefinitionId:Sz,WorkflowDefinitionLifecycleState:{description:'Durable lifecycle disposition of one immutable workflow definition version.\n\nPlan 32 ("Typed workflow definitions"): "Lifecycle retains candidate,\nvalidate, activate, retire, reject, list, get, diff, and history operations\nthrough the same application surfaces." The definition payload itself stays\nimmutable, "Editing creates a new version; admitted runs remain pinned",\nso the disposition is a separate revisioned aggregate keyed by the same\ndefinition identity.',enum:["candidate","validated","active","retired","rejected"],type:"string"}},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"Revisioned lifecycle disposition of one definition version.",properties:{definition_id:{$ref:"#/$defs/WorkflowDefinitionId"},definition_version:{format:"uint64",minimum:1,type:"integer"},revision:{format:"uint64",minimum:1,type:"integer"},state:{$ref:"#/$defs/WorkflowDefinitionLifecycleState"},transitioned_at:{$ref:"#/$defs/UtcMicros"}},required:["definition_id","definition_version","state","revision","transitioned_at"],title:"WorkflowDefinitionDisposition",type:"object"},{$defs:{RunId:vL,WorkCommandId:$m},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"Requests cooperative cancellation as a durable typed transition; the run\nsettles to `Cancelled` when the runtime reconciles in-flight steps.",properties:{command_id:{$ref:"#/$defs/WorkCommandId"},expected_sequence:{format:"uint64",minimum:0,type:"integer"},run_id:{$ref:"#/$defs/RunId"}},required:["run_id","expected_sequence","command_id"],title:"WorkflowRunCancelRequest",type:"object"},{$defs:{ActorId:f$,AttemptId:fM,AutomaticWorktreeGcV1:fL,BranchCollisionPolicyV1:f2,BranchNameComponentV1:f4,BranchNameSeparatorV1:f6,BranchNamingPolicyV1:f3,BranchTopologyKindV1:hr,BranchTopologyPolicyV1:hi,CanonicalGitRefNameV1:hc,CanonicalGitRefPrefix:hl,CapabilityId:hp,CommitId:hI,ConfigurationRevisionId:hN,ConfigurationSnapshotId:hz,CredentialReferenceId:yy,CrossMergeModeV1:yg,CrossMergePolicyV1:y_,GitHubStackedPullRequestPolicyV1:gP,HistoryRewritePolicyV1:gL,LocatorDigest:_i,ManifestDigest:_p,ProjectId:_6,ProposalId:_7,ProtectedRefDispositionV1:ve,ProtectedRefRuleV1:vt,ProtectedRefSelectorV1:vr,ProviderId:vn,RefId:vf,RepositoryId:v$,RepositoryPlacementScopeV1:vS,RequiredCheckExpectationV1:vk,RequiredCheckV1:vw,ReviewRequirementV1:vA,ReviewTopologyKindV1:vW,ReviewTopologyPolicyV1:vM,RunId:vL,SensitiveFilesystemLocatorV1:v3,TaskId:bE,TopologyConcurrencyPolicyV1:bH,TopologyEscalationPolicyV1:bG,TopologyGatePolicyV1:bB,TopologyNotificationLevelV1:bK,UtcMicros:bX,WorkAcceptanceCriterionV1:b0,WorkApprovalPolicy:b2,WorkArtifactId:b4,WorkArtifactRefV1:b6,WorkAttemptIdentityV1:b9,WorkAuthority:{additionalProperties:!1,properties:{actor_id:{$ref:"#/$defs/ActorId"},policy_digest:{$ref:"#/$defs/ManifestDigest"},project_id:{$ref:"#/$defs/ProjectId"},repository_id:{$ref:"#/$defs/RepositoryId"},worktree_id:{$ref:"#/$defs/WorktreeId"}},required:["project_id","repository_id","worktree_id","actor_id","policy_digest"],type:"object"},WorkCommandId:$m,WorkEffectStateV1:$g,WorkEgressPolicy:$v,WorkExecutableReference:$w,WorkExecutionLimits:$V,WorkExecutionSnapshot:$R,WorkFallbackTopology:$x,WorkFilesystemPolicy:$C,WorkHandoffV1:$W,WorkHierarchyV1:$M,WorkInitiativeV1:$N,WorkItemInputV1:$z,WorkItemV1:$D,WorkMilestoneV1:$H,WorkPlanV1:$Y,WorkProposalV1:So,WorkProposedChildV1:Sn,WorkProviderBackendV1:Ss,WorkProviderProtocol:Sc,WorkProviderRouteId:Sl,WorkProviderRouteV1:Sp,WorkRouteDecisionV1:Sb,WorkSandboxPolicy:SV,WorkScoreKindV1:SR,WorkShapeAssessmentV1:Sq,WorkSizingV1:SI,WorkTopologyPolicyV1:SM,WorkflowDefinition:SN,WorkflowDefinitionId:Sz,WorkflowFanOut:SD,WorkflowFanOutChildPlanV1:{additionalProperties:!1,properties:{admit_command_id:{$ref:"#/$defs/WorkCommandId"},attempt_identity:{$ref:"#/$defs/WorkAttemptIdentityV1"},create_command_id:{$ref:"#/$defs/WorkCommandId"},initiative:{$ref:"#/$defs/WorkInitiativeV1"},instructions:{type:"string"},item:{$ref:"#/$defs/WorkItemV1"},milestone:{$ref:"#/$defs/WorkMilestoneV1"},plan:{$ref:"#/$defs/WorkPlanV1"},proposal:{$ref:"#/$defs/WorkProposalV1"},proposal_command_id:{$ref:"#/$defs/WorkCommandId"},task_id:{$ref:"#/$defs/TaskId"}},required:["task_id","attempt_identity","create_command_id","proposal_command_id","admit_command_id","initiative","plan","milestone","item","proposal","instructions"],type:"object"},WorkflowFanOutFailurePolicyV1:{oneOf:[{properties:{policy:{const:"fail_fast",type:"string"}},required:["policy"],type:"object"},{properties:{policy:{const:"collect",type:"string"}},required:["policy"],type:"object"},{properties:{policy:{const:"require_at_least",type:"string"},successes:{format:"uint16",maximum:65535,minimum:1,type:"integer"}},required:["policy","successes"],type:"object"}]},WorkflowFanOutPlanV1:{additionalProperties:!1,properties:{admitted_at:{$ref:"#/$defs/UtcMicros"},authority:{$ref:"#/$defs/WorkAuthority",description:"Exact Work authority that admitted this plan. Recovery may execute the\nplan only from a runtime with this byte-identical authority."},children:{items:{$ref:"#/$defs/WorkflowFanOutChildPlanV1"},type:"array"},commit:{$ref:"#/$defs/CommitId"},effect_state:{$ref:"#/$defs/WorkEffectStateV1"},execution_snapshot:{$ref:"#/$defs/WorkExecutionSnapshot"},failure_policy:{$ref:"#/$defs/WorkflowFanOutFailurePolicyV1"},maximum_parallel:{format:"uint16",maximum:65535,minimum:1,type:"integer"},operation:{$ref:"#/$defs/WorkflowOperationRef"},plan_digest:{$ref:"#/$defs/ManifestDigest"},reference:{anyOf:[{$ref:"#/$defs/RefId"},{type:"null"}]},step_id:{$ref:"#/$defs/WorkflowStepId"}},required:["authority","step_id","operation","plan_digest","admitted_at","maximum_parallel","failure_policy","execution_snapshot","commit","effect_state","children"],type:"object"},WorkflowOperationRef:SF,WorkflowOutputArtifact:{additionalProperties:!1,properties:{artifact:{$ref:"#/$defs/WorkArtifactRefV1"},attempt_identity:{$ref:"#/$defs/WorkAttemptIdentityV1"}},required:["attempt_identity","artifact"],type:"object"},WorkflowOutputName:SL,WorkflowOutputReference:SU,WorkflowPlacementReceipt:{additionalProperties:!1,properties:{backend:{$ref:"#/$defs/WorkProviderBackendV1"},configuration_digest:{$ref:"#/$defs/ManifestDigest"},model:{type:"string"},placement_digest:{$ref:"#/$defs/ManifestDigest"},provider_registry_digest:{$ref:"#/$defs/ManifestDigest"},route:{$ref:"#/$defs/WorkProviderRouteV1"},run_id:{$ref:"#/$defs/RunId"},step_id:{$ref:"#/$defs/WorkflowStepId"},topology_digest:{$ref:"#/$defs/ManifestDigest"},worktree_placement:{$ref:"#/$defs/WorktreePlacementModeV1"}},required:["run_id","step_id","route","backend","model","configuration_digest","topology_digest","provider_registry_digest","worktree_placement","placement_digest"],type:"object"},WorkflowRunEvent:{additionalProperties:!1,properties:{command_id:{$ref:"#/$defs/WorkCommandId"},event:{$ref:"#/$defs/WorkflowRunEventKind"},input_digest:{$ref:"#/$defs/ManifestDigest"},occurred_at:{$ref:"#/$defs/UtcMicros"},run_id:{$ref:"#/$defs/RunId"},sequence:{format:"uint64",minimum:0,type:"integer"}},required:["run_id","sequence","command_id","input_digest","occurred_at","event"],type:"object"},WorkflowRunEventKind:{oneOf:[{properties:{definition:{$ref:"#/$defs/WorkflowDefinition"},fan_out_plans:{default:[],items:{$ref:"#/$defs/WorkflowFanOutPlanV1"},type:"array"},pinned_provider_registry_digest:{$ref:"#/$defs/ManifestDigest"},pinned_topology_digest:{$ref:"#/$defs/ManifestDigest"},type:{const:"admitted",type:"string"}},required:["type","definition","pinned_topology_digest","pinned_provider_registry_digest"],type:"object"},{properties:{attempts:{items:{$ref:"#/$defs/WorkAttemptIdentityV1"},type:"array"},step_id:{$ref:"#/$defs/WorkflowStepId"},type:{const:"fan_out_children_released",type:"string"}},required:["type","step_id","attempts"],type:"object"},{properties:{attempts:{items:{$ref:"#/$defs/WorkAttemptIdentityV1"},type:"array"},step_id:{$ref:"#/$defs/WorkflowStepId"},type:{const:"fan_out_children_settled",type:"string"}},required:["type","step_id","attempts"],type:"object"},{properties:{planned_attempt:{$ref:"#/$defs/WorkAttemptIdentityV1"},prior_attempt:{$ref:"#/$defs/WorkAttemptIdentityV1"},replacement_attempt:{$ref:"#/$defs/WorkAttemptIdentityV1"},retry_receipt_digest:{$ref:"#/$defs/ManifestDigest"},step_id:{$ref:"#/$defs/WorkflowStepId"},type:{const:"fan_out_child_retry_rebound",type:"string"}},required:["type","step_id","planned_attempt","prior_attempt","replacement_attempt","retry_receipt_digest"],type:"object"},{properties:{placement:{$ref:"#/$defs/WorkflowPlacementReceipt"},step_id:{$ref:"#/$defs/WorkflowStepId"},type:{const:"step_started",type:"string"}},required:["type","step_id","placement"],type:"object"},{properties:{effect_receipt:{$ref:"#/$defs/WorkflowStepEffectReceipt"},outputs:{items:{$ref:"#/$defs/WorkflowStepOutput"},type:"array"},step_id:{$ref:"#/$defs/WorkflowStepId"},type:{const:"step_completed",type:"string"}},required:["type","step_id","outputs","effect_receipt"],type:"object"},{properties:{effect_receipt:{$ref:"#/$defs/WorkflowStepEffectReceipt"},outputs:{items:{$ref:"#/$defs/WorkflowStepOutput"},type:"array"},step_id:{$ref:"#/$defs/WorkflowStepId"},type:{const:"step_failed",type:"string"}},required:["type","step_id","outputs","effect_receipt"],type:"object"},{properties:{type:{const:"paused",type:"string"}},required:["type"],type:"object"},{properties:{type:{const:"resumed",type:"string"}},required:["type"],type:"object"},{properties:{type:{const:"cancellation_requested",type:"string"}},required:["type"],type:"object"},{properties:{type:{const:"cancelled",type:"string"}},required:["type"],type:"object"}]},WorkflowRunStatus:{enum:["running","paused","cancelling","completed","failed","cancelled"],type:"string"},WorkflowStep:SH,WorkflowStepEffectOutcome:{enum:["completed","failed","cancelled","timed_out","unknown"],type:"string"},WorkflowStepEffectReceipt:{additionalProperties:!1,properties:{effect_digest:{$ref:"#/$defs/ManifestDigest"},outcome:{$ref:"#/$defs/WorkflowStepEffectOutcome"},output_set_digest:{$ref:"#/$defs/ManifestDigest"},placement_digest:{$ref:"#/$defs/ManifestDigest"},receipt_digest:{$ref:"#/$defs/ManifestDigest"},run_id:{$ref:"#/$defs/RunId"},step_id:{$ref:"#/$defs/WorkflowStepId"}},required:["run_id","step_id","placement_digest","outcome","effect_digest","output_set_digest","receipt_digest"],type:"object"},WorkflowStepId:SG,WorkflowStepOutput:{additionalProperties:!1,properties:{artifacts:{items:{$ref:"#/$defs/WorkflowOutputArtifact"},type:"array"},output_name:{$ref:"#/$defs/WorkflowOutputName"}},required:["output_name","artifacts"],type:"object"},WorkflowStepRunProjection:{additionalProperties:!1,properties:{effect_receipt:{anyOf:[{$ref:"#/$defs/WorkflowStepEffectReceipt"},{type:"null"}]},outputs:{additionalProperties:{$ref:"#/$defs/WorkflowStepOutput"},type:"object"},placement_receipt:{anyOf:[{$ref:"#/$defs/WorkflowPlacementReceipt"},{type:"null"}]},status:{$ref:"#/$defs/WorkflowStepStatus"}},required:["status","outputs"],type:"object"},WorkflowStepStatus:{enum:["blocked","ready","running","succeeded","failed","cancelled"],type:"string"},WorktreeCleanlinessRequirementV1:SK,WorktreeId:SJ,WorktreePlacementModeV1:SX,WorktreeRetentionPolicyV1:SY,WorktreeRootPolicyV1:S1},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{definition:{$ref:"#/$defs/WorkflowDefinition"},fan_out_plans:{additionalProperties:{$ref:"#/$defs/WorkflowFanOutPlanV1"},type:"object"},history:{items:{$ref:"#/$defs/WorkflowRunEvent"},type:"array"},pinned_provider_registry_digest:{$ref:"#/$defs/ManifestDigest"},pinned_topology_digest:{$ref:"#/$defs/ManifestDigest"},released_fan_out_attempts:{items:{$ref:"#/$defs/WorkAttemptIdentityV1"},type:"array",uniqueItems:!0},run_id:{$ref:"#/$defs/RunId"},sequence:{format:"uint64",minimum:0,type:"integer"},settled_fan_out_attempts:{items:{$ref:"#/$defs/WorkAttemptIdentityV1"},type:"array",uniqueItems:!0},status:{$ref:"#/$defs/WorkflowRunStatus"},steps:{additionalProperties:{$ref:"#/$defs/WorkflowStepRunProjection"},type:"object"}},required:["run_id","definition","pinned_topology_digest","pinned_provider_registry_digest","status","sequence","steps","fan_out_plans","released_fan_out_attempts","settled_fan_out_attempts","history"],title:"WorkflowRunProjection",type:"object"},{$defs:{WorkflowDefinitionId:Sz},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"Wire request for [`WorkflowDefinitionService::history`].",properties:{definition_id:{$ref:"#/$defs/WorkflowDefinitionId"}},required:["definition_id"],title:"WorkflowDefinitionHistoryRequest",type:"object"},{$defs:{ManifestDigest:_p,ProjectId:_6,WorkflowDefinition:SN,WorkflowDefinitionId:Sz,WorkflowFanOut:SD,WorkflowOperationRef:SF,WorkflowOutputName:SL,WorkflowOutputReference:SU,WorkflowStep:SH,WorkflowStepId:SG},$schema:"https://json-schema.org/draft/2020-12/schema",items:{$ref:"#/$defs/WorkflowDefinition"},title:"Array_of_WorkflowDefinition",type:"array"},{$defs:{WorkflowDefinitionId:Sz},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"Wire request for [`WorkflowDefinitionService::diff`].",properties:{definition_id:{$ref:"#/$defs/WorkflowDefinitionId"},from_version:{format:"uint64",minimum:1,type:"integer"},to_version:{format:"uint64",minimum:1,type:"integer"}},required:["definition_id","from_version","to_version"],title:"WorkflowDefinitionDiffRequest",type:"object"},{$defs:{WorkflowDefinitionId:Sz,WorkflowStepId:SG},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{catalog_changed:{type:"boolean"},changed_steps:{items:{$ref:"#/$defs/WorkflowStepId"},type:"array",uniqueItems:!0},configuration_changed:{type:"boolean"},definition_id:{$ref:"#/$defs/WorkflowDefinitionId"},from_version:{format:"uint64",minimum:0,type:"integer"},policy_changed:{type:"boolean"},to_version:{format:"uint64",minimum:0,type:"integer"}},required:["definition_id","from_version","to_version","changed_steps","policy_changed","configuration_changed","catalog_changed"],title:"WorkflowDefinitionDiff",type:"object"},{$defs:{WorkflowDefinitionId:Sz},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"Wire request for [`WorkflowDefinitionService::get`].",properties:{definition_id:{$ref:"#/$defs/WorkflowDefinitionId"},definition_version:{format:"uint64",minimum:1,type:"integer"}},required:["definition_id","definition_version"],title:"WorkflowDefinitionGetRequest",type:"object"},{$defs:{ManifestDigest:_p,ProjectId:_6,WorkflowDefinitionId:Sz,WorkflowFanOut:SD,WorkflowOperationRef:SF,WorkflowOutputName:SL,WorkflowOutputReference:SU,WorkflowStep:SH,WorkflowStepId:SG},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{definition_id:{$ref:"#/$defs/WorkflowDefinitionId"},definition_version:{format:"uint64",minimum:0,type:"integer"},pinned_catalog_digest:{$ref:"#/$defs/ManifestDigest",description:"Must equal the live Work executable catalog digest. Validation and\nactivation report the current digest when this pin is stale."},pinned_configuration_digest:{$ref:"#/$defs/ManifestDigest"},pinned_policy_digest:{$ref:"#/$defs/ManifestDigest"},project_id:{$ref:"#/$defs/ProjectId"},steps:{items:{$ref:"#/$defs/WorkflowStep"},type:"array"}},required:["definition_id","definition_version","project_id","steps","pinned_policy_digest","pinned_configuration_digest","pinned_catalog_digest"],title:"WorkflowDefinition",type:"object"},{$defs:{RunId:vL},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{run_id:{$ref:"#/$defs/RunId"}},required:["run_id"],title:"WorkflowRunGetRequest",type:"object"},{$defs:{ActorId:f$,AttemptId:fM,ManifestDigest:_p,ProjectId:_6,RepositoryId:v$,RunId:vL,TaskHandoffScope:bO,TaskId:bE,ThreadId:bF,UtcMicros:bX,WorkAttemptIdentityV1:b9,WorkAttemptStateV1:$i,WorkHandoffAttemptFrontierV1:$O,WorkHandoffFrontierV1:$E,WorkHandoffLineageV1:$A,WorkflowDefinitionId:Sz,WorkflowStepId:SG,WorktreeId:SJ},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"Wire request for [`TaskHandoffService::issue`].\n\n`secret` is the caller-supplied bearer token; the authority persists only\nits digest, never the secret itself. The scope must name a step the\nActive definition version declares and a run admitted from that version;\nany other scope is refused as not found and journals no grant.",properties:{frontier:{$ref:"#/$defs/WorkHandoffFrontierV1",description:"The exact work/evidence frontier this handoff records (Plan 24)."},scope:{$ref:"#/$defs/TaskHandoffScope"},secret:{type:"string"}},required:["scope","secret","frontier"],title:"TaskHandoffIssueRequest",type:"object"},{$defs:{ActorId:f$,AttemptId:fM,ManifestDigest:_p,ProjectId:_6,RepositoryId:v$,RunId:vL,TaskHandoffScope:bO,TaskId:bE,ThreadId:bF,UtcMicros:bX,WorkAttemptIdentityV1:b9,WorkAttemptStateV1:$i,WorkHandoffAttemptFrontierV1:$O,WorkHandoffFrontierV1:$E,WorkHandoffLineageV1:$A,WorkflowDefinitionId:Sz,WorkflowStepId:SG,WorktreeId:SJ},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{expires_at:{$ref:"#/$defs/UtcMicros"},frontier:{$ref:"#/$defs/WorkHandoffFrontierV1",description:"The exact work/evidence frontier this handoff records (Plan 24)."},frontier_digest:{$ref:"#/$defs/ManifestDigest",description:"The canonical digest of `frontier`; lineage chains hold this value."},issued_at:{$ref:"#/$defs/UtcMicros"},scope:{$ref:"#/$defs/TaskHandoffScope"},token_digest:{$ref:"#/$defs/ManifestDigest"}},required:["scope","token_digest","issued_at","expires_at","frontier","frontier_digest"],title:"TaskHandoffGrant",type:"object"},{$defs:{ActorId:f$,ProjectId:_6,RepositoryId:v$,RunId:vL,TaskHandoffScope:bO,TaskId:bE,ThreadId:bF,WorkflowDefinitionId:Sz,WorkflowStepId:SG,WorktreeId:SJ},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"Wire request for [`TaskHandoffService::redeem`].",properties:{expected_scope:{$ref:"#/$defs/TaskHandoffScope"},secret:{type:"string"}},required:["secret","expected_scope"],title:"TaskHandoffRedeemRequest",type:"object"},{$defs:{ActorId:f$,AttemptId:fM,ManifestDigest:_p,ProjectId:_6,RepositoryId:v$,RunId:vL,TaskHandoffScope:bO,TaskId:bE,ThreadId:bF,UtcMicros:bX,WorkAttemptIdentityV1:b9,WorkAttemptStateV1:$i,WorkHandoffAttemptFrontierV1:$O,WorkHandoffFrontierV1:$E,WorkHandoffLineageV1:$A,WorkflowDefinitionId:Sz,WorkflowStepId:SG,WorktreeId:SJ},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"Wire response for [`TaskHandoffService::redeem`]: the redemption receipt,\nonce and only once, for the caller that actually consumed the grant.\n\nThe receipt is checkpoint evidence only. It deliberately carries no\nlease, fence, or acceptance authority: redeeming a handoff cannot renew\na lease, establish task acceptance, or mutate graph or runtime state\n(Plan 24). The redeemer must earn runtime authority through the normal\nadmission and lease paths.",properties:{frontier:{$ref:"#/$defs/WorkHandoffFrontierV1",description:"The frontier exactly as the issuer recorded it."},frontier_digest:{$ref:"#/$defs/ManifestDigest",description:"The canonical digest of `frontier`, for lineage chaining."},redeemed_at:{$ref:"#/$defs/UtcMicros"},scope:{$ref:"#/$defs/TaskHandoffScope"}},required:["scope","frontier","frontier_digest","redeemed_at"],title:"TaskHandoffRedeemed",type:"object"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"Wire request for [`WorkflowDefinitionService::list`].",title:"WorkflowDefinitionListRequest",type:"object"},{$defs:{RunId:vL,WorkCommandId:$m},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{command_id:{$ref:"#/$defs/WorkCommandId"},expected_sequence:{format:"uint64",minimum:0,type:"integer"},run_id:{$ref:"#/$defs/RunId"}},required:["run_id","expected_sequence","command_id"],title:"WorkflowRunPauseRequest",type:"object"},{$defs:{ManifestDigest:_p,ProjectId:_6,WorkflowDefinition:SN,WorkflowDefinitionId:Sz,WorkflowFanOut:SD,WorkflowOperationRef:SF,WorkflowOutputName:SL,WorkflowOutputReference:SU,WorkflowStep:SH,WorkflowStepId:SG},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"Wire request for [`WorkflowDefinitionService::register`].",properties:{definition:{$ref:"#/$defs/WorkflowDefinition"}},required:["definition"],title:"WorkflowDefinitionRegisterRequest",type:"object"},{$defs:{WorkflowDefinitionId:Sz},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"Wire request for [`WorkflowDefinitionService::reject`].",properties:{definition_id:{$ref:"#/$defs/WorkflowDefinitionId"},definition_version:{format:"uint64",minimum:1,type:"integer"},expected_revision:{format:"uint64",minimum:1,type:"integer"}},required:["definition_id","definition_version","expected_revision"],title:"WorkflowDefinitionRejectRequest",type:"object"},{$defs:{RunId:vL,WorkCommandId:$m},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{command_id:{$ref:"#/$defs/WorkCommandId"},expected_sequence:{format:"uint64",minimum:0,type:"integer"},run_id:{$ref:"#/$defs/RunId"}},required:["run_id","expected_sequence","command_id"],title:"WorkflowRunResumeRequest",type:"object"},{$defs:{WorkflowDefinitionId:Sz},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"Wire request for [`WorkflowDefinitionService::retire`].",properties:{definition_id:{$ref:"#/$defs/WorkflowDefinitionId"},definition_version:{format:"uint64",minimum:1,type:"integer"},expected_revision:{format:"uint64",minimum:1,type:"integer"}},required:["definition_id","definition_version","expected_revision"],title:"WorkflowDefinitionRetireRequest",type:"object"},{$defs:{ActorId:f$,AttemptId:fM,AutomaticWorktreeGcV1:fL,BranchCollisionPolicyV1:f2,BranchNameComponentV1:f4,BranchNameSeparatorV1:f6,BranchNamingPolicyV1:f3,BranchTopologyKindV1:hr,BranchTopologyPolicyV1:hi,CanonicalGitRefNameV1:hc,CanonicalGitRefPrefix:hl,CapabilityId:hp,CommitId:hI,ConfigurationRevisionId:hN,ConfigurationSnapshotId:hz,CredentialReferenceId:yy,CrossMergeModeV1:yg,CrossMergePolicyV1:y_,GitHubStackedPullRequestPolicyV1:gP,HistoryRewritePolicyV1:gL,LocatorDigest:_i,ManifestDigest:_p,ProposalId:_7,ProtectedRefDispositionV1:ve,ProtectedRefRuleV1:vt,ProtectedRefSelectorV1:vr,ProviderId:vn,RefId:vf,RepositoryId:v$,RepositoryPlacementScopeV1:vS,RequiredCheckExpectationV1:vk,RequiredCheckV1:vw,ReviewRequirementV1:vA,ReviewTopologyKindV1:vW,ReviewTopologyPolicyV1:vM,RunId:vL,SensitiveFilesystemLocatorV1:v3,TaskId:bE,TopologyConcurrencyPolicyV1:bH,TopologyEscalationPolicyV1:bG,TopologyGatePolicyV1:bB,TopologyNotificationLevelV1:bK,UtcMicros:bX,WorkAcceptanceCriterionV1:b0,WorkApprovalPolicy:b2,WorkAttemptIdentityV1:b9,WorkCommandId:$m,WorkEffectStateV1:$g,WorkEgressPolicy:$v,WorkExecutableReference:$w,WorkExecutionLimits:$V,WorkExecutionSnapshot:$R,WorkFallbackTopology:$x,WorkFenceEpochV1:$j,WorkFilesystemPolicy:$C,WorkHandoffV1:$W,WorkHierarchyV1:$M,WorkInitiativeV1:$N,WorkItemInputV1:$z,WorkItemV1:$D,WorkLeaseFenceV1:$L,WorkLeaseId:$U,WorkMilestoneV1:$H,WorkPlanV1:$Y,WorkProposalV1:So,WorkProposedChildV1:Sn,WorkProviderBackendV1:Ss,WorkProviderProtocol:Sc,WorkProviderRouteId:Sl,WorkProviderRouteV1:Sp,WorkRouteDecisionV1:Sb,WorkSandboxPolicy:SV,WorkScoreKindV1:SR,WorkShapeAssessmentV1:Sq,WorkSizingV1:SI,WorkTopologyPolicyV1:SM,WorkflowDefinitionId:Sz,WorkflowExecutionFence:{additionalProperties:!1,properties:{attempt_id:{$ref:"#/$defs/AttemptId"},lease:{$ref:"#/$defs/WorkLeaseFenceV1"}},required:["attempt_id","lease"],type:"object"},WorkflowFailurePolicy:{oneOf:[{properties:{policy:{const:"fail_fast",type:"string"}},required:["policy"],type:"object"},{properties:{policy:{const:"collect",type:"string"}},required:["policy"],type:"object"},{properties:{policy:{const:"require_at_least",type:"string"},successes:{format:"uint32",minimum:1,type:"integer"}},required:["policy","successes"],type:"object"}]},WorkflowFanOutInput:{additionalProperties:!1,properties:{initiative:{$ref:"#/$defs/WorkInitiativeV1"},input_digest:{$ref:"#/$defs/ManifestDigest"},instructions:{type:"string"},item:{$ref:"#/$defs/WorkItemV1"},milestone:{$ref:"#/$defs/WorkMilestoneV1"},plan:{$ref:"#/$defs/WorkPlanV1"},proposal:{$ref:"#/$defs/WorkProposalV1"}},required:["instructions","input_digest","initiative","plan","milestone","item","proposal"],type:"object"},WorkflowFanOutStartV1:{additionalProperties:!1,description:"Caller input required to durably plan the entry fan-out of a workflow run.\nDaemon-owned registration and topology digests are resolved at admission.",properties:{commit:{$ref:"#/$defs/CommitId"},effect_state:{$ref:"#/$defs/WorkEffectStateV1"},execution_snapshot:{$ref:"#/$defs/WorkExecutionSnapshot"},failure_policy:{$ref:"#/$defs/WorkflowFailurePolicy"},fence:{$ref:"#/$defs/WorkflowExecutionFence"},inputs:{items:{$ref:"#/$defs/WorkflowFanOutInput"},type:"array"},max_parallel:{format:"uint32",minimum:1,type:"integer"},reference:{anyOf:[{$ref:"#/$defs/RefId"},{type:"null"}]}},required:["fence","max_parallel","failure_policy","execution_snapshot","commit","effect_state","inputs"],type:"object"},WorkflowProviderRegistration:{additionalProperties:!1,properties:{backend:{$ref:"#/$defs/WorkProviderBackendV1"},model:{type:"string"},priority:{format:"uint32",minimum:0,type:"integer"},route:{$ref:"#/$defs/WorkProviderRouteV1"}},required:["route","backend","model","priority"],type:"object"},WorktreeCleanlinessRequirementV1:SK,WorktreePlacementModeV1:SX,WorktreeRetentionPolicyV1:SY,WorktreeRootPolicyV1:S1},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"Starts (admits) a journaled workflow run from an active definition.\n\nThe daemon derives every admission digest itself: the definition's own\npinned policy/configuration/catalog digests are checked against the live\nenvironment, the topology digest comes from the evaluated topology policy,\nand the provider registry digest is computed from this registration. The\ncaller never supplies a digest the runtime must trust.",properties:{command_id:{$ref:"#/$defs/WorkCommandId"},definition_id:{$ref:"#/$defs/WorkflowDefinitionId"},definition_version:{format:"uint64",minimum:1,type:"integer"},fan_out:{anyOf:[{$ref:"#/$defs/WorkflowFanOutStartV1"},{type:"null"}]},provider:{$ref:"#/$defs/WorkflowProviderRegistration"},run_id:{$ref:"#/$defs/RunId"}},required:["run_id","definition_id","definition_version","provider","command_id"],title:"WorkflowRunStartRequest",type:"object"},{$defs:{ManifestDigest:_p,ProjectId:_6,WorkflowDefinition:SN,WorkflowDefinitionId:Sz,WorkflowFanOut:SD,WorkflowOperationRef:SF,WorkflowOutputName:SL,WorkflowOutputReference:SU,WorkflowStep:SH,WorkflowStepId:SG},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"Wire request for [`WorkflowDefinitionService::validate`].",properties:{definition:{$ref:"#/$defs/WorkflowDefinition"}},required:["definition"],title:"WorkflowDefinitionValidateRequest",type:"object"},{$defs:{ManifestDigest:_p,ProjectId:_6,WorkflowDefinition:SN,WorkflowDefinitionId:Sz,WorkflowFanOut:SD,WorkflowOperationRef:SF,WorkflowOutputName:SL,WorkflowOutputReference:SU,WorkflowStep:SH,WorkflowStepId:SG},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{definition:{$ref:"#/$defs/WorkflowDefinition"}},required:["definition"],title:"WorkflowDefinitionValidation",type:"object"}].map(e=>t=>(!function e(t,r,i,o,n){var a;if("boolean"==typeof r){if(!r)throw TypeError(`${o} is rejected by the canonical schema`);return}let s=fr(r,o);if("string"==typeof s.$ref){if(n.has(s.$ref))throw TypeError(`cyclic canonical schema reference: ${s.$ref}`);n.add(s.$ref),e(t,function(e,t){if(!t.startsWith("#/"))throw TypeError(`unsupported canonical schema reference: ${t}`);let r=e;for(let e of t.slice(2).split("/")){let i=e.replaceAll("~1","/").replaceAll("~0","~");r=fr(r,t)[i]}return fr(r,t)}(i,s.$ref),i,o,n),n.delete(s.$ref);return}if("const"in s&&(a=s.const,ft(t)!==ft(a)))throw TypeError(`${o} does not match the canonical constant`);if(Array.isArray(s.enum)&&!s.enum.some(e=>ft(t)===ft(e)))throw TypeError(`${o} is not a canonical enum value`);if(Array.isArray(s.allOf))for(let r of s.allOf)e(t,r,i,o,new Set(n));if(Array.isArray(s.anyOf)&&!s.anyOf.some(r=>{try{return e(t,r,i,o,new Set(n)),!0}catch{return!1}}))throw TypeError(`${o} does not match any canonical variant`);if(Array.isArray(s.oneOf)&&1!==s.oneOf.filter(r=>{try{return e(t,r,i,o,new Set(n)),!0}catch{return!1}}).length)throw TypeError(`${o} must match exactly one canonical variant`);let d=s.type;if("string"==typeof d&&!fi(t,d))throw TypeError(`${o} must be ${d}`);if(Array.isArray(d)&&!d.some(e=>"string"==typeof e&&fi(t,e)))throw TypeError(`${o} has no canonical type`);if("string"==typeof t){if("number"==typeof s.minLength&&t.lengths.maxLength)throw TypeError(`${o} exceeds maxLength`);if("string"==typeof s.pattern&&!RegExp(s.pattern,"u").test(t))throw TypeError(`${o} does not match the canonical pattern`)}if("number"==typeof t){if("integer"===s.type){if("uint32"===s.format&&(t<0||t>0xffffffff))throw TypeError(`${o} is outside uint32`);if("uint64"===s.format&&(t<0||t>Number.MAX_SAFE_INTEGER))throw TypeError(`${o} is outside safely representable uint64`);if("int64"===s.format&&(tNumber.MAX_SAFE_INTEGER))throw TypeError(`${o} is outside safely representable int64`)}if("number"==typeof s.minimum&&ts.maximum)throw TypeError(`${o} exceeds maximum`)}if(Array.isArray(t)){if("number"==typeof s.minItems&&t.lengths.maxItems)throw TypeError(`${o} has too many items`);if(!0===s.uniqueItems){let e=new Set;for(let r of t){let t=ft(r);if(e.has(t))throw TypeError(`${o} contains duplicate items`);e.add(t)}}Array.isArray(s.prefixItems)&&s.prefixItems.forEach((r,n)=>{ne(t,s.items,i,`${o}[${r}]`,new Set))}if("object"==typeof t&&null!==t&&!Array.isArray(t)){let r=void 0===s.properties?{}:fr(s.properties,`${o}.properties`);if(Array.isArray(s.required)){for(let e of s.required)if("string"==typeof e&&!(e in t))throw TypeError(`${o}.${e} is required`)}for(let[n,a]of Object.entries(t))if(n in r)e(a,r[n],i,`${o}.${n}`,new Set);else if(!1===s.additionalProperties)throw TypeError(`${o}.${n} is not allowed`);else"object"==typeof s.additionalProperties&&e(a,s.additionalProperties,i,`${o}.${n}`,new Set)}}(t,e,e,"value",new Set),t));function S2(e){let t=S0[e];if(void 0===t)throw TypeError(`generated canonical schema ${e} is missing`);return t}let S4=[{operation:"active_project",operationId:"operation.application.active_project",transport:{kind:"mcp_tool",toolName:"tracedecay_active_project"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.active_project.v1",requestSchema:{schemaId:"schema.application.primitive.active-project.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.active-project.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:12e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(0),decodeResult:S2(1)},{operation:"admin_cli",operationId:"operation.application.admin_cli",transport:{kind:"mcp_tool",toolName:"tracedecay_admin_cli"},effect:"maintains_profile_state",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.admin_cli.v1",requestSchema:{schemaId:"schema.application.primitive.admin-cli.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.admin-cli.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","effect_in_flight"]},deadline:{behavior:"return_operation_receipt",maximum_millis:6e5},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(2),decodeResult:S2(3)},{operation:"admin_project",operationId:"operation.application.admin_project",transport:{kind:"mcp_tool",toolName:"tracedecay_admin_project"},effect:"maintains_owner_state",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.admin_project.v1",requestSchema:{schemaId:"schema.application.primitive.admin-project.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.admin-project.result",revision:1},cancellation:{mode:"not_cancellable"},deadline:{behavior:"return_operation_receipt",maximum_millis:6e5},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","timed_out","failed","unavailable","partial"],decodeRequest:S2(4),decodeResult:S2(5)},{operation:"admin_sync",operationId:"operation.application.admin_sync",transport:{kind:"mcp_tool",toolName:"tracedecay_admin_sync"},effect:"schedules_work",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.admin_sync.v1",requestSchema:{schemaId:"schema.application.primitive.admin-sync.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.admin-sync.result",revision:1},cancellation:{mode:"not_cancellable"},deadline:{behavior:"return_operation_receipt",maximum_millis:6e5},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","timed_out","failed","unavailable","partial"],decodeRequest:S2(6),decodeResult:S2(7)},{operation:"affected",operationId:"operation.application.affected",transport:{kind:"mcp_tool",toolName:"tracedecay_affected"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.affected.v1",requestSchema:{schemaId:"schema.application.primitive.affected.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.affected.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:12e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(8),decodeResult:S2(9)},{operation:"application_affected_tests",operationId:"operation.application.affected_tests",transport:{kind:"http",route:"/application/tests/affected",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.affected_tests.v1",requestSchema:{schemaId:"schema.application.feedback.affected-tests.request",revision:1},resultSchema:{schemaId:"schema.application.feedback.affected-tests.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:15e3},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(10),decodeResult:S2(11),decodeSuccess:e=>fu(e,"binding.http.affected_tests.v1","schema.application.feedback.affected-tests.result",1,["completed","cancelled","timed_out","failed","unavailable","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(11))},{operation:"analytics",operationId:"operation.application.analytics",transport:{kind:"mcp_tool",toolName:"tracedecay_analytics"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.analytics.v1",requestSchema:{schemaId:"schema.application.primitive.analytics.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.analytics.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:12e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(12),decodeResult:S2(13)},{operation:"apply_native_integration",operationId:"operation.application.apply_native_integration",transport:{kind:"mcp_tool",toolName:"tracedecay_apply_native_integration"},effect:"administrative",idempotency:"required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.apply_native_integration.v1",requestSchema:{schemaId:"schema.application.native-integration.apply.request",revision:1},resultSchema:{schemaId:"schema.application.native-integration.apply.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_effect","effect_in_flight","after_commit"]},deadline:{behavior:"return_effect_receipt",maximum_millis:3e4},reconciliation:"required",receipt:"durable_effect",terminalStates:["completed","cancelled","timed_out","failed","effect_unknown","partial"],decodeRequest:S2(14),decodeResult:S2(15)},{operation:"approve_native_integration",operationId:"operation.application.approve_native_integration",transport:{kind:"mcp_tool",toolName:"tracedecay_approve_native_integration"},effect:"administrative",idempotency:"required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.approve_native_integration.v1",requestSchema:{schemaId:"schema.application.native-integration.approve.request",revision:1},resultSchema:{schemaId:"schema.application.native-integration.approve.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_effect","effect_in_flight","after_commit"]},deadline:{behavior:"return_effect_receipt",maximum_millis:3e4},reconciliation:"required",receipt:"durable_effect",terminalStates:["completed","cancelled","timed_out","failed","effect_unknown","partial"],decodeRequest:S2(16),decodeResult:S2(15)},{operation:"ast_grep_rewrite",operationId:"operation.application.ast_grep_rewrite",transport:{kind:"mcp_tool",toolName:"tracedecay_ast_grep_rewrite"},effect:"source_edit",idempotency:"required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.ast_grep_rewrite.v1",requestSchema:{schemaId:"schema.application.source-edit.ast-grep-rewrite.request",revision:1},resultSchema:{schemaId:"schema.application.source-edit.ast-grep-rewrite.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_effect","effect_in_flight","after_commit"]},deadline:{behavior:"return_effect_receipt",maximum_millis:3e4},reconciliation:"required",receipt:"durable_effect",terminalStates:["completed","cancelled","timed_out","failed","effect_unknown","partial"],decodeRequest:S2(17),decodeResult:S2(18)},{operation:"ast_grep_search",operationId:"operation.application.ast_grep_search",transport:{kind:"mcp_tool",toolName:"tracedecay_ast_grep_search"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.ast_grep_search.v1",requestSchema:{schemaId:"schema.application.primitive.ast-grep-search.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.ast-grep-search.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:12e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(19),decodeResult:S2(20)},{operation:"automation_run_artifact_view",operationId:"operation.application.automation_run_artifact_view",transport:{kind:"mcp_tool",toolName:"tracedecay_automation_run_artifact_view"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.automation_run_artifact_view.v1",requestSchema:{schemaId:"schema.application.primitive.automation-run-artifact-view.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.automation-run-artifact-view.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:12e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(21),decodeResult:S2(22)},{operation:"automation_run_list",operationId:"operation.application.automation_run_list",transport:{kind:"mcp_tool",toolName:"tracedecay_automation_run_list"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.automation_run_list.v1",requestSchema:{schemaId:"schema.application.primitive.automation-run-list.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.automation-run-list.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:12e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(23),decodeResult:S2(24)},{operation:"automation_run_view",operationId:"operation.application.automation_run_view",transport:{kind:"mcp_tool",toolName:"tracedecay_automation_run_view"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.automation_run_view.v1",requestSchema:{schemaId:"schema.application.primitive.automation-run-view.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.automation-run-view.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:12e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(25),decodeResult:S2(26)},{operation:"branch_diff",operationId:"operation.application.branch_diff",transport:{kind:"mcp_tool",toolName:"tracedecay_branch_diff"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.branch_diff.v1",requestSchema:{schemaId:"schema.application.primitive.branch-diff.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.branch-diff.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:12e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(27),decodeResult:S2(28)},{operation:"branch_list",operationId:"operation.application.branch_list",transport:{kind:"mcp_tool",toolName:"tracedecay_branch_list"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.branch_list.v1",requestSchema:{schemaId:"schema.application.primitive.branch-list.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.branch-list.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:12e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(29),decodeResult:S2(30)},{operation:"branch_search",operationId:"operation.application.branch_search",transport:{kind:"mcp_tool",toolName:"tracedecay_branch_search"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.branch_search.v1",requestSchema:{schemaId:"schema.application.primitive.branch-search.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.branch-search.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:12e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(31),decodeResult:S2(32)},{operation:"by_qualified_name",operationId:"operation.application.by_qualified_name",transport:{kind:"mcp_tool",toolName:"tracedecay_by_qualified_name"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.by_qualified_name.v1",requestSchema:{schemaId:"schema.application.primitive.by-qualified-name.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.by-qualified-name.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:12e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(33),decodeResult:S2(34)},{operation:"application_call_chain",operationId:"operation.application.call_chain",transport:{kind:"http",route:"/application/primitives/call_chain",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.call_chain.v1",requestSchema:{schemaId:"schema.application.primitive.call-chain.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.call-chain.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:1e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(35),decodeResult:S2(36),decodeSuccess:e=>fu(e,"binding.http.call_chain.v1","schema.application.primitive.call-chain.result",1,["completed","cancelled","timed_out","failed","unavailable","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(36))},{operation:"cancel_native_integration",operationId:"operation.application.cancel_native_integration",transport:{kind:"mcp_tool",toolName:"tracedecay_cancel_native_integration"},effect:"administrative",idempotency:"required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.cancel_native_integration.v1",requestSchema:{schemaId:"schema.application.native-integration.cancel.request",revision:1},resultSchema:{schemaId:"schema.application.native-integration.cancel.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_effect","effect_in_flight","after_commit"]},deadline:{behavior:"return_effect_receipt",maximum_millis:3e4},reconciliation:"required",receipt:"durable_effect",terminalStates:["completed","cancelled","timed_out","failed","effect_unknown","partial"],decodeRequest:S2(37),decodeResult:S2(15)},{operation:"changelog",operationId:"operation.application.changelog",transport:{kind:"mcp_tool",toolName:"tracedecay_changelog"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.changelog.v1",requestSchema:{schemaId:"schema.application.primitive.changelog.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.changelog.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:12e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(38),decodeResult:S2(39)},{operation:"circular",operationId:"operation.application.circular",transport:{kind:"mcp_tool",toolName:"tracedecay_circular"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.circular.v1",requestSchema:{schemaId:"schema.application.primitive.circular.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.circular.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:12e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(40),decodeResult:S2(41)},{operation:"code_callees",operationId:"operation.application.code_callees",transport:{kind:"http",route:"/application/code/code_callees",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.code_callees.v1",requestSchema:{schemaId:"schema.application.code-query.callees.request",revision:1},resultSchema:{schemaId:"schema.application.code-query.callees.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:1e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(42),decodeResult:S2(43),decodeSuccess:e=>fu(e,"binding.http.code_callees.v1","schema.application.code-query.callees.result",1,["completed","cancelled","timed_out","failed","unavailable","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(43))},{operation:"code_callers",operationId:"operation.application.code_callers",transport:{kind:"http",route:"/application/code/code_callers",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.code_callers.v1",requestSchema:{schemaId:"schema.application.primitive.code-callers.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.code-callers.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:1e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(44),decodeResult:S2(45),decodeSuccess:e=>fu(e,"binding.http.code_callers.v1","schema.application.primitive.code-callers.result",1,["completed","cancelled","timed_out","failed","unavailable","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(45))},{operation:"code_declaration",operationId:"operation.application.code_declaration",transport:{kind:"http",route:"/application/code/code_declaration",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.code_declaration.v1",requestSchema:{schemaId:"schema.application.code-query.declaration.request",revision:1},resultSchema:{schemaId:"schema.application.code-query.declaration.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:1e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(46),decodeResult:S2(47),decodeSuccess:e=>fu(e,"binding.http.code_declaration.v1","schema.application.code-query.declaration.result",1,["completed","cancelled","timed_out","failed","unavailable","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(47))},{operation:"code_exact_occurrence",operationId:"operation.application.code_exact_occurrence",transport:{kind:"http",route:"/application/code/code_exact_occurrence",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.code_exact_occurrence.v1",requestSchema:{schemaId:"schema.application.code-query.exact-occurrence.request",revision:1},resultSchema:{schemaId:"schema.application.code-query.exact-occurrence.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:1e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(48),decodeResult:S2(49),decodeSuccess:e=>fu(e,"binding.http.code_exact_occurrence.v1","schema.application.code-query.exact-occurrence.result",1,["completed","cancelled","timed_out","failed","unavailable","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(49))},{operation:"code_facets",operationId:"operation.application.code_facets",transport:{kind:"http",route:"/application/code/code_facets",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.code_facets.v1",requestSchema:{schemaId:"schema.application.code-query.facets.request",revision:1},resultSchema:{schemaId:"schema.application.code-query.facets.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:1e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(50),decodeResult:S2(51),decodeSuccess:e=>fu(e,"binding.http.code_facets.v1","schema.application.code-query.facets.result",1,["completed","cancelled","timed_out","failed","unavailable","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(51))},{operation:"code_implementations",operationId:"operation.application.code_implementations",transport:{kind:"http",route:"/application/code/code_implementations",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.code_implementations.v1",requestSchema:{schemaId:"schema.application.primitive.code-implementations.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.code-implementations.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:1e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(52),decodeResult:S2(53),decodeSuccess:e=>fu(e,"binding.http.code_implementations.v1","schema.application.primitive.code-implementations.result",1,["completed","cancelled","timed_out","failed","unavailable","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(53))},{operation:"code_phrase_search",operationId:"operation.application.code_phrase_search",transport:{kind:"http",route:"/application/code/code_phrase_search",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.code_phrase_search.v1",requestSchema:{schemaId:"schema.application.code-query.phrase-search.request",revision:1},resultSchema:{schemaId:"schema.application.code-query.phrase-search.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:1e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(54),decodeResult:S2(55),decodeSuccess:e=>fu(e,"binding.http.code_phrase_search.v1","schema.application.code-query.phrase-search.result",1,["completed","cancelled","timed_out","failed","unavailable","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(55))},{operation:"code_references",operationId:"operation.application.code_references",transport:{kind:"http",route:"/application/code/code_references",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.code_references.v1",requestSchema:{schemaId:"schema.application.code-query.references.request",revision:1},resultSchema:{schemaId:"schema.application.code-query.references.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:1e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(46),decodeResult:S2(43),decodeSuccess:e=>fu(e,"binding.http.code_references.v1","schema.application.code-query.references.result",1,["completed","cancelled","timed_out","failed","unavailable","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(43))},{operation:"code_signature_search",operationId:"operation.application.code_signature_search",transport:{kind:"http",route:"/application/code/code_signature_search",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.code_signature_search.v1",requestSchema:{schemaId:"schema.application.primitive.code-signature-search.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.code-signature-search.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:1e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(56),decodeResult:S2(57),decodeSuccess:e=>fu(e,"binding.http.code_signature_search.v1","schema.application.primitive.code-signature-search.result",1,["completed","cancelled","timed_out","failed","unavailable","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(57))},{operation:"code_symbol_search",operationId:"operation.application.code_symbol_search",transport:{kind:"http",route:"/application/code/code_symbol_search",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.code_symbol_search.v1",requestSchema:{schemaId:"schema.application.symbol-search.request",revision:1},resultSchema:{schemaId:"schema.application.symbol-search.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:1e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(58),decodeResult:S2(57),decodeSuccess:e=>fu(e,"binding.http.code_symbol_search.v1","schema.application.symbol-search.result",1,["completed","cancelled","timed_out","failed","unavailable","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(57))},{operation:"code_timeline",operationId:"operation.application.code_timeline",transport:{kind:"http",route:"/application/code/code_timeline",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.code_timeline.v1",requestSchema:{schemaId:"schema.application.code-query.timeline.request",revision:1},resultSchema:{schemaId:"schema.application.code-query.timeline.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:1e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(59),decodeResult:S2(60),decodeSuccess:e=>fu(e,"binding.http.code_timeline.v1","schema.application.code-query.timeline.result",1,["completed","cancelled","timed_out","failed","unavailable","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(60))},{operation:"code_type_definition",operationId:"operation.application.code_type_definition",transport:{kind:"http",route:"/application/code/code_type_definition",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.code_type_definition.v1",requestSchema:{schemaId:"schema.application.code-query.type-definition.request",revision:1},resultSchema:{schemaId:"schema.application.code-query.type-definition.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:1e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(46),decodeResult:S2(47),decodeSuccess:e=>fu(e,"binding.http.code_type_definition.v1","schema.application.code-query.type-definition.result",1,["completed","cancelled","timed_out","failed","unavailable","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(47))},{operation:"code_type_hierarchy",operationId:"operation.application.code_type_hierarchy",transport:{kind:"http",route:"/application/code/code_type_hierarchy",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.code_type_hierarchy.v1",requestSchema:{schemaId:"schema.application.primitive.code-type-hierarchy.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.code-type-hierarchy.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:1e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(61),decodeResult:S2(62),decodeSuccess:e=>fu(e,"binding.http.code_type_hierarchy.v1","schema.application.primitive.code-type-hierarchy.result",1,["completed","cancelled","timed_out","failed","unavailable","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(62))},{operation:"commit_context",operationId:"operation.application.commit_context",transport:{kind:"mcp_tool",toolName:"tracedecay_commit_context"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.commit_context.v1",requestSchema:{schemaId:"schema.application.primitive.commit-context.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.commit-context.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:12e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(63),decodeResult:S2(64)},{operation:"complexity",operationId:"operation.application.complexity",transport:{kind:"mcp_tool",toolName:"tracedecay_complexity"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.complexity.v1",requestSchema:{schemaId:"schema.application.primitive.complexity.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.complexity.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:12e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(65),decodeResult:S2(66)},{operation:"config",operationId:"operation.application.config",transport:{kind:"mcp_tool",toolName:"tracedecay_config"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.config.v1",requestSchema:{schemaId:"schema.application.primitive.config.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.config.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:12e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(67),decodeResult:S2(68)},{operation:"application_configuration_audit",operationId:"operation.application.configuration_audit",transport:{kind:"http",route:"/application/configuration/configuration_audit",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.configuration_audit.v1",requestSchema:{schemaId:"schema.application.configuration.configuration_audit.request",revision:1},resultSchema:{schemaId:"schema.application.configuration.configuration_audit.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:15e3},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","partial"],decodeRequest:S2(69),decodeResult:S2(70),decodeSuccess:e=>fu(e,"binding.http.configuration_audit.v1","schema.application.configuration.configuration_audit.result",1,["completed","cancelled","timed_out","failed","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(70))},{operation:"application_configuration_batch",operationId:"operation.application.configuration_batch",transport:{kind:"http",route:"/application/configuration/configuration_batch",method:"POST"},effect:"configuration_write",idempotency:"required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.configuration_batch.v1",requestSchema:{schemaId:"schema.application.configuration.configuration_batch.request",revision:1},resultSchema:{schemaId:"schema.application.configuration.configuration_batch.result",revision:1},cancellation:{mode:"not_cancellable"},deadline:{behavior:"return_effect_receipt",maximum_millis:15e3},reconciliation:"required",receipt:"durable_effect",terminalStates:["completed","timed_out","failed","effect_unknown","partial"],decodeRequest:S2(71),decodeResult:S2(72),decodeSuccess:e=>fu(e,"binding.http.configuration_batch.v1","schema.application.configuration.configuration_batch.result",1,["completed","timed_out","failed","effect_unknown","partial"],{mode:"not_cancellable"},"durable_effect","required",S2(72))},{operation:"application_configuration_get",operationId:"operation.application.configuration_get",transport:{kind:"http",route:"/application/configuration/configuration_get",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.configuration_get.v1",requestSchema:{schemaId:"schema.application.configuration.configuration_get.request",revision:1},resultSchema:{schemaId:"schema.application.configuration.configuration_get.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:15e3},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","partial"],decodeRequest:S2(73),decodeResult:S2(74),decodeSuccess:e=>fu(e,"binding.http.configuration_get.v1","schema.application.configuration.configuration_get.result",1,["completed","cancelled","timed_out","failed","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(74))},{operation:"application_configuration_list",operationId:"operation.application.configuration_list",transport:{kind:"http",route:"/application/configuration/configuration_list",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.configuration_list.v1",requestSchema:{schemaId:"schema.application.configuration.configuration_list.request",revision:1},resultSchema:{schemaId:"schema.application.configuration.configuration_list.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:15e3},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","partial"],decodeRequest:S2(75),decodeResult:S2(76),decodeSuccess:e=>fu(e,"binding.http.configuration_list.v1","schema.application.configuration.configuration_list.result",1,["completed","cancelled","timed_out","failed","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(76))},{operation:"application_configuration_observed_state",operationId:"operation.application.configuration_observed_state",transport:{kind:"http",route:"/application/configuration/configuration_observed_state",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.configuration_observed_state.v1",requestSchema:{schemaId:"schema.application.configuration.configuration_observed_state.request",revision:1},resultSchema:{schemaId:"schema.application.configuration.configuration_observed_state.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:15e3},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","partial"],decodeRequest:S2(77),decodeResult:S2(78),decodeSuccess:e=>fu(e,"binding.http.configuration_observed_state.v1","schema.application.configuration.configuration_observed_state.result",1,["completed","cancelled","timed_out","failed","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(78))},{operation:"application_configuration_protected_apply",operationId:"operation.application.configuration_protected_apply",transport:{kind:"http",route:"/application/configuration/configuration_protected_apply",method:"POST"},effect:"configuration_write",idempotency:"required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.configuration_protected_apply.v1",requestSchema:{schemaId:"schema.application.configuration.configuration_protected_apply.request",revision:1},resultSchema:{schemaId:"schema.application.configuration.configuration_protected_apply.result",revision:1},cancellation:{mode:"not_cancellable"},deadline:{behavior:"return_effect_receipt",maximum_millis:15e3},reconciliation:"required",receipt:"durable_effect",terminalStates:["completed","timed_out","failed","effect_unknown","partial"],decodeRequest:S2(79),decodeResult:S2(72),decodeSuccess:e=>fu(e,"binding.http.configuration_protected_apply.v1","schema.application.configuration.configuration_protected_apply.result",1,["completed","timed_out","failed","effect_unknown","partial"],{mode:"not_cancellable"},"durable_effect","required",S2(72))},{operation:"application_configuration_protected_preview",operationId:"operation.application.configuration_protected_preview",transport:{kind:"http",route:"/application/configuration/configuration_protected_preview",method:"POST"},effect:"preview",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.configuration_protected_preview.v1",requestSchema:{schemaId:"schema.application.configuration.configuration_protected_preview.request",revision:1},resultSchema:{schemaId:"schema.application.configuration.configuration_protected_preview.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:15e3},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","partial"],decodeRequest:S2(80),decodeResult:S2(81),decodeSuccess:e=>fu(e,"binding.http.configuration_protected_preview.v1","schema.application.configuration.configuration_protected_preview.result",1,["completed","cancelled","timed_out","failed","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(81))},{operation:"application_configuration_rollback_apply",operationId:"operation.application.configuration_rollback_apply",transport:{kind:"http",route:"/application/configuration/configuration_rollback_apply",method:"POST"},effect:"configuration_write",idempotency:"required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.configuration_rollback_apply.v1",requestSchema:{schemaId:"schema.application.configuration.configuration_rollback_apply.request",revision:1},resultSchema:{schemaId:"schema.application.configuration.configuration_rollback_apply.result",revision:1},cancellation:{mode:"not_cancellable"},deadline:{behavior:"return_effect_receipt",maximum_millis:15e3},reconciliation:"required",receipt:"durable_effect",terminalStates:["completed","timed_out","failed","effect_unknown","partial"],decodeRequest:S2(79),decodeResult:S2(72),decodeSuccess:e=>fu(e,"binding.http.configuration_rollback_apply.v1","schema.application.configuration.configuration_rollback_apply.result",1,["completed","timed_out","failed","effect_unknown","partial"],{mode:"not_cancellable"},"durable_effect","required",S2(72))},{operation:"application_configuration_rollback_preview",operationId:"operation.application.configuration_rollback_preview",transport:{kind:"http",route:"/application/configuration/configuration_rollback_preview",method:"POST"},effect:"preview",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.configuration_rollback_preview.v1",requestSchema:{schemaId:"schema.application.configuration.configuration_rollback_preview.request",revision:1},resultSchema:{schemaId:"schema.application.configuration.configuration_rollback_preview.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:15e3},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","partial"],decodeRequest:S2(82),decodeResult:S2(81),decodeSuccess:e=>fu(e,"binding.http.configuration_rollback_preview.v1","schema.application.configuration.configuration_rollback_preview.result",1,["completed","cancelled","timed_out","failed","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(81))},{operation:"application_configuration_set",operationId:"operation.application.configuration_set",transport:{kind:"http",route:"/application/configuration/configuration_set",method:"POST"},effect:"configuration_write",idempotency:"required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.configuration_set.v1",requestSchema:{schemaId:"schema.application.configuration.configuration_set.request",revision:1},resultSchema:{schemaId:"schema.application.configuration.configuration_set.result",revision:1},cancellation:{mode:"not_cancellable"},deadline:{behavior:"return_effect_receipt",maximum_millis:15e3},reconciliation:"required",receipt:"durable_effect",terminalStates:["completed","timed_out","failed","effect_unknown","partial"],decodeRequest:S2(83),decodeResult:S2(72),decodeSuccess:e=>fu(e,"binding.http.configuration_set.v1","schema.application.configuration.configuration_set.result",1,["completed","timed_out","failed","effect_unknown","partial"],{mode:"not_cancellable"},"durable_effect","required",S2(72))},{operation:"application_configuration_unset",operationId:"operation.application.configuration_unset",transport:{kind:"http",route:"/application/configuration/configuration_unset",method:"POST"},effect:"configuration_write",idempotency:"required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.configuration_unset.v1",requestSchema:{schemaId:"schema.application.configuration.configuration_unset.request",revision:1},resultSchema:{schemaId:"schema.application.configuration.configuration_unset.result",revision:1},cancellation:{mode:"not_cancellable"},deadline:{behavior:"return_effect_receipt",maximum_millis:15e3},reconciliation:"required",receipt:"durable_effect",terminalStates:["completed","timed_out","failed","effect_unknown","partial"],decodeRequest:S2(84),decodeResult:S2(72),decodeSuccess:e=>fu(e,"binding.http.configuration_unset.v1","schema.application.configuration.configuration_unset.result",1,["completed","timed_out","failed","effect_unknown","partial"],{mode:"not_cancellable"},"durable_effect","required",S2(72))},{operation:"constructors",operationId:"operation.application.constructors",transport:{kind:"mcp_tool",toolName:"tracedecay_constructors"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.constructors.v1",requestSchema:{schemaId:"schema.application.primitive.constructors.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.constructors.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:12e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(85),decodeResult:S2(86)},{operation:"context",operationId:"operation.application.context",transport:{kind:"mcp_tool",toolName:"tracedecay_context"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.context.v1",requestSchema:{schemaId:"schema.application.primitive.context.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.context.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:1e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(87),decodeResult:S2(88)},{operation:"application_context_scout_budget",operationId:"operation.application.context_scout_budget",transport:{kind:"http",route:"/application/context-scout/context_scout_budget",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.context_scout_budget.v1",requestSchema:{schemaId:"schema.application.context-scout-budget.request",revision:1},resultSchema:{schemaId:"schema.application.context-scout-budget.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:15e3},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","partial"],decodeRequest:S2(89),decodeResult:S2(90),decodeSuccess:e=>fu(e,"binding.http.context_scout_budget.v1","schema.application.context-scout-budget.result",1,["completed","cancelled","timed_out","failed","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(90))},{operation:"application_context_scout_cancel",operationId:"operation.application.context_scout_cancel",transport:{kind:"http",route:"/application/context-scout/context_scout_cancel",method:"POST"},effect:"administrative",idempotency:"required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.context_scout_cancel.v1",requestSchema:{schemaId:"schema.application.context-scout-cancel.request",revision:1},resultSchema:{schemaId:"schema.application.context-scout-cancel.result",revision:1},cancellation:{mode:"not_cancellable"},deadline:{behavior:"return_effect_receipt",maximum_millis:15e3},reconciliation:"required",receipt:"durable_effect",terminalStates:["completed","timed_out","failed","effect_unknown","partial"],decodeRequest:S2(91),decodeResult:S2(92),decodeSuccess:e=>fu(e,"binding.http.context_scout_cancel.v1","schema.application.context-scout-cancel.result",1,["completed","timed_out","failed","effect_unknown","partial"],{mode:"not_cancellable"},"durable_effect","required",S2(92))},{operation:"application_context_scout_capability",operationId:"operation.application.context_scout_capability",transport:{kind:"http",route:"/application/context-scout/context_scout_capability",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.context_scout_capability.v1",requestSchema:{schemaId:"schema.application.context-scout-capability.request",revision:1},resultSchema:{schemaId:"schema.application.context-scout-capability.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:15e3},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","partial"],decodeRequest:S2(89),decodeResult:S2(93),decodeSuccess:e=>fu(e,"binding.http.context_scout_capability.v1","schema.application.context-scout-capability.result",1,["completed","cancelled","timed_out","failed","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(93))},{operation:"application_context_scout_claim",operationId:"operation.application.context_scout_claim",transport:{kind:"http",route:"/application/context-scout/context_scout_claim",method:"POST"},effect:"administrative",idempotency:"required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.context_scout_claim.v1",requestSchema:{schemaId:"schema.application.context-scout-claim.request",revision:1},resultSchema:{schemaId:"schema.application.context-scout-claim.result",revision:1},cancellation:{mode:"not_cancellable"},deadline:{behavior:"return_effect_receipt",maximum_millis:15e3},reconciliation:"required",receipt:"durable_effect",terminalStates:["completed","timed_out","failed","effect_unknown","partial"],decodeRequest:S2(94),decodeResult:S2(95),decodeSuccess:e=>fu(e,"binding.http.context_scout_claim.v1","schema.application.context-scout-claim.result",1,["completed","timed_out","failed","effect_unknown","partial"],{mode:"not_cancellable"},"durable_effect","required",S2(95))},{operation:"application_context_scout_delivery",operationId:"operation.application.context_scout_delivery",transport:{kind:"http",route:"/application/context-scout/context_scout_delivery",method:"POST"},effect:"administrative",idempotency:"required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.context_scout_delivery.v1",requestSchema:{schemaId:"schema.application.context-scout-delivery.request",revision:1},resultSchema:{schemaId:"schema.application.context-scout-delivery.result",revision:1},cancellation:{mode:"not_cancellable"},deadline:{behavior:"return_effect_receipt",maximum_millis:15e3},reconciliation:"required",receipt:"durable_effect",terminalStates:["completed","timed_out","failed","effect_unknown","partial"],decodeRequest:S2(96),decodeResult:S2(97),decodeSuccess:e=>fu(e,"binding.http.context_scout_delivery.v1","schema.application.context-scout-delivery.result",1,["completed","timed_out","failed","effect_unknown","partial"],{mode:"not_cancellable"},"durable_effect","required",S2(97))},{operation:"application_context_scout_explain",operationId:"operation.application.context_scout_explain",transport:{kind:"http",route:"/application/context-scout/context_scout_explain",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.context_scout_explain.v1",requestSchema:{schemaId:"schema.application.context-scout-explain.request",revision:1},resultSchema:{schemaId:"schema.application.context-scout-explain.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:15e3},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","partial"],decodeRequest:S2(98),decodeResult:S2(99),decodeSuccess:e=>fu(e,"binding.http.context_scout_explain.v1","schema.application.context-scout-explain.result",1,["completed","cancelled","timed_out","failed","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(99))},{operation:"application_context_scout_feedback",operationId:"operation.application.context_scout_feedback",transport:{kind:"http",route:"/application/context-scout/context_scout_feedback",method:"POST"},effect:"administrative",idempotency:"required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.context_scout_feedback.v1",requestSchema:{schemaId:"schema.application.context-scout-feedback.request",revision:1},resultSchema:{schemaId:"schema.application.context-scout-feedback.result",revision:1},cancellation:{mode:"not_cancellable"},deadline:{behavior:"return_effect_receipt",maximum_millis:15e3},reconciliation:"required",receipt:"durable_effect",terminalStates:["completed","timed_out","failed","effect_unknown","partial"],decodeRequest:S2(100),decodeResult:S2(92),decodeSuccess:e=>fu(e,"binding.http.context_scout_feedback.v1","schema.application.context-scout-feedback.result",1,["completed","timed_out","failed","effect_unknown","partial"],{mode:"not_cancellable"},"durable_effect","required",S2(92))},{operation:"application_context_scout_pause",operationId:"operation.application.context_scout_pause",transport:{kind:"http",route:"/application/context-scout/context_scout_pause",method:"POST"},effect:"configuration_write",idempotency:"required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.context_scout_pause.v1",requestSchema:{schemaId:"schema.application.context-scout-pause.request",revision:1},resultSchema:{schemaId:"schema.application.context-scout-pause.result",revision:1},cancellation:{mode:"not_cancellable"},deadline:{behavior:"return_effect_receipt",maximum_millis:15e3},reconciliation:"required",receipt:"durable_effect",terminalStates:["completed","timed_out","failed","effect_unknown","partial"],decodeRequest:S2(101),decodeResult:S2(72),decodeSuccess:e=>fu(e,"binding.http.context_scout_pause.v1","schema.application.context-scout-pause.result",1,["completed","timed_out","failed","effect_unknown","partial"],{mode:"not_cancellable"},"durable_effect","required",S2(72))},{operation:"application_context_scout_recent",operationId:"operation.application.context_scout_recent",transport:{kind:"http",route:"/application/context-scout/context_scout_recent",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.context_scout_recent.v1",requestSchema:{schemaId:"schema.application.context-scout-recent.request",revision:1},resultSchema:{schemaId:"schema.application.context-scout-recent.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:15e3},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","partial"],decodeRequest:S2(98),decodeResult:S2(102),decodeSuccess:e=>fu(e,"binding.http.context_scout_recent.v1","schema.application.context-scout-recent.result",1,["completed","cancelled","timed_out","failed","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(102))},{operation:"application_context_scout_resume",operationId:"operation.application.context_scout_resume",transport:{kind:"http",route:"/application/context-scout/context_scout_resume",method:"POST"},effect:"configuration_write",idempotency:"required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.context_scout_resume.v1",requestSchema:{schemaId:"schema.application.context-scout-resume.request",revision:1},resultSchema:{schemaId:"schema.application.context-scout-resume.result",revision:1},cancellation:{mode:"not_cancellable"},deadline:{behavior:"return_effect_receipt",maximum_millis:15e3},reconciliation:"required",receipt:"durable_effect",terminalStates:["completed","timed_out","failed","effect_unknown","partial"],decodeRequest:S2(101),decodeResult:S2(72),decodeSuccess:e=>fu(e,"binding.http.context_scout_resume.v1","schema.application.context-scout-resume.result",1,["completed","timed_out","failed","effect_unknown","partial"],{mode:"not_cancellable"},"durable_effect","required",S2(72))},{operation:"application_context_scout_status",operationId:"operation.application.context_scout_status",transport:{kind:"http",route:"/application/context-scout/context_scout_status",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.context_scout_status.v1",requestSchema:{schemaId:"schema.application.context-scout-status.request",revision:1},resultSchema:{schemaId:"schema.application.context-scout-status.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:15e3},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","partial"],decodeRequest:S2(89),decodeResult:S2(103),decodeSuccess:e=>fu(e,"binding.http.context_scout_status.v1","schema.application.context-scout-status.result",1,["completed","cancelled","timed_out","failed","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(103))},{operation:"coupling",operationId:"operation.application.coupling",transport:{kind:"mcp_tool",toolName:"tracedecay_coupling"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.coupling.v1",requestSchema:{schemaId:"schema.application.primitive.coupling.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.coupling.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:12e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(104),decodeResult:S2(105)},{operation:"dashboard",operationId:"operation.application.dashboard",transport:{kind:"mcp_tool",toolName:"tracedecay_dashboard"},effect:"binds_server",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.dashboard.v1",requestSchema:{schemaId:"schema.application.primitive.dashboard.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.dashboard.result",revision:1},cancellation:{mode:"not_cancellable"},deadline:{behavior:"return_operation_receipt",maximum_millis:12e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","timed_out","failed","unavailable","partial"],decodeRequest:S2(106),decodeResult:S2(107)},{operation:"dead_code",operationId:"operation.application.dead_code",transport:{kind:"mcp_tool",toolName:"tracedecay_dead_code"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.dead_code.v1",requestSchema:{schemaId:"schema.application.primitive.dead-code.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.dead-code.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:12e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(108),decodeResult:S2(109)},{operation:"dependency_depth",operationId:"operation.application.dependency_depth",transport:{kind:"mcp_tool",toolName:"tracedecay_dependency_depth"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.dependency_depth.v1",requestSchema:{schemaId:"schema.application.primitive.dependency-depth.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.dependency-depth.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:12e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(110),decodeResult:S2(111)},{operation:"derives",operationId:"operation.application.derives",transport:{kind:"mcp_tool",toolName:"tracedecay_derives"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.derives.v1",requestSchema:{schemaId:"schema.application.primitive.derives.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.derives.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:12e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(112),decodeResult:S2(113)},{operation:"diagnose",operationId:"operation.application.diagnose",transport:{kind:"mcp_tool",toolName:"tracedecay_diagnose"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.diagnose.v1",requestSchema:{schemaId:"schema.application.primitive.diagnose.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.diagnose.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:12e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(114),decodeResult:S2(115)},{operation:"application_diagnostics_read",operationId:"operation.application.diagnostics_read",transport:{kind:"http",route:"/application/primitives/diagnostics_read",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.diagnostics_read.v1",requestSchema:{schemaId:"schema.application.primitive.diagnostics-read.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.diagnostics-read.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:1e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(116),decodeResult:S2(117),decodeSuccess:e=>fu(e,"binding.http.diagnostics_read.v1","schema.application.primitive.diagnostics-read.result",1,["completed","cancelled","timed_out","failed","unavailable","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(117))},{operation:"diff_context",operationId:"operation.application.diff_context",transport:{kind:"mcp_tool",toolName:"tracedecay_diff_context"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.diff_context.v1",requestSchema:{schemaId:"schema.application.primitive.diff-context.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.diff-context.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:12e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(118),decodeResult:S2(119)},{operation:"distribution",operationId:"operation.application.distribution",transport:{kind:"mcp_tool",toolName:"tracedecay_distribution"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.distribution.v1",requestSchema:{schemaId:"schema.application.primitive.distribution.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.distribution.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:12e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(120),decodeResult:S2(121)},{operation:"doc_coverage",operationId:"operation.application.doc_coverage",transport:{kind:"mcp_tool",toolName:"tracedecay_doc_coverage"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.doc_coverage.v1",requestSchema:{schemaId:"schema.application.primitive.doc-coverage.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.doc-coverage.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:12e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(122),decodeResult:S2(123)},{operation:"dsm",operationId:"operation.application.dsm",transport:{kind:"mcp_tool",toolName:"tracedecay_dsm"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.dsm.v1",requestSchema:{schemaId:"schema.application.primitive.dsm.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.dsm.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:12e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(124),decodeResult:S2(125)},{operation:"application_fact_feedback",operationId:"operation.application.fact_feedback",transport:{kind:"http",route:"/application/retained/fact_feedback",method:"POST"},effect:"administrative",idempotency:"required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.fact_feedback.v1",requestSchema:{schemaId:"schema.application.retained.fact-feedback.request",revision:1},resultSchema:{schemaId:"schema.application.retained.fact-feedback.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_effect","effect_in_flight","reconciling","after_commit"]},deadline:{behavior:"return_effect_receipt",maximum_millis:3e4},reconciliation:"required",receipt:"durable_effect",terminalStates:["completed","cancelled","timed_out","failed","unavailable","effect_unknown","partial"],decodeRequest:S2(126),decodeResult:S2(127),decodeSuccess:e=>fu(e,"binding.http.fact_feedback.v1","schema.application.retained.fact-feedback.result",1,["completed","cancelled","timed_out","failed","unavailable","effect_unknown","partial"],{mode:"cooperative",points:["before_admission","before_effect","effect_in_flight","reconciling","after_commit"]},"durable_effect","required",S2(127))},{operation:"application_fact_store_add",operationId:"operation.application.fact_store_add",transport:{kind:"http",route:"/application/retained/fact_store_add",method:"POST"},effect:"administrative",idempotency:"required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.fact_store_add.v1",requestSchema:{schemaId:"schema.application.retained.fact-store-add.request",revision:1},resultSchema:{schemaId:"schema.application.retained.fact-store-add.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_effect","effect_in_flight","reconciling","after_commit"]},deadline:{behavior:"return_effect_receipt",maximum_millis:3e4},reconciliation:"required",receipt:"durable_effect",terminalStates:["completed","cancelled","timed_out","failed","unavailable","effect_unknown","partial"],decodeRequest:S2(128),decodeResult:S2(129),decodeSuccess:e=>fu(e,"binding.http.fact_store_add.v1","schema.application.retained.fact-store-add.result",1,["completed","cancelled","timed_out","failed","unavailable","effect_unknown","partial"],{mode:"cooperative",points:["before_admission","before_effect","effect_in_flight","reconciling","after_commit"]},"durable_effect","required",S2(129))},{operation:"application_fact_store_contradict",operationId:"operation.application.fact_store_contradict",transport:{kind:"http",route:"/application/retained/fact_store_contradict",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.fact_store_contradict.v1",requestSchema:{schemaId:"schema.application.retained.fact-store-contradict.request",revision:1},resultSchema:{schemaId:"schema.application.retained.fact-store-contradict.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:3e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(130),decodeResult:S2(131),decodeSuccess:e=>fu(e,"binding.http.fact_store_contradict.v1","schema.application.retained.fact-store-contradict.result",1,["completed","cancelled","timed_out","failed","unavailable","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(131))},{operation:"application_fact_store_curate",operationId:"operation.application.fact_store_curate",transport:{kind:"http",route:"/application/retained/fact_store_curate",method:"POST"},effect:"administrative",idempotency:"required",requestIdControl:"required",resultSemantics:"fact_store_curate_receipt",bindingId:"binding.http.fact_store_curate.v1",requestSchema:{schemaId:"schema.application.retained.fact-store-curate.request",revision:1},resultSchema:{schemaId:"schema.application.retained.fact-store-curate.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_effect","effect_in_flight","reconciling","after_commit"]},deadline:{behavior:"return_effect_receipt",maximum_millis:9e4},reconciliation:"required",receipt:"durable_effect",terminalStates:["completed","cancelled","timed_out","failed","unavailable","effect_unknown","partial"],decodeRequest:S2(132),decodeResult:S2(133),decodeSuccess:e=>fu(e,"binding.http.fact_store_curate.v1","schema.application.retained.fact-store-curate.result",1,["completed","cancelled","timed_out","failed","unavailable","effect_unknown","partial"],{mode:"cooperative",points:["before_admission","before_effect","effect_in_flight","reconciling","after_commit"]},"durable_effect","required",S2(133))},{operation:"application_fact_store_get",operationId:"operation.application.fact_store_get",transport:{kind:"http",route:"/application/retained/fact_store_get",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.fact_store_get.v1",requestSchema:{schemaId:"schema.application.retained.fact-store-get.request",revision:1},resultSchema:{schemaId:"schema.application.retained.fact-store-get.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:3e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(134),decodeResult:S2(135),decodeSuccess:e=>fu(e,"binding.http.fact_store_get.v1","schema.application.retained.fact-store-get.result",1,["completed","cancelled","timed_out","failed","unavailable","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(135))},{operation:"application_fact_store_list",operationId:"operation.application.fact_store_list",transport:{kind:"http",route:"/application/retained/fact_store_list",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.fact_store_list.v1",requestSchema:{schemaId:"schema.application.retained.fact-store-list.request",revision:1},resultSchema:{schemaId:"schema.application.retained.fact-store-list.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:3e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(136),decodeResult:S2(137),decodeSuccess:e=>fu(e,"binding.http.fact_store_list.v1","schema.application.retained.fact-store-list.result",1,["completed","cancelled","timed_out","failed","unavailable","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(137))},{operation:"application_fact_store_probe",operationId:"operation.application.fact_store_probe",transport:{kind:"http",route:"/application/retained/fact_store_probe",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.fact_store_probe.v1",requestSchema:{schemaId:"schema.application.retained.fact-store-probe.request",revision:1},resultSchema:{schemaId:"schema.application.retained.fact-store-probe.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:3e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(138),decodeResult:S2(139),decodeSuccess:e=>fu(e,"binding.http.fact_store_probe.v1","schema.application.retained.fact-store-probe.result",1,["completed","cancelled","timed_out","failed","unavailable","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(139))},{operation:"application_fact_store_reason",operationId:"operation.application.fact_store_reason",transport:{kind:"http",route:"/application/retained/fact_store_reason",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.fact_store_reason.v1",requestSchema:{schemaId:"schema.application.retained.fact-store-reason.request",revision:1},resultSchema:{schemaId:"schema.application.retained.fact-store-reason.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:3e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(140),decodeResult:S2(141),decodeSuccess:e=>fu(e,"binding.http.fact_store_reason.v1","schema.application.retained.fact-store-reason.result",1,["completed","cancelled","timed_out","failed","unavailable","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(141))},{operation:"application_fact_store_related",operationId:"operation.application.fact_store_related",transport:{kind:"http",route:"/application/retained/fact_store_related",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.fact_store_related.v1",requestSchema:{schemaId:"schema.application.retained.fact-store-related.request",revision:1},resultSchema:{schemaId:"schema.application.retained.fact-store-related.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:3e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(142),decodeResult:S2(143),decodeSuccess:e=>fu(e,"binding.http.fact_store_related.v1","schema.application.retained.fact-store-related.result",1,["completed","cancelled","timed_out","failed","unavailable","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(143))},{operation:"application_fact_store_remove",operationId:"operation.application.fact_store_remove",transport:{kind:"http",route:"/application/retained/fact_store_remove",method:"POST"},effect:"administrative",idempotency:"required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.fact_store_remove.v1",requestSchema:{schemaId:"schema.application.retained.fact-store-remove.request",revision:1},resultSchema:{schemaId:"schema.application.retained.fact-store-remove.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_effect","effect_in_flight","reconciling","after_commit"]},deadline:{behavior:"return_effect_receipt",maximum_millis:3e4},reconciliation:"required",receipt:"durable_effect",terminalStates:["completed","cancelled","timed_out","failed","unavailable","effect_unknown","partial"],decodeRequest:S2(144),decodeResult:S2(145),decodeSuccess:e=>fu(e,"binding.http.fact_store_remove.v1","schema.application.retained.fact-store-remove.result",1,["completed","cancelled","timed_out","failed","unavailable","effect_unknown","partial"],{mode:"cooperative",points:["before_admission","before_effect","effect_in_flight","reconciling","after_commit"]},"durable_effect","required",S2(145))},{operation:"application_fact_store_search",operationId:"operation.application.fact_store_search",transport:{kind:"http",route:"/application/retained/fact_store_search",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.fact_store_search.v1",requestSchema:{schemaId:"schema.application.retained.fact-store-search.request",revision:1},resultSchema:{schemaId:"schema.application.retained.fact-store-search.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:3e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(146),decodeResult:S2(147),decodeSuccess:e=>fu(e,"binding.http.fact_store_search.v1","schema.application.retained.fact-store-search.result",1,["completed","cancelled","timed_out","failed","unavailable","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(147))},{operation:"application_fact_store_supersede",operationId:"operation.application.fact_store_supersede",transport:{kind:"http",route:"/application/retained/fact_store_supersede",method:"POST"},effect:"administrative",idempotency:"required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.fact_store_supersede.v1",requestSchema:{schemaId:"schema.application.retained.fact-store-supersede.request",revision:1},resultSchema:{schemaId:"schema.application.retained.fact-store-supersede.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_effect","effect_in_flight","reconciling","after_commit"]},deadline:{behavior:"return_effect_receipt",maximum_millis:3e4},reconciliation:"required",receipt:"durable_effect",terminalStates:["completed","cancelled","timed_out","failed","unavailable","effect_unknown","partial"],decodeRequest:S2(148),decodeResult:S2(149),decodeSuccess:e=>fu(e,"binding.http.fact_store_supersede.v1","schema.application.retained.fact-store-supersede.result",1,["completed","cancelled","timed_out","failed","unavailable","effect_unknown","partial"],{mode:"cooperative",points:["before_admission","before_effect","effect_in_flight","reconciling","after_commit"]},"durable_effect","required",S2(149))},{operation:"application_fact_store_update",operationId:"operation.application.fact_store_update",transport:{kind:"http",route:"/application/retained/fact_store_update",method:"POST"},effect:"administrative",idempotency:"required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.fact_store_update.v1",requestSchema:{schemaId:"schema.application.retained.fact-store-update.request",revision:1},resultSchema:{schemaId:"schema.application.retained.fact-store-update.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_effect","effect_in_flight","reconciling","after_commit"]},deadline:{behavior:"return_effect_receipt",maximum_millis:3e4},reconciliation:"required",receipt:"durable_effect",terminalStates:["completed","cancelled","timed_out","failed","unavailable","effect_unknown","partial"],decodeRequest:S2(150),decodeResult:S2(151),decodeSuccess:e=>fu(e,"binding.http.fact_store_update.v1","schema.application.retained.fact-store-update.result",1,["completed","cancelled","timed_out","failed","unavailable","effect_unknown","partial"],{mode:"cooperative",points:["before_admission","before_effect","effect_in_flight","reconciling","after_commit"]},"durable_effect","required",S2(151))},{operation:"application_feedback_advisory_cycle",operationId:"operation.application.feedback_advisory_cycle",transport:{kind:"http",route:"/application/feedback/advisory_cycle",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.feedback_advisory_cycle.v1",requestSchema:{schemaId:"schema.application.feedback.advisory-cycle.request",revision:1},resultSchema:{schemaId:"schema.application.feedback.advisory-cycle.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:15e3},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(152),decodeResult:S2(153),decodeSuccess:e=>fu(e,"binding.http.feedback_advisory_cycle.v1","schema.application.feedback.advisory-cycle.result",1,["completed","cancelled","timed_out","failed","unavailable","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(153))},{operation:"application_feedback_diagnostics",operationId:"operation.application.feedback_diagnostics",transport:{kind:"http",route:"/application/feedback/diagnostics",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.feedback_diagnostics.v1",requestSchema:{schemaId:"schema.application.feedback.diagnostics.request",revision:1},resultSchema:{schemaId:"schema.application.feedback.diagnostics.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:15e3},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(10),decodeResult:S2(154),decodeSuccess:e=>fu(e,"binding.http.feedback_diagnostics.v1","schema.application.feedback.diagnostics.result",1,["completed","cancelled","timed_out","failed","unavailable","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(154))},{operation:"application_feedback_expand",operationId:"operation.application.feedback_expand",transport:{kind:"http",route:"/application/feedback/expand",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.feedback_expand.v1",requestSchema:{schemaId:"schema.application.feedback.expand.request",revision:1},resultSchema:{schemaId:"schema.application.feedback.expand.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:15e3},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(10),decodeResult:S2(155),decodeSuccess:e=>fu(e,"binding.http.feedback_expand.v1","schema.application.feedback.expand.result",1,["completed","cancelled","timed_out","failed","unavailable","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(155))},{operation:"application_feedback_get",operationId:"operation.application.feedback_get",transport:{kind:"http",route:"/application/feedback/get",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.feedback_get.v1",requestSchema:{schemaId:"schema.application.feedback.get.request",revision:1},resultSchema:{schemaId:"schema.application.feedback.get.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:15e3},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(10),decodeResult:S2(156),decodeSuccess:e=>fu(e,"binding.http.feedback_get.v1","schema.application.feedback.get.result",1,["completed","cancelled","timed_out","failed","unavailable","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(156))},{operation:"application_feedback_impact",operationId:"operation.application.feedback_impact",transport:{kind:"http",route:"/application/feedback/impact",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.feedback_impact.v1",requestSchema:{schemaId:"schema.application.feedback.impact.request",revision:1},resultSchema:{schemaId:"schema.application.feedback.impact.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:15e3},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(10),decodeResult:S2(157),decodeSuccess:e=>fu(e,"binding.http.feedback_impact.v1","schema.application.feedback.impact.result",1,["completed","cancelled","timed_out","failed","unavailable","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(157))},{operation:"application_feedback_list",operationId:"operation.application.feedback_list",transport:{kind:"http",route:"/application/feedback/list",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.feedback_list.v1",requestSchema:{schemaId:"schema.application.feedback.list.request",revision:1},resultSchema:{schemaId:"schema.application.feedback.list.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:15e3},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(10),decodeResult:S2(158),decodeSuccess:e=>fu(e,"binding.http.feedback_list.v1","schema.application.feedback.list.result",1,["completed","cancelled","timed_out","failed","unavailable","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(158))},{operation:"application_feedback_proximity",operationId:"operation.application.feedback_proximity",transport:{kind:"http",route:"/application/feedback/proximity",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.feedback_proximity.v1",requestSchema:{schemaId:"schema.application.feedback.proximity.request",revision:1},resultSchema:{schemaId:"schema.application.feedback.proximity.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:15e3},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(159),decodeResult:S2(160),decodeSuccess:e=>fu(e,"binding.http.feedback_proximity.v1","schema.application.feedback.proximity.result",1,["completed","cancelled","timed_out","failed","unavailable","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(160))},{operation:"field_sites",operationId:"operation.application.field_sites",transport:{kind:"mcp_tool",toolName:"tracedecay_field_sites"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.field_sites.v1",requestSchema:{schemaId:"schema.application.primitive.field-sites.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.field-sites.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:12e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(161),decodeResult:S2(162)},{operation:"application_file_dependents",operationId:"operation.application.file_dependents",transport:{kind:"http",route:"/application/primitives/file_dependents",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.file_dependents.v1",requestSchema:{schemaId:"schema.application.primitive.file-dependents.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.file-dependents.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:1e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(163),decodeResult:S2(164),decodeSuccess:e=>fu(e,"binding.http.file_dependents.v1","schema.application.primitive.file-dependents.result",1,["completed","cancelled","timed_out","failed","unavailable","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(164))},{operation:"files",operationId:"operation.application.files",transport:{kind:"mcp_tool",toolName:"tracedecay_files"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.files.v1",requestSchema:{schemaId:"schema.application.primitive.files.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.files.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:12e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(165),decodeResult:S2(166)},{operation:"find_exact_symbol",operationId:"operation.application.find_exact_symbol",transport:{kind:"mcp_tool",toolName:"tracedecay_find_exact_symbol"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.find_exact_symbol.v1",requestSchema:{schemaId:"schema.application.primitive.find-exact-symbol.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.find-exact-symbol.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:12e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(167),decodeResult:S2(168)},{operation:"gini",operationId:"operation.application.gini",transport:{kind:"mcp_tool",toolName:"tracedecay_gini"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.gini.v1",requestSchema:{schemaId:"schema.application.primitive.gini.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.gini.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:12e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(169),decodeResult:S2(170)},{operation:"git_apply",operationId:"operation.application.git_apply",transport:{kind:"mcp_tool",toolName:"tracedecay_git_apply"},effect:"administrative",idempotency:"required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.git_apply.v1",requestSchema:{schemaId:"schema.application.git.apply.request",revision:1},resultSchema:{schemaId:"schema.application.git.apply.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_effect","effect_in_flight","after_commit"]},deadline:{behavior:"return_effect_receipt",maximum_millis:3e4},reconciliation:"required",receipt:"durable_effect",terminalStates:["completed","cancelled","timed_out","failed","effect_unknown","partial"],decodeRequest:S2(171),decodeResult:S2(172)},{operation:"application_git_blame",operationId:"operation.application.git_blame",transport:{kind:"http",route:"/application/git/blame",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.git_blame.v1",requestSchema:{schemaId:"schema.application.git.blame.request",revision:1},resultSchema:{schemaId:"schema.application.git.blame.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:3e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","partial"],decodeRequest:S2(173),decodeResult:S2(174),decodeSuccess:e=>fu(e,"binding.http.git_blame.v1","schema.application.git.blame.result",1,["completed","cancelled","timed_out","failed","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(174))},{operation:"application_git_diff",operationId:"operation.application.git_diff",transport:{kind:"http",route:"/application/git/diff",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.git_diff.v1",requestSchema:{schemaId:"schema.application.git.diff.request",revision:1},resultSchema:{schemaId:"schema.application.git.diff.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:3e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","partial"],decodeRequest:S2(175),decodeResult:S2(174),decodeSuccess:e=>fu(e,"binding.http.git_diff.v1","schema.application.git.diff.result",1,["completed","cancelled","timed_out","failed","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(174))},{operation:"application_git_history",operationId:"operation.application.git_history",transport:{kind:"http",route:"/application/git/history",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.git_history.v1",requestSchema:{schemaId:"schema.application.git.history.request",revision:1},resultSchema:{schemaId:"schema.application.git.history.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:3e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","partial"],decodeRequest:S2(176),decodeResult:S2(174),decodeSuccess:e=>fu(e,"binding.http.git_history.v1","schema.application.git.history.result",1,["completed","cancelled","timed_out","failed","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(174))},{operation:"application_git_hunks",operationId:"operation.application.git_hunks",transport:{kind:"http",route:"/application/git/hunks",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.git_hunks.v1",requestSchema:{schemaId:"schema.application.git.hunks.request",revision:1},resultSchema:{schemaId:"schema.application.git.hunks.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:3e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","partial"],decodeRequest:S2(177),decodeResult:S2(174),decodeSuccess:e=>fu(e,"binding.http.git_hunks.v1","schema.application.git.hunks.result",1,["completed","cancelled","timed_out","failed","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(174))},{operation:"git_preview",operationId:"operation.application.git_preview",transport:{kind:"mcp_tool",toolName:"tracedecay_git_preview"},effect:"preview",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.git_preview.v1",requestSchema:{schemaId:"schema.application.git.preview.request",revision:1},resultSchema:{schemaId:"schema.application.git.preview.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:3e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","partial"],decodeRequest:S2(178),decodeResult:S2(179)},{operation:"application_git_status",operationId:"operation.application.git_status",transport:{kind:"http",route:"/application/git/status",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.git_status.v1",requestSchema:{schemaId:"schema.application.git.status.request",revision:1},resultSchema:{schemaId:"schema.application.git.status.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:3e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","partial"],decodeRequest:S2(180),decodeResult:S2(174),decodeSuccess:e=>fu(e,"binding.http.git_status.v1","schema.application.git.status.result",1,["completed","cancelled","timed_out","failed","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(174))},{operation:"application_github_stack_signal_expand",operationId:"operation.application.github_stack_signal_expand",transport:{kind:"http",route:"/application/github-stack/signal-expand",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.github_stack_signal_expand.v1",requestSchema:{schemaId:"schema.application.github-stack.signal-expand.request",revision:1},resultSchema:{schemaId:"schema.application.github-stack.signal-expand.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:3e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","partial"],decodeRequest:S2(181),decodeResult:S2(182),decodeSuccess:e=>fu(e,"binding.http.github_stack_signal_expand.v1","schema.application.github-stack.signal-expand.result",1,["completed","cancelled","timed_out","failed","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(182))},{operation:"god_class",operationId:"operation.application.god_class",transport:{kind:"mcp_tool",toolName:"tracedecay_god_class"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.god_class.v1",requestSchema:{schemaId:"schema.application.primitive.god-class.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.god-class.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:12e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(183),decodeResult:S2(184)},{operation:"grep",operationId:"operation.application.grep",transport:{kind:"mcp_tool",toolName:"tracedecay_grep"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.grep.v1",requestSchema:{schemaId:"schema.application.primitive.grep.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.grep.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:12e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(185),decodeResult:S2(186)},{operation:"health",operationId:"operation.application.health",transport:{kind:"mcp_tool",toolName:"tracedecay_health"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.health.v1",requestSchema:{schemaId:"schema.application.primitive.health.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.health.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:12e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(187),decodeResult:S2(188)},{operation:"application_health_delta",operationId:"operation.application.health_delta",transport:{kind:"http",route:"/application/primitives/health_delta",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.health_delta.v1",requestSchema:{schemaId:"schema.application.primitive.health-delta.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.health-delta.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:1e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(189),decodeResult:S2(190),decodeSuccess:e=>fu(e,"binding.http.health_delta.v1","schema.application.primitive.health-delta.result",1,["completed","cancelled","timed_out","failed","unavailable","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(190))},{operation:"application_health_read",operationId:"operation.application.health_read",transport:{kind:"http",route:"/application/primitives/health_read",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.health_read.v1",requestSchema:{schemaId:"schema.application.primitive.health-read.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.health-read.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:1e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(191),decodeResult:S2(192),decodeSuccess:e=>fu(e,"binding.http.health_read.v1","schema.application.primitive.health-read.result",1,["completed","cancelled","timed_out","failed","unavailable","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(192))},{operation:"hermes_skill_bridge",operationId:"operation.application.hermes_skill_bridge",transport:{kind:"mcp_tool",toolName:"tracedecay_hermes_skill_bridge"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.hermes_skill_bridge.v1",requestSchema:{schemaId:"schema.application.primitive.hermes-skill-bridge.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.hermes-skill-bridge.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:12e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(193),decodeResult:S2(194)},{operation:"hook_runtime",operationId:"operation.application.hook_runtime",transport:{kind:"mcp_tool",toolName:"tracedecay_hook_runtime"},effect:"records_host_evidence",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.hook_runtime.v1",requestSchema:{schemaId:"schema.application.primitive.hook-runtime.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.hook-runtime.result",revision:1},cancellation:{mode:"not_cancellable"},deadline:{behavior:"return_operation_receipt",maximum_millis:12e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","timed_out","failed","unavailable","partial"],decodeRequest:S2(195),decodeResult:S2(196)},{operation:"hotspots",operationId:"operation.application.hotspots",transport:{kind:"mcp_tool",toolName:"tracedecay_hotspots"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.hotspots.v1",requestSchema:{schemaId:"schema.application.primitive.hotspots.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.hotspots.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:12e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(197),decodeResult:S2(198)},{operation:"impact",operationId:"operation.application.impact",transport:{kind:"mcp_tool",toolName:"tracedecay_impact"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.impact.v1",requestSchema:{schemaId:"schema.application.primitive.impact.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.impact.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:1e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(199),decodeResult:S2(200)},{operation:"inheritance_depth",operationId:"operation.application.inheritance_depth",transport:{kind:"mcp_tool",toolName:"tracedecay_inheritance_depth"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.inheritance_depth.v1",requestSchema:{schemaId:"schema.application.primitive.inheritance-depth.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.inheritance-depth.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:12e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(201),decodeResult:S2(202)},{operation:"insert_at",operationId:"operation.application.insert_at",transport:{kind:"mcp_tool",toolName:"tracedecay_insert_at"},effect:"source_edit",idempotency:"required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.insert_at.v1",requestSchema:{schemaId:"schema.application.source-edit.insert-at.request",revision:1},resultSchema:{schemaId:"schema.application.source-edit.insert-at.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_effect","effect_in_flight","after_commit"]},deadline:{behavior:"return_effect_receipt",maximum_millis:3e4},reconciliation:"required",receipt:"durable_effect",terminalStates:["completed","cancelled","timed_out","failed","effect_unknown","partial"],decodeRequest:S2(203),decodeResult:S2(18)},{operation:"insert_at_symbol",operationId:"operation.application.insert_at_symbol",transport:{kind:"mcp_tool",toolName:"tracedecay_insert_at_symbol"},effect:"source_edit",idempotency:"required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.insert_at_symbol.v1",requestSchema:{schemaId:"schema.application.source-edit.insert-at-symbol.request",revision:1},resultSchema:{schemaId:"schema.application.source-edit.insert-at-symbol.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_effect","effect_in_flight","after_commit"]},deadline:{behavior:"return_effect_receipt",maximum_millis:3e4},reconciliation:"required",receipt:"durable_effect",terminalStates:["completed","cancelled","timed_out","failed","effect_unknown","partial"],decodeRequest:S2(204),decodeResult:S2(18)},{operation:"largest",operationId:"operation.application.largest",transport:{kind:"mcp_tool",toolName:"tracedecay_largest"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.largest.v1",requestSchema:{schemaId:"schema.application.primitive.largest.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.largest.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:12e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(205),decodeResult:S2(206)},{operation:"application_lcm_describe",operationId:"operation.application.lcm_describe",transport:{kind:"http",route:"/application/retained/lcm_describe",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.lcm_describe.v1",requestSchema:{schemaId:"schema.application.retained.lcm-describe.request",revision:1},resultSchema:{schemaId:"schema.application.retained.lcm-describe.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:3e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(207),decodeResult:S2(208),decodeSuccess:e=>fu(e,"binding.http.lcm_describe.v1","schema.application.retained.lcm-describe.result",1,["completed","cancelled","timed_out","failed","unavailable","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(208))},{operation:"application_lcm_doctor",operationId:"operation.application.lcm_doctor",transport:{kind:"http",route:"/application/retained/lcm_doctor",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.lcm_doctor.v1",requestSchema:{schemaId:"schema.application.retained.lcm-doctor.request",revision:1},resultSchema:{schemaId:"schema.application.retained.lcm-doctor.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:3e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(209),decodeResult:S2(210),decodeSuccess:e=>fu(e,"binding.http.lcm_doctor.v1","schema.application.retained.lcm-doctor.result",1,["completed","cancelled","timed_out","failed","unavailable","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(210))},{operation:"application_lcm_expand",operationId:"operation.application.lcm_expand",transport:{kind:"http",route:"/application/retained/lcm_expand",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.lcm_expand.v1",requestSchema:{schemaId:"schema.application.retained.lcm-expand.request",revision:1},resultSchema:{schemaId:"schema.application.retained.lcm-expand.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:3e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(211),decodeResult:S2(212),decodeSuccess:e=>fu(e,"binding.http.lcm_expand.v1","schema.application.retained.lcm-expand.result",1,["completed","cancelled","timed_out","failed","unavailable","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(212))},{operation:"application_lcm_expand_query",operationId:"operation.application.lcm_expand_query",transport:{kind:"http",route:"/application/retained/lcm_expand_query",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.lcm_expand_query.v1",requestSchema:{schemaId:"schema.application.retained.lcm-expand-query.request",revision:1},resultSchema:{schemaId:"schema.application.retained.lcm-expand-query.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:3e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(213),decodeResult:S2(214),decodeSuccess:e=>fu(e,"binding.http.lcm_expand_query.v1","schema.application.retained.lcm-expand-query.result",1,["completed","cancelled","timed_out","failed","unavailable","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(214))},{operation:"application_lcm_grep",operationId:"operation.application.lcm_grep",transport:{kind:"http",route:"/application/retained/lcm_grep",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.lcm_grep.v1",requestSchema:{schemaId:"schema.application.retained.lcm-grep.request",revision:1},resultSchema:{schemaId:"schema.application.retained.lcm-grep.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:3e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(215),decodeResult:S2(216),decodeSuccess:e=>fu(e,"binding.http.lcm_grep.v1","schema.application.retained.lcm-grep.result",1,["completed","cancelled","timed_out","failed","unavailable","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(216))},{operation:"application_lcm_load_session",operationId:"operation.application.lcm_load_session",transport:{kind:"http",route:"/application/retained/lcm_load_session",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.lcm_load_session.v1",requestSchema:{schemaId:"schema.application.retained.lcm-load-session.request",revision:1},resultSchema:{schemaId:"schema.application.retained.lcm-load-session.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:3e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(217),decodeResult:S2(218),decodeSuccess:e=>fu(e,"binding.http.lcm_load_session.v1","schema.application.retained.lcm-load-session.result",1,["completed","cancelled","timed_out","failed","unavailable","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(218))},{operation:"application_lcm_status",operationId:"operation.application.lcm_status",transport:{kind:"http",route:"/application/retained/lcm_status",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.lcm_status.v1",requestSchema:{schemaId:"schema.application.retained.lcm-status.request",revision:1},resultSchema:{schemaId:"schema.application.retained.lcm-status.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:3e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(219),decodeResult:S2(220),decodeSuccess:e=>fu(e,"binding.http.lcm_status.v1","schema.application.retained.lcm-status.result",1,["completed","cancelled","timed_out","failed","unavailable","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(220))},{operation:"application_memory_status",operationId:"operation.application.memory_status",transport:{kind:"http",route:"/application/retained/memory_status",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.memory_status.v1",requestSchema:{schemaId:"schema.application.retained.memory-status.request",revision:1},resultSchema:{schemaId:"schema.application.retained.memory-status.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:3e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(221),decodeResult:S2(222),decodeSuccess:e=>fu(e,"binding.http.memory_status.v1","schema.application.retained.memory-status.result",1,["completed","cancelled","timed_out","failed","unavailable","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(222))},{operation:"application_message_search",operationId:"operation.application.message_search",transport:{kind:"http",route:"/application/retained/message_search",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.message_search.v1",requestSchema:{schemaId:"schema.application.retained.message-search.request",revision:1},resultSchema:{schemaId:"schema.application.retained.message-search.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:3e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(223),decodeResult:S2(224),decodeSuccess:e=>fu(e,"binding.http.message_search.v1","schema.application.retained.message-search.result",1,["completed","cancelled","timed_out","failed","unavailable","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(224))},{operation:"application_module_api",operationId:"operation.application.module_api",transport:{kind:"http",route:"/application/primitives/module_api",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.module_api.v1",requestSchema:{schemaId:"schema.application.primitive.module-api.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.module-api.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:1e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(225),decodeResult:S2(226),decodeSuccess:e=>fu(e,"binding.http.module_api.v1","schema.application.primitive.module-api.result",1,["completed","cancelled","timed_out","failed","unavailable","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(226))},{operation:"move_symbol",operationId:"operation.application.move_symbol",transport:{kind:"mcp_tool",toolName:"tracedecay_move_symbol"},effect:"source_edit",idempotency:"required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.move_symbol.v1",requestSchema:{schemaId:"schema.application.source-edit.move-symbol.request",revision:1},resultSchema:{schemaId:"schema.application.source-edit.move-symbol.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_effect","effect_in_flight","after_commit"]},deadline:{behavior:"return_effect_receipt",maximum_millis:3e4},reconciliation:"required",receipt:"durable_effect",terminalStates:["completed","cancelled","timed_out","failed","effect_unknown","partial"],decodeRequest:S2(227),decodeResult:S2(18)},{operation:"multi_str_replace",operationId:"operation.application.multi_str_replace",transport:{kind:"mcp_tool",toolName:"tracedecay_multi_str_replace"},effect:"source_edit",idempotency:"required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.multi_str_replace.v1",requestSchema:{schemaId:"schema.application.source-edit.multi-str-replace.request",revision:1},resultSchema:{schemaId:"schema.application.source-edit.multi-str-replace.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_effect","effect_in_flight","after_commit"]},deadline:{behavior:"return_effect_receipt",maximum_millis:3e4},reconciliation:"required",receipt:"durable_effect",terminalStates:["completed","cancelled","timed_out","failed","effect_unknown","partial"],decodeRequest:S2(228),decodeResult:S2(18)},{operation:"native_integration_status",operationId:"operation.application.native_integration_status",transport:{kind:"mcp_tool",toolName:"tracedecay_native_integration_status"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.native_integration_status.v1",requestSchema:{schemaId:"schema.application.native-integration.status.request",revision:1},resultSchema:{schemaId:"schema.application.native-integration.status.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:3e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","partial"],decodeRequest:S2(229),decodeResult:S2(15)},{operation:"node",operationId:"operation.application.node",transport:{kind:"mcp_tool",toolName:"tracedecay_node"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.node.v1",requestSchema:{schemaId:"schema.application.primitive.node.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.node.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:1e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(230),decodeResult:S2(231)},{operation:"observatory_read",operationId:"operation.application.observatory_read",transport:{kind:"mcp_tool",toolName:"tracedecay_observatory_read"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.observatory_read.v1",requestSchema:{schemaId:"schema.application.observatory-read.request",revision:1},resultSchema:{schemaId:"schema.application.observatory-read.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:15e3},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(232),decodeResult:S2(233)},{operation:"port_order",operationId:"operation.application.port_order",transport:{kind:"mcp_tool",toolName:"tracedecay_port_order"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.port_order.v1",requestSchema:{schemaId:"schema.application.primitive.port-order.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.port-order.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:1e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(234),decodeResult:S2(235)},{operation:"port_status",operationId:"operation.application.port_status",transport:{kind:"mcp_tool",toolName:"tracedecay_port_status"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.port_status.v1",requestSchema:{schemaId:"schema.application.primitive.port-status.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.port-status.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:1e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(236),decodeResult:S2(237)},{operation:"pr_context",operationId:"operation.application.pr_context",transport:{kind:"mcp_tool",toolName:"tracedecay_pr_context"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.pr_context.v1",requestSchema:{schemaId:"schema.application.primitive.pr-context.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.pr-context.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:12e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(238),decodeResult:S2(239)},{operation:"preflight_native_integration",operationId:"operation.application.preflight_native_integration",transport:{kind:"mcp_tool",toolName:"tracedecay_preflight_native_integration"},effect:"preview",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.preflight_native_integration.v1",requestSchema:{schemaId:"schema.application.native-integration.preflight.request",revision:1},resultSchema:{schemaId:"schema.application.native-integration.preflight.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:3e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","partial"],decodeRequest:S2(240),decodeResult:S2(15)},{operation:"project_context",operationId:"operation.application.project_context",transport:{kind:"mcp_tool",toolName:"tracedecay_project_context"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.project_context.v1",requestSchema:{schemaId:"schema.application.primitive.project-context.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.project-context.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:12e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(241),decodeResult:S2(242)},{operation:"project_list",operationId:"operation.application.project_list",transport:{kind:"mcp_tool",toolName:"tracedecay_project_list"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.project_list.v1",requestSchema:{schemaId:"schema.application.primitive.project-list.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.project-list.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:12e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(243),decodeResult:S2(244)},{operation:"project_search",operationId:"operation.application.project_search",transport:{kind:"mcp_tool",toolName:"tracedecay_project_search"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.project_search.v1",requestSchema:{schemaId:"schema.application.primitive.project-search.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.project-search.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:12e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(245),decodeResult:S2(244)},{operation:"application_qualified_name",operationId:"operation.application.qualified_name",transport:{kind:"http",route:"/application/primitives/qualified_name",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.qualified_name.v1",requestSchema:{schemaId:"schema.application.primitive.qualified-name.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.qualified-name.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:1e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(246),decodeResult:S2(247),decodeSuccess:e=>fu(e,"binding.http.qualified_name.v1","schema.application.primitive.qualified-name.result",1,["completed","cancelled","timed_out","failed","unavailable","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(247))},{operation:"rank",operationId:"operation.application.rank",transport:{kind:"mcp_tool",toolName:"tracedecay_rank"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.rank.v1",requestSchema:{schemaId:"schema.application.primitive.rank.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.rank.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:12e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(248),decodeResult:S2(249)},{operation:"recursion",operationId:"operation.application.recursion",transport:{kind:"mcp_tool",toolName:"tracedecay_recursion"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.recursion.v1",requestSchema:{schemaId:"schema.application.primitive.recursion.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.recursion.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:12e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(250),decodeResult:S2(251)},{operation:"redundancy",operationId:"operation.application.redundancy",transport:{kind:"mcp_tool",toolName:"tracedecay_redundancy"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.redundancy.v1",requestSchema:{schemaId:"schema.application.primitive.redundancy.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.redundancy.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:1e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(252),decodeResult:S2(253)},{operation:"remote_status",operationId:"operation.application.remote_status",transport:{kind:"mcp_tool",toolName:"tracedecay_remote_status"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.remote_status.v1",requestSchema:{schemaId:"schema.application.primitive.remote-status.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.remote-status.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:12e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(254),decodeResult:S2(255)},{operation:"rename_preview",operationId:"operation.application.rename_preview",transport:{kind:"mcp_tool",toolName:"tracedecay_rename_preview"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.rename_preview.v1",requestSchema:{schemaId:"schema.application.primitive.rename-preview.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.rename-preview.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:1e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(256),decodeResult:S2(257)},{operation:"rename_symbol",operationId:"operation.application.rename_symbol",transport:{kind:"mcp_tool",toolName:"tracedecay_rename_symbol"},effect:"source_edit",idempotency:"required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.rename_symbol.v1",requestSchema:{schemaId:"schema.application.source-edit.rename-symbol.request",revision:1},resultSchema:{schemaId:"schema.application.source-edit.rename-symbol.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_effect","effect_in_flight","after_commit"]},deadline:{behavior:"return_effect_receipt",maximum_millis:3e4},reconciliation:"required",receipt:"durable_effect",terminalStates:["completed","cancelled","timed_out","failed","effect_unknown","partial"],decodeRequest:S2(258),decodeResult:S2(18)},{operation:"replace_symbol",operationId:"operation.application.replace_symbol",transport:{kind:"mcp_tool",toolName:"tracedecay_replace_symbol"},effect:"source_edit",idempotency:"required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.replace_symbol.v1",requestSchema:{schemaId:"schema.application.source-edit.replace-symbol.request",revision:1},resultSchema:{schemaId:"schema.application.source-edit.replace-symbol.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_effect","effect_in_flight","after_commit"]},deadline:{behavior:"return_effect_receipt",maximum_millis:3e4},reconciliation:"required",receipt:"durable_effect",terminalStates:["completed","cancelled","timed_out","failed","effect_unknown","partial"],decodeRequest:S2(259),decodeResult:S2(18)},{operation:"retrieve",operationId:"operation.application.retrieve",transport:{kind:"mcp_tool",toolName:"tracedecay_retrieve"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.retrieve.v1",requestSchema:{schemaId:"schema.application.primitive.retrieve.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.retrieve.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:12e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(260),decodeResult:S2(261)},{operation:"run_affected_tests",operationId:"operation.application.run_affected_tests",transport:{kind:"mcp_tool",toolName:"tracedecay_run_affected_tests"},effect:"spawns_process",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.run_affected_tests.v1",requestSchema:{schemaId:"schema.application.primitive.run-affected-tests.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.run-affected-tests.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","effect_in_flight"]},deadline:{behavior:"return_operation_receipt",maximum_millis:6e5},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(262),decodeResult:S2(263)},{operation:"runtime",operationId:"operation.application.runtime",transport:{kind:"mcp_tool",toolName:"tracedecay_runtime"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.runtime.v1",requestSchema:{schemaId:"schema.application.primitive.runtime.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.runtime.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:12e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(264),decodeResult:S2(265)},{operation:"search",operationId:"operation.application.search",transport:{kind:"mcp_tool",toolName:"tracedecay_search"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.search.v1",requestSchema:{schemaId:"schema.application.primitive.search.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.search.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:12e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(266),decodeResult:S2(267)},{operation:"session_lookup",operationId:"operation.application.session_lookup",transport:{kind:"mcp_tool",toolName:"tracedecay_session_lookup"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.session_lookup.v1",requestSchema:{schemaId:"schema.application.primitive.session-lookup.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.session-lookup.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:1e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(268),decodeResult:S2(269)},{operation:"application_session_refresh_begin",operationId:"operation.application.session_refresh_begin",transport:{kind:"http",route:"/application/retained/session_refresh_begin",method:"POST"},effect:"administrative",idempotency:"required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.session_refresh_begin.v1",requestSchema:{schemaId:"schema.application.retained.session-refresh-begin.request",revision:1},resultSchema:{schemaId:"schema.application.retained.session-refresh-begin.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_effect","effect_in_flight","reconciling","after_commit"]},deadline:{behavior:"return_effect_receipt",maximum_millis:3e4},reconciliation:"required",receipt:"durable_effect",terminalStates:["completed","cancelled","timed_out","failed","unavailable","effect_unknown","partial"],decodeRequest:S2(270),decodeResult:S2(271),decodeSuccess:e=>fu(e,"binding.http.session_refresh_begin.v1","schema.application.retained.session-refresh-begin.result",1,["completed","cancelled","timed_out","failed","unavailable","effect_unknown","partial"],{mode:"cooperative",points:["before_admission","before_effect","effect_in_flight","reconciling","after_commit"]},"durable_effect","required",S2(271))},{operation:"application_session_refresh_cancel",operationId:"operation.application.session_refresh_cancel",transport:{kind:"http",route:"/application/retained/session_refresh_cancel",method:"POST"},effect:"administrative",idempotency:"required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.session_refresh_cancel.v1",requestSchema:{schemaId:"schema.application.retained.session-refresh-cancel.request",revision:1},resultSchema:{schemaId:"schema.application.retained.session-refresh-cancel.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_effect","effect_in_flight","reconciling","after_commit"]},deadline:{behavior:"return_effect_receipt",maximum_millis:3e4},reconciliation:"required",receipt:"durable_effect",terminalStates:["completed","cancelled","timed_out","failed","unavailable","effect_unknown","partial"],decodeRequest:S2(270),decodeResult:S2(272),decodeSuccess:e=>fu(e,"binding.http.session_refresh_cancel.v1","schema.application.retained.session-refresh-cancel.result",1,["completed","cancelled","timed_out","failed","unavailable","effect_unknown","partial"],{mode:"cooperative",points:["before_admission","before_effect","effect_in_flight","reconciling","after_commit"]},"durable_effect","required",S2(272))},{operation:"application_session_refresh_status",operationId:"operation.application.session_refresh_status",transport:{kind:"http",route:"/application/retained/session_refresh_status",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.session_refresh_status.v1",requestSchema:{schemaId:"schema.application.retained.session-refresh-status.request",revision:1},resultSchema:{schemaId:"schema.application.retained.session-refresh-status.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:3e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(270),decodeResult:S2(273),decodeSuccess:e=>fu(e,"binding.http.session_refresh_status.v1","schema.application.retained.session-refresh-status.result",1,["completed","cancelled","timed_out","failed","unavailable","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(273))},{operation:"application_sessions_for",operationId:"operation.application.sessions_for",transport:{kind:"http",route:"/application/retained/sessions_for",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.sessions_for.v1",requestSchema:{schemaId:"schema.application.retained.sessions-for.request",revision:1},resultSchema:{schemaId:"schema.application.retained.sessions-for.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:3e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(274),decodeResult:S2(275),decodeSuccess:e=>fu(e,"binding.http.sessions_for.v1","schema.application.retained.sessions-for.result",1,["completed","cancelled","timed_out","failed","unavailable","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(275))},{operation:"signature",operationId:"operation.application.signature",transport:{kind:"mcp_tool",toolName:"tracedecay_signature"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.signature.v1",requestSchema:{schemaId:"schema.application.primitive.signature.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.signature.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:12e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(112),decodeResult:S2(276)},{operation:"similar",operationId:"operation.application.similar",transport:{kind:"mcp_tool",toolName:"tracedecay_similar"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.similar.v1",requestSchema:{schemaId:"schema.application.primitive.similar.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.similar.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:1e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(277),decodeResult:S2(278)},{operation:"skill_list",operationId:"operation.application.skill_list",transport:{kind:"mcp_tool",toolName:"tracedecay_skill_list"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.skill_list.v1",requestSchema:{schemaId:"schema.application.primitive.skill-list.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.skill-list.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:12e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(279),decodeResult:S2(280)},{operation:"skill_view",operationId:"operation.application.skill_view",transport:{kind:"mcp_tool",toolName:"tracedecay_skill_view"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.skill_view.v1",requestSchema:{schemaId:"schema.application.primitive.skill-view.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.skill-view.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:12e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(281),decodeResult:S2(282)},{operation:"application_source_body",operationId:"operation.application.source_body",transport:{kind:"http",route:"/application/primitives/source_body",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.source_body.v1",requestSchema:{schemaId:"schema.application.primitive.source-body.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.source-body.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:1e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(283),decodeResult:S2(284),decodeSuccess:e=>fu(e,"binding.http.source_body.v1","schema.application.primitive.source-body.result",1,["completed","cancelled","timed_out","failed","unavailable","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(284))},{operation:"source_edit_reconcile",operationId:"operation.application.source_edit_reconcile",transport:{kind:"mcp_tool",toolName:"tracedecay_source_edit_reconcile"},effect:"source_edit",idempotency:"required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.source_edit_reconcile.v1",requestSchema:{schemaId:"schema.application.source-edit.reconcile.request",revision:1},resultSchema:{schemaId:"schema.application.source-edit.reconcile.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_effect","effect_in_flight","after_commit"]},deadline:{behavior:"return_effect_receipt",maximum_millis:3e4},reconciliation:"required",receipt:"durable_effect",terminalStates:["completed","cancelled","timed_out","failed","effect_unknown","partial"],decodeRequest:S2(285),decodeResult:S2(18)},{operation:"application_source_lines",operationId:"operation.application.source_lines",transport:{kind:"http",route:"/application/primitives/source_lines",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.source_lines.v1",requestSchema:{schemaId:"schema.application.primitive.source-lines.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.source-lines.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:1e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(286),decodeResult:S2(287),decodeSuccess:e=>fu(e,"binding.http.source_lines.v1","schema.application.primitive.source-lines.result",1,["completed","cancelled","timed_out","failed","unavailable","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(287))},{operation:"application_source_outline",operationId:"operation.application.source_outline",transport:{kind:"http",route:"/application/primitives/source_outline",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.source_outline.v1",requestSchema:{schemaId:"schema.application.primitive.source-outline.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.source-outline.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:1e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(288),decodeResult:S2(289),decodeSuccess:e=>fu(e,"binding.http.source_outline.v1","schema.application.primitive.source-outline.result",1,["completed","cancelled","timed_out","failed","unavailable","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(289))},{operation:"stack_snapshot",operationId:"operation.application.stack_snapshot",transport:{kind:"mcp_tool",toolName:"tracedecay_stack_snapshot"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.stack_snapshot.v1",requestSchema:{schemaId:"schema.application.native-integration.stack-snapshot.request",revision:1},resultSchema:{schemaId:"schema.application.native-integration.stack-snapshot.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:3e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","partial"],decodeRequest:S2(290),decodeResult:S2(15)},{operation:"status",operationId:"operation.application.status",transport:{kind:"mcp_tool",toolName:"tracedecay_status"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.status.v1",requestSchema:{schemaId:"schema.application.primitive.status.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.status.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:12e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(291),decodeResult:S2(292)},{operation:"application_storage_status",operationId:"operation.application.storage_status",transport:{kind:"http",route:"/application/primitives/storage_status",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.storage_status.v1",requestSchema:{schemaId:"schema.application.primitive.storage-status.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.storage-status.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:1e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(293),decodeResult:S2(294),decodeSuccess:e=>fu(e,"binding.http.storage_status.v1","schema.application.primitive.storage-status.result",1,["completed","cancelled","timed_out","failed","unavailable","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(294))},{operation:"str_replace",operationId:"operation.application.str_replace",transport:{kind:"mcp_tool",toolName:"tracedecay_str_replace"},effect:"source_edit",idempotency:"required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.str_replace.v1",requestSchema:{schemaId:"schema.application.source-edit.str-replace.request",revision:1},resultSchema:{schemaId:"schema.application.source-edit.str-replace.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_effect","effect_in_flight","after_commit"]},deadline:{behavior:"return_effect_receipt",maximum_millis:3e4},reconciliation:"required",receipt:"durable_effect",terminalStates:["completed","cancelled","timed_out","failed","effect_unknown","partial"],decodeRequest:S2(295),decodeResult:S2(18)},{operation:"test_map",operationId:"operation.application.test_map",transport:{kind:"mcp_tool",toolName:"tracedecay_test_map"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.test_map.v1",requestSchema:{schemaId:"schema.application.primitive.test-map.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.test-map.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:12e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(296),decodeResult:S2(297)},{operation:"application_test_results",operationId:"operation.application.test_results",transport:{kind:"http",route:"/application/tests/results",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.test_results.v1",requestSchema:{schemaId:"schema.application.feedback.test-results.request",revision:1},resultSchema:{schemaId:"schema.application.feedback.test-results.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:15e3},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(298),decodeResult:S2(299),decodeSuccess:e=>fu(e,"binding.http.test_results.v1","schema.application.feedback.test-results.result",1,["completed","cancelled","timed_out","failed","unavailable","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(299))},{operation:"test_risk",operationId:"operation.application.test_risk",transport:{kind:"mcp_tool",toolName:"tracedecay_test_risk"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.test_risk.v1",requestSchema:{schemaId:"schema.application.primitive.test-risk.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.test-risk.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:12e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(300),decodeResult:S2(301)},{operation:"todos",operationId:"operation.application.todos",transport:{kind:"mcp_tool",toolName:"tracedecay_todos"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.todos.v1",requestSchema:{schemaId:"schema.application.primitive.todos.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.todos.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:1e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(302),decodeResult:S2(303)},{operation:"unmounted_files",operationId:"operation.application.unmounted_files",transport:{kind:"mcp_tool",toolName:"tracedecay_unmounted_files"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.unmounted_files.v1",requestSchema:{schemaId:"schema.application.primitive.unmounted-files.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.unmounted-files.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:12e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(304),decodeResult:S2(305)},{operation:"unsafe_patterns",operationId:"operation.application.unsafe_patterns",transport:{kind:"mcp_tool",toolName:"tracedecay_unsafe_patterns"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.unsafe_patterns.v1",requestSchema:{schemaId:"schema.application.primitive.unsafe-patterns.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.unsafe-patterns.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:12e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(306),decodeResult:S2(307)},{operation:"application_workflows",operationId:"operation.application.workflows",transport:{kind:"http",route:"/application/retained/workflows",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.workflows.v1",requestSchema:{schemaId:"schema.application.retained.workflows.request",revision:1},resultSchema:{schemaId:"schema.application.retained.workflows.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:3e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(308),decodeResult:S2(309),decodeSuccess:e=>fu(e,"binding.http.workflows.v1","schema.application.retained.workflows.result",1,["completed","cancelled","timed_out","failed","unavailable","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(309))},{operation:"application_worktree_cleanup_confirm",operationId:"operation.application.worktree_cleanup_confirm",transport:{kind:"http",route:"/application/native-integration/worktree_cleanup_confirm",method:"POST"},effect:"preview",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.worktree_cleanup_confirm.v1",requestSchema:{schemaId:"schema.application.native-integration.worktree-cleanup-confirm.request",revision:1},resultSchema:{schemaId:"schema.application.native-integration.worktree-cleanup-confirm.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:3e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","partial"],decodeRequest:S2(310),decodeResult:S2(15),decodeSuccess:e=>fu(e,"binding.http.worktree_cleanup_confirm.v1","schema.application.native-integration.worktree-cleanup-confirm.result",1,["completed","cancelled","timed_out","failed","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(15))},{operation:"application_worktree_cleanup_inspect",operationId:"operation.application.worktree_cleanup_inspect",transport:{kind:"http",route:"/application/native-integration/worktree_cleanup_inspect",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.worktree_cleanup_inspect.v1",requestSchema:{schemaId:"schema.application.native-integration.worktree-cleanup-inspect.request",revision:1},resultSchema:{schemaId:"schema.application.native-integration.worktree-cleanup-inspect.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:3e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","partial"],decodeRequest:S2(311),decodeResult:S2(15),decodeSuccess:e=>fu(e,"binding.http.worktree_cleanup_inspect.v1","schema.application.native-integration.worktree-cleanup-inspect.result",1,["completed","cancelled","timed_out","failed","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(15))},{operation:"application_worktree_cleanup_reconcile",operationId:"operation.application.worktree_cleanup_reconcile",transport:{kind:"http",route:"/application/native-integration/worktree_cleanup_reconcile",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.worktree_cleanup_reconcile.v1",requestSchema:{schemaId:"schema.application.native-integration.worktree-cleanup-reconcile.request",revision:1},resultSchema:{schemaId:"schema.application.native-integration.worktree-cleanup-reconcile.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:3e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","partial"],decodeRequest:S2(312),decodeResult:S2(15),decodeSuccess:e=>fu(e,"binding.http.worktree_cleanup_reconcile.v1","schema.application.native-integration.worktree-cleanup-reconcile.result",1,["completed","cancelled","timed_out","failed","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(15))},{operation:"application_worktree_cleanup_remove",operationId:"operation.application.worktree_cleanup_remove",transport:{kind:"http",route:"/application/native-integration/worktree_cleanup_remove",method:"POST"},effect:"administrative",idempotency:"required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.worktree_cleanup_remove.v1",requestSchema:{schemaId:"schema.application.native-integration.worktree-cleanup-remove.request",revision:1},resultSchema:{schemaId:"schema.application.native-integration.worktree-cleanup-remove.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_effect","effect_in_flight","after_commit"]},deadline:{behavior:"return_effect_receipt",maximum_millis:3e4},reconciliation:"required",receipt:"durable_effect",terminalStates:["completed","cancelled","timed_out","failed","effect_unknown","partial"],decodeRequest:S2(313),decodeResult:S2(15),decodeSuccess:e=>fu(e,"binding.http.worktree_cleanup_remove.v1","schema.application.native-integration.worktree-cleanup-remove.result",1,["completed","cancelled","timed_out","failed","effect_unknown","partial"],{mode:"cooperative",points:["before_admission","before_effect","effect_in_flight","after_commit"]},"durable_effect","required",S2(15))},{operation:"application_worktree_inventory",operationId:"operation.application.worktree_inventory",transport:{kind:"http",route:"/application/native-integration/worktree_inventory",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.worktree_inventory.v1",requestSchema:{schemaId:"schema.application.native-integration.worktree-inventory.request",revision:1},resultSchema:{schemaId:"schema.application.native-integration.worktree-inventory.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:3e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","partial"],decodeRequest:S2(314),decodeResult:S2(15),decodeSuccess:e=>fu(e,"binding.http.worktree_inventory.v1","schema.application.native-integration.worktree-inventory.result",1,["completed","cancelled","timed_out","failed","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(15))},{operation:"handoff_issue_task_handoff",operationId:"operation.handoff.issue_task_handoff",transport:{kind:"http",route:"/application/handoff/issue-task",method:"POST"},effect:"administrative",idempotency:"required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.handoff.issue_task_handoff",requestSchema:{schemaId:"schema.handoff.issue_task_handoff.request",revision:1},resultSchema:{schemaId:"schema.handoff.issue_task_handoff.result",revision:1},cancellation:{mode:"not_cancellable"},deadline:{behavior:"return_effect_receipt",maximum_millis:3e4},reconciliation:"required",receipt:"durable_effect",terminalStates:["completed","timed_out","failed","effect_unknown","partial"],decodeRequest:S2(315),decodeResult:S2(316),decodeSuccess:e=>fu(e,"binding.http.handoff.issue_task_handoff","schema.handoff.issue_task_handoff.result",1,["completed","timed_out","failed","effect_unknown","partial"],{mode:"not_cancellable"},"durable_effect","required",S2(316))},{operation:"handoff_list_task_handoffs",operationId:"operation.handoff.list_task_handoffs",transport:{kind:"http",route:"/application/handoff/list-task",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.handoff.list_task_handoffs",requestSchema:{schemaId:"schema.handoff.list_task_handoffs.request",revision:1},resultSchema:{schemaId:"schema.handoff.list_task_handoffs.result",revision:1},cancellation:{mode:"not_cancellable"},deadline:{behavior:"return_operation_receipt",maximum_millis:3e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","timed_out","failed","partial"],decodeRequest:S2(317),decodeResult:S2(318),decodeSuccess:e=>fu(e,"binding.http.handoff.list_task_handoffs","schema.handoff.list_task_handoffs.result",1,["completed","timed_out","failed","partial"],{mode:"not_cancellable"},"operation","not_required",S2(318))},{operation:"handoff_open_investigation_handoff",operationId:"operation.handoff.open_investigation_handoff",transport:{kind:"http",route:"/application/handoff/open-investigation",method:"POST"},effect:"administrative",idempotency:"required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.handoff.open_investigation_handoff",requestSchema:{schemaId:"schema.handoff.open_investigation_handoff.request",revision:1},resultSchema:{schemaId:"schema.handoff.open_investigation_handoff.result",revision:1},cancellation:{mode:"not_cancellable"},deadline:{behavior:"return_effect_receipt",maximum_millis:3e4},reconciliation:"required",receipt:"durable_effect",terminalStates:["completed","timed_out","failed","effect_unknown","partial"],decodeRequest:S2(319),decodeResult:S2(320),decodeSuccess:e=>fu(e,"binding.http.handoff.open_investigation_handoff","schema.handoff.open_investigation_handoff.result",1,["completed","timed_out","failed","effect_unknown","partial"],{mode:"not_cancellable"},"durable_effect","required",S2(320))},{operation:"handoff_open_task_handoff",operationId:"operation.handoff.open_task_handoff",transport:{kind:"http",route:"/application/handoff/open-task",method:"POST"},effect:"administrative",idempotency:"required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.handoff.open_task_handoff",requestSchema:{schemaId:"schema.handoff.open_task_handoff.request",revision:1},resultSchema:{schemaId:"schema.handoff.open_task_handoff.result",revision:1},cancellation:{mode:"not_cancellable"},deadline:{behavior:"return_effect_receipt",maximum_millis:3e4},reconciliation:"required",receipt:"durable_effect",terminalStates:["completed","timed_out","failed","effect_unknown","partial"],decodeRequest:S2(321),decodeResult:S2(322),decodeSuccess:e=>fu(e,"binding.http.handoff.open_task_handoff","schema.handoff.open_task_handoff.result",1,["completed","timed_out","failed","effect_unknown","partial"],{mode:"not_cancellable"},"durable_effect","required",S2(322))},{operation:"multi_root_execute",operationId:"operation.multi_root.execute",transport:{kind:"http",route:"/application/multi-root/execute",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.multi_root.execute.v1",requestSchema:{schemaId:"schema.tracedecay.multi-root.execute-request.v1",revision:1},resultSchema:{schemaId:"schema.tracedecay.multi-root.execute-result.v1",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:3e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","partial"],decodeRequest:S2(323),decodeResult:S2(324),decodeSuccess:e=>fu(e,"binding.http.multi_root.execute.v1","schema.tracedecay.multi-root.execute-result.v1",1,["completed","cancelled","timed_out","failed","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(324))},{operation:"multi_root_scope_set_compare_and_swap",operationId:"operation.multi_root.scope_set_compare_and_swap",transport:{kind:"http",route:"/application/multi-root/scope-set/compare-and-swap",method:"POST"},effect:"administrative",idempotency:"required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.multi_root.scope_set_compare_and_swap.v1",requestSchema:{schemaId:"schema.tracedecay.multi-root.scope-set-compare-and-swap-request.v1",revision:1},resultSchema:{schemaId:"schema.tracedecay.multi-root.scope-set-compare-and-swap-result.v1",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_effect","effect_in_flight","after_commit"]},deadline:{behavior:"return_effect_receipt",maximum_millis:3e4},reconciliation:"required",receipt:"durable_effect",terminalStates:["completed","cancelled","timed_out","failed","effect_unknown","partial"],decodeRequest:S2(325),decodeResult:S2(326),decodeSuccess:e=>fu(e,"binding.http.multi_root.scope_set_compare_and_swap.v1","schema.tracedecay.multi-root.scope-set-compare-and-swap-result.v1",1,["completed","cancelled","timed_out","failed","effect_unknown","partial"],{mode:"cooperative",points:["before_admission","before_effect","effect_in_flight","after_commit"]},"durable_effect","required",S2(326))},{operation:"multi_root_scope_set_read",operationId:"operation.multi_root.scope_set_read",transport:{kind:"http",route:"/application/multi-root/scope-set/read",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.multi_root.scope_set_read.v1",requestSchema:{schemaId:"schema.tracedecay.multi-root.scope-set-read-request.v1",revision:1},resultSchema:{schemaId:"schema.tracedecay.multi-root.scope-set-read-result.v1",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:3e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","partial"],decodeRequest:S2(327),decodeResult:S2(328),decodeSuccess:e=>fu(e,"binding.http.multi_root.scope_set_read.v1","schema.tracedecay.multi-root.scope-set-read-result.v1",1,["completed","cancelled","timed_out","failed","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(328))},{operation:"work_accept_proposal",operationId:"operation.work.accept_proposal",transport:{kind:"http",route:"/application/work/accept-proposal",method:"POST"},effect:"administrative",idempotency:"required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.work.accept_proposal",requestSchema:{schemaId:"schema.work.accept_proposal.request",revision:1},resultSchema:{schemaId:"schema.work.accept_proposal.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_effect","effect_in_flight","after_commit"]},deadline:{behavior:"return_effect_receipt",maximum_millis:3e4},reconciliation:"required",receipt:"durable_effect",terminalStates:["completed","cancelled","timed_out","failed","effect_unknown","partial"],decodeRequest:S2(329),decodeResult:S2(330),decodeSuccess:e=>fu(e,"binding.http.work.accept_proposal","schema.work.accept_proposal.result",1,["completed","cancelled","timed_out","failed","effect_unknown","partial"],{mode:"cooperative",points:["before_admission","before_effect","effect_in_flight","after_commit"]},"durable_effect","required",S2(330))},{operation:"work_adjudicate_duplicate",operationId:"operation.work.adjudicate_duplicate",transport:{kind:"http",route:"/application/work/adjudicate-duplicate",method:"POST"},effect:"administrative",idempotency:"required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.work.adjudicate_duplicate",requestSchema:{schemaId:"schema.work.adjudicate_duplicate.request",revision:1},resultSchema:{schemaId:"schema.work.adjudicate_duplicate.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_effect","effect_in_flight","after_commit"]},deadline:{behavior:"return_effect_receipt",maximum_millis:3e4},reconciliation:"required",receipt:"durable_effect",terminalStates:["completed","cancelled","timed_out","failed","effect_unknown","partial"],decodeRequest:S2(331),decodeResult:S2(332),decodeSuccess:e=>fu(e,"binding.http.work.adjudicate_duplicate","schema.work.adjudicate_duplicate.result",1,["completed","cancelled","timed_out","failed","effect_unknown","partial"],{mode:"cooperative",points:["before_admission","before_effect","effect_in_flight","after_commit"]},"durable_effect","required",S2(332))},{operation:"work_adjudicate_leak",operationId:"operation.work.adjudicate_leak",transport:{kind:"http",route:"/application/work/adjudicate-leak",method:"POST"},effect:"administrative",idempotency:"required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.work.adjudicate_leak",requestSchema:{schemaId:"schema.work.adjudicate_leak.request",revision:1},resultSchema:{schemaId:"schema.work.adjudicate_leak.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_effect","effect_in_flight","after_commit"]},deadline:{behavior:"return_effect_receipt",maximum_millis:3e4},reconciliation:"required",receipt:"durable_effect",terminalStates:["completed","cancelled","timed_out","failed","effect_unknown","partial"],decodeRequest:S2(333),decodeResult:S2(334),decodeSuccess:e=>fu(e,"binding.http.work.adjudicate_leak","schema.work.adjudicate_leak.result",1,["completed","cancelled","timed_out","failed","effect_unknown","partial"],{mode:"cooperative",points:["before_admission","before_effect","effect_in_flight","after_commit"]},"durable_effect","required",S2(334))},{operation:"work_admit_execution",operationId:"operation.work.admit_execution",transport:{kind:"http",route:"/application/work/admit-execution",method:"POST"},effect:"administrative",idempotency:"required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.work.admit_execution",requestSchema:{schemaId:"schema.work.admit_execution.request",revision:1},resultSchema:{schemaId:"schema.work.admit_execution.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_effect","effect_in_flight","after_commit"]},deadline:{behavior:"return_effect_receipt",maximum_millis:3e4},reconciliation:"required",receipt:"durable_effect",terminalStates:["completed","cancelled","timed_out","failed","effect_unknown","partial"],decodeRequest:S2(335),decodeResult:S2(336),decodeSuccess:e=>fu(e,"binding.http.work.admit_execution","schema.work.admit_execution.result",1,["completed","cancelled","timed_out","failed","effect_unknown","partial"],{mode:"cooperative",points:["before_admission","before_effect","effect_in_flight","after_commit"]},"durable_effect","required",S2(336))},{operation:"work_admit_placement",operationId:"operation.work.admit_placement",transport:{kind:"http",route:"/application/work/admit-placement",method:"POST"},effect:"administrative",idempotency:"required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.work.admit_placement",requestSchema:{schemaId:"schema.work.admit_placement.request",revision:1},resultSchema:{schemaId:"schema.work.admit_placement.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_effect","effect_in_flight","after_commit"]},deadline:{behavior:"return_effect_receipt",maximum_millis:3e4},reconciliation:"required",receipt:"durable_effect",terminalStates:["completed","cancelled","timed_out","failed","effect_unknown","partial"],decodeRequest:S2(337),decodeResult:S2(338),decodeSuccess:e=>fu(e,"binding.http.work.admit_placement","schema.work.admit_placement.result",1,["completed","cancelled","timed_out","failed","effect_unknown","partial"],{mode:"cooperative",points:["before_admission","before_effect","effect_in_flight","after_commit"]},"durable_effect","required",S2(338))},{operation:"work_advance_job",operationId:"operation.work.advance_job",transport:{kind:"http",route:"/application/work/advance-job",method:"POST"},effect:"administrative",idempotency:"required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.work.advance_job",requestSchema:{schemaId:"schema.work.advance_job.request",revision:1},resultSchema:{schemaId:"schema.work.advance_job.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_effect","effect_in_flight","after_commit"]},deadline:{behavior:"return_effect_receipt",maximum_millis:3e4},reconciliation:"required",receipt:"durable_effect",terminalStates:["completed","cancelled","timed_out","failed","effect_unknown","partial"],decodeRequest:S2(339),decodeResult:S2(340),decodeSuccess:e=>fu(e,"binding.http.work.advance_job","schema.work.advance_job.result",1,["completed","cancelled","timed_out","failed","effect_unknown","partial"],{mode:"cooperative",points:["before_admission","before_effect","effect_in_flight","after_commit"]},"durable_effect","required",S2(340))},{operation:"work_attempt_status",operationId:"operation.work.attempt_status",transport:{kind:"http",route:"/application/work/attempt-status",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.work.attempt_status",requestSchema:{schemaId:"schema.work.attempt_status.request",revision:1},resultSchema:{schemaId:"schema.work.attempt_status.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:3e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","partial"],decodeRequest:S2(341),decodeResult:S2(342),decodeSuccess:e=>fu(e,"binding.http.work.attempt_status","schema.work.attempt_status.result",1,["completed","cancelled","timed_out","failed","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(342))},{operation:"work_cancel_attempt",operationId:"operation.work.cancel_attempt",transport:{kind:"http",route:"/application/work/cancel-attempt",method:"POST"},effect:"administrative",idempotency:"required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.work.cancel_attempt",requestSchema:{schemaId:"schema.work.cancel_attempt.request",revision:1},resultSchema:{schemaId:"schema.work.cancel_attempt.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_effect","effect_in_flight","after_commit"]},deadline:{behavior:"return_effect_receipt",maximum_millis:3e4},reconciliation:"required",receipt:"durable_effect",terminalStates:["completed","cancelled","timed_out","failed","effect_unknown","partial"],decodeRequest:S2(343),decodeResult:S2(342),decodeSuccess:e=>fu(e,"binding.http.work.cancel_attempt","schema.work.cancel_attempt.result",1,["completed","cancelled","timed_out","failed","effect_unknown","partial"],{mode:"cooperative",points:["before_admission","before_effect","effect_in_flight","after_commit"]},"durable_effect","required",S2(342))},{operation:"work_compare_proposal",operationId:"operation.work.compare_proposal",transport:{kind:"http",route:"/application/work/compare-proposal",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.work.compare_proposal",requestSchema:{schemaId:"schema.work.compare_proposal.request",revision:1},resultSchema:{schemaId:"schema.work.compare_proposal.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:3e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","partial"],decodeRequest:S2(344),decodeResult:S2(345),decodeSuccess:e=>fu(e,"binding.http.work.compare_proposal","schema.work.compare_proposal.result",1,["completed","cancelled","timed_out","failed","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(345))},{operation:"work_create",operationId:"operation.work.create",transport:{kind:"http",route:"/application/work/create",method:"POST"},effect:"administrative",idempotency:"required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.work.create",requestSchema:{schemaId:"schema.work.create.request",revision:1},resultSchema:{schemaId:"schema.work.create.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_effect","effect_in_flight","after_commit"]},deadline:{behavior:"return_effect_receipt",maximum_millis:3e4},reconciliation:"required",receipt:"durable_effect",terminalStates:["completed","cancelled","timed_out","failed","effect_unknown","partial"],decodeRequest:S2(346),decodeResult:S2(330),decodeSuccess:e=>fu(e,"binding.http.work.create","schema.work.create.result",1,["completed","cancelled","timed_out","failed","effect_unknown","partial"],{mode:"cooperative",points:["before_admission","before_effect","effect_in_flight","after_commit"]},"durable_effect","required",S2(330))},{operation:"work_execution_history",operationId:"operation.work.execution_history",transport:{kind:"http",route:"/application/work/execution-history",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.work.execution_history",requestSchema:{schemaId:"schema.work.execution_history.request",revision:1},resultSchema:{schemaId:"schema.work.execution_history.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:3e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","partial"],decodeRequest:S2(347),decodeResult:S2(348),decodeSuccess:e=>fu(e,"binding.http.work.execution_history","schema.work.execution_history.result",1,["completed","cancelled","timed_out","failed","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(348))},{operation:"work_experience",operationId:"operation.work.experience",transport:{kind:"http",route:"/application/work/experience",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.work.experience",requestSchema:{schemaId:"schema.work.experience.request",revision:1},resultSchema:{schemaId:"schema.work.experience.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:3e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","partial"],decodeRequest:S2(349),decodeResult:S2(350),decodeSuccess:e=>fu(e,"binding.http.work.experience","schema.work.experience.result",1,["completed","cancelled","timed_out","failed","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(350))},{operation:"work_generate_proposal",operationId:"operation.work.generate_proposal",transport:{kind:"http",route:"/application/work/generate-proposal",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.work.generate_proposal",requestSchema:{schemaId:"schema.work.generate_proposal.request",revision:1},resultSchema:{schemaId:"schema.work.generate_proposal.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:3e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","partial"],decodeRequest:S2(351),decodeResult:S2(352),decodeSuccess:e=>fu(e,"binding.http.work.generate_proposal","schema.work.generate_proposal.result",1,["completed","cancelled","timed_out","failed","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(352))},{operation:"work_hydrate_artifacts",operationId:"operation.work.hydrate_artifacts",transport:{kind:"http",route:"/application/work/hydrate-artifacts",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.work.hydrate_artifacts",requestSchema:{schemaId:"schema.work.hydrate_artifacts.request",revision:1},resultSchema:{schemaId:"schema.work.hydrate_artifacts.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:3e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","partial"],decodeRequest:S2(353),decodeResult:S2(354),decodeSuccess:e=>fu(e,"binding.http.work.hydrate_artifacts","schema.work.hydrate_artifacts.result",1,["completed","cancelled","timed_out","failed","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(354))},{operation:"work_list_attempts",operationId:"operation.work.list_attempts",transport:{kind:"http",route:"/application/work/list-attempts",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.work.list_attempts",requestSchema:{schemaId:"schema.work.list_attempts.request",revision:1},resultSchema:{schemaId:"schema.work.list_attempts.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:3e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","partial"],decodeRequest:S2(347),decodeResult:S2(355),decodeSuccess:e=>fu(e,"binding.http.work.list_attempts","schema.work.list_attempts.result",1,["completed","cancelled","timed_out","failed","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(355))},{operation:"work_mutate_graph",operationId:"operation.work.mutate_graph",transport:{kind:"http",route:"/application/work/mutate-graph",method:"POST"},effect:"administrative",idempotency:"required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.work.mutate_graph",requestSchema:{schemaId:"schema.work.mutate_graph.request",revision:1},resultSchema:{schemaId:"schema.work.mutate_graph.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_effect","effect_in_flight","after_commit"]},deadline:{behavior:"return_effect_receipt",maximum_millis:3e4},reconciliation:"required",receipt:"durable_effect",terminalStates:["completed","cancelled","timed_out","failed","effect_unknown","partial"],decodeRequest:S2(356),decodeResult:S2(330),decodeSuccess:e=>fu(e,"binding.http.work.mutate_graph","schema.work.mutate_graph.result",1,["completed","cancelled","timed_out","failed","effect_unknown","partial"],{mode:"cooperative",points:["before_admission","before_effect","effect_in_flight","after_commit"]},"durable_effect","required",S2(330))},{operation:"work_pause_run",operationId:"operation.work.pause_run",transport:{kind:"http",route:"/application/work/pause-run",method:"POST"},effect:"administrative",idempotency:"required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.work.pause_run",requestSchema:{schemaId:"schema.work.pause_run.request",revision:1},resultSchema:{schemaId:"schema.work.pause_run.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_effect","effect_in_flight","after_commit"]},deadline:{behavior:"return_effect_receipt",maximum_millis:3e4},reconciliation:"required",receipt:"durable_effect",terminalStates:["completed","cancelled","timed_out","failed","effect_unknown","partial"],decodeRequest:S2(357),decodeResult:S2(358),decodeSuccess:e=>fu(e,"binding.http.work.pause_run","schema.work.pause_run.result",1,["completed","cancelled","timed_out","failed","effect_unknown","partial"],{mode:"cooperative",points:["before_admission","before_effect","effect_in_flight","after_commit"]},"durable_effect","required",S2(358))},{operation:"work_placement_preflight",operationId:"operation.work.placement_preflight",transport:{kind:"http",route:"/application/work/placement-preflight",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.work.placement_preflight",requestSchema:{schemaId:"schema.work.placement_preflight.request",revision:1},resultSchema:{schemaId:"schema.work.placement_preflight.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:3e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","partial"],decodeRequest:S2(359),decodeResult:S2(360),decodeSuccess:e=>fu(e,"binding.http.work.placement_preflight","schema.work.placement_preflight.result",1,["completed","cancelled","timed_out","failed","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(360))},{operation:"work_placement_status",operationId:"operation.work.placement_status",transport:{kind:"http",route:"/application/work/placement-status",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.work.placement_status",requestSchema:{schemaId:"schema.work.placement_status.request",revision:1},resultSchema:{schemaId:"schema.work.placement_status.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:3e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","partial"],decodeRequest:S2(361),decodeResult:S2(362),decodeSuccess:e=>fu(e,"binding.http.work.placement_status","schema.work.placement_status.result",1,["completed","cancelled","timed_out","failed","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(362))},{operation:"work_prepare_duplicate_adjudication",operationId:"operation.work.prepare_duplicate_adjudication",transport:{kind:"http",route:"/application/work/prepare-duplicate-adjudication",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.work.prepare_duplicate_adjudication",requestSchema:{schemaId:"schema.work.prepare_duplicate_adjudication.request",revision:1},resultSchema:{schemaId:"schema.work.prepare_duplicate_adjudication.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:3e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","partial"],decodeRequest:S2(363),decodeResult:S2(331),decodeSuccess:e=>fu(e,"binding.http.work.prepare_duplicate_adjudication","schema.work.prepare_duplicate_adjudication.result",1,["completed","cancelled","timed_out","failed","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(331))},{operation:"work_prepare_graph_mutation",operationId:"operation.work.prepare_graph_mutation",transport:{kind:"http",route:"/application/work/prepare-graph-mutation",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.work.prepare_graph_mutation",requestSchema:{schemaId:"schema.work.prepare_graph_mutation.request",revision:1},resultSchema:{schemaId:"schema.work.prepare_graph_mutation.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:3e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","partial"],decodeRequest:S2(364),decodeResult:S2(356),decodeSuccess:e=>fu(e,"binding.http.work.prepare_graph_mutation","schema.work.prepare_graph_mutation.result",1,["completed","cancelled","timed_out","failed","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(356))},{operation:"work_release_placement",operationId:"operation.work.release_placement",transport:{kind:"http",route:"/application/work/release-placement",method:"POST"},effect:"administrative",idempotency:"required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.work.release_placement",requestSchema:{schemaId:"schema.work.release_placement.request",revision:1},resultSchema:{schemaId:"schema.work.release_placement.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_effect","effect_in_flight","after_commit"]},deadline:{behavior:"return_effect_receipt",maximum_millis:3e4},reconciliation:"required",receipt:"durable_effect",terminalStates:["completed","cancelled","timed_out","failed","effect_unknown","partial"],decodeRequest:S2(365),decodeResult:S2(338),decodeSuccess:e=>fu(e,"binding.http.work.release_placement","schema.work.release_placement.result",1,["completed","cancelled","timed_out","failed","effect_unknown","partial"],{mode:"cooperative",points:["before_admission","before_effect","effect_in_flight","after_commit"]},"durable_effect","required",S2(338))},{operation:"work_resume_attempts",operationId:"operation.work.resume_attempts",transport:{kind:"http",route:"/application/work/resume-attempts",method:"POST"},effect:"administrative",idempotency:"required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.work.resume_attempts",requestSchema:{schemaId:"schema.work.resume_attempts.request",revision:1},resultSchema:{schemaId:"schema.work.resume_attempts.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_effect","effect_in_flight","after_commit"]},deadline:{behavior:"return_effect_receipt",maximum_millis:3e4},reconciliation:"required",receipt:"durable_effect",terminalStates:["completed","cancelled","timed_out","failed","effect_unknown","partial"],decodeRequest:S2(366),decodeResult:S2(367),decodeSuccess:e=>fu(e,"binding.http.work.resume_attempts","schema.work.resume_attempts.result",1,["completed","cancelled","timed_out","failed","effect_unknown","partial"],{mode:"cooperative",points:["before_admission","before_effect","effect_in_flight","after_commit"]},"durable_effect","required",S2(367))},{operation:"work_resume_run",operationId:"operation.work.resume_run",transport:{kind:"http",route:"/application/work/resume-run",method:"POST"},effect:"administrative",idempotency:"required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.work.resume_run",requestSchema:{schemaId:"schema.work.resume_run.request",revision:1},resultSchema:{schemaId:"schema.work.resume_run.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_effect","effect_in_flight","after_commit"]},deadline:{behavior:"return_effect_receipt",maximum_millis:3e4},reconciliation:"required",receipt:"durable_effect",terminalStates:["completed","cancelled","timed_out","failed","effect_unknown","partial"],decodeRequest:S2(368),decodeResult:S2(358),decodeSuccess:e=>fu(e,"binding.http.work.resume_run","schema.work.resume_run.result",1,["completed","cancelled","timed_out","failed","effect_unknown","partial"],{mode:"cooperative",points:["before_admission","before_effect","effect_in_flight","after_commit"]},"durable_effect","required",S2(358))},{operation:"work_retrieve_evidence",operationId:"operation.work.retrieve_evidence",transport:{kind:"http",route:"/application/work/retrieve-evidence",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.work.retrieve_evidence",requestSchema:{schemaId:"schema.work.retrieve_evidence.request",revision:1},resultSchema:{schemaId:"schema.work.retrieve_evidence.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:3e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","partial"],decodeRequest:S2(369),decodeResult:S2(370),decodeSuccess:e=>fu(e,"binding.http.work.retrieve_evidence","schema.work.retrieve_evidence.result",1,["completed","cancelled","timed_out","failed","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(370))},{operation:"work_retry_attempt",operationId:"operation.work.retry_attempt",transport:{kind:"http",route:"/application/work/retry-attempt",method:"POST"},effect:"administrative",idempotency:"required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.work.retry_attempt",requestSchema:{schemaId:"schema.work.retry_attempt.request",revision:1},resultSchema:{schemaId:"schema.work.retry_attempt.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_effect","effect_in_flight","after_commit"]},deadline:{behavior:"return_effect_receipt",maximum_millis:3e4},reconciliation:"required",receipt:"durable_effect",terminalStates:["completed","cancelled","timed_out","failed","effect_unknown","partial"],decodeRequest:S2(371),decodeResult:S2(372),decodeSuccess:e=>fu(e,"binding.http.work.retry_attempt","schema.work.retry_attempt.result",1,["completed","cancelled","timed_out","failed","effect_unknown","partial"],{mode:"cooperative",points:["before_admission","before_effect","effect_in_flight","after_commit"]},"durable_effect","required",S2(372))},{operation:"work_review_proposal",operationId:"operation.work.review_proposal",transport:{kind:"http",route:"/application/work/review-proposal",method:"POST"},effect:"administrative",idempotency:"required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.work.review_proposal",requestSchema:{schemaId:"schema.work.review_proposal.request",revision:1},resultSchema:{schemaId:"schema.work.review_proposal.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_effect","effect_in_flight","after_commit"]},deadline:{behavior:"return_effect_receipt",maximum_millis:3e4},reconciliation:"required",receipt:"durable_effect",terminalStates:["completed","cancelled","timed_out","failed","effect_unknown","partial"],decodeRequest:S2(373),decodeResult:S2(330),decodeSuccess:e=>fu(e,"binding.http.work.review_proposal","schema.work.review_proposal.result",1,["completed","cancelled","timed_out","failed","effect_unknown","partial"],{mode:"cooperative",points:["before_admission","before_effect","effect_in_flight","after_commit"]},"durable_effect","required",S2(330))},{operation:"work_run_control",operationId:"operation.work.run_control",transport:{kind:"http",route:"/application/work/run-control",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.work.run_control",requestSchema:{schemaId:"schema.work.run_control.request",revision:1},resultSchema:{schemaId:"schema.work.run_control.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:3e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","partial"],decodeRequest:S2(374),decodeResult:S2(375),decodeSuccess:e=>fu(e,"binding.http.work.run_control","schema.work.run_control.result",1,["completed","cancelled","timed_out","failed","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(375))},{operation:"work_start_attempt",operationId:"operation.work.start_attempt",transport:{kind:"http",route:"/application/work/start-attempt",method:"POST"},effect:"administrative",idempotency:"required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.work.start_attempt",requestSchema:{schemaId:"schema.work.start_attempt.request",revision:1},resultSchema:{schemaId:"schema.work.start_attempt.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_effect","effect_in_flight","after_commit"]},deadline:{behavior:"return_effect_receipt",maximum_millis:3e4},reconciliation:"required",receipt:"durable_effect",terminalStates:["completed","cancelled","timed_out","failed","effect_unknown","partial"],decodeRequest:S2(376),decodeResult:S2(342),decodeSuccess:e=>fu(e,"binding.http.work.start_attempt","schema.work.start_attempt.result",1,["completed","cancelled","timed_out","failed","effect_unknown","partial"],{mode:"cooperative",points:["before_admission","before_effect","effect_in_flight","after_commit"]},"durable_effect","required",S2(342))},{operation:"work_synthesize",operationId:"operation.work.synthesize",transport:{kind:"http",route:"/application/work/synthesize",method:"POST"},effect:"administrative",idempotency:"required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.work.synthesize",requestSchema:{schemaId:"schema.work.synthesize.request",revision:1},resultSchema:{schemaId:"schema.work.synthesize.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_effect","effect_in_flight","after_commit"]},deadline:{behavior:"return_effect_receipt",maximum_millis:3e4},reconciliation:"required",receipt:"durable_effect",terminalStates:["completed","cancelled","timed_out","failed","effect_unknown","partial"],decodeRequest:S2(377),decodeResult:S2(378),decodeSuccess:e=>fu(e,"binding.http.work.synthesize","schema.work.synthesize.result",1,["completed","cancelled","timed_out","failed","effect_unknown","partial"],{mode:"cooperative",points:["before_admission","before_effect","effect_in_flight","after_commit"]},"durable_effect","required",S2(378))},{operation:"work_topology",operationId:"operation.work.topology",transport:{kind:"http",route:"/application/work/topology",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.work.topology",requestSchema:{schemaId:"schema.work.topology.request",revision:1},resultSchema:{schemaId:"schema.work.topology.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:3e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","partial"],decodeRequest:S2(379),decodeResult:S2(380),decodeSuccess:e=>fu(e,"binding.http.work.topology","schema.work.topology.result",1,["completed","cancelled","timed_out","failed","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(380))},{operation:"work_topology_metrics",operationId:"operation.work.topology_metrics",transport:{kind:"http",route:"/application/work/topology-metrics",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.work.topology_metrics",requestSchema:{schemaId:"schema.work.topology_metrics.request",revision:1},resultSchema:{schemaId:"schema.work.topology_metrics.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:3e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","partial"],decodeRequest:S2(381),decodeResult:S2(382),decodeSuccess:e=>fu(e,"binding.http.work.topology_metrics","schema.work.topology_metrics.result",1,["completed","cancelled","timed_out","failed","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(382))},{operation:"work_views",operationId:"operation.work.views",transport:{kind:"http",route:"/application/work/views",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.work.views",requestSchema:{schemaId:"schema.work.views.request",revision:1},resultSchema:{schemaId:"schema.work.views.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:3e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","partial"],decodeRequest:S2(383),decodeResult:S2(384),decodeSuccess:e=>fu(e,"binding.http.work.views","schema.work.views.result",1,["completed","cancelled","timed_out","failed","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(384))},{operation:"workflow_activate_definition",operationId:"operation.workflow.activate_definition",transport:{kind:"http",route:"/application/workflow/activate-definition",method:"POST"},effect:"administrative",idempotency:"required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.workflow.activate_definition",requestSchema:{schemaId:"schema.workflow.activate_definition.request",revision:1},resultSchema:{schemaId:"schema.workflow.activate_definition.result",revision:1},cancellation:{mode:"not_cancellable"},deadline:{behavior:"return_effect_receipt",maximum_millis:3e4},reconciliation:"required",receipt:"durable_effect",terminalStates:["completed","timed_out","failed","effect_unknown","partial"],decodeRequest:S2(385),decodeResult:S2(386),decodeSuccess:e=>fu(e,"binding.http.workflow.activate_definition","schema.workflow.activate_definition.result",1,["completed","timed_out","failed","effect_unknown","partial"],{mode:"not_cancellable"},"durable_effect","required",S2(386))},{operation:"workflow_cancel_run",operationId:"operation.workflow.cancel_run",transport:{kind:"http",route:"/application/workflow/cancel-run",method:"POST"},effect:"administrative",idempotency:"required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.workflow.cancel_run",requestSchema:{schemaId:"schema.workflow.cancel_run.request",revision:1},resultSchema:{schemaId:"schema.workflow.cancel_run.result",revision:1},cancellation:{mode:"not_cancellable"},deadline:{behavior:"return_effect_receipt",maximum_millis:3e4},reconciliation:"required",receipt:"durable_effect",terminalStates:["completed","timed_out","failed","effect_unknown","partial"],decodeRequest:S2(387),decodeResult:S2(388),decodeSuccess:e=>fu(e,"binding.http.workflow.cancel_run","schema.workflow.cancel_run.result",1,["completed","timed_out","failed","effect_unknown","partial"],{mode:"not_cancellable"},"durable_effect","required",S2(388))},{operation:"workflow_definition_history",operationId:"operation.workflow.definition_history",transport:{kind:"http",route:"/application/workflow/definition-history",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.workflow.definition_history",requestSchema:{schemaId:"schema.workflow.definition_history.request",revision:1},resultSchema:{schemaId:"schema.workflow.definition_history.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:3e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","partial"],decodeRequest:S2(389),decodeResult:S2(390),decodeSuccess:e=>fu(e,"binding.http.workflow.definition_history","schema.workflow.definition_history.result",1,["completed","cancelled","timed_out","failed","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(390))},{operation:"workflow_diff_definition",operationId:"operation.workflow.diff_definition",transport:{kind:"http",route:"/application/workflow/diff-definition",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.workflow.diff_definition",requestSchema:{schemaId:"schema.workflow.diff_definition.request",revision:1},resultSchema:{schemaId:"schema.workflow.diff_definition.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:3e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","partial"],decodeRequest:S2(391),decodeResult:S2(392),decodeSuccess:e=>fu(e,"binding.http.workflow.diff_definition","schema.workflow.diff_definition.result",1,["completed","cancelled","timed_out","failed","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(392))},{operation:"workflow_get_definition",operationId:"operation.workflow.get_definition",transport:{kind:"http",route:"/application/workflow/get-definition",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.workflow.get_definition",requestSchema:{schemaId:"schema.workflow.get_definition.request",revision:1},resultSchema:{schemaId:"schema.workflow.get_definition.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:3e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","partial"],decodeRequest:S2(393),decodeResult:S2(394),decodeSuccess:e=>fu(e,"binding.http.workflow.get_definition","schema.workflow.get_definition.result",1,["completed","cancelled","timed_out","failed","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(394))},{operation:"workflow_get_run",operationId:"operation.workflow.get_run",transport:{kind:"http",route:"/application/workflow/get-run",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.workflow.get_run",requestSchema:{schemaId:"schema.workflow.get_run.request",revision:1},resultSchema:{schemaId:"schema.workflow.get_run.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:3e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","partial"],decodeRequest:S2(395),decodeResult:S2(388),decodeSuccess:e=>fu(e,"binding.http.workflow.get_run","schema.workflow.get_run.result",1,["completed","cancelled","timed_out","failed","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(388))},{operation:"workflow_handoff_issue",operationId:"operation.workflow.handoff_issue",transport:{kind:"http",route:"/application/workflow/handoff-issue",method:"POST"},effect:"administrative",idempotency:"required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.workflow.handoff_issue",requestSchema:{schemaId:"schema.workflow.handoff_issue.request",revision:1},resultSchema:{schemaId:"schema.workflow.handoff_issue.result",revision:1},cancellation:{mode:"not_cancellable"},deadline:{behavior:"return_effect_receipt",maximum_millis:3e4},reconciliation:"required",receipt:"durable_effect",terminalStates:["completed","timed_out","failed","effect_unknown","partial"],decodeRequest:S2(396),decodeResult:S2(397),decodeSuccess:e=>fu(e,"binding.http.workflow.handoff_issue","schema.workflow.handoff_issue.result",1,["completed","timed_out","failed","effect_unknown","partial"],{mode:"not_cancellable"},"durable_effect","required",S2(397))},{operation:"workflow_handoff_redeem",operationId:"operation.workflow.handoff_redeem",transport:{kind:"http",route:"/application/workflow/handoff-redeem",method:"POST"},effect:"administrative",idempotency:"required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.workflow.handoff_redeem",requestSchema:{schemaId:"schema.workflow.handoff_redeem.request",revision:1},resultSchema:{schemaId:"schema.workflow.handoff_redeem.result",revision:1},cancellation:{mode:"not_cancellable"},deadline:{behavior:"return_effect_receipt",maximum_millis:3e4},reconciliation:"required",receipt:"durable_effect",terminalStates:["completed","timed_out","failed","effect_unknown","partial"],decodeRequest:S2(398),decodeResult:S2(399),decodeSuccess:e=>fu(e,"binding.http.workflow.handoff_redeem","schema.workflow.handoff_redeem.result",1,["completed","timed_out","failed","effect_unknown","partial"],{mode:"not_cancellable"},"durable_effect","required",S2(399))},{operation:"workflow_list_definitions",operationId:"operation.workflow.list_definitions",transport:{kind:"http",route:"/application/workflow/list-definitions",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.workflow.list_definitions",requestSchema:{schemaId:"schema.workflow.list_definitions.request",revision:1},resultSchema:{schemaId:"schema.workflow.list_definitions.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:3e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","partial"],decodeRequest:S2(400),decodeResult:S2(390),decodeSuccess:e=>fu(e,"binding.http.workflow.list_definitions","schema.workflow.list_definitions.result",1,["completed","cancelled","timed_out","failed","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(390))},{operation:"workflow_pause_run",operationId:"operation.workflow.pause_run",transport:{kind:"http",route:"/application/workflow/pause-run",method:"POST"},effect:"administrative",idempotency:"required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.workflow.pause_run",requestSchema:{schemaId:"schema.workflow.pause_run.request",revision:1},resultSchema:{schemaId:"schema.workflow.pause_run.result",revision:1},cancellation:{mode:"not_cancellable"},deadline:{behavior:"return_effect_receipt",maximum_millis:3e4},reconciliation:"required",receipt:"durable_effect",terminalStates:["completed","timed_out","failed","effect_unknown","partial"],decodeRequest:S2(401),decodeResult:S2(388),decodeSuccess:e=>fu(e,"binding.http.workflow.pause_run","schema.workflow.pause_run.result",1,["completed","timed_out","failed","effect_unknown","partial"],{mode:"not_cancellable"},"durable_effect","required",S2(388))},{operation:"workflow_register_definition",operationId:"operation.workflow.register_definition",transport:{kind:"http",route:"/application/workflow/register-definition",method:"POST"},effect:"administrative",idempotency:"required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.workflow.register_definition",requestSchema:{schemaId:"schema.workflow.register_definition.request",revision:1},resultSchema:{schemaId:"schema.workflow.register_definition.result",revision:1},cancellation:{mode:"not_cancellable"},deadline:{behavior:"return_effect_receipt",maximum_millis:3e4},reconciliation:"required",receipt:"durable_effect",terminalStates:["completed","timed_out","failed","effect_unknown","partial"],decodeRequest:S2(402),decodeResult:S2(394),decodeSuccess:e=>fu(e,"binding.http.workflow.register_definition","schema.workflow.register_definition.result",1,["completed","timed_out","failed","effect_unknown","partial"],{mode:"not_cancellable"},"durable_effect","required",S2(394))},{operation:"workflow_reject_definition",operationId:"operation.workflow.reject_definition",transport:{kind:"http",route:"/application/workflow/reject-definition",method:"POST"},effect:"administrative",idempotency:"required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.workflow.reject_definition",requestSchema:{schemaId:"schema.workflow.reject_definition.request",revision:1},resultSchema:{schemaId:"schema.workflow.reject_definition.result",revision:1},cancellation:{mode:"not_cancellable"},deadline:{behavior:"return_effect_receipt",maximum_millis:3e4},reconciliation:"required",receipt:"durable_effect",terminalStates:["completed","timed_out","failed","effect_unknown","partial"],decodeRequest:S2(403),decodeResult:S2(386),decodeSuccess:e=>fu(e,"binding.http.workflow.reject_definition","schema.workflow.reject_definition.result",1,["completed","timed_out","failed","effect_unknown","partial"],{mode:"not_cancellable"},"durable_effect","required",S2(386))},{operation:"workflow_resume_run",operationId:"operation.workflow.resume_run",transport:{kind:"http",route:"/application/workflow/resume-run",method:"POST"},effect:"administrative",idempotency:"required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.workflow.resume_run",requestSchema:{schemaId:"schema.workflow.resume_run.request",revision:1},resultSchema:{schemaId:"schema.workflow.resume_run.result",revision:1},cancellation:{mode:"not_cancellable"},deadline:{behavior:"return_effect_receipt",maximum_millis:3e4},reconciliation:"required",receipt:"durable_effect",terminalStates:["completed","timed_out","failed","effect_unknown","partial"],decodeRequest:S2(404),decodeResult:S2(388),decodeSuccess:e=>fu(e,"binding.http.workflow.resume_run","schema.workflow.resume_run.result",1,["completed","timed_out","failed","effect_unknown","partial"],{mode:"not_cancellable"},"durable_effect","required",S2(388))},{operation:"workflow_retire_definition",operationId:"operation.workflow.retire_definition",transport:{kind:"http",route:"/application/workflow/retire-definition",method:"POST"},effect:"administrative",idempotency:"required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.workflow.retire_definition",requestSchema:{schemaId:"schema.workflow.retire_definition.request",revision:1},resultSchema:{schemaId:"schema.workflow.retire_definition.result",revision:1},cancellation:{mode:"not_cancellable"},deadline:{behavior:"return_effect_receipt",maximum_millis:3e4},reconciliation:"required",receipt:"durable_effect",terminalStates:["completed","timed_out","failed","effect_unknown","partial"],decodeRequest:S2(405),decodeResult:S2(386),decodeSuccess:e=>fu(e,"binding.http.workflow.retire_definition","schema.workflow.retire_definition.result",1,["completed","timed_out","failed","effect_unknown","partial"],{mode:"not_cancellable"},"durable_effect","required",S2(386))},{operation:"workflow_start_run",operationId:"operation.workflow.start_run",transport:{kind:"http",route:"/application/workflow/start-run",method:"POST"},effect:"administrative",idempotency:"required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.workflow.start_run",requestSchema:{schemaId:"schema.workflow.start_run.request",revision:1},resultSchema:{schemaId:"schema.workflow.start_run.result",revision:1},cancellation:{mode:"not_cancellable"},deadline:{behavior:"return_effect_receipt",maximum_millis:3e4},reconciliation:"required",receipt:"durable_effect",terminalStates:["completed","timed_out","failed","effect_unknown","partial"],decodeRequest:S2(406),decodeResult:S2(388),decodeSuccess:e=>fu(e,"binding.http.workflow.start_run","schema.workflow.start_run.result",1,["completed","timed_out","failed","effect_unknown","partial"],{mode:"not_cancellable"},"durable_effect","required",S2(388))},{operation:"workflow_validate_definition",operationId:"operation.workflow.validate_definition",transport:{kind:"http",route:"/application/workflow/validate-definition",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.workflow.validate_definition",requestSchema:{schemaId:"schema.workflow.validate_definition.request",revision:1},resultSchema:{schemaId:"schema.workflow.validate_definition.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:3e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","partial"],decodeRequest:S2(407),decodeResult:S2(408),decodeSuccess:e=>fu(e,"binding.http.workflow.validate_definition","schema.workflow.validate_definition.result",1,["completed","cancelled","timed_out","failed","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(408))}],S6=new TextEncoder;class S3 extends Error{cause;constructor(e,t){super(e),this.name=new.target.name,this.cause=t}}class S9 extends S3{constructor(e){super("the caller aborted the request",e)}}class S5 extends S3{}class S8 extends S3{status;constructor(e){super(401===e?"the daemon rejected HTTP authentication":"the daemon rejected the HTTP origin"),this.status=e}}class S7 extends Error{status;payload;constructor(e,t={}){super(e),this.name=new.target.name,this.status=t.status,this.payload=t.payload}}class ke extends S7{}class kt extends Error{status;envelope;problem;constructor(e,t){super(`${t.problem.kind}/${t.problem.code}: ${t.problem.message}`),this.name=new.target.name,this.status=e,this.envelope=t,this.problem=t.problem}}class kr extends kt{}class ki extends kt{}class ko extends kt{}class kn extends kt{}class ka extends kt{}class ks extends kt{}class kd extends kt{}class kc extends kt{}class kl extends kt{}class kp extends kt{}class ku extends kt{}let km=new Set(["completed","cancelled","timed_out","failed","unavailable","effect_unknown","partial"]),kf=new TextEncoder;function kh(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}function ky(e){return"number"==typeof e&&Number.isSafeInteger(e)&&e>=0}function kg(e){return"number"==typeof e&&Number.isSafeInteger(e)}function k_(e,t){return"string"==typeof e&&e.length>0&&e.trim()===e&&kf.encode(e).byteLength<=t&&!/\p{Cc}/u.test(e)}function kv(e,t){let r=e.headers.get("content-type");return null!==r&&r.split(";",1)[0]?.trim().toLowerCase()===t}function kb(e){return!!kh(e)&&!!kg(e.started_at)&&!!kg(e.ended_at)&&!(e.ended_at{let o=setTimeout(()=>{t?.removeEventListener("abort",n),r()},e),n=()=>{clearTimeout(o),i(new S9(t?.reason))};t?.addEventListener("abort",n,{once:!0})})}async function*kk(e,t){let r,i=e.getReader(),o=new TextDecoder("utf-8",{fatal:!0}),n=new Uint8Array(65536),a=0,s=0,d=!1,c="",l=0,p=t??"",u=kf.encode(p).byteLength,m=[],f=0,h=!1,y=()=>new ke("the daemon returned an SSE line or frame exceeding 65536 bytes",{payload:{limitBytes:65536}}),g=(e,t)=>{try{return o.decode(e,{stream:t})}catch(e){throw new ke("the daemon returned malformed UTF-8 event-stream data",{payload:e})}},_=e=>{if(""===e){if(h=!1,l=0,0===m.length)return c="",null;let e={event:""===c?"message":c,id:""===p?null:p,data:m.join("\n"),...void 0===r?{}:{retryDelayMs:r}};return c="",m=[],f=0,e}if(e.startsWith(":"))return null;h=!0;let t=e.indexOf(":"),i=t<0?e:e.slice(0,t),o=t<0?"":e.slice(t+1);o.startsWith(" ")&&(o=o.slice(1));let n=kf.encode(o).byteLength;if(("event"===i||"id"===i||"data"===i)&&l+u+f+n+1>65536)throw y();switch(i){case"event":c=o,l=n;break;case"id":o.includes("\0")||(p=o,u=n);break;case"data":f+=n+ +(0!==m.length),m.push(o);break;case"retry":if(/^[0-9]+$/.test(o)){let e=BigInt(o);r=e>2147483647n?0x7fffffff:Number(e)}}return null};try{for(;;){let e=await i.read();if(e.done){g(n.subarray(0,a),!1);break}for(let t=0;t0||h||m.length>0)throw new S5("operation stream ended with an incomplete SSE event")}catch(e){if(e instanceof S7||e instanceof S3)throw e;throw new S5("operation stream transport was interrupted",e)}finally{i.releaseLock()}}class kw{operations;projectRoot;applicationRoot;token;origin;doFetch;mcp;constructor(e){let t=new URL(e.baseUrl);if("http:"!==t.protocol&&"https:"!==t.protocol||""!==t.username||""!==t.password||""!==t.search||""!==t.hash)throw new S7("baseUrl must be an absolute HTTP URL without credentials, query, or fragment");let r=t.toString().replace(/\/+$/u,"");this.projectRoot=`${r}/projects/${encodeURIComponent(e.projectId)}`,this.applicationRoot=`${this.projectRoot}/application`,this.token=e.token,this.origin=e.origin??t.origin,this.doFetch=e.fetch??globalThis.fetch.bind(globalThis),this.mcp=e.mcp;let i={};for(let e of S4)i[e.operation]=(t,r)=>this.#p(e,t,r);this.operations=Object.freeze(i)}headers(e){return new Headers({accept:e,authorization:`Bearer ${this.token}`,origin:this.origin})}operationUrl(e,t){if(t?.size!==void 0&&(!Number.isSafeInteger(t.size)||t.size<1||t.size>1e3))throw new S7("page size must be an integer between 1 and 1000");if(t?.cursor!==void 0&&!k_(t.cursor,4096))throw new S7("page cursor is not a canonical opaque cursor");let r=new URL(`${this.projectRoot}${e}`);return t?.size!==void 0&&r.searchParams.set("page_size",String(t.size)),t?.cursor!==void 0&&r.searchParams.set("cursor",t.cursor),r}lifecycleUrl(e,t){if(!k_(e,512))throw new S7("operationId is not a canonical request handle");return new URL(`${this.applicationRoot}/operations/${encodeURIComponent(e)}/${t}`)}async fetchResponse(e,t,r){try{return await this.doFetch(e,t)}catch(t){if(r?.aborted)throw new S9(r.reason);throw new S5(`transport failure requesting ${e.pathname}`,t)}}async readJson(e,t,r,i){let o,n,a=!1,s=()=>n??=o?.cancel(i?.reason)??e.body?.cancel(i?.reason)??Promise.resolve(),d=()=>{s().catch(()=>void 0)};try{if(i?.aborted)throw new S9(i.reason);if(401===e.status||403===e.status)throw new S8(e.status);if(!kv(e,"application/json"))throw new ke("the daemon returned JSON with an invalid media type",{status:e.status});let n="";try{if(o=e.body?.getReader(),i?.addEventListener("abort",d,{once:!0}),i?.aborted)throw new S9(i.reason);if(void 0!==o){let e=new TextDecoder;for(;;){let{done:t,value:r}=await o.read();if(i?.aborted)throw new S9(i.reason);if(t)break;n+=e.decode(r,{stream:!0})}n+=e.decode()}a=!0}catch(e){if(i?.aborted)throw new S9(i.reason);throw new S5("transport failure reading the daemon response body",e)}let s=k$(n,e.status);if(kh(s)&&"problem"===s.kind){var c;let i=s.value;if(!function(e){var t,r,i;if(!fm(e)||void 0!==e.binding_id&&"string"!=typeof e.binding_id||!(fm(t=e.contract)&&fy(t.schema_id,512)&&ff(t.schema_revision)&&t.schema_revision>0)||!fy(e.request_id,512)||!fm(e.problem))return!1;let o=e.problem,n=Array.isArray(o.legal_actions)?o.legal_actions:null,a="never"===o.retry?null:"same_request"===o.retry||"after_delay"===o.retry?"same_request":"after_revalidate"===o.retry?"fresh_request":"after_reconcile"===o.retry?"same_operation":void 0;if(!(1===o.revision&&"string"==typeof o.kind&&["invalid_request","not_found_or_not_authorized","conflict","partial_effect","stale","unsupported","unavailable","execution_failed","reset_required","saturated","cancelled","timed_out"].includes(o.kind)&&"string"==typeof o.code&&"string"==typeof o.message&&(null===o.diagnostic||f_(o.diagnostic))&&"detail"in o&&(null===o.detail||function(e){if(!fm(e))return!1;switch(e.kind){case"parked":return"string"==typeof e.cause&&"string"==typeof e.remedy&&"boolean"==typeof e.retries_on_wake;case"stale_refresh_frontier":return ff(e.requested)&&ff(e.committed)&&ff(e.active);case"stale_precondition":return"string"==typeof e.field&&ff(e.requested)&&ff(e.current);case"lock_deadline":return"string"==typeof e.resource&&ff(e.deadline_ms);case"diagnostics_unsupported":return(null===e.file||"string"==typeof e.file)&&Array.isArray(e.searched)&&e.searched.every(e=>fm(e)&&"string"==typeof e.path&&"boolean"==typeof e.present);case"diagnostics_pending":return"string"==typeof e.producer&&(null===e.generation||"string"==typeof e.generation);case"code_graph_rewarming":return ff(e.retry_after_millis);case"reset_required":return"string"==typeof e.authority&&(null===e.found_version||fh(e.found_version))&&(null===e.required_version||fh(e.required_version))&&"string"==typeof e.reason&&"string"==typeof e.remedy;default:return!1}}(o.detail))&&"committed_receipt"in o&&"string"==typeof o.owning_layer&&"string"==typeof o.terminality&&"boolean"==typeof o.retryable&&"string"==typeof o.retry&&(null===o.retry_scope||"string"==typeof o.retry_scope)&&(null===o.retry_after_millis||ff(o.retry_after_millis))&&"cancellation_stage"in o&&(null===o.cancellation_stage||"string"==typeof o.cancellation_stage&&["before_admission","before_read","during_read","before_effect","effect_in_flight"].includes(o.cancellation_stage))&&"unavailable_classification"in o&&(null===o.unavailable_classification||"string"==typeof o.unavailable_classification&&["authority","backend_unavailable","backend_disconnected","backend_retryable"].includes(o.unavailable_classification))&&"execution_failure_classification"in o&&(null===o.execution_failure_classification||"string"==typeof o.execution_failure_classification&&["denied","malformed_output","permanent"].includes(o.execution_failure_classification))&&o.request_id===e.request_id&&fy(o.trace_id,512)&&Array.isArray(o.details)&&o.details.every(f_)&&null!==n&&n.every(e=>"string"==typeof e)&&"coverage"in o)||null===n)return!1;let s=null!==o.cancellation_stage&&"before_admission"!==o.cancellation_stage,d=null!==o.unavailable_classification&&"authority"!==o.unavailable_classification,c="partial_effect"===o.kind||"reset_required"===o.kind||"execution_failed"===o.kind||s||d;return o.terminality===(c?"admitted_terminal":"pre_admission")&&"unavailable"===o.kind==(null!==o.unavailable_classification)&&"execution_failed"===o.kind==(null!==o.execution_failure_classification)&&("cancelled"===o.kind||"timed_out"===o.kind)==(null!==o.cancellation_stage)&&null!==o.diagnostic===("string"==typeof o.kind&&["invalid_request","conflict","partial_effect","stale","unsupported","unavailable","execution_failed","reset_required","saturated"].includes(o.kind))&&(null===o.detail||!!("string"==typeof o.kind&&["stale","unsupported","unavailable","reset_required","saturated"].includes(o.kind)))&&o.retryable===("never"!==o.retry)&&void 0!==a&&o.retry_scope===a&&"after_delay"===o.retry==(null!==o.retry_after_millis)&&("partial_effect"===o.kind?"admitted_terminal"===o.terminality&&!1===o.retryable&&"never"===o.retry&&(r=o.committed_receipt,i=e.request_id,fm(r)&&r.request_id===i&&"partial"===r.outcome&&"string"==typeof r.operation&&"string"==typeof r.effect_class&&"string"==typeof r.idempotency_key&&"string"==typeof r.input_digest&&("string"==typeof r.committed_state||"string"==typeof r.external_proof))&&1===n.length&&"reconcile"===n[0]:"reset_required"===o.kind?"admitted_terminal"===o.terminality&&!1===o.retryable&&"never"===o.retry&&null===o.committed_receipt&&1===n.length&&"reset"===n[0]:"unavailable"===o.kind&&"authority"!==o.unavailable_classification?"admitted_terminal"===o.terminality&&!0===o.retryable&&"after_revalidate"===o.retry&&null===o.committed_receipt&&1===n.length&&"retry"===n[0]:"execution_failed"===o.kind?"admitted_terminal"===o.terminality&&!1===o.retryable&&"never"===o.retry&&null===o.committed_receipt&&1===n.length&&"contact_administrator"===n[0]:null===o.committed_receipt)}(i))throw new ke("the daemon returned a malformed problem envelope",{status:e.status,payload:i});let o=void 0===t||(c=[t],"not_found_or_not_authorized"===i.problem.kind?void 0===i.binding_id:c.some(e=>e===i.binding_id));if(e.ok||!o||void 0!==r&&i.request_id!==r||!function(e,t){switch(t){case"invalid_request":return 400===e;case"not_found_or_not_authorized":return 404===e;case"conflict":case"partial_effect":case"stale":return 409===e;case"unsupported":return 422===e;case"unavailable":case"reset_required":return 503===e;case"execution_failed":return 500===e;case"saturated":return 429===e;case"cancelled":return 408===e;case"timed_out":return 504===e;default:return!1}}(e.status,i.problem.kind))throw new ke("the daemon returned a malformed problem envelope",{status:e.status,payload:i});throw function(e,t){switch(t.problem.kind){case"not_found_or_not_authorized":return new kr(e,t);case"unavailable":return new ki(e,t);case"unsupported":return new ko(e,t);case"stale":return new kn(e,t);case"conflict":return new ka(e,t);case"partial_effect":return new ks(e,t);case"reset_required":return new kd(e,t);case"saturated":return new kc(e,t);case"cancelled":return new kl(e,t);case"timed_out":return new kp(e,t);case"invalid_request":return new ku(e,t);default:return new kt(e,t)}}(e.status,i)}return s}finally{i?.removeEventListener("abort",d);try{a||await s()}catch{}finally{o?.releaseLock()}}}async #p(e,t,r={}){var i,o,n,a;let s=e.decodeRequest(t);if("http"!==e.transport.kind){let t;if(void 0!==r.page||void 0!==r.deadlineMicros||void 0!==r.requestId)throw new S7(`${e.operation} does not accept HTTP transport options`);if(void 0===this.mcp)throw new S3(`${e.operation} requires an MCP tool adapter`);try{t=await this.mcp.callTool(e.transport.toolName,s,{signal:r.signal})}catch(t){if(r.signal?.aborted)throw new S9(r.signal.reason??t);throw new S3(`MCP tool ${e.transport.toolName} failed`,t)}try{return e.decodeResult(t)}catch(r){throw new ke(`MCP tool ${e.transport.toolName} returned an invalid ${e.operation} result`,{payload:{response:t,cause:r}})}}let d=this.operationUrl(e.transport.route,r.page),c=JSON.stringify(s);if(void 0===c)throw new S7(`${e.operation} request decoder returned a non-JSON value`);let l=this.headers("application/json");l.set("content-type","application/json");let p=(i=l,o=e,void 0!==(n=r).deadlineMicros&&(!Number.isSafeInteger(n.deadlineMicros)||n.deadlineMicros<=0)?"deadlineMicros must be a positive safe integer":"required"===o.requestIdControl&&void 0===n.requestId?`${o.operation} requires a stable requestId replay handle`:"server_minted"===o.requestIdControl&&void 0!==n.requestId?`${o.operation} uses a server-minted request ID`:void 0===n.requestId||(a=n.requestId).length>0&&a.trim()===a&&S6.encode(a).byteLength<=512&&!/\p{Cc}/u.test(a)?void(void 0!==n.deadlineMicros&&i.set("x-tracedecay-deadline-micros",String(n.deadlineMicros)),void 0!==n.requestId&&i.set("x-tracedecay-request-id",n.requestId)):"requestId is not a canonical request identity");if(void 0!==p)throw new S7(p);let u=await this.fetchResponse(d,{method:e.transport.method,headers:l,body:c,signal:r.signal},r.signal),m=await this.readJson(u,e.bindingId,r.requestId,r.signal);if(!kh(m)||"success"!==m.kind)throw new ke("the daemon returned an unknown HTTP envelope",{status:u.status,payload:m});if(!u.ok)throw new ke("the daemon returned success with a failing HTTP status",{status:u.status,payload:m});try{let t=e.decodeSuccess(m.value);if(!(kh(t)&&kh(t.outcome)&&kh(t.outcome.value)&&"payload"in t.outcome.value&&kb(t.outcome.value.execution))||("evidence"===t.outcome.outcome?"completed"===t.outcome.value.execution.termination&&null===t.outcome.value.payload:"preview"!==t.outcome.outcome&&"effect"!==t.outcome.outcome))throw TypeError("decoded application success invariants are invalid");if(void 0!==r.requestId&&t.request_id!==r.requestId)throw TypeError("daemon returned a different application request ID");if("fact_store_curate_receipt"===e.resultSemantics&&!await async function(e,t){if(!fm(e)||!fm(t)||!fm(t.outcome))return!1;let r=t.outcome,i=fm(r.value)?r.value.payload:void 0;if("effect"!==r.outcome||!fm(i)||!fy(t.request_id,512)||"request_digest,run_id,state,task"!==Object.keys(i).sort().join(",")||i.run_id!==t.request_id||"memory_curator"!==i.task||"started"!==i.state)return!1;let o=e.fact_review_limit??24,n=e.min_confidence_millionths??72e4;return!!ff(o)&&!(o<1)&&!(o>1e3)&&!!ff(n)&&!(n>1e6)&&!!await async function(e){return!!fm(e)&&"project_id,reference,repository_id,scope_digest,worktree_id"===Object.keys(e).sort().join(",")&&!!fy(e.project_id,512)&&!!fy(e.repository_id,512)&&!!fy(e.worktree_id,512)&&(null===e.reference||!!fy(e.reference,512))&&e.scope_digest===await fg(["tracedecay.application.scope.v1",e.project_id,e.repository_id,e.worktree_id,e.reference])}(t.scope)&&i.request_digest===await fg(["tracedecay.automation-run.request-identity.v1",{kind:"memory_curator",options:{fact_review_limit:o,min_confidence_millionths:n}}])}(s,t))throw TypeError("automatic curation receipt invariants are invalid");return t}catch(t){throw new ke(`the daemon returned an invalid ${e.operation} success envelope`,{status:u.status,payload:{envelope:m.value,cause:t}})}}async *streamOperation(e,t={}){let r=t.resume?.resumeToken,i=t.resume?.nextSequence===void 0?void 0:function(e,t){let r;if("number"==typeof e){if(!ky(e))throw new S7(`${t} must be an unsigned safe integer`);r=BigInt(e)}else if("bigint"==typeof e)r=e;else if(/^[0-9]+$/.test(e))r=BigInt(e);else throw new S7(`${t} must be unsigned decimal`);if(r<0n||r>0xffffffffffffffffn)throw new S7(`${t} exceeds the canonical u64 range`);return r.toString()}(t.resume.nextSequence,"resume nextSequence");if(void 0!==r&&!k_(r,4096))throw new S7("resumeToken is not a canonical stream resume token");let o=t.maxReconnects??0;if(!Number.isSafeInteger(o)||o<0)throw new S7("maxReconnects must be a non-negative integer");let n=0,a=0;for(;;){let d;if(t.signal?.aborted)throw new S9(t.signal.reason);let c=this.lifecycleUrl(e,"events");void 0!==i&&c.searchParams.set("next_sequence",i),void 0!==r&&c.searchParams.set("resume_token",r);try{d=await this.fetchResponse(c,{method:"GET",headers:this.headers("text/event-stream"),signal:t.signal},t.signal)}catch(e){if(0===n||n>=o||!(e instanceof S5))throw e;n+=1,await kS(a,t.signal);continue}let l=!1;try{if(!d.ok||null===d.body)throw await this.readJson(d,void 0,void 0,t.signal),new ke("the daemon did not open an SSE stream",{status:d.status});if(!kv(d,"text/event-stream"))throw new ke("the daemon opened an operation stream with an invalid media type",{status:d.status});try{for await(let t of kk(d.body)){void 0!==t.retryDelayMs&&(a=t.retryDelayMs);let o=function(e,t,r){let i=k$(e.data,t);if(!kh(i)||"string"!=typeof i.event||i.event!==e.event||!kh(i.data))throw new ke("the daemon returned a malformed SSE event",{status:t,payload:i});let o=i.event,n=i.data;if("open"===o){let e=n.frontier;if(n.correlation_id!==r||!kh(e)||!ky(e.next_sequence)||!ky(e.retained_from_sequence)||e.retained_from_sequence>e.next_sequence||null!==e.resume_token&&"string"!=typeof e.resume_token)throw new ke("the daemon returned a malformed SSE open frontier",{status:t,payload:i});return{event:{...i,event:o,data:n},frontier:{..."string"==typeof e.resume_token?{resumeToken:e.resume_token}:{}}}}if(!ky(n.sequence)||null===e.id)throw new ke("the daemon returned an SSE event without a valid sequence",{status:t,payload:i});let a=String(n.sequence);if(e.id!==a)throw new ke("the SSE event ID does not match its canonical sequence",{status:t,payload:i});if("item"===o&&!("item"in n))throw new ke("the SSE item payload is missing",{status:t,payload:i});if("progress"===o&&(!ky(n.completed)||null!==n.total&&!ky(n.total)))throw new ke("the SSE progress payload is malformed",{status:t,payload:i});if("resume_gap"===o){let e=n.gap;if(!kh(e)||!ky(e.first_missing_sequence)||!ky(e.last_missing_sequence)||e.first_missing_sequence!==n.sequence||e.first_missing_sequence>e.last_missing_sequence||!kh(e.frontier)||!ky(e.frontier.next_sequence)||!ky(e.frontier.retained_from_sequence)||e.frontier.retained_from_sequence>e.frontier.next_sequence||e.last_missing_sequence>=e.frontier.next_sequence||null!==e.frontier.resume_token&&"string"!=typeof e.frontier.resume_token)throw new ke("the SSE resume gap is malformed",{status:t,payload:i})}if(km.has(o)){let e=n.terminal;if(!kh(e)||!kb(e.receipt))throw new ke("the SSE terminal event is malformed",{status:t,payload:i});if(e.termination!==o||e.receipt.termination!==o)throw new ke("the SSE terminal event is inconsistent",{status:t,payload:i})}let s={...i,event:o,data:n};if("resume_gap"===o){let e=n.gap,t=e.frontier;return{event:s,sequence:a,lastSequence:String(e.last_missing_sequence),frontier:{..."string"==typeof t.resume_token?{resumeToken:t.resume_token}:{}}}}return{event:s,sequence:a}}(t,d.status,e);if(void 0!==o.sequence){var s;let e=i??"0",r=(s=o.lastSequence??o.sequence,(BigInt(s)+1n).toString()),n=km.has(t.event);if(!n&&BigInt(o.sequence)=o){if(e instanceof S5)throw e;throw new S5(`operation stream disconnected after ${n} reconnects`,e)}}}catch(e){throw l=!0,e}finally{try{await d.body?.cancel()}catch(e){if(!l)throw new S5("failed to close operation stream transport",e)}}if(n>=o)throw new S5(`operation stream ended before a terminal event after ${n} reconnects`);if(void 0===i||void 0===r)throw new S5("operation stream ended before exposing a resumable frontier");n+=1,await kS(a,t.signal)}}async cancelOperation(e,t={}){let r=await this.fetchResponse(this.lifecycleUrl(e,"cancel"),{method:"POST",headers:this.headers("application/json"),signal:t.signal},t.signal),i=await this.readJson(r,void 0,void 0,t.signal);if(!kh(i))throw new ke("the daemon returned a malformed cancellation response",{status:r.status,payload:i});let o=i.status,n="requested"===o&&202===r.status||("already_requested"===o||"already_terminal"===o)&&200===r.status;if(!r.ok||"requested"!==o&&"already_requested"!==o&&"already_terminal"!==o||!n)throw new ke("the daemon returned a malformed cancellation response",{status:r.status,payload:i});return{...i,status:o}}}function kP(e){let t=S4.find(t=>t.operation===e);if(void 0===t||"mcp_tool"!==t.transport.kind)throw TypeError(`${e} is not an MCP-backed operation in the canonical catalog`);return t}let kV=kP("project_list"),kR=kP("project_search"),kq=kP("project_context");class kI{#u;constructor(e){this.#u=e}projectList(e,t){return this.#m(kV,e,t)}projectContext(e,t){return this.#m(kq,e,t)}projectSearch(e,t){return this.#m(kR,e,t)}async #m(e,t,r){let i,o=e.transport.toolName,n=e.decodeRequest(t);try{if(r?.aborted||(i=await this.#u(o,n,r),r?.aborted))throw new S9(r.reason)}catch(e){if(r?.aborted)throw new S9(r.reason);throw new S3(`MCP tool ${o} failed`,e)}try{return e.decodeResult(i)}catch(t){throw new ke(`MCP tool ${o} returned an invalid ${e.operation} result`,{payload:{response:i,cause:t}})}}}var kx=Object.create,kj=Object.defineProperty,kC=Object.getOwnPropertyDescriptor,kT=Object.getOwnPropertyNames,kO=Object.getPrototypeOf,kE=Object.prototype.hasOwnProperty,kA=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);let kW=new Set(["https://json-schema.org/draft/2020-12/schema","http://json-schema.org/draft/2020-12/schema"]),kM=new Set(["https://json-schema.org/draft/2019-09/schema","http://json-schema.org/draft/2019-09/schema"]),kN=new Set(["https://json-schema.org/draft-07/schema","http://json-schema.org/draft-07/schema"]),kz=new Set(["https://json-schema.org/draft-06/schema","http://json-schema.org/draft-06/schema"]),kD=Symbol.for("mcp.sdk.errorBrands");function kF(e,t){let r=new Set,i=t;for(;"function"==typeof i;){let e=i.mcpBrand;Object.prototype.hasOwnProperty.call(i,"mcpBrand")&&"string"==typeof e&&r.add(e),i=Object.getPrototypeOf(i)}0!==r.size&&Object.defineProperty(e,kD,{value:r,enumerable:!1,configurable:!0})}function kL(e,t){try{if("object"==typeof t&&null!==t&&Object.prototype.hasOwnProperty.call(e,"mcpBrand")&&"string"==typeof e.mcpBrand&&Object.prototype.hasOwnProperty.call(t,kD)){let r=t[kD];if(r&&"function"==typeof r.has&&r.has(e.mcpBrand))return!0}}catch{}return Function.prototype[Symbol.hasInstance].call(e,t)}(class e extends Error{static{Object.defineProperty(this,"mcpBrand",{value:"mcp.OAuthError"})}static[Symbol.hasInstance](e){return kL(this,e)}static isInstance(e){if("function"!=typeof this)throw TypeError("isInstance must be called on the class (e.g. `SdkError.isInstance(value)`); for callbacks use `v => SdkError.isInstance(v)`");return kL(this,e)}constructor(e,t,r){super(t),this.code=e,this.errorUri=r,this.name="OAuthError",kF(this,new.target)}toResponseObject(){let e={error:this.code,error_description:this.message};return this.errorUri&&(e.error_uri=this.errorUri),e}static fromResponse(t){return new e(t.error,t.error_description??t.error,t.error_uri)}});let kU=((X={}).NotConnected="NOT_CONNECTED",X.AlreadyConnected="ALREADY_CONNECTED",X.NotInitialized="NOT_INITIALIZED",X.CapabilityNotSupported="CAPABILITY_NOT_SUPPORTED",X.RequestTimeout="REQUEST_TIMEOUT",X.ConnectionClosed="CONNECTION_CLOSED",X.SendFailed="SEND_FAILED",X.InvalidResult="INVALID_RESULT",X.UnsupportedResultType="UNSUPPORTED_RESULT_TYPE",X.InputRequiredRoundsExceeded="INPUT_REQUIRED_ROUNDS_EXCEEDED",X.ListPaginationExceeded="LIST_PAGINATION_EXCEEDED",X.MethodNotSupportedByProtocolVersion="METHOD_NOT_SUPPORTED_BY_PROTOCOL_VERSION",X.EraNegotiationFailed="ERA_NEGOTIATION_FAILED",X.ClientHttpNotImplemented="CLIENT_HTTP_NOT_IMPLEMENTED",X.ClientHttpAuthentication="CLIENT_HTTP_AUTHENTICATION",X.ClientHttpForbidden="CLIENT_HTTP_FORBIDDEN",X.ClientHttpUnexpectedContent="CLIENT_HTTP_UNEXPECTED_CONTENT",X.ClientHttpFailedToOpenStream="CLIENT_HTTP_FAILED_TO_OPEN_STREAM",X.ClientHttpFailedToTerminateSession="CLIENT_HTTP_FAILED_TO_TERMINATE_SESSION",X);var kH=class extends Error{static{Object.defineProperty(this,"mcpBrand",{value:"mcp.SdkError"})}static[Symbol.hasInstance](e){return kL(this,e)}static isInstance(e){if("function"!=typeof this)throw TypeError("isInstance must be called on the class (e.g. `SdkError.isInstance(value)`); for callbacks use `v => SdkError.isInstance(v)`");return kL(this,e)}constructor(e,t,r,i){super(t,i),this.code=e,this.data=r,this.name="SdkError",kF(this,new.target)}},kG=class extends kH{static{Object.defineProperty(this,"mcpBrand",{value:"mcp.SdkHttpError"})}constructor(e,t,r,i){super(e,t,r,i),this.name="SdkHttpError"}get status(){return this.data.status}get statusText(){return this.data.statusText}};let kB="2026-07-28",kK=[kB];function kJ(e){return e.filter(e=>!(e>=kB))}function kZ(e){return e.filter(e=>e>=kB)}function kQ(e){let t=e.structuredContent;return void 0===t||!("object"!=typeof t||null===t||Array.isArray(t))||e.content?.some(e=>"text"===e.type)?e:{...e,content:[...e.content??[],{type:"text",text:JSON.stringify(t)}]}}let kX=["task","inputRequests","requestState"];function kY(e){return null===e||"object"!=typeof e||Array.isArray(e)||void 0!==e.content||kX.some(t=>t in e)?e:{...e,content:[]}}function k1(){let e,t,r,i,o,n,a,s,c,l,p,u,m,f,h,y,g,_,v,b,$,S,k,w,P,V,R,q,I,x,j,C,T,O,E,A,W,M,N,z,D,F,L,U,H,G,B,K,J,Z,Q,X,Y,ee,et,er,ei,eo,en,ea,es,ed,ec,el,ep,eu,em,ef,eh,ey,eg,e_,ev,eb,e$,eS,ek,ew,eP,eV,eR,eq,eI,ex,ej,eC,eT,eO,eE,eA,eW,eM,eN,ez,eD,eF,eL,eU,eH,eG,eB,eK,eJ,eZ,eQ,eX,eY,e1,e0,e2,e4,e6,e3,e9,e5,e8,e7,te,tt,tr,ti,to,tn,ta,ts,td,tc,tl,tp,tu,tm,tf,th,ty,tg,t_,tv,tb,t$,tS;return d??=(e=aa(()=>nL([o7(),nP(),nI(),nj(),nJ(o7(),e),nM(e)])),t=nJ(o7(),e),r=nL([o7(),nP().int()]),i=o7(),o=nz({ttl:nP().optional()}),n=nz({taskId:o7()}),c=(s=nz({_meta:(a=nD({progressToken:r.optional(),"io.modelcontextprotocol/related-task":n.optional()})).optional()})).extend({task:o.optional()}),l=nz({method:o7(),params:s.loose().optional()}),p=nz({_meta:a.optional()}),u=nz({method:o7(),params:p.loose().optional()}),m=nD({_meta:a.optional()}),f=nL([o7(),nP().int()]),h=m.strict(),y=p.extend({requestId:f.optional(),reason:o7().optional()}),g=u.extend({method:nY("notifications/cancelled"),params:y}),_=nz({src:o7(),mimeType:o7().optional(),sizes:nM(o7()).optional(),theme:nQ(["light","dark"]).optional()}),v=nz({icons:nM(_).optional()}),$=(b=nz({name:o7(),title:o7().optional()})).extend({...b.shape,...v.shape,version:o7(),websiteUrl:o7().optional(),description:o7().optional()}),S=nB(nz({applyDefaults:nI().optional()}),t),k=ad(e=>e&&"object"==typeof e&&!Array.isArray(e)&&0===Object.keys(e).length?{form:{}}:e,nB(nz({form:S.optional(),url:t.optional()}),t.optional())),w=nD({list:t.optional(),cancel:t.optional(),requests:nD({sampling:nD({createMessage:t.optional()}).optional(),elicitation:nD({create:t.optional()}).optional()}).optional()}),P=nD({list:t.optional(),cancel:t.optional(),requests:nD({tools:nD({call:t.optional()}).optional()}).optional()}),V=nz({experimental:nJ(o7(),t).optional(),sampling:nz({context:t.optional(),tools:t.optional()}).optional(),elicitation:k.optional(),roots:nz({listChanged:nI().optional()}).optional(),tasks:w.optional(),extensions:nJ(o7(),t).optional()}),R=s.extend({protocolVersion:o7(),capabilities:V,clientInfo:$}),q=l.extend({method:nY("initialize"),params:R}),I=nz({experimental:nJ(o7(),t).optional(),logging:t.optional(),completions:t.optional(),prompts:nz({listChanged:nI().optional()}).optional(),resources:nz({subscribe:nI().optional(),listChanged:nI().optional()}).optional(),tools:nz({listChanged:nI().optional()}).optional(),tasks:P.optional(),extensions:nJ(o7(),t).optional()}),x=m.extend({protocolVersion:o7(),capabilities:I,serverInfo:$,instructions:o7().optional()}),j=u.extend({method:nY("notifications/initialized"),params:p.optional()}),C=l.extend({method:nY("ping"),params:s.optional()}),T=nz({progress:nP(),total:n4(nP()),message:n4(o7())}),O=nz({...p.shape,...T.shape,progressToken:r}),E=u.extend({method:nY("notifications/progress"),params:O}),A=s.extend({cursor:i.optional()}),W=l.extend({params:A.optional()}),M=m.extend({nextCursor:i.optional()}),z=(N=nz({uri:o7(),mimeType:n4(o7()),_meta:nJ(o7(),nE()).optional()})).extend({text:o7()}),D=o7().refine(e=>{try{return atob(e),!0}catch{return!1}},{message:"Invalid Base64 string"}),F=N.extend({blob:D}),U=nz({audience:nM(L=nQ(["user","assistant"])).optional(),priority:nP().min(0).max(1).optional(),lastModified:ac({offset:!0}).optional()}),H=nz({...b.shape,...v.shape,uri:o7(),description:n4(o7()),mimeType:n4(o7()),size:n4(nP()),annotations:U.optional(),_meta:n4(nD({}))}),G=nz({...b.shape,...v.shape,uriTemplate:o7(),description:n4(o7()),mimeType:n4(o7()),annotations:U.optional(),_meta:n4(nD({}))}),B=W.extend({method:nY("resources/list")}),K=M.extend({resources:nM(H)}),J=W.extend({method:nY("resources/templates/list")}),Z=M.extend({resourceTemplates:nM(G)}),Q=s.extend({uri:o7()}),X=l.extend({method:nY("resources/read"),params:Q}),Y=m.extend({contents:nM(nL([z,F]))}),ee=u.extend({method:nY("notifications/resources/list_changed"),params:p.optional()}),et=l.extend({method:nY("resources/subscribe"),params:Q}),er=l.extend({method:nY("resources/unsubscribe"),params:Q}),ei=p.extend({uri:o7()}),eo=u.extend({method:nY("notifications/resources/updated"),params:ei}),en=nz({name:o7(),description:n4(o7()),required:n4(nI())}),ea=nz({...b.shape,...v.shape,description:n4(o7()),arguments:n4(nM(en)),_meta:n4(nD({}))}),es=W.extend({method:nY("prompts/list")}),ed=M.extend({prompts:nM(ea)}),ec=s.extend({name:o7(),arguments:nJ(o7(),o7()).optional()}),el=l.extend({method:nY("prompts/get"),params:ec}),ep=nz({type:nY("text"),text:o7(),annotations:U.optional(),_meta:nJ(o7(),nE()).optional()}),eu=nz({type:nY("image"),data:D,mimeType:o7(),annotations:U.optional(),_meta:nJ(o7(),nE()).optional()}),em=nz({type:nY("audio"),data:D,mimeType:o7(),annotations:U.optional(),_meta:nJ(o7(),nE()).optional()}),ef=nz({type:nY("tool_use"),name:o7(),id:o7(),input:nJ(o7(),nE()),_meta:nJ(o7(),nE()).optional()}),eh=nz({type:nY("resource"),resource:nL([z,F]),annotations:U.optional(),_meta:nJ(o7(),nE()).optional()}),e_=nz({role:L,content:eg=nL([ep,eu,em,ey=H.extend({type:nY("resource_link")}),eh])}),ev=m.extend({description:o7().optional(),messages:nM(e_)}),eb=u.extend({method:nY("notifications/prompts/list_changed"),params:p.optional()}),e$=nz({title:o7().optional(),readOnlyHint:nI().optional(),destructiveHint:nI().optional(),idempotentHint:nI().optional(),openWorldHint:nI().optional()}),eS=nz({taskSupport:nQ(["required","optional","forbidden"]).optional()}),ek=nz({...b.shape,...v.shape,description:o7().optional(),inputSchema:nz({type:nY("object"),properties:nJ(o7(),e).optional(),required:nM(o7()).optional()}).catchall(nE()),outputSchema:nz({type:nY("object"),properties:nJ(o7(),e).optional(),required:nM(o7()).optional()}).catchall(nE()).optional(),annotations:e$.optional(),execution:eS.optional(),_meta:nJ(o7(),nE()).optional()}),ew=W.extend({method:nY("tools/list")}),eP=M.extend({tools:nM(ek)}),eV=m.extend({content:nM(eg),structuredContent:nJ(o7(),nE()).optional(),isError:nI().optional()}),eR=c.extend({name:o7(),arguments:nJ(o7(),nE()).optional()}),eq=l.extend({method:nY("tools/call"),params:eR}),eI=u.extend({method:nY("notifications/tools/list_changed"),params:p.optional()}),ex=nQ(["debug","info","notice","warning","error","critical","alert","emergency"]),ej=s.extend({level:ex}),eC=l.extend({method:nY("logging/setLevel"),params:ej}),eT=p.extend({level:ex,logger:o7().optional(),data:nE()}),eO=u.extend({method:nY("notifications/message"),params:eT}),eE=nz({name:o7().optional()}),eA=nz({hints:nM(eE).optional(),costPriority:nP().min(0).max(1).optional(),speedPriority:nP().min(0).max(1).optional(),intelligencePriority:nP().min(0).max(1).optional()}),eW=nz({mode:nQ(["auto","required","none"]).optional()}),eM=nz({type:nY("tool_result"),toolUseId:o7().describe("The unique identifier for the corresponding tool call."),content:nM(eg),structuredContent:nz({}).loose().optional(),isError:nI().optional(),_meta:nJ(o7(),nE()).optional()}),eN=nH("type",[ep,eu,em]),eD=nz({role:L,content:nL([ez=nH("type",[ep,eu,em,ef,eM]),nM(ez)]),_meta:nJ(o7(),nE()).optional()}),eF=c.extend({messages:nM(eD),modelPreferences:eA.optional(),systemPrompt:o7().optional(),includeContext:nQ(["none","thisServer","allServers"]).optional(),temperature:nP().optional(),maxTokens:nP().int(),stopSequences:nM(o7()).optional(),metadata:t.optional(),tools:nM(ek).optional(),toolChoice:eW.optional()}),eL=l.extend({method:nY("sampling/createMessage"),params:eF}),eU=m.extend({model:o7(),stopReason:n4(nQ(["endTurn","stopSequence","maxTokens"]).or(o7())),role:L,content:eN}),eH=m.extend({model:o7(),stopReason:n4(nQ(["endTurn","stopSequence","maxTokens","toolUse"]).or(o7())),role:L,content:nL([ez,nM(ez)])}),eG=nz({type:nY("boolean"),title:o7().optional(),description:o7().optional(),default:nI().optional()}),eB=nz({type:nY("string"),title:o7().optional(),description:o7().optional(),minLength:nP().optional(),maxLength:nP().optional(),format:nQ(["email","uri","date","date-time"]).optional(),default:o7().optional()}),eK=nz({type:nQ(["number","integer"]),title:o7().optional(),description:o7().optional(),minimum:nP().optional(),maximum:nP().optional(),default:nP().optional()}),eJ=nz({type:nY("string"),title:o7().optional(),description:o7().optional(),enum:nM(o7()),default:o7().optional()}),eZ=nz({type:nY("string"),title:o7().optional(),description:o7().optional(),oneOf:nM(nz({const:o7(),title:o7()})),default:o7().optional()}),eQ=nz({type:nY("string"),title:o7().optional(),description:o7().optional(),enum:nM(o7()),enumNames:nM(o7()).optional(),default:o7().optional()}),eX=nL([eJ,eZ]),eY=nz({type:nY("array"),title:o7().optional(),description:o7().optional(),minItems:nP().optional(),maxItems:nP().optional(),items:nz({type:nY("string"),enum:nM(o7())}),default:nM(o7()).optional()}),e0=nL([eY,e1=nz({type:nY("array"),title:o7().optional(),description:o7().optional(),minItems:nP().optional(),maxItems:nP().optional(),items:nz({anyOf:nM(nz({const:o7(),title:o7()}))}),default:nM(o7()).optional()})]),e2=nL([eQ,eX,e0]),e4=nL([e2,eG,eB,eK]),e6=c.extend({mode:nY("form").optional(),message:o7(),requestedSchema:nz({type:nY("object"),properties:nJ(o7(),e4),required:nM(o7()).optional()}).catchall(nE())}),e9=nL([e6,e3=c.extend({mode:nY("url"),message:o7(),elicitationId:o7(),url:o7().url()})]),e5=l.extend({method:nY("elicitation/create"),params:e9}),e8=p.extend({elicitationId:o7()}),e7=u.extend({method:nY("notifications/elicitation/complete"),params:e8}),te=m.extend({action:nQ(["accept","decline","cancel"]),content:ad(e=>null===e?void 0:e,nJ(o7(),nL([o7(),nP(),nI(),nM(o7())])).optional())}),tt=nz({type:nY("ref/resource"),uri:o7()}),tr=nz({type:nY("ref/prompt"),name:o7()}),ti=s.extend({ref:nL([tr,tt]),argument:nz({name:o7(),value:o7()}),context:nz({arguments:nJ(o7(),o7()).optional()}).optional()}),to=l.extend({method:nY("completion/complete"),params:ti}),tn=m.extend({completion:nD({values:nM(o7()).max(100),total:n4(nP().int()),hasMore:n4(nI())})}),ta=nz({uri:o7().startsWith("file://"),name:o7().optional(),_meta:nJ(o7(),nE()).optional()}),ts=l.extend({method:nY("roots/list"),params:s.optional()}),td=m.extend({roots:nM(ta)}),tc=u.extend({method:nY("notifications/roots/list_changed"),params:p.optional()}),tl=nD({ttl:nP().optional(),pollInterval:nP().optional()}),tp=nQ(["working","input_required","completed","failed","cancelled"]),tu=nz({taskId:o7(),status:tp,ttl:nL([nP(),nj()]),createdAt:o7(),lastUpdatedAt:o7(),pollInterval:n4(nP()),statusMessage:n4(o7())}),tm=m.extend({task:tu}),tf=p.merge(tu),th=u.extend({method:nY("notifications/tasks/status"),params:tf}),ty=l.extend({method:nY("tasks/get"),params:s.extend({taskId:o7()})}),tg=m.merge(tu),t_=l.extend({method:nY("tasks/result"),params:s.extend({taskId:o7()})}),tv=m.loose(),tb=W.extend({method:nY("tasks/list")}),t$=M.extend({tasks:nM(tu)}),tS=l.extend({method:nY("tasks/cancel"),params:s.extend({taskId:o7()})}),{JSONValueSchema:e,JSONObjectSchema:t,ProgressTokenSchema:r,CursorSchema:i,TaskMetadataSchema:o,RelatedTaskMetadataSchema:n,RequestMetaSchema:a,BaseRequestParamsSchema:s,TaskAugmentedRequestParamsSchema:c,RequestSchema:l,NotificationsParamsSchema:p,NotificationSchema:u,ResultSchema:m,RequestIdSchema:f,EmptyResultSchema:h,CancelledNotificationParamsSchema:y,CancelledNotificationSchema:g,IconSchema:_,IconsSchema:v,BaseMetadataSchema:b,ImplementationSchema:$,ClientTasksCapabilitySchema:w,ServerTasksCapabilitySchema:P,ClientCapabilitiesSchema:V,InitializeRequestParamsSchema:R,InitializeRequestSchema:q,ServerCapabilitiesSchema:I,InitializeResultSchema:x,InitializedNotificationSchema:j,PingRequestSchema:C,ProgressSchema:T,ProgressNotificationParamsSchema:O,ProgressNotificationSchema:E,PaginatedRequestParamsSchema:A,PaginatedRequestSchema:W,PaginatedResultSchema:M,ResourceContentsSchema:N,TextResourceContentsSchema:z,BlobResourceContentsSchema:F,RoleSchema:L,AnnotationsSchema:U,ResourceSchema:H,ResourceTemplateSchema:G,ListResourcesRequestSchema:B,ListResourcesResultSchema:K,ListResourceTemplatesRequestSchema:J,ListResourceTemplatesResultSchema:Z,ResourceRequestParamsSchema:Q,ReadResourceRequestParamsSchema:Q,ReadResourceRequestSchema:X,ReadResourceResultSchema:Y,ResourceListChangedNotificationSchema:ee,SubscribeRequestParamsSchema:Q,SubscribeRequestSchema:et,UnsubscribeRequestParamsSchema:Q,UnsubscribeRequestSchema:er,ResourceUpdatedNotificationParamsSchema:ei,ResourceUpdatedNotificationSchema:eo,PromptArgumentSchema:en,PromptSchema:ea,ListPromptsRequestSchema:es,ListPromptsResultSchema:ed,GetPromptRequestParamsSchema:ec,GetPromptRequestSchema:el,TextContentSchema:ep,ImageContentSchema:eu,AudioContentSchema:em,ToolUseContentSchema:ef,EmbeddedResourceSchema:eh,ResourceLinkSchema:ey,ContentBlockSchema:eg,PromptMessageSchema:e_,GetPromptResultSchema:ev,PromptListChangedNotificationSchema:eb,ToolAnnotationsSchema:e$,ToolExecutionSchema:eS,ToolSchema:ek,ListToolsRequestSchema:ew,ListToolsResultSchema:eP,CallToolResultSchema:eV,CallToolRequestParamsSchema:eR,CallToolRequestSchema:eq,ToolListChangedNotificationSchema:eI,LoggingLevelSchema:ex,SetLevelRequestParamsSchema:ej,SetLevelRequestSchema:eC,LoggingMessageNotificationParamsSchema:eT,LoggingMessageNotificationSchema:eO,ModelHintSchema:eE,ModelPreferencesSchema:eA,ToolChoiceSchema:eW,ToolResultContentSchema:eM,SamplingContentSchema:eN,SamplingMessageContentBlockSchema:ez,SamplingMessageSchema:eD,CreateMessageRequestParamsSchema:eF,CreateMessageRequestSchema:eL,CreateMessageResultSchema:eU,CreateMessageResultWithToolsSchema:eH,BooleanSchemaSchema:eG,StringSchemaSchema:eB,NumberSchemaSchema:eK,UntitledSingleSelectEnumSchemaSchema:eJ,TitledSingleSelectEnumSchemaSchema:eZ,LegacyTitledEnumSchemaSchema:eQ,SingleSelectEnumSchemaSchema:eX,UntitledMultiSelectEnumSchemaSchema:eY,TitledMultiSelectEnumSchemaSchema:e1,MultiSelectEnumSchemaSchema:e0,EnumSchemaSchema:e2,PrimitiveSchemaDefinitionSchema:e4,ElicitRequestFormParamsSchema:e6,ElicitRequestURLParamsSchema:e3,ElicitRequestParamsSchema:e9,ElicitRequestSchema:e5,ElicitationCompleteNotificationParamsSchema:e8,ElicitationCompleteNotificationSchema:e7,ElicitResultSchema:te,ResourceTemplateReferenceSchema:tt,PromptReferenceSchema:tr,CompleteRequestParamsSchema:ti,CompleteRequestSchema:to,CompleteResultSchema:tn,RootSchema:ta,ListRootsRequestSchema:ts,ListRootsResultSchema:td,RootsListChangedNotificationSchema:tc,TaskCreationParamsSchema:tl,TaskStatusSchema:tp,TaskSchema:tu,CreateTaskResultSchema:tm,TaskStatusNotificationParamsSchema:tf,TaskStatusNotificationSchema:th,GetTaskRequestSchema:ty,GetTaskResultSchema:tg,GetTaskPayloadRequestSchema:t_,GetTaskPayloadResultSchema:tv,ListTasksRequestSchema:tb,ListTasksResultSchema:t$,CancelTaskRequestSchema:tS,CancelTaskResultSchema:m.merge(tu),ClientRequestSchema:nL([C,q,to,eC,el,es,B,J,X,et,er,eq,ew,ty,t_,tb,tS]),ClientNotificationSchema:nL([g,E,j,tc,th]),ClientResultSchema:nL([h,eU,eH,te,td,tg,t$,tm]),ServerRequestSchema:nL([C,eL,e5,ts,ty,t_,tb,tS]),ServerNotificationSchema:nL([g,E,eO,eo,ee,eI,eb,th,e7]),ServerResultSchema:nL([h,x,tn,ev,ed,K,Z,Y,eV,eP,tg,t$,tm]),CallToolResultWireSchema:nE().superRefine((e,t)=>{if(!("object"!=typeof e||null===e||Array.isArray(e))&&void 0===e.content){for(let r of kX)if(r in e)return void t.addIssue({code:"custom",message:`content is required when the body carries '${r}' — another result family cannot default into an empty tools/call success`})}}).transform(kY).pipe(eV)})}function k0(e){return"object"!==e.type}let k2=new Set(["const","enum","default","examples"]),k4=new Set(["properties","patternProperties","$defs","definitions","dependentSchemas","dependencies"]);function k6(e){return void 0!==e&&!("string"==typeof e&&e.startsWith("#"))}let k3={ping:null,initialize:null,"completion/complete":null,"logging/setLevel":null,"prompts/get":null,"prompts/list":null,"resources/list":null,"resources/templates/list":null,"resources/read":null,"resources/subscribe":null,"resources/unsubscribe":null,"tools/call":null,"tools/list":null,"tasks/get":null,"tasks/result":null,"tasks/list":null,"tasks/cancel":null,"sampling/createMessage":null,"elicitation/create":null,"roots/list":null},k9={"notifications/cancelled":null,"notifications/progress":null,"notifications/initialized":null,"notifications/roots/list_changed":null,"notifications/tasks/status":null,"notifications/message":null,"notifications/resources/updated":null,"notifications/resources/list_changed":null,"notifications/tools/list_changed":null,"notifications/prompts/list_changed":null,"notifications/elicitation/complete":null},k5={ping:null,initialize:null,"completion/complete":null,"logging/setLevel":null,"prompts/get":null,"prompts/list":null,"resources/list":null,"resources/templates/list":null,"resources/read":null,"resources/subscribe":null,"resources/unsubscribe":null,"tools/call":null,"tools/list":null,"sampling/createMessage":null,"elicitation/create":null,"roots/list":null};function k8(){if(c)return c;let e=k1();return c={requestSchemas:{ping:e.PingRequestSchema,initialize:e.InitializeRequestSchema,"completion/complete":e.CompleteRequestSchema,"logging/setLevel":e.SetLevelRequestSchema,"prompts/get":e.GetPromptRequestSchema,"prompts/list":e.ListPromptsRequestSchema,"resources/list":e.ListResourcesRequestSchema,"resources/templates/list":e.ListResourceTemplatesRequestSchema,"resources/read":e.ReadResourceRequestSchema,"resources/subscribe":e.SubscribeRequestSchema,"resources/unsubscribe":e.UnsubscribeRequestSchema,"tools/call":e.CallToolRequestSchema,"tools/list":e.ListToolsRequestSchema,"tasks/get":e.GetTaskRequestSchema,"tasks/result":e.GetTaskPayloadRequestSchema,"tasks/list":e.ListTasksRequestSchema,"tasks/cancel":e.CancelTaskRequestSchema,"sampling/createMessage":e.CreateMessageRequestSchema,"elicitation/create":e.ElicitRequestSchema,"roots/list":e.ListRootsRequestSchema},notificationSchemas:{"notifications/cancelled":e.CancelledNotificationSchema,"notifications/progress":e.ProgressNotificationSchema,"notifications/initialized":e.InitializedNotificationSchema,"notifications/roots/list_changed":e.RootsListChangedNotificationSchema,"notifications/tasks/status":e.TaskStatusNotificationSchema,"notifications/message":e.LoggingMessageNotificationSchema,"notifications/resources/updated":e.ResourceUpdatedNotificationSchema,"notifications/resources/list_changed":e.ResourceListChangedNotificationSchema,"notifications/tools/list_changed":e.ToolListChangedNotificationSchema,"notifications/prompts/list_changed":e.PromptListChangedNotificationSchema,"notifications/elicitation/complete":e.ElicitationCompleteNotificationSchema},resultSchemas:{ping:e.EmptyResultSchema,initialize:e.InitializeResultSchema,"completion/complete":e.CompleteResultSchema,"logging/setLevel":e.EmptyResultSchema,"prompts/get":e.GetPromptResultSchema,"prompts/list":e.ListPromptsResultSchema,"resources/list":e.ListResourcesResultSchema,"resources/templates/list":e.ListResourceTemplatesResultSchema,"resources/read":e.ReadResourceResultSchema,"resources/subscribe":e.EmptyResultSchema,"resources/unsubscribe":e.EmptyResultSchema,"tools/call":e.CallToolResultWireSchema,"tools/list":e.ListToolsResultSchema,"sampling/createMessage":e.CreateMessageResultWithToolsSchema,"elicitation/create":e.ElicitResultSchema,"roots/list":e.ListRootsResultSchema}}}function k7(e){return Object.prototype.hasOwnProperty.call(k3,e)}function we(e){return Object.prototype.hasOwnProperty.call(k9,e)}function wt(e){return null!==e&&"object"==typeof e&&!Array.isArray(e)}function wr(e,t){if(void 0===e)return{ok:!1,reason:"not-in-era"};let r=e.safeParse(t);return r.success?{ok:!0,value:r.data}:{ok:!1,reason:"invalid",message:String(r.error)}}Object.keys(k3),Object.keys(k9);let wi={ok:!1,reason:"not-in-era"};function wo(e){return wt(e)&&wt(e.outputSchema)&&k0(e.outputSchema)}let wn={era:"2025-11-25",hasRequestMethod:k7,hasNotificationMethod:we,validateRequest:(e,t)=>wr(k7(e)?k8().requestSchemas[e]:void 0,t),validateResult:(e,t)=>wr(Object.prototype.hasOwnProperty.call(k5,e)?k8().resultSchemas[e]:void 0,t),validateNotification:(e,t)=>wr(we(e)?k8().notificationSchemas[e]:void 0,t),hasInputRequestMethod:()=>!1,validateInputRequest:()=>wi,validateInputResponse:()=>wi,samplingResultVariant:(e,t)=>{let r=k1();return wr(e?r.CreateMessageResultWithToolsSchema:r.CreateMessageResultSchema,t)},outboundEnvelope:e=>void 0,validateEnvelopeMeta:e=>[],projectCallToolResult(e,t){let r=kQ(e),i=r.structuredContent;if(void 0===i)return r;let o="object"!=typeof i||null===i||Array.isArray(i),n=void 0!==t&&k0(t);return o||n?{...r,structuredContent:{result:i}}:r},decodeResult(e,t){if(wt(t)&&"resultType"in t){let e={...t};return delete e.resultType,{kind:"complete",result:e}}return{kind:"complete",result:t}},encodeResult(e,t){if("tools/list"!==e)return t;let r=t.tools;return Array.isArray(r)&&r.some(e=>wo(e))?{...t,tools:r.map(e=>wo(e)?{...e,outputSchema:function(e){var t;let r="string"==typeof e.$schema?e.$schema:void 0;if(k6(e.$id))return{...void 0!==r&&{$schema:r},type:"object",properties:{result:e},required:["result"]};let i="string"==typeof(t=e.$schema)&&kM.has(t.replace(/#$/,""))&&!0!==e.$recursiveAnchor,o=(e,t)=>{if(Array.isArray(e))return e.map(e=>o(e,!1));if(null===e||"object"!=typeof e||!t&&k6(e.$id))return e;let r={},n=!1;for(let[a,s]of Object.entries(e))t?r[a]=o(s,!1):("$ref"===a||"$dynamicRef"===a)&&"string"==typeof s?r[a]="#"===s?"#/properties/result":s.startsWith("#/")?`#/properties/result${s.slice(1)}`:s:"$recursiveRef"===a&&"#"===s&&i?n=!0:k2.has(a)?r[a]=s:k4.has(a)?r[a]=o(s,!0):r[a]=o(s,!1);return n&&("$ref"in r?r.allOf=[...Array.isArray(r.allOf)?r.allOf:[],{$ref:"#/properties/result"}]:r.$ref="#/properties/result"),r};return{...void 0!==r&&{$schema:r},type:"object",properties:{result:o(e,!1)},required:["result"]}}(e.outputSchema)}:e)}:t},encodeErrorCode:e=>-32002===e?-32602:e,checkInboundEnvelope:e=>void 0};function wa(){return l??=function(){let e=aa(()=>nL([o7(),nP(),nI(),nj(),nJ(o7(),e),nM(e)])),t=nJ(o7(),e),r=nL([o7(),nP().int()]),i=o7(),o=nL([o7(),nP().int()]),n=nQ(["user","assistant"]),a=nQ(["debug","info","notice","warning","error","critical","alert","emergency"]),s=o7().refine(e=>{try{return atob(e),!0}catch{return!1}},{message:"Invalid Base64 string"}),d=nz({ttl:nP().optional()}),c=nz({taskId:o7()}),l=nD({progressToken:r.optional(),"io.modelcontextprotocol/related-task":c.optional()}),p=nz({_meta:l.optional()}),u=p.extend({task:d.optional()}),m=nz({_meta:l.optional()}),f=nz({method:o7(),params:m.loose().optional()}),h=nz({src:o7(),mimeType:o7().optional(),sizes:nM(o7()).optional(),theme:nQ(["light","dark"]).optional()}),y=nz({icons:nM(h).optional()}),g=nz({name:o7(),title:o7().optional()}),_=g.extend({...g.shape,...y.shape,version:o7(),websiteUrl:o7().optional(),description:o7().optional()}),v=nB(nz({applyDefaults:nI().optional()}),t),b=ad(e=>e&&"object"==typeof e&&!Array.isArray(e)&&0===Object.keys(e).length?{form:{}}:e,nB(nz({form:v.optional(),url:t.optional()}),t.optional())),$=nD({list:t.optional(),cancel:t.optional(),requests:nD({sampling:nD({createMessage:t.optional()}).optional(),elicitation:nD({create:t.optional()}).optional()}).optional()}),S=nD({list:t.optional(),cancel:t.optional(),requests:nD({tools:nD({call:t.optional()}).optional()}).optional()}),k=nz({experimental:nJ(o7(),t).optional(),sampling:nz({context:t.optional(),tools:t.optional()}).optional(),elicitation:b.optional(),roots:nz({listChanged:nI().optional()}).optional(),tasks:$.optional(),extensions:nJ(o7(),t).optional()}),w=nz({experimental:nJ(o7(),t).optional(),logging:t.optional(),completions:t.optional(),prompts:nz({listChanged:nI().optional()}).optional(),resources:nz({subscribe:nI().optional(),listChanged:nI().optional()}).optional(),tools:nz({listChanged:nI().optional()}).optional(),tasks:S.optional(),extensions:nJ(o7(),t).optional()}),P=nz({progress:nP(),total:n4(nP()),message:n4(o7())}),V=nz({...m.shape,...P.shape,progressToken:r}),R=f.extend({method:nY("notifications/progress"),params:V}),q=m.extend({level:a,logger:o7().optional(),data:nE()}),I=f.extend({method:nY("notifications/message"),params:q}),x=nz({uri:o7(),mimeType:n4(o7()),_meta:nJ(o7(),nE()).optional()}),j=x.extend({text:o7()}),C=x.extend({blob:s}),T=nz({audience:nM(n).optional(),priority:nP().min(0).max(1).optional(),lastModified:ac({offset:!0}).optional()}),O=nz({...g.shape,...y.shape,uri:o7(),description:n4(o7()),mimeType:n4(o7()),size:n4(nP()),annotations:T.optional(),_meta:n4(nD({}))}),E=nz({...g.shape,...y.shape,uriTemplate:o7(),description:n4(o7()),mimeType:n4(o7()),annotations:T.optional(),_meta:n4(nD({}))}),A=f.extend({method:nY("notifications/resources/list_changed"),params:m.optional()}),W=m.extend({uri:o7()}),M=f.extend({method:nY("notifications/resources/updated"),params:W}),N=nz({name:o7(),description:n4(o7()),required:n4(nI())}),z=nz({...g.shape,...y.shape,description:n4(o7()),arguments:n4(nM(N)),_meta:n4(nD({}))}),D=f.extend({method:nY("notifications/prompts/list_changed"),params:m.optional()}),F=nz({type:nY("text"),text:o7(),annotations:T.optional(),_meta:nJ(o7(),nE()).optional()}),L=nz({type:nY("image"),data:s,mimeType:o7(),annotations:T.optional(),_meta:nJ(o7(),nE()).optional()}),U=nz({type:nY("audio"),data:s,mimeType:o7(),annotations:T.optional(),_meta:nJ(o7(),nE()).optional()}),H=nz({type:nY("tool_use"),name:o7(),id:o7(),input:nJ(o7(),nE()),_meta:nJ(o7(),nE()).optional()}),G=nz({type:nY("resource"),resource:nL([j,C]),annotations:T.optional(),_meta:nJ(o7(),nE()).optional()}),B=O.extend({type:nY("resource_link")}),K=nL([F,L,U,B,G]),J=nz({role:n,content:K}),Z=nz({title:o7().optional(),readOnlyHint:nI().optional(),destructiveHint:nI().optional(),idempotentHint:nI().optional(),openWorldHint:nI().optional()}),Q=f.extend({method:nY("notifications/tools/list_changed"),params:m.optional()}),X=nz({name:o7().optional()}),Y=nz({hints:nM(X).optional(),costPriority:nP().min(0).max(1).optional(),speedPriority:nP().min(0).max(1).optional(),intelligencePriority:nP().min(0).max(1).optional()}),ee=nz({mode:nQ(["auto","required","none"]).optional()}),et=nz({type:nY("boolean"),title:o7().optional(),description:o7().optional(),default:nI().optional()}),er=nz({type:nY("string"),title:o7().optional(),description:o7().optional(),minLength:nP().optional(),maxLength:nP().optional(),format:nQ(["email","uri","date","date-time"]).optional(),default:o7().optional()}),ei=nz({type:nQ(["number","integer"]),title:o7().optional(),description:o7().optional(),minimum:nP().optional(),maximum:nP().optional(),default:nP().optional()}),eo=nz({type:nY("string"),title:o7().optional(),description:o7().optional(),enum:nM(o7()),default:o7().optional()}),en=nz({type:nY("string"),title:o7().optional(),description:o7().optional(),oneOf:nM(nz({const:o7(),title:o7()})),default:o7().optional()}),ea=nz({type:nY("string"),title:o7().optional(),description:o7().optional(),enum:nM(o7()),enumNames:nM(o7()).optional(),default:o7().optional()}),es=nL([eo,en]),ed=nz({type:nY("array"),title:o7().optional(),description:o7().optional(),minItems:nP().optional(),maxItems:nP().optional(),items:nz({type:nY("string"),enum:nM(o7())}),default:nM(o7()).optional()}),ec=nz({type:nY("array"),title:o7().optional(),description:o7().optional(),minItems:nP().optional(),maxItems:nP().optional(),items:nz({anyOf:nM(nz({const:o7(),title:o7()}))}),default:nM(o7()).optional()}),el=nL([ed,ec]),ep=nL([ea,es,el]),eu=nL([ep,et,er,ei]),em=u.extend({mode:nY("form").optional(),message:o7(),requestedSchema:nz({type:nY("object"),properties:nJ(o7(),eu),required:nM(o7()).optional()}).catchall(nE())}),ef=nz({type:nY("ref/resource"),uri:o7()}),eh=nz({type:nY("ref/prompt"),name:o7()}),ey=nz({uri:o7().startsWith("file://"),name:o7().optional(),_meta:nJ(o7(),nE()).optional()}),eg=k.shape,e_=nz({experimental:eg.experimental,sampling:eg.sampling,elicitation:eg.elicitation,roots:eg.roots,extensions:eg.extensions}),ev=w.shape,eb=nz({experimental:ev.experimental,logging:ev.logging,completions:ev.completions,prompts:ev.prompts,resources:ev.resources,tools:ev.tools,extensions:ev.extensions}),e$=nD({progressToken:r.optional(),[au]:o7(),[am]:_.optional(),[ah]:e_,[ag]:a.optional()}),eS=nz({...g.shape,...y.shape,description:o7().optional(),inputSchema:nD({$schema:o7().optional(),type:nY("object")}),outputSchema:nD({$schema:o7().optional()}).optional(),annotations:Z.optional(),_meta:nJ(o7(),nE()).optional()}),ek=nz({type:nY("tool_result"),toolUseId:o7(),content:nM(K),structuredContent:nE().optional(),isError:nI().optional(),_meta:nJ(o7(),nE()).optional()}),ew=nL([F,L,U,H,ek]),eP=nz({role:n,content:nL([ew,nM(ew)]),_meta:nJ(o7(),nE()).optional()}),eV=o7(),eR=nD({[af]:_.optional().catch(void 0)}),eq=eR.optional();function eI(e){return nD({_meta:eq,resultType:eV.default("complete"),...e})}let ex=eI({}),ej=eI({nextCursor:i.optional()}),eC=eI({content:nM(K),structuredContent:nE().optional(),isError:nI().optional()}),eT=eI({ttlMs:nP().int().min(0),cacheScope:nQ(["public","private"]),tools:nM(eS),nextCursor:i.optional()}),eO=eI({ttlMs:nP().int().min(0),cacheScope:nQ(["public","private"]),prompts:nM(z),nextCursor:i.optional()}),eE=eI({description:o7().optional(),messages:nM(J)}),eA=eI({ttlMs:nP().int().min(0),cacheScope:nQ(["public","private"]),resources:nM(O),nextCursor:i.optional()}),eW=eI({ttlMs:nP().int().min(0),cacheScope:nQ(["public","private"]),resourceTemplates:nM(E),nextCursor:i.optional()}),eM=eI({ttlMs:nP().int().min(0),cacheScope:nQ(["public","private"]),contents:nM(nL([j,C]))}),eN=eI({completion:nz({values:nM(o7()).max(100),total:nP().int().optional(),hasMore:nI().optional()}).loose()}),ez=eI({ttlMs:nP().int().min(0),cacheScope:nQ(["public","private"])}),eD=eI({ttlMs:nP().int().min(0).catch(0),cacheScope:nQ(["public","private"]).catch("private"),supportedVersions:nM(o7()),capabilities:eb,instructions:o7().optional()}),eF=nz({messages:nM(eP),modelPreferences:Y.optional(),systemPrompt:o7().optional(),includeContext:nQ(["none","thisServer","allServers"]).optional(),temperature:nP().optional(),maxTokens:nP().int(),stopSequences:nM(o7()).optional(),metadata:t.optional(),tools:nM(eS).optional(),toolChoice:ee.optional()}),eL=nz({method:nY("sampling/createMessage"),params:eF}),eU=nz({method:nY("roots/list"),params:nz({_meta:nJ(o7(),nE()).optional()}).optional()}),eH=nz({...eP.shape,model:o7(),stopReason:o7().optional()}),eG=nz({roots:nM(ey)}),eB=nz({action:nQ(["accept","decline","cancel"]),content:nJ(o7(),nL([o7(),nP(),nI(),nM(o7())])).optional()}),eK=nz({mode:nY("url"),message:o7(),url:o7().url()}),eJ=nL([em,eK]),eZ=nz({method:nY("elicitation/create"),params:eJ}),eQ=nL([eL,eU,eZ]),eX=nL([eH,eG,eB]),eY=nJ(o7(),eQ),e1=nJ(o7(),eX),e0=eI({inputRequests:eY.optional(),requestState:o7().optional()}),e2={inputResponses:e1.optional(),requestState:o7().optional()},e4=nz({_meta:e$,...e2}),e6=nD({progressToken:r.optional()});function e3(e,t){return nz({method:nY(e),params:nz({_meta:e$,...t})})}function e9(e,t){return nz({method:nY(e),params:nz({_meta:e6.optional(),...t}).optional()})}let e5={name:o7(),arguments:nJ(o7(),nE()).optional(),...e2},e8={cursor:i.optional()},e7=e3("tools/call",e5),te=e3("tools/list",e8),tt=e3("prompts/list",e8),tr=e3("prompts/get",{name:o7(),arguments:nJ(o7(),o7()).optional(),...e2}),ti=e3("resources/list",e8),to=e3("resources/templates/list",e8),tn=e3("resources/read",{uri:o7(),...e2}),ta={ref:nL([eh,ef]),argument:nz({name:o7(),value:o7()}),context:nz({arguments:nJ(o7(),o7()).optional()}).optional()},ts=e3("completion/complete",ta),td=e3("server/discover",{}),tc=nz({toolsListChanged:nI().optional(),promptsListChanged:nI().optional(),resourcesListChanged:nI().optional(),resourceSubscriptions:nM(o7()).optional()}),tl={notifications:tc},tp=e3("subscriptions/listen",tl),tu=eR.extend({"io.modelcontextprotocol/subscriptionId":o}),tm=nD({_meta:tu,resultType:eV.default("complete")}),tf={"tools/call":e9("tools/call",e5),"tools/list":e9("tools/list",e8),"prompts/get":e9("prompts/get",{name:o7(),arguments:nJ(o7(),o7()).optional()}),"prompts/list":e9("prompts/list",e8),"resources/list":e9("resources/list",e8),"resources/templates/list":e9("resources/templates/list",e8),"resources/read":e9("resources/read",{uri:o7()}),"completion/complete":e9("completion/complete",ta),"server/discover":e9("server/discover",{}),"subscriptions/listen":e9("subscriptions/listen",tl)};function th(e){return nD({_meta:eq,...e})}let ty={"tools/call":th({content:nM(K),structuredContent:nE().optional(),isError:nI().optional()}),"tools/list":th({ttlMs:nP().int().min(0),cacheScope:nQ(["public","private"]),tools:nM(eS),nextCursor:i.optional()}),"prompts/get":th({description:o7().optional(),messages:nM(J)}),"prompts/list":th({ttlMs:nP().int().min(0),cacheScope:nQ(["public","private"]),prompts:nM(z),nextCursor:i.optional()}),"resources/list":th({ttlMs:nP().int().min(0),cacheScope:nQ(["public","private"]),resources:nM(O),nextCursor:i.optional()}),"resources/templates/list":th({ttlMs:nP().int().min(0),cacheScope:nQ(["public","private"]),resourceTemplates:nM(E),nextCursor:i.optional()}),"resources/read":th({ttlMs:nP().int().min(0),cacheScope:nQ(["public","private"]),contents:nM(nL([j,C]))}),"completion/complete":th({completion:nz({values:nM(o7()).max(100),total:nP().int().optional(),hasMore:nI().optional()}).loose()}),"server/discover":th({ttlMs:nP().int().min(0).catch(0),cacheScope:nQ(["public","private"]).catch("private"),supportedVersions:nM(o7()),capabilities:eb,instructions:o7().optional()}),"subscriptions/listen":th({})},tg=nD({"io.modelcontextprotocol/subscriptionId":o.optional()}),t_=nz({method:nY("notifications/subscriptions/acknowledged"),params:nz({_meta:tg.optional(),notifications:tc})}),tv=nz({_meta:tg.optional(),requestId:o,reason:o7().optional()}),tb=nz({method:nY("notifications/cancelled"),params:tv}),t$=e=>nz({jsonrpc:nY("2.0"),id:nL([o7(),nP().int()]),result:e}).strict();return{JSONValueSchema:e,JSONObjectSchema:t,ProgressTokenSchema:r,CursorSchema:i,RequestIdSchema:o,RoleSchema:n,LoggingLevelSchema:a,TaskMetadataSchema:d,RelatedTaskMetadataSchema:c,RequestMetaSchema:l,BaseRequestParamsSchema:p,TaskAugmentedRequestParamsSchema:u,NotificationsParamsSchema:m,NotificationSchema:f,IconSchema:h,IconsSchema:y,BaseMetadataSchema:g,ImplementationSchema:_,ClientTasksCapabilitySchema:$,ServerTasksCapabilitySchema:S,ClientCapabilitiesSchema:k,ServerCapabilitiesSchema:w,ProgressSchema:P,ProgressNotificationParamsSchema:V,ProgressNotificationSchema:R,LoggingMessageNotificationParamsSchema:q,LoggingMessageNotificationSchema:I,ResourceContentsSchema:x,TextResourceContentsSchema:j,BlobResourceContentsSchema:C,AnnotationsSchema:T,ResourceSchema:O,ResourceTemplateSchema:E,ResourceListChangedNotificationSchema:A,ResourceUpdatedNotificationParamsSchema:W,ResourceUpdatedNotificationSchema:M,PromptArgumentSchema:N,PromptSchema:z,PromptListChangedNotificationSchema:D,TextContentSchema:F,ImageContentSchema:L,AudioContentSchema:U,ToolUseContentSchema:H,EmbeddedResourceSchema:G,ResourceLinkSchema:B,ContentBlockSchema:K,PromptMessageSchema:J,ToolAnnotationsSchema:Z,ToolListChangedNotificationSchema:Q,ModelHintSchema:X,ModelPreferencesSchema:Y,ToolChoiceSchema:ee,BooleanSchemaSchema:et,StringSchemaSchema:er,NumberSchemaSchema:ei,UntitledSingleSelectEnumSchemaSchema:eo,TitledSingleSelectEnumSchemaSchema:en,LegacyTitledEnumSchemaSchema:ea,SingleSelectEnumSchemaSchema:es,UntitledMultiSelectEnumSchemaSchema:ed,TitledMultiSelectEnumSchemaSchema:ec,MultiSelectEnumSchemaSchema:el,EnumSchemaSchema:ep,PrimitiveSchemaDefinitionSchema:eu,ElicitRequestFormParamsSchema:em,ResourceTemplateReferenceSchema:ef,PromptReferenceSchema:eh,RootSchema:ey,ClientCapabilities2026Schema:e_,ServerCapabilities2026Schema:eb,RequestMetaEnvelopeSchema:e$,ToolSchema:eS,ToolResultContentSchema:ek,SamplingMessageContentBlockSchema:ew,SamplingMessageSchema:eP,ResultTypeSchema:eV,ResultMetaSchema:eR,ResultSchema:ex,PaginatedResultSchema:ej,CallToolResultSchema:eC,ListToolsResultSchema:eT,ListPromptsResultSchema:eO,GetPromptResultSchema:eE,ListResourcesResultSchema:eA,ListResourceTemplatesResultSchema:eW,ReadResourceResultSchema:eM,CompleteResultSchema:eN,CacheableResultSchema:ez,DiscoverResultSchema:eD,CreateMessageRequestParamsSchema:eF,CreateMessageRequestSchema:eL,ListRootsRequestSchema:eU,CreateMessageResultSchema:eH,ListRootsResultSchema:eG,ElicitResultSchema:eB,ElicitRequestURLParamsSchema:eK,ElicitRequestParamsSchema:eJ,ElicitRequestSchema:eZ,InputRequestSchema:eQ,InputResponseSchema:eX,InputRequestsSchema:eY,InputResponsesSchema:e1,InputRequiredResultSchema:e0,InputResponseRequestParamsSchema:e4,CallToolRequestSchema:e7,ListToolsRequestSchema:te,ListPromptsRequestSchema:tt,GetPromptRequestSchema:tr,ListResourcesRequestSchema:ti,ListResourceTemplatesRequestSchema:to,ReadResourceRequestSchema:tn,CompleteRequestSchema:ts,DiscoverRequestSchema:td,SubscriptionFilterSchema:tc,SubscriptionsListenRequestSchema:tp,SubscriptionsListenResultMetaSchema:tu,SubscriptionsListenResultSchema:tm,dispatchRequestSchemas:tf,dispatchResultSchemas:ty,NotificationMetaSchema:tg,SubscriptionsAcknowledgedNotificationSchema:t_,CancelledNotificationParamsSchema:tv,CancelledNotificationSchema:tb,notificationSchemas2026:{"notifications/cancelled":tb,"notifications/progress":R,"notifications/message":I,"notifications/resources/updated":M,"notifications/resources/list_changed":A,"notifications/tools/list_changed":Q,"notifications/prompts/list_changed":D,"notifications/subscriptions/acknowledged":t_},JSONRPCResultResponseSchema:t$(ex),CallToolResultResponseSchema:t$(nL([eC,e0])),ListToolsResultResponseSchema:t$(eT),ListPromptsResultResponseSchema:t$(eO),GetPromptResultResponseSchema:t$(nL([eE,e0])),ListResourcesResultResponseSchema:t$(eA),ListResourceTemplatesResultResponseSchema:t$(eW),ReadResourceResultResponseSchema:t$(nL([eM,e0])),CompleteResultResponseSchema:t$(eN),DiscoverResultResponseSchema:t$(eD),SubscriptionsListenResultResponseSchema:t$(tm)}}()}let ws=["tools/list","prompts/list","resources/list","resources/templates/list","resources/read","server/discover"],wd=Symbol("modelcontextprotocol.resultCacheHintFallback");function wc(e){return"number"==typeof e&&Number.isSafeInteger(e)&&e>=0}function wl(e){return"public"===e||"private"===e}let wp=((Y={})[Y.ParseError=-32700]="ParseError",Y[Y.InvalidRequest=-32600]="InvalidRequest",Y[Y.MethodNotFound=-32601]="MethodNotFound",Y[Y.InvalidParams=-32602]="InvalidParams",Y[Y.InternalError=-32603]="InternalError",Y[Y.ResourceNotFound=-32002]="ResourceNotFound",Y[Y.MissingRequiredClientCapability=-32021]="MissingRequiredClientCapability",Y[Y.UnsupportedProtocolVersion=-32022]="UnsupportedProtocolVersion",Y[Y.UrlElicitationRequired=-32042]="UrlElicitationRequired",Y);var wu=class e extends Error{static{Object.defineProperty(this,"mcpBrand",{value:"mcp.ProtocolError"})}static[Symbol.hasInstance](e){return kL(this,e)}static isInstance(e){if("function"!=typeof this)throw TypeError("isInstance must be called on the class (e.g. `SdkError.isInstance(value)`); for callbacks use `v => SdkError.isInstance(v)`");return kL(this,e)}constructor(e,t,r){super(t),this.code=e,this.data=r,this.name="ProtocolError",kF(this,new.target)}static fromError(t,r,i){return t===wp.UrlElicitationRequired&&i&&i.elicitations?new wf(i.elicitations,r):t===wp.UnsupportedProtocolVersion&&i&&Array.isArray(i.supported)&&"string"==typeof i.requested?new wh({supported:i.supported,requested:i.requested},r):(t===wp.InvalidParams||t===wp.ResourceNotFound)&&"string"==typeof i?.uri&&(t===wp.ResourceNotFound||1===Object.keys(i).length)?new wm(i.uri,r):t===wp.MissingRequiredClientCapability&&i&&null!==i.requiredCapabilities&&"object"==typeof i.requiredCapabilities&&!Array.isArray(i.requiredCapabilities)?new wy({requiredCapabilities:i.requiredCapabilities},r):new e(t,r,i)}},wm=class extends wu{static{Object.defineProperty(this,"mcpBrand",{value:"mcp.ResourceNotFoundError"})}constructor(e,t=`Resource not found: ${e}`){super(wp.InvalidParams,t,{uri:e})}get uri(){return this.data.uri}},wf=class extends wu{static{Object.defineProperty(this,"mcpBrand",{value:"mcp.UrlElicitationRequiredError"})}constructor(e,t=`URL elicitation${e.length>1?"s":""} required`){super(wp.UrlElicitationRequired,t,{elicitations:e})}get elicitations(){return this.data?.elicitations??[]}},wh=class extends wu{static{Object.defineProperty(this,"mcpBrand",{value:"mcp.UnsupportedProtocolVersionError"})}constructor(e,t=`Unsupported protocol version: ${e.requested}`){super(wp.UnsupportedProtocolVersion,t,e)}get supported(){return this.data.supported}get requested(){return this.data.requested}},wy=class extends wu{static{Object.defineProperty(this,"mcpBrand",{value:"mcp.MissingRequiredClientCapabilityError"})}constructor(e,t=`Missing required client capabilities: ${Object.keys(e.requiredCapabilities).join(", ")}`){super(wp.MissingRequiredClientCapability,t,e)}get requiredCapabilities(){return this.data.requiredCapabilities}};let wg=["tools/call","prompts/get","resources/read"],w_=["elicitation/create","sampling/createMessage","roots/list"];function wv(){if(p)return p;let e=wa();return p={request:{"elicitation/create":nz({method:nY("elicitation/create"),params:e.ElicitRequestParamsSchema}),"sampling/createMessage":nz({method:nY("sampling/createMessage"),params:e.CreateMessageRequestParamsSchema}),"roots/list":nz({method:nY("roots/list"),params:nD({}).optional()})},response:{"elicitation/create":e.ElicitResultSchema,"sampling/createMessage":e.CreateMessageResultSchema,"roots/list":e.ListRootsResultSchema}}}function wb(e){return w_.includes(e)}function w$(e){return wb(e)?wv().request[e]:void 0}let wS={"tools/call":null,"tools/list":null,"prompts/get":null,"prompts/list":null,"resources/list":null,"resources/templates/list":null,"resources/read":null,"completion/complete":null,"server/discover":null,"subscriptions/listen":null},wk={"notifications/cancelled":null,"notifications/progress":null,"notifications/message":null,"notifications/resources/updated":null,"notifications/resources/list_changed":null,"notifications/tools/list_changed":null,"notifications/prompts/list_changed":null,"notifications/subscriptions/acknowledged":null};function ww(e){return Object.prototype.hasOwnProperty.call(wS,e)}function wP(e){return Object.prototype.hasOwnProperty.call(wk,e)}function wV(e){return null!==e&&"object"==typeof e&&!Array.isArray(e)}function wR(e,t){if(void 0===e)return{ok:!1,reason:"not-in-era"};let r=e.safeParse(t);return r.success?{ok:!0,value:r.data}:{ok:!1,reason:"invalid",message:String(r.error)}}Object.keys(wS),Object.keys(wk);let wq={ok:!1,reason:"not-in-era"},wI=[au,ah],wx={era:"2026-07-28",hasRequestMethod:ww,hasNotificationMethod:wP,hasInputRequestMethod:e=>void 0!==w$(e),validateRequest:(e,t)=>wR(ww(e)?wa().dispatchRequestSchemas[e]:void 0,t),validateResult:(e,t)=>wR(Object.prototype.hasOwnProperty.call(wS,e)?wa().dispatchResultSchemas[e]:void 0,t),validateNotification:(e,t)=>wR(wP(e)?wa().notificationSchemas2026[e]:void 0,t),validateInputRequest:(e,t)=>wR(w$(e),t),validateInputResponse:(e,t)=>wR(wb(e)?wv().response[e]:void 0,t),samplingResultVariant:()=>wq,outboundEnvelope:e=>({[au]:e.protocolVersion,[am]:e.clientInfo,[ah]:e.clientCapabilities,...void 0!==e.logLevel&&{[ag]:e.logLevel}}),validateEnvelopeMeta(e){let t=[];for(let r of wI)r in e||t.push({key:r,problem:"missing"});let r=wa().RequestMetaEnvelopeSchema.safeParse(e);if(!r.success)for(let e of r.error.issues){let r=e.path.map(String),i=r.length>0?r.join("."):"_meta";1===r.length&&t.some(e=>e.key===i&&"missing"===e.problem)||t.push({key:i,problem:e.message})}return t},projectCallToolResult:e=>kQ(e),inputRequestSchema:w$,decodeResult(e,t){if(!wV(t))return{kind:"invalid",error:new kH(kU.InvalidResult,`Invalid result for ${e}: not an object`,{method:e})};let r=t.resultType;if(void 0===r)return{kind:"invalid",error:new kH(kU.InvalidResult,`Invalid result for ${e}: missing required resultType — servers implementing protocol revision 2026-07-28 MUST include it (the absent-means-complete bridge applies only to earlier-revision servers)`,{method:e,violation:"missing-resultType"})};if("string"!=typeof r)return{kind:"invalid",error:new kH(kU.InvalidResult,`Invalid result for ${e}: non-string resultType`,{method:e,resultType:r})};if("input_required"===r){let r=t.inputRequests,i=wV(r)?r:{},o=t.requestState,n=void 0===t._meta?void 0:wa().ResultMetaSchema.safeParse(t._meta),a=n?.success?n.data:void 0;return 0===Object.keys(i).length&&"string"!=typeof o?{kind:"invalid",error:new kH(kU.InvalidResult,`Invalid result for ${e}: input_required carries neither inputRequests nor requestState (every input_required result must include at least one of the two)`,{method:e,violation:"input-required-missing-both"})}:{kind:"input_required",inputRequests:i,..."string"==typeof o&&{requestState:o},...void 0!==a&&{_meta:a}}}if("complete"!==r)return{kind:"invalid",error:new kH(kU.UnsupportedResultType,`Unsupported result type '${r}' for ${e}`,{resultType:r,method:e})};let i=function(){if(u)return u;let e=wa();return u={"tools/call":e.CallToolResultSchema,"tools/list":e.ListToolsResultSchema,"prompts/get":e.GetPromptResultSchema,"prompts/list":e.ListPromptsResultSchema,"resources/list":e.ListResourcesResultSchema,"resources/templates/list":e.ListResourceTemplatesResultSchema,"resources/read":e.ReadResourceResultSchema,"completion/complete":e.CompleteResultSchema,"server/discover":e.DiscoverResultSchema}}(),o=Object.hasOwn(i,e)?i[e]:void 0;if(void 0!==o){let r=o.safeParse(t);if(!r.success)return{kind:"invalid",error:new kH(kU.InvalidResult,`Invalid result for ${e}: ${r.error}`,{method:e})}}let n={...t};return delete n.resultType,{kind:"complete",result:n}},encodeResult:(e,t,r)=>(function(e,t){if(void 0===t)return e;let r=e._meta;return void 0===r?{...e,_meta:{[af]:t}}:null===r||"object"!=typeof r||Array.isArray(r)||void 0!==r[af]?e:{...e,_meta:{...r,[af]:t}}})(function(e,t){var r,i;let o=t[wd];if("complete"!==t.resultType||!ws.includes(e)){let e;return void 0===o?t:(e={...t},delete e[wd],e)}let n=wc(t.ttlMs)?t.ttlMs:void 0!==(r=o)&&wc(r.ttlMs)?r.ttlMs:0,a=wl(t.cacheScope)?t.cacheScope:void 0!==(i=o)&&wl(i.cacheScope)?i.cacheScope:"private",s={...t,ttlMs:n,cacheScope:a};return delete s[wd],s}(e,function(e,t){let r=t.resultType;if(void 0===r)return{...t,resultType:"complete"};if("complete"===r||wg.includes(e))return t;throw new wu(wp.InternalError,`Handler for ${e} returned resultType '${String(r)}', but results of ${e} only support 'complete' on protocol revision 2026-07-28`)}(e,function(e,t){let r=t,i=!1,o=()=>(i||(r={...r},i=!0),r),n=t.tools;"tools/list"===e&&Array.isArray(n)&&n.some(e=>wV(e)&&"execution"in e)&&(o().tools=n.map(e=>{if(!wV(e)||!("execution"in e))return e;let t={...e};return delete t.execution,t}));let a=t.capabilities;if(wV(a)&&"tasks"in a){let e={...a};delete e.tasks,o().capabilities=e}return r}(e,t))),r),encodeErrorCode:e=>-32002===e?-32602:e,checkInboundEnvelope(e){if(void 0===e.envelope)return"Request is missing the required _meta envelope for protocol revision 2026-07-28 (io.modelcontextprotocol/protocolVersion, io.modelcontextprotocol/clientCapabilities)";let t=wa().RequestMetaEnvelopeSchema.safeParse(e.envelope);if(!t.success)return`Invalid _meta envelope for protocol revision 2026-07-28: ${t.error.issues.map(e=>e.message).join("; ")}`}},wj="2026-07-28";function wC(e){return void 0!==e&&e>=kB?wx:wn}function wT(e){return void 0!==e.revision?wC(e.revision).era:"modern"===e.era?wx.era:wn.era}function wO(e){return wW.some(t=>t.hasRequestMethod(e))}function wE(e){return wW.some(t=>t.hasNotificationMethod(e))}function wA(e){return"tasks/get"===e||"tasks/cancel"===e}let wW=[wn,wx];var wM=(e=>{let t={};for(var r in e)kj(t,r,{get:e[r],enumerable:!0});return t})({AnnotationsSchema:()=>ss,AudioContentSchema:()=>sW,BaseMetadataSchema:()=>aH,BaseRequestParamsSchema:()=>aV,BlobResourceContentsSchema:()=>sn,BooleanSchemaSchema:()=>dc,CallToolRequestParamsSchema:()=>sX,CallToolRequestSchema:()=>sY,CallToolResultSchema:()=>sZ,CancelTaskRequestSchema:()=>dJ,CancelTaskResultSchema:()=>dZ,CancelledNotificationParamsSchema:()=>aD,CancelledNotificationSchema:()=>aF,ClientCapabilitiesSchema:()=>aQ,ClientNotificationSchema:()=>dX,ClientRequestSchema:()=>dQ,ClientResultSchema:()=>dY,ClientTasksCapabilitySchema:()=>aJ,CompatibilityCallToolResultSchema:()=>sQ,CompleteRequestParamsSchema:()=>dx,CompleteRequestSchema:()=>dj,CompleteResultSchema:()=>dC,ContentBlockSchema:()=>sD,CreateMessageRequestParamsSchema:()=>dn,CreateMessageRequestSchema:()=>da,CreateMessageResultSchema:()=>ds,CreateMessageResultWithToolsSchema:()=>dd,CreateTaskResultSchema:()=>dz,CursorSchema:()=>aS,DiscoverRequestSchema:()=>a4,DiscoverResultSchema:()=>a6,ElicitRequestFormParamsSchema:()=>d$,ElicitRequestParamsSchema:()=>dk,ElicitRequestSchema:()=>dw,ElicitRequestURLParamsSchema:()=>dS,ElicitResultSchema:()=>dR,ElicitationCompleteNotificationParamsSchema:()=>dP,ElicitationCompleteNotificationSchema:()=>dV,EmbeddedResourceSchema:()=>sN,EmptyResultSchema:()=>az,EnumSchemaSchema:()=>dv,GetPromptRequestParamsSchema:()=>sT,GetPromptRequestSchema:()=>sO,GetPromptResultSchema:()=>sL,GetTaskPayloadRequestSchema:()=>dH,GetTaskPayloadResultSchema:()=>dG,GetTaskRequestSchema:()=>dL,GetTaskResultSchema:()=>dU,IconSchema:()=>aL,IconsSchema:()=>aU,ImageContentSchema:()=>sA,ImplementationSchema:()=>aG,InitializeRequestParamsSchema:()=>aX,InitializeRequestSchema:()=>aY,InitializeResultSchema:()=>a0,InitializedNotificationSchema:()=>a2,JSONArraySchema:()=>ab,JSONObjectSchema:()=>av,JSONRPCErrorResponseSchema:()=>aW,JSONRPCMessageSchema:()=>aM,JSONRPCNotificationSchema:()=>aE,JSONRPCRequestSchema:()=>aO,JSONRPCResponseSchema:()=>aN,JSONRPCResultResponseSchema:()=>aA,JSONValueSchema:()=>a_,LegacyTitledEnumSchemaSchema:()=>df,ListChangedOptionsBaseSchema:()=>s0,ListPromptsRequestSchema:()=>sj,ListPromptsResultSchema:()=>sC,ListResourceTemplatesRequestSchema:()=>su,ListResourceTemplatesResultSchema:()=>sm,ListResourcesRequestSchema:()=>sl,ListResourcesResultSchema:()=>sp,ListRootsRequestSchema:()=>dO,ListRootsResultSchema:()=>dE,ListTasksRequestSchema:()=>dB,ListTasksResultSchema:()=>dK,ListToolsRequestSchema:()=>sK,ListToolsResultSchema:()=>sJ,LoggingLevelSchema:()=>s2,LoggingMessageNotificationParamsSchema:()=>s3,LoggingMessageNotificationSchema:()=>s9,ModelHintSchema:()=>s5,ModelPreferencesSchema:()=>s8,MultiSelectEnumSchemaSchema:()=>d_,NotificationSchema:()=>ax,NotificationsParamsSchema:()=>aI,NumberSchemaSchema:()=>dp,PaginatedRequestParamsSchema:()=>a7,PaginatedRequestSchema:()=>se,PaginatedResultSchema:()=>st,PingRequestSchema:()=>a3,PrimitiveSchemaDefinitionSchema:()=>db,ProgressNotificationParamsSchema:()=>a5,ProgressNotificationSchema:()=>a8,ProgressSchema:()=>a9,ProgressTokenSchema:()=>a$,PromptArgumentSchema:()=>sI,PromptListChangedNotificationSchema:()=>sU,PromptMessageSchema:()=>sF,PromptReferenceSchema:()=>dI,PromptSchema:()=>sx,ReadResourceRequestParamsSchema:()=>sf,ReadResourceRequestSchema:()=>sh,ReadResourceResultSchema:()=>sy,RelatedTaskMetadataSchema:()=>aw,RequestIdSchema:()=>aT,RequestMetaSchema:()=>aP,RequestSchema:()=>aq,ResourceContentsSchema:()=>sr,ResourceLinkSchema:()=>sz,ResourceListChangedNotificationSchema:()=>sg,ResourceRequestParamsSchema:()=>sf,ResourceSchema:()=>sd,ResourceTemplateReferenceSchema:()=>dq,ResourceTemplateSchema:()=>sc,ResourceUpdatedNotificationParamsSchema:()=>sR,ResourceUpdatedNotificationSchema:()=>sq,ResultMetaObjectSchema:()=>aj,ResultSchema:()=>aC,RoleSchema:()=>sa,RootSchema:()=>dT,RootsListChangedNotificationSchema:()=>dA,SamplingContentSchema:()=>dt,SamplingMessageContentBlockSchema:()=>dr,SamplingMessageSchema:()=>di,ServerCapabilitiesSchema:()=>a1,ServerNotificationSchema:()=>d0,ServerRequestSchema:()=>d1,ServerResultSchema:()=>d2,ServerTasksCapabilitySchema:()=>aZ,SetLevelRequestParamsSchema:()=>s4,SetLevelRequestSchema:()=>s6,SingleSelectEnumSchemaSchema:()=>dh,StringSchemaSchema:()=>dl,SubscribeRequestParamsSchema:()=>sf,SubscribeRequestSchema:()=>s_,SubscriptionFilterSchema:()=>sb,SubscriptionsAcknowledgedNotificationParamsSchema:()=>sk,SubscriptionsAcknowledgedNotificationSchema:()=>sw,SubscriptionsListenRequestParamsSchema:()=>s$,SubscriptionsListenRequestSchema:()=>sS,SubscriptionsListenResultMetaSchema:()=>sP,SubscriptionsListenResultSchema:()=>sV,TaskAugmentedRequestParamsSchema:()=>aR,TaskCreationParamsSchema:()=>dW,TaskMetadataSchema:()=>ak,TaskSchema:()=>dN,TaskStatusNotificationParamsSchema:()=>dD,TaskStatusNotificationSchema:()=>dF,TaskStatusSchema:()=>dM,TextContentSchema:()=>sE,TextResourceContentsSchema:()=>si,TitledMultiSelectEnumSchemaSchema:()=>dg,TitledSingleSelectEnumSchemaSchema:()=>dm,ToolAnnotationsSchema:()=>sH,ToolChoiceSchema:()=>s7,ToolExecutionSchema:()=>sG,ToolListChangedNotificationSchema:()=>s1,ToolResultContentSchema:()=>de,ToolSchema:()=>sB,ToolUseContentSchema:()=>sM,UnsubscribeRequestParamsSchema:()=>sf,UnsubscribeRequestSchema:()=>sv,UntitledMultiSelectEnumSchemaSchema:()=>dy,UntitledSingleSelectEnumSchemaSchema:()=>du});let wN=e=>"object"==typeof e&&null!==e&&!Array.isArray(e)&&"input_required"===e.resultType,wz="x-mcp-header",wD=/^[!#$%&'*+\-.^_`|~0-9A-Za-z]+$/,wF=new Set(["string","integer","boolean"]);function wL(e){let t,r=[],i=new Map,o=(e,n,a)=>{if(null===e||"object"!=typeof e)return;if(wz in e){if(!a||0===n.length)return`${wG(n)}: x-mcp-header is only permitted on properties statically reachable via a chain of 'properties' keys (not under items, additionalProperties, oneOf/anyOf/allOf/not, if/then/else, or $ref)`;let o=e[wz];if("string"!=typeof o||0===o.length)return`${wG(n)}: x-mcp-header MUST be a non-empty string`;if(!wD.test(o))return`${wG(n)}: x-mcp-header '${o}' is not a valid RFC 9110 token (no spaces, control characters or HTTP delimiters)`;let s="string"==typeof e.type?e.type:void 0;if(void 0===s||!wF.has(s)){let e=`${wG(n)}: x-mcp-header is only permitted on primitive-typed properties (string, integer, boolean); got ${s??""}`;if("number"!==s)return e;t??=e}let d=o.toLowerCase(),c=i.get(d);if(void 0!==c)return`x-mcp-header '${o}' is not case-insensitively unique (also declared as '${c}')`;i.set(d,o),r.push({path:n,headerName:o,type:s})}let s=e.properties;if(null!==s&&"object"==typeof s)for(let[e,t]of Object.entries(s)){let r=o(t,[...n,e],a);if(void 0!==r)return r}for(let t of wU){let r=e[t];if(void 0!==r)for(let e of Array.isArray(r)?r:null!==r&&"object"==typeof r&&wH.has(t)?Object.values(r):[r]){let r=o(e,[...n,`<${t}>`],!1);if(void 0!==r)return r}}},n=o(e,[],!0);return void 0!==n?{valid:!1,reason:t??n}:void 0===t?{valid:!0,declarations:r}:{valid:!1,reason:t,declarations:r}}let wU=["items","prefixItems","contains","additionalProperties","unevaluatedProperties","unevaluatedItems","propertyNames","patternProperties","dependentSchemas","oneOf","anyOf","allOf","not","if","then","else","$defs","definitions"],wH=new Set(["patternProperties","dependentSchemas","$defs","definitions"]);function wG(e){return 0===e.length?"":e.join(".")}let wB="=?base64?";function wK(e){return new Set(e.flatMap(e=>Object.keys(e.shape)))}function wJ(e){if(null==e)return!1;let t=typeof e;return("object"===t||"function"===t)&&"~standard"in e&&"function"==typeof e["~standard"]?.validate}wp.InvalidRequest,wp.UnsupportedProtocolVersion,wp.InvalidParams,wp.MethodNotFound,wp.InvalidParams,wp.MissingRequiredClientCapability,wp.ParseError,wp.InvalidRequest,wp.MethodNotFound,wp.UnsupportedProtocolVersion,wp.MissingRequiredClientCapability;let wZ=!1,wQ="draft-2020-12",wX=/^#\/(\$defs|definitions)\/([^/~%]+)$/;async function wY(e,t){let r=await e["~standard"].validate(t);return r.issues&&r.issues.length>0?{success:!1,error:r.issues.map(e=>e.path?.length?`${e.path.map(e=>String("object"==typeof e?e.key:e)).join(".")}: ${e.message}`:e.message).join(", ")}:{success:!0,data:r.value}}let w1=/\\\.\\d\{(\d+)\}/;function w0(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}let w2=new Set(["$comment","deprecated","description","examples","readOnly","title","writeOnly"]);function w4(e){return w2.has(e)||e.startsWith("x-")}let w6=new Set(["$schema",...Object.keys(d$.shape.requestedSchema.shape)]),w3={string:wK([dl,du,dm,df]),number:wK([dp]),integer:wK([dp]),boolean:wK([dc]),array:wK([dy,dg])},w9=new Set(dl.shape.format.unwrap().options);Object.assign(function(e){let t=void 0!==e.inputRequests&&Object.keys(e.inputRequests).length>0,r="string"==typeof e.requestState;if(!t&&!r)throw TypeError("inputRequired() requires at least one of inputRequests (with at least one entry) or requestState (spec: every InputRequiredResult MUST include at least one of the two)");return{resultType:"input_required",...void 0!==e.inputRequests&&{inputRequests:e.inputRequests},...void 0!==e.requestState&&{requestState:e.requestState}}},{elicit(e){try{return{method:"elicitation/create",params:function(e){var t;if(!wJ(e.requestedSchema))return{...e,mode:"form",requestedSchema:e.requestedSchema};let r=e.requestedSchema["~standard"].vendor,i=function(e,t){let r={},i=[];for(let[o,n]of Object.entries(e))"properties"===o&&w0(n)?r[o]=Object.fromEntries(Object.entries(n).map(([e,r])=>[e,function(e,t,r,i){if(!w0(e))return e;let o="string"==typeof e.type&&Object.hasOwn(w3,e.type)?w3[e.type]:void 0;if(void 0===o)return e;let n={};for(let[s,d]of Object.entries(e))if(o.has(s)||w4(s))n[s]=d;else if("pattern"===s&&"string"===e.type&&"string"==typeof e.format)if(w9.has(e.format)){var a;"string"==typeof d&&(a=e.format,"zod"!==r||(function(e,t){let r;switch(e){case"email":r=[iw(nn,void 0)];break;case"uri":r=[iP(nd,void 0)];break;case"date":r=[iR(nr,void 0)];break;case"date-time":let i,o;i=w1.exec(t),o=[void 0,-1,0],i&&o.push(Number(i[1])),r=[!1,!0].flatMap(e=>[!1,!0].flatMap(t=>o.map(r=>ac({local:e,offset:t,precision:r}))))}return new Set(r.map(e=>{let t;return t=ox(e,{target:wQ,io:"input"}),"string"==typeof t.pattern?t.pattern:void 0}).filter(e=>void 0!==e))})(a,d).has(d))||i.push(`${t}.${s}`)}else n[s]=d;else i.push(`${t}.${s}`);return n}(r,`properties.${e}`,t,i)])):w6.has(o)?r[o]=n:w4(o)||i.push(o);if(i.length>0)throw new wu(wp.InvalidParams,`Elicitation requestedSchema contains unsupported JSON Schema constraint(s) after Standard Schema conversion: ${i.join(", ")}`);return r}(function(e){try{return function(e,t="input"){let r,i=e["~standard"];if(i.jsonSchema)r=i.jsonSchema[t]({target:wQ});else if("zod"===i.vendor){if(!("_zod"in e))throw Error("Schema appears to be from zod 3, which the SDK cannot convert to JSON Schema. Upgrade to zod >=4.2.0, or wrap your JSON Schema with fromJsonSchema().");wZ||(wZ=!0,console.warn("[mcp-sdk] Your zod version does not implement `~standard.jsonSchema` (added in zod 4.2.0). Falling back to z.toJSONSchema(). Upgrade to zod >=4.2.0 to silence this warning.")),r=ox(e,{target:wQ,io:t})}else throw Error(`Schema library "${i.vendor}" does not implement StandardJSONSchemaV1 (\`~standard.jsonSchema\`). Upgrade to a version that does, or wrap your JSON Schema with fromJsonSchema().`);if("output"===t)return void 0!==r.type||!function e(t,r=t){if("properties"in t||"patternProperties"in t||"additionalProperties"in t||"required"in t)return!0;let i="string"==typeof t.$ref&&wX.exec(t.$ref);if(i&&r[i[1]]?.[i[2]]?.type==="object")return!0;for(let i of["oneOf","anyOf","allOf"]){let o=t[i];if(Array.isArray(o)&&o.length>0)return o.every(t=>null!==t&&"object"==typeof t&&("object"===t.type||e(t,"$id"in t?{}:r)))}return!1}(r)?r:{type:"object",...r};if(void 0!==r.type&&"object"!==r.type)throw Error(`MCP tool and prompt schemas must describe objects (got type: ${JSON.stringify(r.type)}). Wrap your schema in z.object({...}) or equivalent.`);return{type:"object",...r}}(e,"input")}catch(t){let e=t instanceof Error?t.message:String(t);throw new wu(wp.InvalidParams,`Elicitation requestedSchema must describe an object with flat primitive properties: ${e}`)}}(e.requestedSchema),r),o=(t=d$.shape.requestedSchema,oJ(t,i));if(!o.success)throw new wu(wp.InvalidParams,`Elicitation requestedSchema only supports flat primitive properties (string, number, integer, boolean, and string enums): ${function(e,t){if(!w0(e.properties))return t;let r=Object.entries(e.properties).filter(([,e])=>!oJ(db,e).success).map(([e])=>`properties.${e}`);return r.length>0?r.join(", "):t}(i,o.error.message)}`);let n=function e(t,r,i=""){return Array.isArray(t)&&Array.isArray(r)?t.flatMap((t,o)=>e(t,r[o],`${i}[${o}]`)):w0(t)&&w0(r)?Object.entries(t).flatMap(([t,o])=>{let n=i?`${i}.${t}`:t;return Object.prototype.hasOwnProperty.call(r,t)?e(o,r[t],n):w4(t)?[]:[n]}):[]}(i,o.data);if(n.length>0)throw new wu(wp.InvalidParams,`Elicitation requestedSchema contains unsupported JSON Schema constraint(s) after Standard Schema conversion: ${n.join(", ")}`);let a=(o.data.required??[]).filter(e=>!Object.prototype.hasOwnProperty.call(o.data.properties,e));if(a.length>0)throw new wu(wp.InvalidParams,`Elicitation requestedSchema lists required properties that are not defined in properties: ${a.join(", ")}`);return{...e,mode:"form",requestedSchema:o.data}}(e)}}catch(e){throw e instanceof wu?TypeError(e.message,{cause:e}):e}},elicitUrl:e=>({method:"elicitation/create",params:{...e,mode:"url"}}),createMessage:e=>({method:"sampling/createMessage",params:e}),listRoots:()=>({method:"roots/list"})});let w5={},w8={};function w7(e,t){let r=e.slice(0,-6);w5[r]=t,w8[r]=e=>t.safeParse(e).success}for(let e of["AnnotationsSchema","AudioContentSchema","BaseMetadataSchema","BlobResourceContentsSchema","BooleanSchemaSchema","CallToolRequestSchema","CallToolRequestParamsSchema","CallToolResultSchema","CancelledNotificationSchema","CancelledNotificationParamsSchema","CancelTaskRequestSchema","CancelTaskResultSchema","ClientCapabilitiesSchema","ClientNotificationSchema","ClientRequestSchema","ClientResultSchema","CompatibilityCallToolResultSchema","CompleteRequestSchema","CompleteRequestParamsSchema","CompleteResultSchema","ContentBlockSchema","CreateMessageRequestSchema","CreateMessageRequestParamsSchema","CreateMessageResultSchema","CreateMessageResultWithToolsSchema","CreateTaskResultSchema","CursorSchema","DiscoverRequestSchema","DiscoverResultSchema","ElicitationCompleteNotificationSchema","ElicitationCompleteNotificationParamsSchema","ElicitRequestSchema","ElicitRequestFormParamsSchema","ElicitRequestParamsSchema","ElicitRequestURLParamsSchema","ElicitResultSchema","EmbeddedResourceSchema","EmptyResultSchema","EnumSchemaSchema","GetPromptRequestSchema","GetPromptRequestParamsSchema","GetPromptResultSchema","GetTaskPayloadRequestSchema","GetTaskPayloadResultSchema","GetTaskRequestSchema","GetTaskResultSchema","IconSchema","IconsSchema","ImageContentSchema","ImplementationSchema","InitializedNotificationSchema","InitializeRequestSchema","InitializeRequestParamsSchema","InitializeResultSchema","JSONArraySchema","JSONObjectSchema","JSONRPCErrorResponseSchema","JSONRPCMessageSchema","JSONRPCNotificationSchema","JSONRPCRequestSchema","JSONRPCResponseSchema","JSONRPCResultResponseSchema","JSONValueSchema","LegacyTitledEnumSchemaSchema","ListPromptsRequestSchema","ListPromptsResultSchema","ListResourcesRequestSchema","ListResourcesResultSchema","ListResourceTemplatesRequestSchema","ListResourceTemplatesResultSchema","ListRootsRequestSchema","ListRootsResultSchema","ListTasksRequestSchema","ListTasksResultSchema","ListToolsRequestSchema","ListToolsResultSchema","LoggingLevelSchema","LoggingMessageNotificationSchema","LoggingMessageNotificationParamsSchema","ModelHintSchema","ModelPreferencesSchema","MultiSelectEnumSchemaSchema","NotificationSchema","NumberSchemaSchema","PaginatedRequestSchema","PaginatedRequestParamsSchema","PaginatedResultSchema","PingRequestSchema","PrimitiveSchemaDefinitionSchema","ProgressSchema","ProgressNotificationSchema","ProgressNotificationParamsSchema","ProgressTokenSchema","PromptSchema","PromptArgumentSchema","PromptListChangedNotificationSchema","PromptMessageSchema","PromptReferenceSchema","ReadResourceRequestSchema","ReadResourceRequestParamsSchema","ReadResourceResultSchema","RelatedTaskMetadataSchema","RequestSchema","RequestIdSchema","RequestMetaSchema","ResourceSchema","ResourceContentsSchema","ResourceLinkSchema","ResourceListChangedNotificationSchema","ResourceRequestParamsSchema","ResourceTemplateSchema","ResourceTemplateReferenceSchema","ResourceUpdatedNotificationSchema","ResourceUpdatedNotificationParamsSchema","ResultMetaObjectSchema","ResultSchema","RoleSchema","RootSchema","RootsListChangedNotificationSchema","SamplingContentSchema","SamplingMessageSchema","SamplingMessageContentBlockSchema","ServerCapabilitiesSchema","ServerNotificationSchema","ServerRequestSchema","ServerResultSchema","SetLevelRequestSchema","SetLevelRequestParamsSchema","SingleSelectEnumSchemaSchema","StringSchemaSchema","SubscribeRequestSchema","SubscribeRequestParamsSchema","SubscriptionFilterSchema","SubscriptionsAcknowledgedNotificationSchema","SubscriptionsAcknowledgedNotificationParamsSchema","SubscriptionsListenRequestSchema","SubscriptionsListenRequestParamsSchema","SubscriptionsListenResultSchema","SubscriptionsListenResultMetaSchema","TaskAugmentedRequestParamsSchema","TaskCreationParamsSchema","TaskMetadataSchema","TaskSchema","TaskStatusSchema","TaskStatusNotificationSchema","TaskStatusNotificationParamsSchema","TextContentSchema","TextResourceContentsSchema","TitledMultiSelectEnumSchemaSchema","TitledSingleSelectEnumSchemaSchema","ToolSchema","ToolAnnotationsSchema","ToolChoiceSchema","ToolExecutionSchema","ToolListChangedNotificationSchema","ToolResultContentSchema","ToolUseContentSchema","UnsubscribeRequestSchema","UnsubscribeRequestParamsSchema","UntitledMultiSelectEnumSchemaSchema","UntitledSingleSelectEnumSchemaSchema"])w7(e,wM[e]);for(let[e,t]of Object.entries({IdJagTokenExchangeResponseSchema:ct,OAuthClientInformationFullSchema:ca,OAuthClientInformationSchema:cn,OAuthClientMetadataSchema:co,OAuthClientRegistrationErrorSchema:cs,OAuthErrorResponseSchema:cr,OAuthMetadataSchema:d5,OAuthProtectedResourceMetadataSchema:d9,OAuthTokenRevocationRequestSchema:cd,OAuthTokensSchema:ce,OpenIdProviderDiscoveryMetadataSchema:d7,OpenIdProviderMetadataSchema:d8}))w7(e,t);Object.freeze(w5);let Pe=Object.freeze(w8),Pt=[au,am,ah,ag],Pr=["inputResponses","requestState"];function Pi(e,t){let r=e.params;if(!Ps(r))return{message:e,lifted:{}};let i=r._meta,o=Ps(i)?Pt.filter(e=>e in i):[],n="request"===t?Pr.filter(e=>e in r):[];if(0===o.length&&0===n.length)return{message:e,lifted:{}};let a={},s={...r};if(o.length>0&&Ps(i)){let e={},t={...i};for(let r of o)e[r]=i[r],delete t[r];a.envelope=e,Object.keys(t).length>0?s._meta=t:delete s._meta}for(let e of n)"inputResponses"===e&&(a.inputResponses=s[e]),"requestState"===e&&(a.requestState=s[e]),delete s[e];return{message:{...e,params:s},lifted:a}}function Po(e,t){let r=e.validateResult(t,void 0);if(r.ok||"not-in-era"!==r.reason)return{"~standard":{version:1,vendor:"mcp-wire-codec",validate(r){let i=e.validateResult(t,r);return i.ok?{value:i.value}:{issues:[{message:"invalid"===i.reason?i.message:`not-in-era: ${t}`}]}}}}}let Pn=(ee=void 0,()=>ee);var Pa=class{_transport;_requestMessageId=0;_requestHandlers=new Map;_customSchemaRequestMethods=new Set;_requestHandlerAbortControllers=new Map;_notificationHandlers=new Map;_responseHandlers=new Map;_progressHandlers=new Map;_timeoutInfo=new Map;_pendingDebouncedNotifications=new Set;_negotiatedProtocolVersion;_supportedProtocolVersions;onclose;onerror;fallbackRequestHandler;fallbackNotificationHandler;constructor(e){this._options=e,this._supportedProtocolVersions=e?.supportedProtocolVersions??ap,this.setNotificationHandler("notifications/cancelled",e=>{this._oncancel(e)}),this.setNotificationHandler("notifications/progress",e=>{this._onprogress(e)}),this.setRequestHandler("ping",e=>({}))}_shouldDropInbound(e){}_outboundMetaEnvelope(){}_envelopeOutbound(e){let t=this._outboundMetaEnvelope();if(void 0===t)return e;let r=e.params??{};return{...e,params:{...r,_meta:{...t,...r._meta}}}}_resolveNonCompleteResult(e,t){return Promise.reject(new kH(kU.UnsupportedResultType,`Unsupported result type '${e.kind}' for ${t.request.method}`,{resultType:e.kind,method:t.request.method}))}_getRequestHandler(e){return this._requestHandlers.get(e)}async _oncancel(e){void 0!==e.params.requestId&&this._requestHandlerAbortControllers.get(e.params.requestId)?.abort(e.params.reason)}_setupTimeout(e,t,r,i,o=!1){this._timeoutInfo.set(e,{timeoutId:setTimeout(i,t),startTime:Date.now(),timeout:t,maxTotalTimeout:r,resetTimeoutOnProgress:o,onTimeout:i})}_resetTimeout(e){let t=this._timeoutInfo.get(e);if(!t)return!1;let r=Date.now()-t.startTime;if(t.maxTotalTimeout&&r>=t.maxTotalTimeout)throw this._timeoutInfo.delete(e),new kH(kU.RequestTimeout,"Maximum total timeout exceeded",{maxTotalTimeout:t.maxTotalTimeout,totalElapsed:r});return clearTimeout(t.timeoutId),t.timeoutId=setTimeout(t.onTimeout,t.timeout),!0}_cleanupTimeout(e){let t=this._timeoutInfo.get(e);t&&(clearTimeout(t.timeoutId),this._timeoutInfo.delete(e))}async connect(e){this._transport=e;let t=this.transport?.onclose;this._transport.onclose=()=>{try{t?.()}finally{this._onclose()}};let r=this.transport?.onerror;this._transport.onerror=e=>{r?.(e),this._onerror(e)};let i=this._transport?.onmessage;this._transport.onmessage=(e,t)=>{if(i?.(e,t),aA.safeParse(e).success||aW.safeParse(e).success)this._onresponse(e);else if(aO.safeParse(e).success)this._onrequest(e,t);else aE.safeParse(e).success?this._onnotification(e,t):this._onerror(Error(`Unknown message type: ${JSON.stringify(e)}`))},e.setSupportedProtocolVersions?.(this._supportedProtocolVersions),await this._transport.start()}_onclose(){let e=this._responseHandlers;for(let e of(this._responseHandlers=new Map,this._progressHandlers.clear(),this._pendingDebouncedNotifications.clear(),this._timeoutInfo.values()))clearTimeout(e.timeoutId);this._timeoutInfo.clear();let t=this._requestHandlerAbortControllers;this._requestHandlerAbortControllers=new Map;let r=new kH(kU.ConnectionClosed,"Connection closed");this._transport=void 0;try{this.onclose?.()}finally{for(let t of e.values())t(r);for(let e of t.values())e.abort(r)}}_onerror(e){this.onerror?.(e)}_onnotification(e,t){let{message:r}=Pi(e,"notification"),i=this._negotiatedWireCodec();if(t?.classification===void 0&&"drop"===this._shouldDropInbound(e))return;if(t?.classification!==void 0){let e=wT(t.classification);if(e!==i.era)return void this._onerror(Error(`Era mismatch on inbound notification '${r.method}': classified as ${e} but this instance serves ${i.era}`))}if(wE(r.method)&&!i.hasNotificationMethod(r.method))return;let o=this._notificationHandlers.get(r.method),n=this.fallbackNotificationHandler;(void 0!==o||void 0!==n)&&Promise.resolve().then(()=>void 0===o?n(r):o(r,i)).catch(e=>this._onerror(Error(`Uncaught error in notification handler: ${e}`)))}_onrequest(e,t){var r;let{message:i,lifted:o}=Pi(e,"request"),n=this._negotiatedWireCodec();if(t?.classification===void 0&&"drop"===this._shouldDropInbound(e))return void this._onerror(Error(`Dropped inbound request '${e.method}': not servable on this connection's protocol era`));let a=this._transport,s=(e,t,r)=>{let o={jsonrpc:"2.0",id:i.id,error:{code:e,message:t,...void 0!==r&&{data:r}}};a?.send(o).catch(e=>this._onerror(Error(`Failed to send an error response: ${e}`)))};if(t?.classification!==void 0){let e=wT(t.classification);if(e!==n.era){this._onerror(Error(`Era mismatch on inbound request '${i.method}': classified as ${e} but this instance serves ${n.era}`));let r=t.classification.revision??e;s(wp.UnsupportedProtocolVersion,`Unsupported protocol version: ${r}`,{supported:this._supportedProtocolVersions,requested:r});return}}if(wO(i.method)&&!n.hasRequestMethod(i.method)&&!(wA(i.method)&&this._customSchemaRequestMethods.has(i.method)))return void s(wp.MethodNotFound,"Method not found");let d=this._requestHandlers.get(i.method)??this.fallbackRequestHandler;if(void 0===d)return void s(wp.MethodNotFound,"Method not found");let c=n.checkInboundEnvelope(o);if(void 0!==c)return void s(wp.InvalidParams,c);let l=(e,t)=>this._notificationViaCodec(this._resolveOutboundCodec(e.method),e,{...t,relatedRequestId:i.id}),p=(e,t,r)=>this._requestWithSchemaViaCodec(this._resolveOutboundCodec(e.method),e,t,{...r,relatedRequestId:i.id}),u=new AbortController;this._requestHandlerAbortControllers.set(i.id,u);let m=void 0===o.inputResponses?void 0:function(e){let t={},r=[];if(!Pd(e))return{accepted:t,droppedKeys:r};for(let[i,o]of Object.entries(e)){if(!Pd(o)||"method"in o||"result"in o){r.push(i);continue}t[i]=o}return{accepted:t,droppedKeys:r}}(o.inputResponses),f={sessionId:a?.sessionId,mcpReq:{id:i.id,method:i.method,_meta:i.params?._meta,...void 0!==o.envelope&&{envelope:o.envelope},...void 0!==m&&{inputResponses:m.accepted},...void 0!==m&&m.droppedKeys.length>0&&{droppedInputResponseKeys:m.droppedKeys},requestState:void 0===o.requestState?Pn:(r=o.requestState,()=>r),signal:u.signal,send:(e,t,r)=>{let i=this._resolveOutboundCodec(e.method);if(this._assertOutboundRequestInEra(i,e.method),wJ(t))return p(e,t,r);let o=Po(i,e.method);if(void 0===o)throw TypeError(`'${e.method}' is not a spec method; pass a result schema as the second argument to ctx.mcpReq.send().`);return p(e,o,t)},notify:l},http:t?.authInfo?{authInfo:t.authInfo}:void 0},h=this.buildContext(f,t);Promise.resolve().then(()=>d(i,h)).then(async e=>{let t;if(u.signal.aborted)return;try{t=n.encodeResult(i.method,e,this._outboundServerInfo())}catch(e){this._onerror(Error(`Failed to encode result for ${i.method}: ${e}`)),s(wp.InternalError,"Internal error");return}let r={result:t,jsonrpc:"2.0",id:i.id};await a?.send(r)},async e=>{if(u.signal.aborted)return;let t=Number.isSafeInteger(e.code)?e.code:wp.InternalError,r={jsonrpc:"2.0",id:i.id,error:{code:n.encodeErrorCode(t),message:e.message??"Internal error",...void 0!==e.data&&{data:e.data}}};await a?.send(r)}).catch(e=>this._onerror(Error(`Failed to send response: ${e}`))).finally(()=>{this._requestHandlerAbortControllers.get(i.id)===u&&this._requestHandlerAbortControllers.delete(i.id)})}_onprogress(e){let{progressToken:t,...r}=e.params,i=Number(t),o=this._progressHandlers.get(i);if(!o)return void this._onerror(Error(`Received a progress notification for an unknown token: ${JSON.stringify(e)}`));let n=this._responseHandlers.get(i),a=this._timeoutInfo.get(i);if(a&&n&&a.resetTimeoutOnProgress)try{this._resetTimeout(i)}catch(e){this._responseHandlers.delete(i),this._progressHandlers.delete(i),this._cleanupTimeout(i),n(e);return}o(r)}_onresponse(e){let t=Number(e.id),r=this._responseHandlers.get(t);void 0===r?this._onerror(Error(`Received a response for an unknown message ID: ${JSON.stringify(e)}`)):(this._responseHandlers.delete(t),this._cleanupTimeout(t),this._progressHandlers.delete(t),r(aA.safeParse(e).success?e:wu.fromError(e.error.code,e.error.message,e.error.data)))}get transport(){return this._transport}async close(){await this._transport?.close()}request(e,t,r){let i=this._resolveOutboundCodec(e.method);if(wJ(t))return wA(e.method)||this._assertOutboundRequestInEra(i,e.method),this._requestWithSchemaViaCodec(i,e,t,r);this._assertOutboundRequestInEra(i,e.method);let o=Po(i,e.method);if(void 0===o)throw TypeError(`'${e.method}' is not a spec method; pass a result schema as the second argument to request().`);return this._requestWithSchemaViaCodec(i,e,o,t)}_negotiatedWireCodec(){return wC(this._negotiatedProtocolVersion)}_wireCodec(){return this._negotiatedWireCodec()}_resolveOutboundCodec(e){if(void 0===this._negotiatedProtocolVersion){let t=function(e){switch(e){case"initialize":case"notifications/initialized":return wC(void 0);case"server/discover":return wC(wj);default:return}}(e);if(t)return t}return this._negotiatedWireCodec()}_assertOutboundRequestInEra(e,t){if(wO(t)&&!e.hasRequestMethod(t))throw new kH(kU.MethodNotSupportedByProtocolVersion,`Method '${t}' is not supported by the negotiated protocol version (wire era ${e.era})`,{method:t,era:e.era})}_requestWithSchema(e,t,r){let i=this._resolveOutboundCodec(e.method);return this._assertOutboundRequestInEra(i,e.method),this._requestWithSchemaViaCodec(i,e,t,r)}_requestWithSchemaViaCodec(e,t,r,i){let o,n,{relatedRequestId:a,resumptionToken:s,onresumptiontoken:d,headers:c}=i??{},l=Date.now();return new Promise((p,u)=>{let m=e=>{u(e)};if(!this._transport)return void m(Error("Not connected"));if(this._options?.enforceStrictCapabilities===!0)try{this.assertCapabilityForMethod(t.method)}catch(e){m(e);return}if(i?.signal?.aborted){let e=i.signal.reason;throw e instanceof kH?e:new kH(kU.RequestTimeout,String(e))}let f=e.era===wj&&!0===this._transport.hasPerRequestStream?new AbortController:void 0,h=this._requestMessageId++;n=h;let y={...t,jsonrpc:"2.0",id:h};i?.onprogress&&(this._progressHandlers.set(h,i.onprogress),y.params={...t.params,_meta:{...t.params?._meta,progressToken:h}});let g=this._envelopeOutbound(y),_=!1,v=e=>{_||(this._progressHandlers.delete(h),void 0===f?"initialize"!==t.method&&this._transport?.send(this._envelopeOutbound({jsonrpc:"2.0",method:"notifications/cancelled",params:{requestId:h,reason:String(e)}}),{relatedRequestId:a,resumptionToken:s,onresumptiontoken:d}).catch(e=>this._onerror(Error(`Failed to send cancellation: ${e}`))):f.abort(),u(e instanceof kH?e:new kH(kU.RequestTimeout,String(e))))};this._responseHandlers.set(h,o=>{let n;if(!i?.signal?.aborted){if(_=!0,o instanceof Error)return u(o);try{n=e.decodeResult(t.method,o.result)}catch(e){return u(e instanceof Error?e:Error(String(e)))}if("invalid"===n.kind)return u(n.error);if("input_required"===n.kind){var a;return i?.allowInputRequired===!0?p({resultType:"input_required",inputRequests:(a=n).inputRequests,...void 0!==a.requestState&&{requestState:a.requestState},...void 0!==a._meta&&{_meta:a._meta}}):p(this._resolveNonCompleteResult(n,{codec:e,request:t,resultSchema:r,options:i,flowStartedAt:l,retry:(i,o)=>this._requestWithSchemaViaCodec(e,void 0===i?{method:t.method}:{method:t.method,params:i},r,o)}))}wY(r,n.result).then(e=>{e.success?p(e.data):u(new kH(kU.InvalidResult,`Invalid result for ${t.method}: ${e.error}`))},u)}}),o=()=>v(i?.signal?.reason),i?.signal?.addEventListener("abort",o,{once:!0});let b=i?.timeout??6e4;this._setupTimeout(h,b,i?.maxTotalTimeout,()=>v(new kH(kU.RequestTimeout,"Request timed out",{timeout:b})),i?.resetTimeoutOnProgress??!1),this._transport.send(g,{relatedRequestId:a,resumptionToken:s,onresumptiontoken:d,headers:c,requestSignal:f?.signal}).catch(e=>{this._progressHandlers.delete(h),u(e)})}).finally(()=>{o&&i?.signal?.removeEventListener("abort",o),void 0!==n&&(this._responseHandlers.delete(n),this._cleanupTimeout(n))})}async notification(e,t){return await this._notificationViaCodec(this._resolveOutboundCodec(e.method),e,t)}async _notificationViaCodec(e,t,r){if(!this._transport)throw new kH(kU.NotConnected,"Not connected");if(wE(t.method)&&!e.hasNotificationMethod(t.method))throw new kH(kU.MethodNotSupportedByProtocolVersion,`Notification '${t.method}' is not supported by the negotiated protocol version (wire era ${e.era})`,{method:t.method,era:e.era});this.assertNotificationCapability(t.method);let i=this._envelopeOutbound({jsonrpc:"2.0",...t});if((this._options?.debouncedNotificationMethods??[]).includes(t.method)&&!t.params&&r?.relatedRequestId===void 0){if(this._pendingDebouncedNotifications.has(t.method))return;this._pendingDebouncedNotifications.add(t.method),Promise.resolve().then(()=>{this._pendingDebouncedNotifications.delete(t.method),this._transport&&this._transport?.send(i,r).catch(e=>this._onerror(e))});return}await this._transport.send(i,r)}setRequestHandler(e,t,r){let i;if(this.assertRequestHandlerCapability(e),"function"==typeof t){if(!wO(e))throw TypeError(`'${e}' is not a spec request method; pass schemas as the second argument to setRequestHandler().`);i=(r,i)=>{let o=this._negotiatedWireCodec(),n=o.validateRequest(e,r);if(n.ok||"not-in-era"!==n.reason||(n=o.validateInputRequest(e,r)),!n.ok){if("not-in-era"===n.reason)throw new wu(wp.InternalError,`No wire schema for ${e} in the resolved era`);throw Error(n.message)}return Promise.resolve(t(n.value,i))}}else if(r)i=async(i,o)=>{let n=await wY(t.params,{...i.params});if(!n.success)throw new wu(wp.InvalidParams,`Invalid params for ${e}: ${n.error}`);return r(n.data,o)};else throw TypeError("setRequestHandler: handler is required");"function"==typeof t?this._customSchemaRequestMethods.delete(e):this._customSchemaRequestMethods.add(e),this._requestHandlers.set(e,this._wrapHandler(e,i))}_wrapHandler(e,t){return t}_outboundServerInfo(){}removeRequestHandler(e){this._requestHandlers.delete(e),this._customSchemaRequestMethods.delete(e)}assertCanSetRequestHandler(e){if(this._requestHandlers.has(e))throw Error(`A request handler for ${e} already exists, which would be overridden`)}setNotificationHandler(e,t,r){if("function"==typeof t){if(!wE(e))throw TypeError(`'${e}' is not a spec notification method; pass schemas as the second argument to setNotificationHandler().`);this._notificationHandlers.set(e,(r,i)=>{let o=i.validateNotification(e,r);if(!o.ok){if("not-in-era"===o.reason)throw new wu(wp.InternalError,`No wire schema for ${e} in the resolved era`);throw Error(o.message)}return Promise.resolve(t(o.value))});return}if(!r)throw TypeError("setNotificationHandler: handler is required");this._notificationHandlers.set(e,async i=>{let o=await wY(t.params,{...i.params});if(!o.success)throw new wu(wp.InvalidParams,`Invalid params for notification ${e}: ${o.error}`);await r(o.data,i)})}removeNotificationHandler(e){this._notificationHandlers.delete(e)}};function Ps(e){return null!==e&&"object"==typeof e&&!Array.isArray(e)}function Pd(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}function Pc(e){throw new kH(kU.SendFailed,`ctx.mcpReq.${e} is not available while fulfilling an embedded input request: the request is fulfilled locally and has no related peer request`)}(kA(e=>{var t=/; *([!#$%&'*+.^_`|~0-9A-Za-z-]+) *= *("(?:[\u000b\u0020\u0021\u0023-\u005b\u005d-\u007e\u0080-\u00ff]|\\[\u000b\u0020-\u00ff])*"|[!#$%&'*+.^_`|~0-9A-Za-z-]+) */g,r=/\\([\u000b\u0020-\u00ff])/g,i=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+\/[!#$%&'*+.^_`|~0-9A-Za-z-]+$/;function o(e){this.parameters=Object.create(null),this.type=e}e.parse=function(e){if(!e)throw TypeError("argument string is required");var n,a,s,d="object"==typeof e?function(e){var t;if("function"==typeof e.getHeader?t=e.getHeader("content-type"):"object"==typeof e.headers&&(t=e.headers&&e.headers["content-type"]),"string"!=typeof t)throw TypeError("content-type header is missing from object");return t}(e):e;if("string"!=typeof d)throw TypeError("argument string is required to be a string");var c=d.indexOf(";"),l=-1!==c?d.slice(0,c).trim():d.trim();if(!i.test(l))throw TypeError("invalid media type");var p=new o(l.toLowerCase());if(-1!==c){for(t.lastIndex=c;a=t.exec(d);){if(a.index!==c)throw TypeError("invalid parameter format");c+=a[0].length,n=a[1].toLowerCase(),34===(s=a[2]).charCodeAt(0)&&-1!==(s=s.slice(1,-1)).indexOf("\\")&&(s=s.replace(r,"$1")),p.parameters[n]=s}if(c!==d.length)throw TypeError("invalid parameter format")}return p}}))();var Pl=class{_buffer;_maxBufferSize;constructor(e){this._maxBufferSize=e?.maxBufferSize??0xa00000}append(e){if((this._buffer?.length??0)+e.length>this._maxBufferSize)throw this.clear(),Error(`ReadBuffer exceeded maximum size of ${this._maxBufferSize} bytes`);this._buffer=this._buffer?Buffer.concat([this._buffer,e]):e}readMessage(){for(;this._buffer;){let t=this._buffer.indexOf("\n");if(-1===t)break;let r=this._buffer.toString("utf8",0,t).replace(/\r$/,"");this._buffer=this._buffer.subarray(t+1);try{var e;return e=r,aM.parse(JSON.parse(e))}catch(e){if(e instanceof SyntaxError)continue;throw e}}return null}clear(){this._buffer=void 0}};let Pp=el("../../node_modules/.pnpm/cross-spawn@7.0.6/node_modules/cross-spawn/index.js"),Pu="win32"===N.platform?["APPDATA","COMSPEC","HOMEDRIVE","HOMEPATH","LOCALAPPDATA","PATH","PATHEXT","PROCESSOR_ARCHITECTURE","PROGRAMDATA","PROGRAMFILES","PROGRAMFILES(X86)","PROGRAMW6432","SYSTEMDRIVE","SYSTEMROOT","TEMP","USERNAME","USERPROFILE","WINDIR"]:["HOME","LOGNAME","PATH","SHELL","TERM","USER"];var Pm=class{_process;_readBuffer;_serverParams;_stderrStream=null;onclose;onerror;onmessage;constructor(e){this._serverParams=e,this._readBuffer=new Pl({maxBufferSize:e.maxBufferSize}),("pipe"===e.stderr||"overlapped"===e.stderr)&&(this._stderrStream=new F)}async start(){if(this._process)throw Error("StdioClientTransport already started! If using Client class, note that connect() calls start() automatically.");return new Promise((e,t)=>{this._process=Pp(this._serverParams.command,this._serverParams.args??[],{env:{...function(){let e={};for(let t of Pu){let r=N.env[t];void 0!==r&&(r.startsWith("()")||(e[t]=r))}return e}(),...this._serverParams.env},stdio:["pipe","pipe",this._serverParams.stderr??"inherit"],shell:!1,windowsHide:"win32"===N.platform,cwd:this._serverParams.cwd}),this._process.on("error",e=>{t(e),this.onerror?.(e)}),this._process.on("spawn",()=>{e()}),this._process.on("close",e=>{this._process=void 0,this.onclose?.()}),this._process.stdin?.on("error",e=>{this.onerror?.(e)}),this._process.stdout?.on("data",e=>{try{this._readBuffer.append(e),this.processReadBuffer()}catch(e){this.onerror?.(e),this.close().catch(()=>{})}}),this._process.stdout?.on("error",e=>{this.onerror?.(e)}),this._stderrStream&&this._process.stderr&&this._process.stderr.pipe(this._stderrStream)})}get stderr(){return this._stderrStream?this._stderrStream:this._process?.stderr??null}get pid(){return this._process?.pid??null}processReadBuffer(){for(;;)try{let e=this._readBuffer.readMessage();if(null===e)break;this.onmessage?.(e)}catch(e){this.onerror?.(e)}}async _dispose(){let e=this._process;if(this._process=void 0,e&&null===e.exitCode&&null===e.signalCode){let t=new Promise(t=>e.once("exit",()=>t()));try{e.stdin?.end()}catch{}try{e.kill("SIGTERM")}catch{}if(await Promise.race([t,new Promise(e=>setTimeout(e,1e3).unref())]),null===e.exitCode&&null===e.signalCode)try{e.kill("SIGKILL")}catch{}await t}try{e?.stdout?.destroy()}catch{}try{e?.stdin?.destroy()}catch{}try{e?.stderr?.destroy()}catch{}this._readBuffer.clear()}async close(){if(this._process){let e=this._process;this._process=void 0;let t=new Promise(t=>{e.once("close",()=>{t()})});try{e.stdin?.end()}catch{}if(await Promise.race([t,new Promise(e=>setTimeout(e,2e3).unref())]),null===e.exitCode){try{e.kill("SIGTERM")}catch{}await Promise.race([t,new Promise(e=>setTimeout(e,2e3).unref())])}if(null===e.exitCode)try{e.kill("SIGKILL")}catch{}}this._readBuffer.clear()}send(e){return new Promise(t=>{if(!this._process?.stdin)throw new kH(kU.NotConnected,"Not connected");let r=JSON.stringify(e)+"\n";this._process.stdin.write(r)?t():this._process.stdin.once("drain",t)})}};let Pf=new TextEncoder,Ph=new TextDecoder,Py=new TextDecoder("utf-8",{fatal:!0});function Pg(...e){let t=new Uint8Array(e.reduce((e,{length:t})=>e+t,0)),r=0;for(let i of e)t.set(i,r),r+=i.length;return t}function P_(e,t,r){if(t<0||t>=0x100000000)throw RangeError(`value must be >= 0 and <= 4294967295. Received ${t}`);e.set([t>>>24,t>>>16,t>>>8,255&t],r)}function Pv(e){let t=Math.floor(e/0x100000000),r=new Uint8Array(8);return P_(r,t,0),P_(r,e%0x100000000,4),r}function Pb(e){let t=new Uint8Array(4);return P_(t,e),t}let P$=/[^\x00-\x7f]/;function PS(e){if("string"==typeof e&&e.length>=128){if(P$.test(e))throw TypeError("non-ASCII string encountered in encode()");return Pf.encode(e)}let t=new Uint8Array(e.length);for(let r=0;r127)throw TypeError("non-ASCII string encountered in encode()");t[r]=i}return t}function Pk(e,t=!1){if(Uint8Array.prototype.toBase64)return e.toBase64({alphabet:t?"base64url":"base64",omitPadding:t});let r=[];for(let t=0;t"string"!=typeof e)))throw TypeError(`"${e}" option must be an array of strings`);return void 0===t?void 0:new Set(t)}function P1(e,t){let{crit:r}=t??{};if(Array.isArray(r)&&new Set(r).size!==r.length)throw new e('"crit" (Critical) Header Parameter MUST NOT contain duplicate values')}function P0(e,t,r,i,o){if(void 0!==o.crit&&i?.crit===void 0)throw new e('"crit" (Critical) Header Parameter MUST be integrity protected');if(!i||void 0===i.crit)return[];if(!Array.isArray(i.crit)||0===i.crit.length||i.crit.some(e=>"string"!=typeof e||0===e.length))throw new e('"crit" (Critical) Header Parameter MUST be an array of non-empty strings when present');let n=void 0===r?t:{__proto__:null,...r,...t};for(let t of i.crit){if(!(t in n))throw new Px(`Extension Header Parameter "${t}" is not recognized`);if(!Object.hasOwn(o,t)||void 0===o[t])throw new e(`Extension Header Parameter "${t}" is missing`);if(n[t]&&(!Object.hasOwn(i,t)||void 0===i[t]))throw new e(`Extension Header Parameter "${t}" MUST be integrity protected`)}return i.crit}function P2(e,t){if(t.includes("b64")){let t=e.b64;if("boolean"!=typeof t)throw new PT('The "b64" (base64url-encode payload) Header Parameter must be a boolean');return t}return!0}function P4(e,t){let r,i;try{r=JSON.stringify(t),i=JSON.parse(r)}catch(t){throw new e("JOSE Header is not valid JSON",{cause:t})}if(!PU(i))throw new e("JOSE Header is not a JSON object");return[i,r]}async function P6(e,t,r){let i,o,{alg:n,secret:a}=e,s="decrypt"===r||"sign"===r;if(a&&t instanceof Uint8Array)return t;if(PU(t)){if("string"!=typeof(i=Vd(t)).kty)throw Vr(n,t,a);if(!(a?"oct"===i.kty&&"string"==typeof i.k:"oct"!==i.kty&&(s?"AKP"===i.kty&&"string"==typeof i.priv||"string"==typeof i.d:void 0===i.d&&void 0===i.priv)))throw TypeError(a?'JSON Web Key for symmetric algorithms must have JWK "kty" (Key Type) equal to "oct" and the JWK "k" (Key Value) present':`JSON Web Key for this operation must be a ${s?"private":"public"} JWK`);if(((e,t,r)=>{let{alg:i}=e;if(void 0!==t.use){let e="sign"===r||"verify"===r?"sig":"enc";if(t.use!==e)throw TypeError(`Invalid key for this operation, its "use" must be "${e}" when present`)}if(void 0!==t.alg&&t.alg!==i)throw TypeError(`Invalid key for this operation, its "alg" must be "${i}" when present`);if(Array.isArray(t.key_ops)){let i="encrypt"===r||"decrypt"===r?e.ops?.[+("encrypt"!==r)]:r;if(i&&!t.key_ops.includes(i))throw TypeError(`Invalid key for this operation, its "key_ops" must include "${i}" when present`)}})(e,i,r),"oct"===i.kty)return PD(i.k);if(!Object.isFrozen(t)){let{key_ops:e}=t;Array.isArray(e)&&Object.freeze(e),Object.freeze(t)}}else{if(!P7(t))throw Vr(n,t,a);let e=a?"secret":s?"private":"public";if(t.type!==e&&(a||["secret","public","private"].includes(t.type)))throw TypeError(`${t[Symbol.toStringTag]} instances must be of type "${e}" for the ${n} algorithm`);if(P5(t))return t;if("secret"===(o=t).type)return o.export()}let d=(m||=new WeakMap).get(t);if(d?.[n])return d[n];if(d||m.set(t,d={}),o&&"function"==typeof o.toCryptoKey){let t="public"===o.type,r=P3[o.asymmetricKeyDetails?.namedCurve],i=e.resolve?.({crv:r,asymmetricKeyType:o.asymmetricKeyType})??e.subtle;return d[n]=o.toCryptoKey(i,t,e.usages[+!t])}return(i??=o.export({format:"jwk"})).alg=n,d[n]=await Vl(e,i)}let P3={__proto__:null,prime256v1:"P-256",secp384r1:"P-384",secp521r1:"P-521"};function P9(e){if(!P5(e))throw Error("CryptoKey instance expected")}let P5=e=>{if(e?.[Symbol.toStringTag]==="CryptoKey")return!0;try{return e instanceof CryptoKey}catch{return!1}},P8=e=>e?.[Symbol.toStringTag]==="KeyObject",P7=e=>P5(e)||P8(e);function Ve(e,t,...r){if(r.length>2){let t=r.pop();e+=`one of type ${r.join(", ")}, or ${t}.`}else 2===r.length?e+=`one of type ${r[0]} or ${r[1]}.`:e+=`of type ${r[0]}.`;return null==t?e+=` Received ${t}`:"function"==typeof t&&t.name?e+=` Received function ${t.name}`:"object"==typeof t&&null!=t&&t.constructor?.name&&(e+=` Received an instance of ${t.constructor.name}`),e}let Vt=(e,...t)=>Ve("Key must be ",e,...t);function Vr(e,t,r){let i=["CryptoKey","KeyObject","JSON Web Key"];return r&&i.push("Uint8Array"),TypeError(Ve(`Key for the ${e} algorithm must be `,t,...i))}let Vi=(e,t="algorithm.name")=>TypeError(`CryptoKey does not support this operation, its ${t} must be ${e}`);function Vo(e,t){if(t&&!e.usages.includes(t))throw TypeError(`CryptoKey does not support this operation, its usages must include ${t}.`)}function Vn(e,t){let{modulusLength:r}=t.algorithm;if("number"!=typeof r||r<2048)throw TypeError(`${e} requires key modulusLength to be 2048 bits or larger`)}function Va(e,t,r){let i=e.algorithm;if(i.name!==t.name)throw Vi(t.name);if(t.hash&&i.hash?.name!==t.hash)throw Vi(t.hash,"algorithm.hash");if(t.namedCurve&&i.namedCurve!==t.namedCurve)throw Vi(t.namedCurve,"algorithm.namedCurve");if(void 0!==t.length&&i.length!==t.length)throw Vi(t.length,"algorithm.length");Vo(e,r)}function Vs(e){return{__proto__:null,...e}}function Vd(e){let t=Vs(e);if(void 0!==t.ext&&"boolean"!=typeof t.ext)throw TypeError('"ext" (Extractable) Parameter must be a boolean');if(void 0!==t.key_ops){let e=t.key_ops,r=Array.isArray(e)?[...e]:void 0;if(!r||r.some(e=>"string"!=typeof e)||new Set(r).size!==r.length)throw TypeError('"key_ops" (Key Operations) Parameter must be an array of unique strings');t.key_ops=r}return t}function Vc(e){if(void 0!==e&&"boolean"!=typeof e)throw TypeError('"extractable" option must be a boolean');return e}async function Vl(e,t,r){if(!e.kty.includes(t.kty))throw new Px('Invalid or unsupported JWK "alg" (Algorithm) Parameter value');let i=e.resolve?.({kty:t.kty,crv:t.crv})??e.subtle,o=!!(t.d||t.priv),n={...t,ext:r??t.ext};return"AKP"!==n.kty&&delete n.alg,delete n.use,crypto.subtle.importKey("jwk",n,i,n.ext??!o,t.key_ops??e.usages[+!!o])}async function Vp(e,t,r,i=!1){return e instanceof Uint8Array&&(e=await crypto.subtle.importKey("raw",e,t,i,[r])),Va(e,t,r),e}let Vu=e=>crypto.getRandomValues(new Uint8Array(e.cekBits>>3));function Vm(e,t){let r=e.byteLength<<3;if(r!==t)throw new PC(`Invalid Content Encryption Key length. Expected ${t} bits, got ${r} bits`)}function Vf(e,t){if(t.length<<3!==e.ivBits)throw new PC("Invalid Initialization Vector length")}async function Vh(e,t,r){if(!(t instanceof Uint8Array))throw TypeError(Vt(t,"Uint8Array"));let i=e.cekBits>>1;return[await crypto.subtle.importKey("raw",t.subarray(i>>3),"AES-CBC",!1,[r]),await crypto.subtle.importKey("raw",t.subarray(0,i>>3),{hash:`SHA-${i<<1}`,name:"HMAC"},!1,["sign"]),i]}async function Vy(e,t,r){return new Uint8Array((await crypto.subtle.sign("HMAC",e,t)).slice(0,r>>3))}async function Vg(e,t,r,i,o){if(!P5(r)&&!(r instanceof Uint8Array))throw TypeError(Vt(r,"CryptoKey","KeyObject","Uint8Array","JSON Web Key"));if(i?Vf(e,i):i=crypto.getRandomValues(new Uint8Array(e.ivBits>>3)),r instanceof Uint8Array&&Vm(r,e.cekBits),e.cbc)return async function(e,t,r,i,o){let[n,a,s]=await Vh(e,r,"encrypt"),d=new Uint8Array(await crypto.subtle.encrypt({iv:i,name:"AES-CBC"},n,t)),c=Pg(o,i,d,Pv(8*o.length));return{ciphertext:d,tag:await Vy(a,c,s),iv:i}}(e,t,r,i,o);let n=await Vp(r,e.subtle,"encrypt"),a=new Uint8Array(await crypto.subtle.encrypt({additionalData:o,iv:i,name:"AES-GCM",tagLength:128},n,t));return{ciphertext:a.subarray(0,-16),tag:a.subarray(-16),iv:i}}async function V_(e,t,r,i,o,n){if(!P5(t)&&!(t instanceof Uint8Array))throw TypeError(Vt(t,"CryptoKey","KeyObject","Uint8Array","JSON Web Key"));if(!i)throw new PC("JWE Initialization Vector missing");if(!o)throw new PC("JWE Authentication Tag missing");if(!e.cbc&&16!==o.length)throw new PC("Invalid Authentication Tag length");if(Vf(e,i),t instanceof Uint8Array&&Vm(t,e.cekBits),e.cbc)return async function(e,t,r,i,o,n){let[a,s,d]=await Vh(e,t,"decrypt"),c=Pg(n,i,r,Pv(8*n.length)),l=await Vy(s,c,d);try{if(await async function(e,t){let r={name:"HMAC",hash:"SHA-256"},i=await crypto.subtle.generateKey(r,!1,["sign","verify"]),o=await crypto.subtle.sign(r,i,e);return crypto.subtle.verify(r,i,o,t)}(o,l))return new Uint8Array(await crypto.subtle.decrypt({iv:i,name:"AES-CBC"},a,r))}catch{}throw new Pj}(e,t,r,i,o,n);let a=await Vp(t,e.subtle,"decrypt");try{return new Uint8Array(await crypto.subtle.decrypt({additionalData:n,iv:i,name:"AES-GCM",tagLength:128},a,Pg(r,o)))}catch{throw new Pj}}function Vv(e){let t={__proto__:null};for(let r in e)t[r]={...e[r],alg:r};return t}let Vb=[["encrypt","wrapKey"],["decrypt","unwrapKey"]],V$=[[],["deriveBits"]],VS=[[],[]];function Vk(e){return{kty:["RSA"],mode:"key-encryption",subtle:{name:"RSA-OAEP",hash:`SHA-${e}`},usages:Vb,ops:["wrapKey","unwrapKey"]}}function Vw(e){return{kty:["EC","OKP"],mode:e,subtle:{name:"ECDH"},resolve:({kty:e,crv:t,asymmetricKeyType:r})=>{if("X25519"===t||"x25519"===r)return{name:"X25519"};if("OKP"===e)throw new Px('Invalid or unsupported JWK "alg" (Algorithm) Parameter value');return{name:"ECDH",namedCurve:t}},usages:V$,ops:[void 0,"deriveBits"]}}function VP(e,t=!1){return{kty:["oct"],mode:"key-wrapping",secret:!0,subtle:{name:t?"AES-GCM":"AES-KW",length:e},usages:VS,ops:t?["encrypt","decrypt"]:["wrapKey","unwrapKey"]}}function VV(){return{kty:["oct"],mode:"key-wrapping",secret:!0,subtle:{name:"PBKDF2"},usages:VS,ops:["deriveBits","deriveBits"]}}let VR=Vv({dir:{kty:["oct"],mode:"direct-encryption",secret:!0,subtle:{name:"AES-GCM"},usages:VS,ops:["encrypt","decrypt"]},"RSA-OAEP":Vk(1),"RSA-OAEP-256":Vk(256),"RSA-OAEP-384":Vk(384),"RSA-OAEP-512":Vk(512),"ECDH-ES":Vw("direct-key-agreement"),"ECDH-ES+A128KW":Vw("key-agreement-with-key-wrapping"),"ECDH-ES+A192KW":Vw("key-agreement-with-key-wrapping"),"ECDH-ES+A256KW":Vw("key-agreement-with-key-wrapping"),A128KW:VP(128),A192KW:VP(192),A256KW:VP(256),A128GCMKW:VP(128,!0),A192GCMKW:VP(192,!0),A256GCMKW:VP(256,!0),"PBES2-HS256+A128KW":VV(),"PBES2-HS384+A192KW":VV(),"PBES2-HS512+A256KW":VV()}),Vq=["encrypt","decrypt"];function VI(e,t=!1){return{kty:["oct"],secret:!0,subtle:{name:t?"AES-CBC":"AES-GCM",length:e},usages:VS,ops:Vq,cekBits:e,ivBits:t?128:96,cbc:t}}let Vx=Vv({A128GCM:VI(128),A192GCM:VI(192),A256GCM:VI(256),"A128CBC-HS256":VI(256,!0),"A192CBC-HS384":VI(384,!0),"A256CBC-HS512":VI(512,!0)});function Vj(e,t){throw new Px(`Invalid or unsupported "${e}" (JWE ${t}) header value`)}function VC(e){return("string"==typeof e?VR[e]:void 0)??Vj("alg","Algorithm")}function VT(e){return"key-wrapping"===e.mode||"key-encryption"===e.mode||"key-agreement-with-key-wrapping"===e.mode}function VO(e){return("string"==typeof e?Vx[e]:void 0)??Vj("enc","Encryption Algorithm")}function VE(e,t){if("ECDH"!==e.algorithm.name&&"X25519"!==e.algorithm.name)throw TypeError("CryptoKey does not support this operation, its algorithm.name must be ECDH or X25519");Vo(e,t)}function VA(e,t,r){Va(t,VC(e).subtle,r),Vn(e,t)}async function VW(e,t,r,i){if(!(e instanceof Uint8Array)||e.length<8)throw new PC("PBES2 Salt Input must be 8 or more octets");if(!Number.isSafeInteger(r)||1!==Math.sign(r))throw new PC("PBES2 Count Input must be a positive integer");let o=Pg(PS(t),Uint8Array.of(0),e),n=parseInt(t.slice(13,16),10),a={hash:`SHA-${t.slice(8,11)}`,iterations:r,name:"PBKDF2",salt:o},s=await Vp(i,VC(t).subtle,"deriveBits");return new Uint8Array(await crypto.subtle.deriveBits(a,s,n))}function VM(e){return Pg(Pb(e.length),e)}async function VN(e,t,r,i,o=new Uint8Array,n=new Uint8Array){VE(e),VE(t,"deriveBits");let a=Pg(VM(PS(r)),VM(o),VM(n),Pb(i));return async function(e,t,r){let i=t>>3,o=Math.ceil(i/32),n=new Uint8Array(32*o);for(let t=1;t<=o;t++){let i=await PP("sha256",Pg(Pb(t),e,r));n.set(i,(t-1)*32)}return n.slice(0,i)}(new Uint8Array(await crypto.subtle.deriveBits({name:e.algorithm.name,public:e},t,"X25519"===e.algorithm.name?256:Math.ceil(parseInt(e.algorithm.namedCurve.slice(-3),10)/8)<<3)),i,a)}function Vz(e){P9(e);let t=e.algorithm.namedCurve;if("P-256"!==t&&"P-384"!==t&&"P-521"!==t&&"X25519"!==e.algorithm.name)throw new Px("ECDH with the provided key is not allowed or not supported by your javascript runtime")}function VD(e,t){let r=e[t];if(void 0!==r){if("string"!=typeof r)throw new PC(`JOSE Header "${t}" (Agreement Party${"apu"===t?"U":"V"}Info) invalid`);return PK(r,t,PC)}}function VF(e,t){if(void 0!==e&&void 0!==t&&e.byteLength===t.byteLength){for(let r=0;r"u")throw new Px(`JWE "zip" (Compression Algorithm) Header Parameter requires the ${e} API.`)}async function VB(e,t,r=1/0){let i=e.writable.getWriter();i.write(t).catch(()=>{}),i.close().catch(()=>{});let o=[],n=0,a=e.readable.getReader();for(;;){let{value:e,done:t}=await a.read();if(t)break;if(o.push(e),n+=e.byteLength,1/0!==r&&n>r)throw new PC("Decompressed plaintext exceeded the configured limit")}return Pg(...o)}function VK(e){let{aad:t,ciphertext:r,iv:i,protected:o,tag:n,unprotected:a}=e;if(void 0!==i&&("string"!=typeof i||!i))throw new PC("JWE Initialization Vector incorrect type");if("string"!=typeof r)throw new PC("JWE Ciphertext missing or incorrect type");if(void 0!==n&&("string"!=typeof n||!n))throw new PC("JWE Authentication Tag incorrect type");if(void 0!==o&&"string"!=typeof o)throw new PC("JWE Protected Header incorrect type");if(void 0!==t&&("string"!=typeof t||!t))throw new PC("JWE AAD incorrect type");if(void 0!==a&&!PU(a))throw new PC("JWE Shared Unprotected Header incorrect type");return{aad:t,ciphertext:r,iv:i,protected:o,tag:n,unprotected:void 0===a?void 0:{...a}}}function VJ(e){let t,r;try{let{header:i}=e;if(PU(i)){r=i.alg;let e=Object.keys(i);e.includes("alg")||(r=void 0),t=Object.fromEntries(e.map(e=>[e,"alg"===e?r:i[e]]))}else t=i;let{encrypted_key:o}=e;return[{encrypted_key:o,header:t},r]}catch(e){return[void 0,r,e]}}function VZ(e){let{encrypted_key:t,header:r}=e;if(void 0!==t&&"string"!=typeof t)throw new PC("JWE Encrypted Key incorrect type");if(void 0!==r&&!PU(r))throw new PC("JWE Per-Recipient Unprotected Header incorrect type");if(void 0===e.protected&&void 0===r&&void 0===e.unprotected)throw new PC("JOSE Header missing")}function VQ(e){let t,{protected:r,ciphertext:i,iv:o,tag:n,aad:a}=e;return void 0!==r&&(t=PZ(r,PC,"JWE Protected Header is invalid")),[t,PK(i,"ciphertext",PC),void 0!==o?PK(o,"iv",PC):void 0,void 0!==n?PK(n,"tag",PC):void 0,PJ((r??"")+(void 0!==a?`.${a}`:""),"aad",PC)]}function VX(e){return[e&&PY("keyManagementAlgorithms",e.keyManagementAlgorithms),e&&PY("contentEncryptionAlgorithms",e.contentEncryptionAlgorithms),e?.crit,e?.maxPBES2Count,e?.maxDecompressedLength]}async function VY(e,t,r,i=VQ(e)){let o,n,a,s,[d,c,l,p,u]=i,{header:m,unprotected:f,aad:h}=e;if(void 0!==m||void 0!==f){if(!PG(d,m,f))throw new PC("JWE Protected, JWE Unprotected Header, and JWE Per-Recipient Unprotected Header Parameter names must be disjoint");o={...d,...m,...f}}else o=d??{};let[y,g,_,v,b]=t,{encrypted_key:$}=e;P0(PC,PX,_,d,o),VH(o,d);let{alg:S,enc:k}=o;if("string"!=typeof S||!S)throw new PC("missing JWE Algorithm (alg) in JWE Header");let w=VR[S];if(""===$&&(!w||!VT(w)))throw new PC("JWE Encrypted Key incorrect type");let P=w?.mode==="integrated-encryption";if(!P&&("string"!=typeof k||!k))throw new PC("missing JWE Encryption Algorithm (enc) in JWE Header");if(y&&!y.has(S)||!y&&S.startsWith("PBES2"))throw new PI('"alg" (Algorithm) Header Parameter value not allowed');if(P){if(void 0!==k)throw new PC('JWE "enc" (Encryption Algorithm) Header Parameter must not be present for integrated encryption');if(l?.byteLength)throw new PC("JWE Initialization Vector must be empty for integrated encryption");if(p?.byteLength)throw new PC("JWE Authentication Tag must be empty for integrated encryption")}else{if(g&&!g.has(k))throw new PI('"enc" (Encryption Algorithm) Header Parameter value not allowed');n=VO(k)}if(void 0!==$)try{a=PK($,"encrypted_key",PC)}catch(e){if(!w||!VT(w))throw e;a=new Uint8Array}let V=!1;"function"==typeof r&&(r=await r(d,e),V=!0);let R=w??VC(S);VT(R)&&void 0===a&&(a=new Uint8Array);let q=await P6("direct-encryption"===R.mode?n:R,r,"decrypt");if("integrated-encryption"===R.mode)s=await R.decrypt(q,a,c,u,d,o);else{let e,t=n;try{e=await async function(e,t,r,i,o,n){let{alg:a}=e,s=e.mode;if("direct-encryption"===s)return VL(i),r;let d="direct-key-agreement"===s;switch(d?VL(i):function(e){if(void 0===e)throw new PC("JWE Encrypted Key missing")}(i),e.subtle.name){case"ECDH":{let{epk:i}=o;if(!PU(i)||["d","k","p","q","dp","dq","qi","oth","priv"].some(e=>Object.hasOwn(i,e)))throw new PC('JOSE Header "epk" (Ephemeral Public Key) missing or invalid');Vz(r);let n=await Vl(e,i),s=VD(o,"apu"),c=VD(o,"apv");VF(s,c);let l=await VN(n,r,d?t.alg:a,d?t.cekBits:parseInt(a.slice(-5,-2),10),s,c);if(d)return l;r=l;break}case"RSA-OAEP":return P9(r),VA(a,r,"decrypt"),new Uint8Array(await crypto.subtle.decrypt("RSA-OAEP",r,i));case"PBKDF2":{if("number"!=typeof o.p2c)throw new PC('JOSE Header "p2c" (PBES2 Count) missing or invalid');if(void 0!==n&&1/0!==n&&(!Number.isSafeInteger(n)||n<1))throw TypeError("maxPBES2Count must be a positive safe integer or Infinity");if(o.p2c>(n??1e4))throw new PC('JOSE Header "p2c" (PBES2 Count) out is of acceptable bounds');if("string"!=typeof o.p2s)throw new PC('JOSE Header "p2s" (PBES2 Salt) missing or invalid');let e=PK(o.p2s,"p2s",PC);r=await VW(e,a,o.p2c,r);break}case"AES-GCM":{if("string"!=typeof o.iv)throw new PC('JOSE Header "iv" (Initialization Vector) missing or invalid');if("string"!=typeof o.tag)throw new PC('JOSE Header "tag" (Authentication Tag) missing or invalid');let e=PK(o.iv,"iv",PC),t=PK(o.tag,"tag",PC);if(12!==e.byteLength)throw new PC("Invalid Initialization Vector length");if(16!==t.byteLength)throw new PC("Invalid Authentication Tag length");return V_(VO(a.slice(0,-2)),r,i,e,t,new Uint8Array)}}return async function(e,t,r){let i=await Vp(t,VC(e).subtle,"unwrapKey",!0),o=await crypto.subtle.unwrapKey("raw",r,i,"AES-KW",{hash:"SHA-256",name:"HMAC"},!0,["sign"]);return new Uint8Array(await crypto.subtle.exportKey("raw",o))}(a.slice(-6),r,i)}(R,t,q,a,o,v),VT(R)&&e instanceof Uint8Array&&e.byteLength<<3!==t.cekBits&&(e=Vu(t))}catch(r){if(r instanceof TypeError||r instanceof PC||r instanceof Px)throw r;e=Vu(t)}s=await V_(t,e,c,l,p,u)}if("DEF"===o.zip){let e=b??25e4;if(0===e)throw new Px('JWE "zip" (Compression Algorithm) Header Parameter is not supported.');if(1/0!==e&&(!Number.isSafeInteger(e)||e<1))throw TypeError("maxDecompressedLength must be 0, a positive safe integer, or Infinity");s=await (async function(e,t){return VG("DecompressionStream"),VB(new DecompressionStream("deflate-raw"),e,t)})(s,e).catch(e=>{throw e instanceof PC?e:new PC("Failed to decompress plaintext",{cause:e})})}return{plaintext:s,...d&&{protectedHeader:d},...void 0!==h&&{additionalAuthenticatedData:PK(h,"aad",PC)},...f&&{sharedUnprotectedHeader:f},...m&&{unprotectedHeader:m},...V&&{key:q}}}async function V1(e,t,r){if(e instanceof Uint8Array&&(e=Ph.decode(e)),"string"!=typeof e)throw new PC("Compact JWE must be a string or Uint8Array");let{0:i,1:o,2:n,3:a,4:s,length:d}=e.split(".");if(5!==d)throw new PC("Invalid Compact JWE");return VY({ciphertext:a,iv:n||void 0,protected:i,tag:s||void 0,encrypted_key:o||void 0},t,r)}async function V0(e,t,r){return V1(e,VX(r),t)}async function V2(e,t,r){if(!PU(e))throw new PC("Flattened JWE must be an object");let i=VK(e),[o,,n]=VJ(e);if(!o)throw n;let a={...i,...o};return VZ(a),VY(a,VX(r),t)}async function V4(e,t,r){let i,o,n;if(!PU(e))throw new PC("General JWE must be an object");let a=e.recipients;if(!Array.isArray(a))throw new PC("JWE Recipients missing or incorrect type");let s=Array.from(a);if(!s.every(PU))throw new PC("JWE Recipients missing or incorrect type");if(!s.length)throw new PC("JWE Recipients has no members");try{i=VX(r),o=VK(e),n=VQ(o)}catch{throw new Pj}let d=s.map(e=>VJ(e));if(s.length>1)for(let[,e]of d){let t=n[0]?.alg??e??o.unprotected?.alg,r="string"==typeof t?VR[t]:void 0;if(r&&!VT(r))throw new PC(`"${t}" alg may only have a single recipient`)}for(let[e]of d)if(e)try{let r={...o,...e};return VZ(r),await VY(r,i,t,n)}catch{}throw new Pj}function V6(e,t,r){if(!PG(e,t,r))throw new PC("JWE Protected, JWE Shared Unprotected and JWE Per-Recipient Header Parameter names must be disjoint")}function V3(e,t,r=!1){if(!e[1]&&!e[2]&&!e[3])throw new PC("either setProtectedHeader, setUnprotectedHeader, or sharedUnprotectedHeader must be called before #encrypt()");void 0!==t&&(e[8]=t?.crit);let[,i,o,n,a,s,d,c,l]=e;if(void 0!==a&&PL(a,"JWE Additional Authenticated Data"),void 0!==s&&PL(s,"JWE Content Encryption Key"),void 0!==d&&PL(d,"JWE Initialization Vector"),r||void 0===i||(i=P4(PC,i)[0],e[1]=i),void 0!==o&&(o=P4(PC,o)[0],e[2]=o),r||void 0===n||(n=P4(PC,n)[0],e[3]=n),void 0!==c&&!PU(c))throw TypeError("JWE Key Management Parameters must be an object");V6(i,o,n);let p={...i,...o,...n};P1(PC,i),P0(PC,PX,l,i,p),VH(p,i);let{alg:u,enc:m}=p;if("string"!=typeof u||!u)throw new PC('JWE "alg" (Algorithm) Header Parameter missing or invalid');let f=VR[u];if(f?.mode==="integrated-encryption"){if(void 0!==m)throw new PC('JWE "enc" (Encryption Algorithm) Header Parameter must not be present for integrated encryption');if(void 0!==s)throw TypeError(`setContentEncryptionKey cannot be called with JWE "alg" (Algorithm) Header ${u}`);if(void 0!==d)throw TypeError(`setInitializationVector cannot be called with JWE "alg" (Algorithm) Header ${u}`);return[p,void 0,f]}if("string"!=typeof m||!m)throw new PC('JWE "enc" (Encryption Algorithm) Header Parameter missing or invalid');return[p,VO(m),f]}async function V9(e,t,r){let i,o,n,a,s,d,[c,l,p]=t,[u,m,f,h,y,g,_,v,,b]=e,$=m,S=f,k=p??VC(c.alg);"integrated-encryption"===k.mode?n=await P6(k,r,"encrypt"):[n,i,o]=await VU(k,l,r,c,g,v),o&&(b?S=S?{...S,...o}:o:$=$?{...$,...o}:o,V6($,S,h));let w=$?PF(JSON.stringify($)):"",P=y?.byteLength?PF(y):void 0,V=PS(P?`${w}.${P}`:w),R=u;"DEF"===c.zip&&(R=await (async function(e){return VG("CompressionStream"),VB(new CompressionStream("deflate-raw"),e)})(R).catch(e=>{throw new PC("Failed to compress plaintext",{cause:e})})),"integrated-encryption"===k.mode?[i,a]=await k.encrypt(n,R,V,$,c,v):{ciphertext:a,tag:s,iv:d}=await Vg(l,R,n,_,V);let q={ciphertext:PF(a)};return d&&(q.iv=PF(d)),s&&(q.tag=PF(s)),i?.byteLength&&(q.encrypted_key=PF(i)),P&&(q.aad=P),$&&(q.protected=w),h&&(q.unprotected=h),S&&(q.header=S),q}async function V5(e,t,r){return V9(e,V3(e,r),t)}function V8(e){return[e.protected,e.encrypted_key,e.iv,e.ciphertext,e.tag].join(".")}class V7{#f;state;constructor(e,t,r){this.#f=e,this.state=[void 0,void 0,t,r]}setUnprotectedHeader(e){return PB(this.state[0],"setUnprotectedHeader"),this.state[0]=e,this}setKeyManagementParameters(e){return PB(this.state[1],"setKeyManagementParameters"),this.state[1]=e,this}addRecipient(...e){return this.#f.addRecipient(...e)}encrypt(...e){return this.#f.encrypt(...e)}done(){return this.#f}}class Re{#h;#y=[];#g;#_;#v;constructor(e){this.#h=e}addRecipient(e,t){let r=new V7(this,e,t?.crit);return this.#y.push(r),r}setProtectedHeader(e){return PB(this.#g,"setProtectedHeader"),this.#g=e,this}setSharedUnprotectedHeader(e){return PB(this.#_,"setSharedUnprotectedHeader"),this.#_=e,this}setAdditionalAuthenticatedData(e){return this.#v=e,this}async encrypt(){if(!this.#y.length)throw new PC("at least one recipient must be added");PL(this.#h,"plaintext");let e=this.#y.length>1,t,r=this.#g,i=this.#_,o=[];for(let n of this.#y){let[a,s,d,c]=n.state,l=[this.#h,r,a,i,this.#v,void 0,void 0,s,c,e],p=V3(l,void 0,o.length>0);o.length||(r=l[1],i=l[3]),o.push([l,p,d]);let[{alg:u,enc:m},,f]=p;if(e&&f&&!VT(f))throw new PC(`"${u}" alg may only have a single recipient`);if(t){if(t!==m)throw new PC('JWE "enc" (Encryption Algorithm) Header Parameter must be the same for all recipients')}else t=m}for(let[,e]of o)e[2]??=VC(e[0].alg);let[n,a,s]=o[0],d=e?Vu(a[1]):void 0;n[5]=d;let{encrypted_key:c,header:l,...p}=await V9(n,a,s),u={...p,recipients:[{}]};c&&(u.recipients[0].encrypted_key=c),l&&(u.recipients[0].header=l);for(let e=1;e(function(e,t){try{let r=Rc(e,[t]),i=Rp(r.protected),{b64:o,crit:n}=i;return[r,i,Array.isArray(n)&&n.includes("b64")?"boolean"==typeof o?o?1:2:0:1]}catch{return}})(e,s)).filter(e=>void 0!==e),c=0;for(let[,,e]of d)if(3==(c|=e))throw new PT("inconsistent use of JWS Unencoded Payload (RFC7797)");for(let e of d)try{let[r]=await Rf(e[0],i,t,Ru,e[1]);return r}catch{}throw new Pz}let Rv=e=>Math.floor(e.getTime()/1e3),Rb={s:1,m:60,h:3600,d:86400,w:604800,y:0x1e187e0},R$=/^(\+|\-)? ?(\d+|\d+\.\d+) ?(seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)(?: (ago|from now))?$/i,RS="check_failed";function Rk(){throw TypeError("Invalid time period format")}function Rw(e){"string"!=typeof e&&Rk();let t=R$.exec(e);(!t||t[4]&&t[1])&&Rk();let r=Math.round(parseFloat(t[2])*Rb[t[3][0].toLowerCase()]);return Number.isFinite(r)||Rk(),"-"===t[1]||"ago"===t[4]?-r:r}function RP(e,t){if(!Number.isFinite(t))throw TypeError(`Invalid ${e} input`);return t}function RV(e,t){if("string"!=typeof t)throw TypeError(`"${e}" claim must be a string`)}function RR(e,t){return"number"==typeof e?RP(t,e):e instanceof Date?RP(t,Rv(e)):Rv(new Date)+Rw(e)}let Rq=e=>{let t=e.toLowerCase();return e.includes("/")?t:`application/${t}`};function RI(e,t,r=!1){let i=e[t];if(!(void 0===i&&!r)){if("number"!=typeof i)throw new PR(`"${t}" claim must be a number`,e,t,"invalid");return i}}function Rx(e,t){throw new PR(`unexpected "${t}" claim value`,e,t,RS)}function Rj(e,t,r={}){let i,o,n;try{i=JSON.parse(Py.decode(t))}catch{}if(!PU(i))throw new PO("JWT Claims Set must be a top-level JSON object");let{typ:a}=r;if(void 0!==a&&("string"!=typeof e.typ||Rq(e.typ)!==Rq(a)))throw new PR('unexpected "typ" JWT header value',i,"typ",RS);let{requiredClaims:s=[],issuer:d,subject:c,audience:l,maxTokenAge:p}=r,u=[...s];for(let e of(void 0!==p&&u.push("iat"),void 0!==l&&u.push("aud"),void 0!==c&&u.push("sub"),void 0!==d&&u.push("iss"),new Set(u.reverse())))if(!Object.hasOwn(i,e))throw new PR(`missing required "${e}" claim`,i,e,"missing");void 0===d||(Array.isArray(d)?d:[d]).includes(i.iss)||Rx(i,"iss"),void 0!==c&&i.sub!==c&&Rx(i,"sub"),void 0===l||(o=i.aud,n="string"==typeof l?[l]:l,"string"==typeof o?n.includes(o):!!Array.isArray(o)&&n.some(e=>o.includes(e)))||Rx(i,"aud");let{clockTolerance:m}=r,f=0;if("string"==typeof m)f=Rw(m);else if(void 0!==m){if("number"!=typeof m)throw TypeError("Invalid clockTolerance option type");f=m}RP("clockTolerance option",f);let{currentDate:h}=r,y=RP("currentDate option",Rv(void 0===h?new Date:h)),g=RI(i,"iat",void 0!==p),_=RI(i,"nbf");if(void 0!==_&&_>y+f)throw new PR('"nbf" claim timestamp check failed',i,"nbf",RS);let v=RI(i,"exp");if(void 0!==v&&v<=y-f)throw new Pq('"exp" claim timestamp check failed',i,"exp",RS);if(void 0!==p){let e=y-g;if(e-f>RP("maxTokenAge option","number"==typeof p?p:Rw(p)))throw new Pq('"iat" claim timestamp check failed (too far in the past)',i,"iat",RS);if(e<-f)throw new PR('"iat" claim timestamp check failed (it should be in the past)',i,"iat",RS)}return i}function RC(e){return f.get(e)}function RT(e){let t=RC(e);for(let e of["iat","nbf","exp"]){let r=t[e];if("number"==typeof r&&!Number.isFinite(r))throw TypeError(`"${e}" claim must be a finite number`)}return Pf.encode(JSON.stringify(t))}class RO{constructor(e={}){if(!PU(e))throw TypeError("JWT Claims Set MUST be an object");(f||=new WeakMap).set(this,structuredClone(e))}setIssuer(e){return RV("iss",e),RC(this).iss=e,this}setSubject(e){return RV("sub",e),RC(this).sub=e,this}setAudience(e){return function(e){if("string"!=typeof e&&(!Array.isArray(e)||Array.from(e).some(e=>"string"!=typeof e)))throw TypeError('"aud" claim must be a string or an array of strings')}(e),RC(this).aud=e,this}setJti(e){return RV("jti",e),RC(this).jti=e,this}setNotBefore(e){return RC(this).nbf=RR(e,"setNotBefore"),this}setExpirationTime(e){return RC(this).exp=RR(e,"setExpirationTime"),this}setIssuedAt(e){let t=RC(this);return void 0===e?t.iat=Rv(new Date):"string"==typeof e?t.iat=RP("setIssuedAt",Rv(new Date)+Rw(e)):t.iat=RR(e,"setIssuedAt"),this}}async function RE(e,t,r){let[i,o]=await Rh(e,Rl(r),t);if(!o)throw new PO("JWTs MUST NOT use unencoded payload");let n=Rj(i.protectedHeader,i.payload,r);return{...i,payload:n}}async function RA(e,t,r){let{plaintext:i,...o}=await V1(e,VX(r),t),{protectedHeader:n}=o,a=Rj(n,i,r);for(let e of["iss","sub","aud"])if(void 0!==n[e]&&("aud"===e?JSON.stringify(n.aud)!==JSON.stringify(a.aud):n[e]!==a[e]))throw new PR(`replicated "${e}" claim header parameter mismatch`,a,e,"mismatch");return{payload:a,...o}}class RW{#b;constructor(e){PL(e,"plaintext"),this.#b=[e]}setContentEncryptionKey(e){return PB(this.#b[5],"setContentEncryptionKey"),this.#b[5]=e,this}setInitializationVector(e){return PB(this.#b[6],"setInitializationVector"),this.#b[6]=e,this}setProtectedHeader(e){return PB(this.#b[1],"setProtectedHeader"),this.#b[1]=e,this}setKeyManagementParameters(e){return PB(this.#b[7],"setKeyManagementParameters"),this.#b[7]=e,this}async encrypt(e,t){return V8(await V5([...this.#b],e,t))}}class RM{#b;constructor(e){PL(e,"plaintext"),this.#b=[e]}setKeyManagementParameters(e){return PB(this.#b[7],"setKeyManagementParameters"),this.#b[7]=e,this}setProtectedHeader(e){return PB(this.#b[1],"setProtectedHeader"),this.#b[1]=e,this}setSharedUnprotectedHeader(e){return PB(this.#b[3],"setSharedUnprotectedHeader"),this.#b[3]=e,this}setUnprotectedHeader(e){return PB(this.#b[2],"setUnprotectedHeader"),this.#b[2]=e,this}setAdditionalAuthenticatedData(e){return this.#b[4]=e,this}setContentEncryptionKey(e){return PB(this.#b[5],"setContentEncryptionKey"),this.#b[5]=e,this}setInitializationVector(e){return PB(this.#b[6],"setInitializationVector"),this.#b[6]=e,this}async encrypt(e,t){return V5([...this.#b],e,t)}}async function RN(e,t,r){let[i,o,n,a]=e,s="";if(void 0!==o){let e=P4(PT,o);o=e[0],s=PF(e[1])}if(void 0!==n&&(n=P4(PT,n)[0]),!o&&!n)throw new PT("either setProtectedHeader or setUnprotectedHeader must be called before #sign()");if(!PG(o,n))throw new PT("JWS Protected and JWS Unprotected Header Parameter names must be disjoint");let d={...o,...n};P1(PT,o);let c=P2(o,P0(PT,PQ,a,o,d));c||r?.();let{alg:l}=d;if("string"!=typeof l||!l)throw new PT('JWS "alg" (Algorithm) Header Parameter missing or invalid');let p=Rd(l),u="",m=i,f;if(c){let t=e[4];t?(u=t[0]??=PF(i),m=t[1]??=PS(u)):(u=PF(i),f=Pf.encode(`${s}.${u}`))}f??=Pg(PS(s),PS("."),m);let h=await Vp(await P6(p,t,"sign"),p.subtle,"sign");p.minRsaBits&&Vn(p.alg,h);let y={signature:PF(new Uint8Array(await crypto.subtle.sign(p.signing,h,f))),payload:u};return o&&(y.protected=s),n&&(y.header=n),[y,c]}async function Rz(e,t,r,i,o){let[n]=await RN([e,t,void 0,r],i,o);return`${n.protected}.${n.payload}.${n.signature}`}class RD{#$;#g;constructor(e){PL(e,"payload"),this.#$=e}setProtectedHeader(e){return PB(this.#g,"setProtectedHeader"),this.#g=e,this}async sign(e,t){return Rz(this.#$,this.#g,t?.crit,e,()=>{throw TypeError("use the flattened module for creating JWS with b64: false")})}}class RF{#b;constructor(e){PL(e,"payload"),this.#b=[e]}setProtectedHeader(e){return PB(this.#b[1],"setProtectedHeader"),this.#b[1]=e,this}setUnprotectedHeader(e){return PB(this.#b[2],"setUnprotectedHeader"),this.#b[2]=e,this}async sign(e,t){let r=[...this.#b];r[3]=t?.crit;let[i]=await RN(r,e);return i}}class RL{#f;state;constructor(e,t,r){this.#f=e,this.state=[void 0,void 0,t,r?.crit]}setProtectedHeader(e){return PB(this.state[0],"setProtectedHeader"),this.state[0]=e,this}setUnprotectedHeader(e){return PB(this.state[1],"setUnprotectedHeader"),this.state[1]=e,this}addSignature(...e){return this.#f.addSignature(...e)}sign(...e){return this.#f.sign(...e)}done(){return this.#f}}class RU{#$;#S=[];constructor(e){this.#$=e}addSignature(e,t){let r=new RL(this,e,t);return this.#S.push(r),r}async sign(){let e;if(!this.#S.length)throw new PT("at least one signature must be added");PL(this.#$,"payload");let t={signatures:[],payload:""},r=[];for(let i of this.#S){let[o,n,a,s]=i.state,[{payload:d,...c},l]=await RN([this.#$,o,n,s,r],a);if(void 0===e)e=l,t.payload=d;else if(e!==l)throw new PT("inconsistent use of JWS Unencoded Payload (RFC7797)");t.signatures.push(c)}return t}}let RH=RO;class RG extends RH{#g;setProtectedHeader(e){return PB(this.#g,"setProtectedHeader"),this.#g=e,this}async sign(e,t){return Rz(RT(this),this.#g,t?.crit,e,()=>{throw new PO("JWTs MUST NOT use unencoded payload")})}}let RB=RO;class RK extends RB{#b=[void 0];#k;#w;#P;setProtectedHeader(e){return PB(this.#b[1],"setProtectedHeader"),this.#b[1]=e,this}setKeyManagementParameters(e){return PB(this.#b[7],"setKeyManagementParameters"),this.#b[7]=e,this}setContentEncryptionKey(e){return PB(this.#b[5],"setContentEncryptionKey"),this.#b[5]=e,this}setInitializationVector(e){return PB(this.#b[6],"setInitializationVector"),this.#b[6]=e,this}replicateIssuerAsHeader(){return this.#k=!0,this}replicateSubjectAsHeader(){return this.#w=!0,this}replicateAudienceAsHeader(){return this.#P=!0,this}async encrypt(e,t){let r=RT(this);this.#b[1]&&(this.#k||this.#w||this.#P)&&(this.#b[1]={...this.#b[1],iss:this.#k?RC(this).iss:void 0,sub:this.#w?RC(this).sub:void 0,aud:this.#P?RC(this).aud:void 0});let i=[...this.#b];return i[0]=r,V8(await V5(i,e,t))}}let RJ='"alg" (Algorithm)';function RZ(e='JWK "alg" (Algorithm) Parameter'){throw new Px(`Invalid or unsupported ${e} value`)}function RQ(e,t){return("string"==typeof e?Rs[e]??VR[e]:void 0)??RZ(t)}let RX=async(e,t,r)=>{var i,o;let n;if(P8(r)){if(r.type!==e)throw TypeError(`key is not a ${e} key`);return r.export({format:"pem",type:t})}if(!P5(r))throw TypeError(Vt(r,"CryptoKey","KeyObject"));if(!r.extractable)throw TypeError("CryptoKey is not extractable");if(r.type!==e)throw TypeError(`key is not a ${e} key`);return i=Pk(new Uint8Array(await crypto.subtle.exportKey(t,r))),o=`${e.toUpperCase()} KEY`,n=(i.match(/.{1,64}/g)||[]).join(` +`,e.enqueue(t.encode(o)),!0}catch(e){return this.onerror?.(e),!1}}handleUnsupportedRequest(){return this.onerror?.(Error("Method not allowed.")),Response.json({jsonrpc:"2.0",error:{code:-32e3,message:"Method not allowed."},id:null},{status:405,headers:{Allow:"GET, POST, DELETE","Content-Type":"application/json"}})}async handlePostRequest(e,t){try{var r,i;let o,n,a,s,d,c=e.headers.get("accept");if(!c?.includes("application/json")||!c.includes("text/event-stream"))return this.onerror?.(Error("Not Acceptable: Client must accept both application/json and text/event-stream")),this.createJsonErrorResponse(406,-32e3,"Not Acceptable: Client must accept both application/json and text/event-stream");if(r=e.headers.get("content-type"),"application/json"!==r&&"application/json"!==function(e){if(e)try{return lG.parse(e).type}catch{let t=(e.split(";",1)[0]??"").trim().toLowerCase();if(""===t||e.slice(t.length).includes(","))return;return t}}(r))return this.onerror?.(Error("Unsupported Media Type: Content-Type must be application/json")),this.createJsonErrorResponse(415,-32e3,"Unsupported Media Type: Content-Type must be application/json");if(t?.parsedBody===void 0)try{let t=await async function(e,t=4194304){if(Number(e.headers.get("content-length"))>t)return{tooLarge:!0};if(null===e.body)return{tooLarge:!1,text:""};let r=e.body.getReader(),i=new TextDecoder,o=0,n="";try{for(;;){let{done:e,value:a}=await r.read();if(e)break;if((o+=a.byteLength)>t)return{tooLarge:!0};n+=i.decode(a,{stream:!0})}}finally{r.releaseLock()}return{tooLarge:!1,text:n+i.decode()}}(e,this._maxRequestBodySize);if(t.tooLarge){let e=(i=this._maxRequestBodySize,`Payload Too Large: Request body must not exceed ${i} bytes`);return this.onerror?.(Error(e)),this.createJsonErrorResponse(413,-32e3,e)}o=JSON.parse(t.text)}catch(e){return this.onerror?.(e),this.createJsonErrorResponse(400,-32700,"Parse error: Invalid JSON")}else o=t.parsedBody;if(Array.isArray(o)&&o.length>100)return this.onerror?.(Error("Invalid Request: Batch must not exceed 100 messages")),this.createJsonErrorResponse(400,-32600,"Invalid Request: Batch must not exceed 100 messages");try{n=Array.isArray(o)?o.map(e=>aM.parse(e)):[aM.parse(o)]}catch(e){return this.onerror?.(e),this.createJsonErrorResponse(400,-32700,"Parse error: Invalid JSON-RPC message")}if(this._closed)return this.createJsonErrorResponse(404,-32001,"Session not found");let l=n.some(e=>aY.safeParse(e).success);if(l){if(this._initialized&&void 0!==this.sessionId)return this.onerror?.(Error("Invalid Request: Server already initialized")),this.createJsonErrorResponse(400,-32600,"Invalid Request: Server already initialized");if(n.length>1)return this.onerror?.(Error("Invalid Request: Only one initialization request is allowed")),this.createJsonErrorResponse(400,-32600,"Invalid Request: Only one initialization request is allowed");this.sessionId=this.sessionIdGenerator?.(),this._initialized=!0,this.sessionId&&this._onsessioninitialized&&await Promise.resolve(this._onsessioninitialized(this.sessionId))}if(!l){let t=this.validateSession(e);if(t)return t;let r=this.validateProtocolVersion(e);if(r)return r}if(this._closed)return this.createJsonErrorResponse(404,-32001,"Session not found");try{a=await this._checkScopeChallenge(n,t?.authInfo)}catch(e){return this.onerror?.(e),this.createJsonErrorResponse(500,-32603,"Internal server error")}if(a)return a;if(!n.some(e=>lp(e))){for(let r of n)this.onmessage?.(r,{authInfo:t?.authInfo,request:e});return new Response(null,{status:202})}let p=crypto.randomUUID(),u=n.find(e=>aY.safeParse(e).success),m=u?u.params.protocolVersion:e.headers.get("mcp-protocol-version")??"2025-03-26";if(this._enableJsonResponse)return new Promise(r=>{for(let e of(this._streamMapping.set(p,{resolveJson:r,cleanup:()=>{this._streamMapping.delete(p)}}),n))lp(e)&&this._requestToStreamMapping.set(e.id,p);for(let r of n)this.onmessage?.(r,{authInfo:t?.authInfo,request:e})});let f=new TextEncoder,h=new ReadableStream({start:e=>{s=e},cancel:()=>{void 0!==d&&clearInterval(d),this._streamMapping.get(p)?.controller===s&&this._streamMapping.delete(p)}}),y={"Content-Type":"text/event-stream","Cache-Control":"no-cache, no-transform",Connection:"keep-alive","X-Accel-Buffering":"no"};for(let e of(void 0!==this.sessionId&&(y["mcp-session-id"]=this.sessionId),n))lp(e)&&(this._streamMapping.set(p,{controller:s,encoder:f,cleanup:()=>{void 0!==d&&clearInterval(d),this._streamMapping.delete(p);try{s.close()}catch{}}}),this._requestToStreamMapping.set(e.id,p));for(let r of(await this.writePrimingEvent(s,f,p,m),n)){let i,o;lp(r)&&this._eventStore&&this.supportsEmptySSEData(m)&&(i=()=>{this.closeSSEStream(r.id)},o=()=>{this.closeStandaloneSSEStream()}),this.onmessage?.(r,{authInfo:t?.authInfo,request:e,closeSSEStream:i,closeStandaloneSSEStream:o})}return this._streamMapping.get(p)?.controller===s&&(d=this.startKeepAlive(s,f)),new Response(h,{status:200,headers:y})}catch(e){return this.onerror?.(e),this.createJsonErrorResponse(400,-32700,"Parse error",{data:String(e)})}}async handleDeleteRequest(e){let t=this.validateSession(e);if(t)return t;let r=this.validateProtocolVersion(e);if(r)return r;try{return await Promise.resolve(this._onsessionclosed?.(this.sessionId)),new Response(null,{status:200})}finally{await this.close()}}validateSession(e){if(void 0===this.sessionIdGenerator)return;if(!this._initialized)return this.onerror?.(Error("Bad Request: Server not initialized")),this.createJsonErrorResponse(400,-32e3,"Bad Request: Server not initialized");let t=e.headers.get("mcp-session-id");return t?t!==this.sessionId?(this.onerror?.(Error("Session not found")),this.createJsonErrorResponse(404,-32001,"Session not found")):void 0:(this.onerror?.(Error("Bad Request: Mcp-Session-Id header is required")),this.createJsonErrorResponse(400,-32e3,"Bad Request: Mcp-Session-Id header is required"))}validateProtocolVersion(e){let t=e.headers.get("mcp-protocol-version");if(null!==t&&!this._supportedProtocolVersions.includes(t)){let e=`Bad Request: Unsupported protocol version: ${t} (supported versions: ${this._supportedProtocolVersions.join(", ")})`;return this.onerror?.(Error(e)),this.createJsonErrorResponse(400,-32e3,e)}}async close(){if(!this._closed){for(let{cleanup:e}of(this._closed=!0,this._streamMapping.values()))e();this._streamMapping.clear(),this._requestResponseMap.clear(),this.onclose?.()}}closeSSEStream(e){let t=this._requestToStreamMapping.get(e);if(!t)return;let r=this._streamMapping.get(t);r&&r.cleanup()}closeStandaloneSSEStream(){let e=this._streamMapping.get(this._standaloneSseStreamId);e&&e.cleanup()}async send(e,t){let r=t?.relatedRequestId;if((aA.safeParse(e).success||aW.safeParse(e).success)&&(r=e.id),void 0===r){let t;if(aA.safeParse(e).success||aW.safeParse(e).success)throw Error("Cannot send a response on a standalone SSE stream unless resuming a previous client request");this._eventStore&&(t=await this._eventStore.storeEvent(this._standaloneSseStreamId,e));let r=this._streamMapping.get(this._standaloneSseStreamId);if(void 0===r)return;r.controller&&r.encoder&&(void 0===t||!r.replayedEventIds?.has(t))&&this.writeSSEEvent(r.controller,r.encoder,e,t);return}let i=this._requestToStreamMapping.get(r);if(!i)throw Error(`No connection established for request ID: ${String(r)}`);let o=this._streamMapping.get(i);if(!this._enableJsonResponse){let t;this._eventStore&&(t=await this._eventStore.storeEvent(i,e),o=this._streamMapping.get(i)),o?.controller&&o?.encoder&&(void 0===t||!o.replayedEventIds?.has(t))&&this.writeSSEEvent(o.controller,o.encoder,e,t)}if(aA.safeParse(e).success||aW.safeParse(e).success){this._requestResponseMap.set(r,e);let t=[...this._requestToStreamMapping.entries()].filter(([e,t])=>t===i).map(([e])=>e);if(t.every(e=>this._requestResponseMap.has(e))){if(!o){if(this._enableJsonResponse)throw Error(`No connection established for request ID: ${String(r)}`);if(!this._eventStore){for(let e of(this.onerror?.(Error(`Response for request ID ${String(r)} is undeliverable: per-request stream is disconnected and no eventStore is configured`)),t))this._requestResponseMap.delete(e),this._requestToStreamMapping.delete(e);return}for(let e of t)this._requestResponseMap.delete(e),this._requestToStreamMapping.delete(e);return}if(this._enableJsonResponse&&o.resolveJson){let e={"Content-Type":"application/json"};void 0!==this.sessionId&&(e["mcp-session-id"]=this.sessionId);let r=t.map(e=>this._requestResponseMap.get(e));1===r.length?o.resolveJson(Response.json(r[0],{status:200,headers:e})):o.resolveJson(Response.json(r,{status:200,headers:e})),o.cleanup()}else o.cleanup();for(let e of t)this._requestResponseMap.delete(e),this._requestToStreamMapping.delete(e)}}}};let u0=Symbol("swallowsErrorsAfterClose");var u2=class{_readBuffer;_started=!1;_closed=!1;constructor(e=N.stdin,t=N.stdout,r){this._stdin=e,this._stdout=t,this._readBuffer=new lB({maxBufferSize:r?.maxBufferSize})}onclose;onerror;onmessage;_ondata=e=>{try{this._readBuffer.append(e),this.processReadBuffer()}catch(e){this.onerror?.(e),this.close().catch(()=>{})}};_onerror=e=>{this.onerror?.(e)};_onstdouterror=e=>{this._closed||(this.onerror?.(e),this.close().catch(()=>{}))};_onstdinclose=()=>{this.close().catch(()=>{})};async start(){if(this._started)throw Error("StdioServerTransport already started! If using Server class, note that connect() calls start() automatically.");for(let e of(this._started=!0,this._stdout.listeners("error")))e[u0]&&this._stdout.off("error",e);(this._stdin.readableEnded||this._stdin.destroyed)&&setImmediate(this._onstdinclose),this._stdin.on("data",this._ondata),this._stdin.on("error",this._onerror),this._stdin.on("end",this._onstdinclose),this._stdin.on("close",this._onstdinclose),this._stdout.on("error",this._onstdouterror)}processReadBuffer(){for(;;)try{let e=this._readBuffer.readMessage();if(null===e)break;this.onmessage?.(e)}catch(e){this.onerror?.(e)}}async close(){this._closed||(this._closed=!0,this._stdin.off("data",this._ondata),this._stdin.off("error",this._onerror),this._stdin.off("end",this._onstdinclose),this._stdin.off("close",this._onstdinclose),this._onstdouterror[u0]=!0,0===this._stdin.listenerCount("data")&&this._stdin.pause(),this._readBuffer.clear(),this.onclose?.())}send(e){return this._closed?Promise.reject(Error("StdioServerTransport is closed")):new Promise((t,r)=>{let i=JSON.stringify(e)+"\n",o=!1,n=e=>{o||(o=!0,this._stdout.off("error",n),this._stdout.off("drain",a),r(e))},a=()=>{o||(o=!0,this._stdout.off("error",n),this._stdout.off("drain",a),t())};if(this._stdout.once("error",n),this._stdout.write(i)){if(o)return;o=!0,this._stdout.off("error",n),t()}else o||this._stdout.once("drain",a)})}},u4=class extends Error{constructor(e,t){super(e,t),this.name="RequestError"}};let u6=new Set(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","server","user-agent"]),u3=/^[!#$%&'*+\-.^_`|~\dA-Za-z]+$/,u9=e=>9===e||10===e||13===e||32===e,u5=e=>{if(!u9(e.charCodeAt(0))&&!u9(e.charCodeAt(e.length-1)))return e;let t=0,r=e.length;for(;tt&&u9(e.charCodeAt(r-1));)r--;return e.slice(t,r)},u8=/[\0\r\n]/,u7=globalThis.Headers,me=(e,t=u7)=>{let r=new t;for(let t=0;t{e.call(t,r,i,this)})}[Symbol.iterator](){return this.entries()}};Object.defineProperty(mt.prototype,Symbol.for("nodejs.util.inspect.custom"),{value:function(e,t,r){return`Headers (lightweight) ${r(Object.fromEntries(this),{...t,depth:null==e?null:e-1})}`}}),Object.setPrototypeOf(mt.prototype,u7.prototype);let mr=e=>globalThis.Headers===u7?new mt(e):me(e.rawHeaders,globalThis.Headers),mi=/^\/[!#$&-;=?-\[\]_a-z~]*$/,mo=/\/\.\.?(?:[/?#]|$)/,mn=/^[a-z0-9._-]+(?::(?:[1-5]\d{3,4}|[6-9]\d{3}))?$/,ma=global.Request;var ms=class extends ma{constructor(e,t){if("object"==typeof e&&mg in e){let r=void 0!==t&&"body"in t&&null!=t.body;if(e[mq]&&!r)throw TypeError("Cannot construct a Request with a Request object that has already been used.");e=e[mg]()}void 0!==t?.body?.getReader&&(t.duplex??="half"),super(e,t)}};let md=Symbol("wrapBodyStream"),mc=new Set(["latin1","binary","hex","base64","base64url"]),ml=Symbol("bodyBufferedBeforeDisconnect"),mp=Symbol("bodyBufferedLengthBeforeDisconnect"),mu=(e,t)=>Buffer.isBuffer(e)?e:Buffer.from(e,t??"utf8"),mm=e=>{let t;return!(e instanceof z)&&!!e.complete&&!!e.readableAborted&&"function"==typeof e.read&&(null===(t=e.readableEncoding)||mc.has(t))},mf=e=>{e.readableDidRead||!mm(e)||(e[mp]??=e.readableLength)},mh=(e,t)=>{let r;if(e.readableDidRead&&!t||!mm(e))return;if(void 0!==e[ml])return e[ml];let i=e.errored;if(i&&"ECONNRESET"!==i.code)r=i;else if(void 0!==e[mp]&&e.readableLength!==e[mp])r=mj();else{let i=t??[],o=e.read();null!==o&&i.push(mu(o,e.readableEncoding));let n=1===i.length?i[0]:Buffer.concat(i);r=n;let a=e.headers["content-length"];if("string"==typeof a&&/^\d+$/.test(a)){let e=Number(a);Number.isSafeInteger(e)&&n.length!==e&&(r=mj())}}return e[ml]=r,r},my=(e,t)=>{t instanceof Error?e.error(t):(t.length>0&&e.enqueue(t),e.close())},mg=Symbol("getRequestCache"),m_=Symbol("requestCache"),mv=Symbol("incomingKey"),mb=Symbol("urlKey"),m$=Symbol("methodKey"),mS=Symbol("headersKey"),mk=Symbol("abortControllerKey"),mw=Symbol("getAbortController"),mP=Symbol("abortRequest"),mV=Symbol("bodyBuffer"),mR=Symbol("bodyReadPromise"),mq=Symbol("bodyConsumedDirectly"),mI=Symbol("bodyLockReader"),mx=Symbol("abortReason"),mj=()=>TypeError("Body is unusable"),mC=new TextDecoder,mT=/^[!#$%&'*+\-.^_`|~0-9A-Za-z]+$/,mO=(e,t,r)=>{if(e[mq])return Promise.reject(mj());let i=e.method;if("GET"===i||"HEAD"===i)return e[mg]()[t]();let o=(e=>{if(!mT.test(e))return TypeError(`'${e}' is not a valid HTTP method.`);let t=e.toUpperCase();if("CONNECT"===t||"TRACK"===t||"TRACE"===t&&"TRACE"!==e)return TypeError(`'${e}' HTTP method is unsupported.`)})(i);if(o)return Promise.reject(o);if(e[m_]&&"TRACE"!==i)return e[m_][t]();let n=(e=>{if(e[mq])return Promise.reject(mj());e[mq]=!0})(e);if(n)return n;let a=mE(e);if(a){let t=Promise.resolve(r(a,e));return e[mV]=void 0,t}return mW(e).then(t=>{let i=r(t,e);return e[mV]=void 0,i})},mE=e=>{let t=e[mv];if("rawBody"in t&&t.rawBody instanceof Buffer)return t.rawBody},mA=(e,t)=>{if(t.errored)return t.errored;let r=e[mx];return void 0!==r?r instanceof Error?r:Error(String(r)):Error("Client connection prematurely closed.")},mW=e=>{if(e[mV])return Promise.resolve(e[mV]);if(e[mR])return e[mR];let t=e[mv];if(t.readableDidRead)return Promise.reject(mj());let r=mh(t);if(void 0!==r)return r instanceof Error?Promise.reject(r):(e[mV]=r,Promise.resolve(r));let i=new Promise((r,i)=>{let o=[],n=!1,a=e=>{n||(n=!0,u(),e())},s=n=>{let s=t.errored??n;return!!mm(t)&&(!s||"ECONNRESET"===s.code)&&(a(()=>{let a=mh(t,o);a instanceof Error?i(a):void 0===a?i(n??mA(e,t)):(e[mV]=a,r(a))}),!0)},d=e=>{o.push(mu(e,t.readableEncoding))},c=()=>{a(()=>{let t=1===o.length?o[0]:Buffer.concat(o);e[mV]=t,r(t)})},l=e=>{s(e)||a(()=>{i(e)})},p=()=>{t.readableEnded?c():s()||a(()=>{i(mA(e,t))})},u=()=>{t.off("data",d),t.off("end",c),t.off("error",l),t.off("close",p),e[mR]=void 0};t.on("data",d),t.on("end",c),t.on("error",l),t.on("close",p),queueMicrotask(()=>{!n&&(t.readableEnded?c():t.errored?l(t.errored):t.destroyed&&p())})});return e[mR]=i,i},mM={get method(){return this[m$]},get url(){return this[mb]},get headers(){return this[mS]||=mr(this[mv])},[mP](e){void 0===this[mx]&&(this[mx]=e);let t=this[mk];t&&!t.signal.aborted&&t.abort(e)},[mw](){return this[mk]||=new AbortController,void 0===this[mx]||this[mk].signal.aborted||this[mk].abort(this[mx]),this[mk]},[mg](){let e=this[mw]();if(this[m_])return this[m_];let t=this.method;if(this[mq]&&"GET"!==t&&"HEAD"!==t){this[mV]=void 0;let r={method:"TRACE"===t?"GET":t,headers:this.headers,signal:e.signal};"TRACE"!==t&&(r.body=new ReadableStream({start(e){e.close()}}),r.duplex="half");let i=new ms(this[mb],r);return"TRACE"===t&&Object.defineProperty(i,"method",{get:()=>"TRACE"}),this[m_]=i}return this[m_]=((e,t,r,i,o)=>{let n={method:e,headers:r,signal:o.signal};if("TRACE"===e){n.method="GET";let e=new ms(t,n);return Object.defineProperty(e,"method",{get:()=>"TRACE"}),e}if("GET"!==e&&"HEAD"!==e)if("rawBody"in i&&i.rawBody instanceof Buffer)n.body=new ReadableStream({start(e){e.enqueue(i.rawBody),e.close()}});else if(i[md]){let e;n.body=new ReadableStream({async pull(t){try{if(!e){let e=mh(i);if(void 0!==e)return void my(t,e)}e||=L.toWeb(i).getReader();let{done:r,value:o}=await e.read();r?t.close():t.enqueue(o)}catch(e){t.error(e)}}})}else{let e=mh(i);void 0!==e?n.body=new ReadableStream({start(t){my(t,e)}}):n.body=L.toWeb(i)}return new ms(t,n)})(this.method,this[mb],this.headers,this[mv],e)},get body(){if(!this[mq])return this[mg]().body;let e=this[mg]();return!this[mI]&&e.body&&(this[mI]=e.body.getReader()),e.body},get bodyUsed(){return!!this[mq]||!!this[m_]&&this[m_].bodyUsed}};Object.defineProperty(mM,"signal",{get(){return this[mw]().signal}}),["cache","credentials","destination","integrity","mode","redirect","referrer","referrerPolicy","keepalive"].forEach(e=>{Object.defineProperty(mM,e,{get(){return this[mg]()[e]}})}),["clone","formData"].forEach(e=>{Object.defineProperty(mM,e,{value:function(){if(this[mq]){if("clone"===e)throw mj();return Promise.reject(mj())}return this[mg]()[e]()}})}),Object.defineProperty(mM,"text",{value:function(){return mO(this,"text",e=>mC.decode(e))}}),Object.defineProperty(mM,"arrayBuffer",{value:function(){return mO(this,"arrayBuffer",e=>e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength))}}),Object.defineProperty(mM,"blob",{value:function(){return mO(this,"blob",(e,t)=>{let r=(t[mS]||=mr(t[mv])).get("content-type")||"";return new Response(e,r?{headers:{"content-type":r}}:void 0).blob()})}}),Object.defineProperty(mM,"json",{value:function(){return this[mq]?Promise.reject(mj()):this.text().then(JSON.parse)}}),Object.defineProperty(mM,Symbol.for("nodejs.util.inspect.custom"),{value:function(e,t,r){return`Request (lightweight) ${r({method:this.method,url:this.url,headers:this.headers,nativeRequest:this[m_]},{...t,depth:null==e?null:e-1})}`}}),Object.setPrototypeOf(mM,ms.prototype);let mN="text/plain; charset=UTF-8",mz=Symbol("responseCache"),mD=Symbol("getResponseCache"),mF=Symbol("cache"),mL=global.Response;var mU=class e{#c;#l;[mD](){let e=this[mF],t=e&&e[2]instanceof Headers?e[2]:void 0;return delete this[mF],this[mz]||=new mL(this.#c,t?{status:this.#l?.status,statusText:this.#l?.statusText,headers:t}:this.#l)}constructor(t,r){let i;if(this.#c=t,r instanceof mL){let t=r[mz];if(t){this.#l=t,this[mD]();return}this.#l=r instanceof e?r.#l:r,i=new Headers(r.headers)}else this.#l=r;(null==t||"string"==typeof t||void 0!==t?.getReader||t instanceof Blob||t instanceof Uint8Array)&&(this[mF]=[r?.status||200,t??null,i||r?.headers])}get headers(){let e=this[mF];return e?(e[2]instanceof Headers||(e[2]=new Headers(e[2]||(null===e[1]?void 0:{"content-type":mN}))),e[2]):this[mD]().headers}get status(){return this[mF]?.[0]??this[mD]().status}get ok(){let e=this.status;return e>=200&&e<300}};["body","bodyUsed","redirected","statusText","trailers","type","url"].forEach(e=>{Object.defineProperty(mU.prototype,e,{get(){return this[mD]()[e]}})}),["arrayBuffer","blob","clone","formData","json","text"].forEach(e=>{Object.defineProperty(mU.prototype,e,{value:function(){return this[mD]()[e]()}})}),Object.defineProperty(mU.prototype,Symbol.for("nodejs.util.inspect.custom"),{value:function(e,t,r){return`Response (lightweight) ${r({status:this.status,headers:this.headers,ok:this.ok,nativeResponse:this[mz]},{...t,depth:null==e?null:e-1})}`}}),Object.setPrototypeOf(mU,mL),Object.setPrototypeOf(mU.prototype,mL.prototype);let mH=/^https?:\/\/[!#-;=?-[\]_a-z~A-Z]+$/,mG=new Set([301,302,303,307,308]);function mB(e,t,r){let i=t=>{e.cancel(t).catch(()=>{})};return t.on("close",i),t.on("error",i),(r??e.read()).then(a,o),e.closed.finally(()=>{t.off("close",i),t.off("error",i)});function o(e){e&&t.destroy(e)}function n(){e.read().then(a,o)}function a({done:r,value:i}){try{if(r)t.end();else{if(t.write(i))return e.read().then(a,o);t.once("drain",n)}}catch(e){o(e)}}}function mK(e,t){if(e.locked)throw TypeError("ReadableStream is locked.");if(!t.destroyed)return mB(e.getReader(),t)}Object.defineProperty(mU,"redirect",{value:function(e,t=302){if(!mG.has(t))throw RangeError("Invalid status code");return new mU(null,{status:t,headers:{location:e instanceof URL?e.href:mH.test(e)?e:new URL(e).href}})},writable:!0,configurable:!0}),Object.defineProperty(mU,"json",{value:function(e,t){let r,i=JSON.stringify(e);if(void 0===i)throw TypeError("The data is not JSON serializable");let o=t?.headers;return o?(r=new Headers(o)).has("content-type")||r.set("content-type","application/json"):r={"content-type":"application/json"},new mU(i,{status:t?.status??200,statusText:t?.statusText,headers:r})},writable:!0,configurable:!0});let mJ=(e,t)=>{let r={};if(e instanceof Headers||(e=new Headers(e??void 0)),e.has("set-cookie")){let t=[];for(let[i,o]of e)"set-cookie"===i?t.push(o):r[i]=o;t.length>0&&(r["set-cookie"]=t)}else for(let[t,i]of e)r[t]=i;return t&&(r["content-type"]??=t),r},mZ=Symbol("outgoingEnded"),mQ=Symbol("incomingDraining"),mX=e=>{if(e.destroyed||e[mQ])return;if(e[mQ]=!0,e instanceof z){try{e.stream?.close?.(D.NGHTTP2_NO_ERROR)}catch{}return}let t=0,r=()=>{clearTimeout(o),e.off("data",n),e.off("end",r),e.off("error",r)},i=()=>{r();let t=e.socket;t&&!t.destroyed&&("function"==typeof t.destroySoon?t.destroySoon():"function"==typeof t.destroy&&t.destroy())},o=setTimeout(i,500);o.unref?.();let n=e=>{(t+=e.length)>0x4000000&&i()};e.on("data",n),e.on("end",r),e.on("error",r),e.resume()},mY=e=>new Response(null,{status:e instanceof Error&&("TimeoutError"===e.name||"TimeoutError"===e.constructor.name)?504:500}),m1=(e,t)=>{let r=e instanceof Error?e:Error("unknown error",{cause:e});"ERR_STREAM_PREMATURE_CLOSE"===r.code?console.info("The user aborted a request."):(console.error(e),t.headersSent||(t instanceof T&&(t._contentLength=null),t.writeHead(500,{"Content-Type":"text/plain"})),t.end(`Error: ${r.message}`),t.destroy(r))},m0=e=>{"flushHeaders"in e&&e.writable&&e.flushHeaders()},m2=(e,t,r)=>!(null!==e._contentLength||!e._hasBody||!e.useChunkedEncodingByDefault||e._removedContLen||!(t>=200)||204===t||304===t||e.hasHeader("content-length")||e.hasHeader("transfer-encoding")||e.hasHeader("trailer"))&&(e._contentLength=r,!0),m4=(e,t,r)=>{m2(e,t,r)?e.writeHead(t,{"Content-Type":mN}):e.writeHead(t,{"Content-Type":mN,"Content-Length":r})},m6=async(e,t)=>{let[r,i,o]=e[mF];if(!o){null===i?(t.writeHead(r),t.end()):"string"==typeof i?(m4(t,r,Buffer.byteLength(i)),t.end(i)):i instanceof Uint8Array?(m4(t,r,i.byteLength),t.end(i)):i instanceof Blob?(m4(t,r,i.size),t.end(new Uint8Array(await i.arrayBuffer()))):(t.writeHead(r,{"Content-Type":mN}),m0(t),await mK(i,t)?.catch(e=>m1(e,t))),t[mZ]?.();return}let n=!1,a=!1,s=!0;if(o instanceof Headers)n=o.has("content-length"),o=mJ(o,null===i?void 0:mN);else if(Array.isArray(o)){let e=new Headers(o);n=e.has("content-length"),o=mJ(e,null===i?void 0:mN)}else for(let e in a=!0,o){if(14===e.length&&"content-length"===e.toLowerCase()){n=!0;break}(17===e.length&&"transfer-encoding"===e.toLowerCase()||7===e.length&&"trailer"===e.toLowerCase())&&(s=!1)}if(!n){let e;"string"==typeof i?e=Buffer.byteLength(i):i instanceof Uint8Array?e=i.byteLength:i instanceof Blob&&(e=i.size),void 0===e||a&&s&&m2(t,r,e)||(a&&(o={...o}),o["Content-Length"]=e)}t.writeHead(r,o),null==i?t.end():"string"==typeof i||i instanceof Uint8Array?t.end(i):i instanceof Blob?t.end(new Uint8Array(await i.arrayBuffer())):(m0(t),await mK(i,t)?.catch(e=>m1(e,t))),t[mZ]?.()},m3=(e,t={})=>{let r=t.autoCleanupIncoming??!0;return!1!==t.overrideGlobalObjects&&global.Request!==ms&&(Object.defineProperty(global,"Request",{value:ms}),Object.defineProperty(global,"Response",{value:mU})),async(i,o)=>{let n,a,s=!1,d=!1,c=()=>{if(a&&!d){let e,t;d=!0,o.on("close",(e=a,t=s,()=>{i.errored?(mf(i),e[mP](i.errored.toString())):(!o.writableFinished||i instanceof z&&i.aborted)&&(mf(i),e[mP]("Client connection prematurely closed.")),t&&!i.readableEnded&&setTimeout(()=>{i.readableEnded||setTimeout(()=>{mX(i)})})}))}};try{let d;if(a=((e,t)=>{let r,i=Object.create(mM);i[mv]=e,i[m$]=(e=>{if("string"!=typeof e||0===e.length)return"GET";switch(e){case"DELETE":case"GET":case"HEAD":case"OPTIONS":case"PATCH":case"POST":case"PUT":case"QUERY":return e}let t=e.toUpperCase();switch(t){case"DELETE":case"GET":case"HEAD":case"OPTIONS":case"POST":case"PUT":return t;default:return e}})(e.method);let o=e.url||"";if("/"!==o[0]&&(o.startsWith("http://")||o.startsWith("https://"))){if(e instanceof z)throw new u4("Absolute URL for :path is not allowed in HTTP/2");try{i[mb]=new URL(o).href}catch(e){throw new u4("Invalid absolute URL",{cause:e})}return i}let n=(e instanceof z?e.authority:e.headers.host)||t;if(!n)throw new u4("Missing host header");if(e instanceof z){if("http"!==(r=e.scheme)&&"https"!==r)throw new u4("Unsupported scheme")}else r=e.socket&&e.socket.encrypted?"https":"http";try{i[mb]=((e,t,r)=>{let i=`${e}://${t}${r}`;if(mn.test(t)){if(0===r.length)return i+"/";if(47!==r.charCodeAt(0))throw new u4("Invalid URL");return!mi.test(r)||mo.test(r)?new URL(i).href:i}{let e=new URL(i);if(e.hostname.length!==t.length&&e.hostname!==(t.includes(":")?t.replace(/:\d+$/,""):t).toLowerCase())throw new u4("Invalid host header");return e.href}})(r,n,o)}catch(e){if(e instanceof u4)throw e;throw new u4("Invalid URL",{cause:e})}return i})(i,t.hostname),(s=r&&"GET"!==i.method&&"HEAD"!==i.method)&&(i[md]=!0,i instanceof z&&(o[mZ]=()=>{i.readableEnded||setTimeout(()=>{i.readableEnded||setTimeout(()=>{i.destroy(),o.destroy()})})})),d=n=e(a,{incoming:i,outgoing:o}),"function"!=typeof d.then&&(e=>{if(!(mF in e))return!1;let t=e[mF][1];return null===t||"string"==typeof t||t instanceof Uint8Array})(n))return s&&!i.readableEnded&&o.once("finish",()=>{i.readableEnded||mX(i)}),m6(n,o);c()}catch(e){if(n)return m1(e,o);if(t.errorHandler){if(c(),!(n=await t.errorHandler(a||e instanceof u4?e:new u4(e.message,{cause:e}))))return}else n=a?mY(e):new Response(null,{status:400})}try{return await (async(e,t,r={})=>{if("function"==typeof e.then)if(r.errorHandler)try{e=await e}catch(i){let t=await r.errorHandler(i);if(!t)return;e=t}else e=await e.catch(mY);if(mF in e)return m6(e,t);let i=mJ(e.headers,null===e.body?void 0:mN);if(e.body){let r,o=e.body.getReader(),n=[],a=!1;if("chunked"!==i["transfer-encoding"]){let e=2;for(let t=0;tPromise.resolve(void 0))])})(r).catch(e=>{console.error(e),a=!0});if(!i){if(1===t){await new Promise(e=>setTimeout(e)),e=3;continue}break}if(r=void 0,i.value&&n.push(i.value),i.done){a=!0;break}}!a||"content-length"in i||(i["content-length"]=n.reduce((e,t)=>e+t.length,0))}t.writeHead(e.status,i),n.forEach(e=>{t.write(e)}),a?t.end():(0===n.length&&m0(t),await mB(o,t,r))}else i["x-hono-already-sent"]||(t.writeHead(e.status,i),t.end());t[mZ]?.()})(n,o,t)}catch(e){return m1(e,o)}}};globalThis.CloseEvent??Event,globalThis.ErrorEvent??Event,Symbol("CONNECTION_SYMBOL_KEY"),Symbol("WAIT_FOR_WEBSOCKET_SYMBOL");var m9=class{_webStandardTransport;_requestListener;_requestContext=new WeakMap;constructor(e={}){this._webStandardTransport=new u1(e),this._requestListener=m3(async e=>{let t=this._requestContext.get(e);return this._webStandardTransport.handleRequest(e,{authInfo:t?.authInfo,parsedBody:t?.parsedBody})},{overrideGlobalObjects:!1})}get sessionId(){return this._webStandardTransport.sessionId}set onclose(e){this._webStandardTransport.onclose=e}get onclose(){return this._webStandardTransport.onclose}set onerror(e){this._webStandardTransport.onerror=e}get onerror(){return this._webStandardTransport.onerror}set onmessage(e){this._webStandardTransport.onmessage=e}get onmessage(){return this._webStandardTransport.onmessage}async start(){return this._webStandardTransport.start()}async close(){return this._webStandardTransport.close()}async send(e,t){return this._webStandardTransport.send(e,t)}setSupportedProtocolVersions(e){this._webStandardTransport.setSupportedProtocolVersions(e)}setScopeChallengeResolver(e){this._webStandardTransport.setScopeChallengeResolver(e)}async handleRequest(e,t,r){let i=e.auth;await m3(async e=>this._webStandardTransport.handleRequest(e,{authInfo:i,parsedBody:r}),{overrideGlobalObjects:!1})(e,t)}closeSSEStream(e){this._webStandardTransport.closeSSEStream(e)}closeStandaloneSSEStream(){this._webStandardTransport.closeStandaloneSSEStream()}};function m5(e=process.env){let t=e.TRACEDECAY_DATA_DIR;if(void 0!==t&&t.length>0)return E.resolve(t);let r="win32"===process.platform?e.USERPROFILE:e.HOME,i=void 0!==r&&r.length>0?r:U.homedir();return E.join(i,".tracedecay")}let m8=o7().min(1),m7=nz({pid:nP().int().nonnegative(),process_run_id:o7(),started_at_unix_secs:nP().int(),epoch:nP().int().nonnegative(),version:o7(),endpoint:nE(),http_application_endpoint:m8.nullable().optional(),auth_token:o7().min(1),profile_root:o7().min(1)});function fe(e){let t=e.http_application_endpoint;return null==t?null:`http://${t}`}function ft(e){let t=JSON.stringify(function e(t){return Array.isArray(t)?t.map(e):"object"==typeof t&&null!==t?Object.fromEntries(Object.entries(t).sort(([e],[t])=>et)).map(([t,r])=>[t,e(r)])):t}(e));if(void 0===t)throw TypeError("value is not canonical JSON");return t}function fr(e,t){if("object"!=typeof e||null===e||Array.isArray(e))throw TypeError(`malformed canonical schema: ${t} must be an object`);return e}function fi(e,t){switch(t){case"null":return null===e;case"boolean":return"boolean"==typeof e;case"integer":return"number"==typeof e&&Number.isSafeInteger(e);case"number":return"number"==typeof e&&Number.isFinite(e);case"string":return"string"==typeof e;case"array":return Array.isArray(e);case"object":return"object"==typeof e&&null!==e&&!Array.isArray(e);default:throw TypeError(`unsupported canonical schema type: ${t}`)}}function fo(e,t){if("object"!=typeof e||null===e||Array.isArray(e))throw TypeError(`malformed canonical envelope: ${t} must be an object`);return e}function fn(e,t){if("string"!=typeof e)throw TypeError(`malformed canonical envelope: ${t} must be a string`);return e}function fa(e,t){if("number"!=typeof e||!Number.isFinite(e))throw TypeError(`malformed canonical envelope: ${t} must be a finite number`);return e}function fs(e,t){if(!Array.isArray(e))throw TypeError(`malformed canonical envelope: ${t} must be an array`);return e}function fd(e,t){let r=fa(e,t);if(!Number.isSafeInteger(r))throw TypeError(`malformed canonical envelope: ${t} must be a safe integer`);return r}function fc(e,t){let r=fd(e,t);if(r<0)throw TypeError(`malformed canonical envelope: ${t} must be non-negative`);return r}let fl=new TextEncoder;function fp(e,t,r){let i=fn(e,t);if(0===i.length||i.trim()!==i||fl.encode(i).byteLength>r||/\p{Cc}/u.test(i))throw TypeError(`malformed canonical envelope: ${t} is not a bounded identifier`);return i}function fu(e,t,r,i,o,n,a,s,d){let c=fo(e,"success envelope");if(fn(c.binding_id,"binding_id")!==t)throw TypeError("malformed canonical envelope: binding mismatch");let l=fo(c.contract,"contract");if(fn(l.schema_id,"contract.schema_id")!==r||fa(l.schema_revision,"contract.schema_revision")!==i)throw TypeError("malformed canonical envelope: result contract mismatch");fn(c.request_id,"request_id"),fo(c.scope,"scope");let p=fo(c.outcome,"outcome"),u=fn(p.outcome,"outcome.outcome");return{...c,outcome:{...p,outcome:u,value:function(e,t,r,i,o,n,a){let s=fo(t,"outcome.value");if(!("payload"in s))throw TypeError("malformed canonical envelope: outcome.value.payload is required");if(("durable_effect"!==o||"required"!==n||"effect"!==e)&&("operation"!==o||"not_required"!==n||"evidence"!==e&&"preview"!==e))throw TypeError(`malformed canonical envelope: outcome ${e} is outside the operation receipt contract`);if(!function(e,t,r){let i=fo(e,"outcome.value.execution");if(fa(i.started_at,"execution.started_at"),fa(i.ended_at,"execution.ended_at"),!("effective_deadline"in i)||!("cancellation"in i))throw TypeError("malformed canonical envelope: receipt fields are required");let o=fo(i.budget,"execution.budget");fa(o.units_consumed,"budget.units_consumed"),fa(o.bytes_consumed,"budget.bytes_consumed"),fa(o.elapsed_micros,"budget.elapsed_micros");let n=fn(i.termination,"execution.termination");if(!t.includes(n))throw TypeError(`malformed canonical envelope: termination ${n} is not legal for this operation`);if(("cancelled"===n||"timed_out"===n)&&null===i.cancellation)throw TypeError("malformed canonical envelope: terminal cancellation observation is required");if(null!==i.cancellation){let e=fo(r,"operation.cancellation"),t=fn(e.mode,"operation.cancellation.mode"),o=fo(i.cancellation,"execution.cancellation"),a=fn(o.stage,"execution.cancellation.stage");if(fd(o.observed_at,"execution.cancellation.observed_at"),!["before_admission","before_read","during_read","before_effect","effect_in_flight","reconciling","after_commit"].includes(a))throw TypeError(`malformed canonical envelope: unknown cancellation stage ${a}`);if("not_cancellable"===t){if("timed_out"!==n)throw TypeError("malformed canonical envelope: non-cancellable operation returned cancellation evidence")}else if(!fs(e.points,"operation.cancellation.points").includes(a))throw TypeError(`malformed canonical envelope: cancellation stage ${a} is not legal for this operation`)}}(s.execution,r,i),"evidence"===e)fo(s.temporal,"temporal"),fo(s.authority,"authority"),fs(s.evidence_authorities,"evidence_authorities"),fo(s.coverage,"coverage"),fs(s.omissions,"omissions"),fs(s.scores,"scores"),fs(s.contributions,"contributions"),function(e){let t=fo(e,"outcome.value.page");if(fp(t.sort_contract_id,"page.sort_contract_id",192),1>fc(t.sort_revision,"page.sort_revision"))throw TypeError("malformed canonical envelope: page sort_revision must be positive");let r=null===t.total?null:fc(t.total,"page.total"),i=fc(t.returned,"page.returned");if(null!==r&&i>r)throw TypeError("malformed canonical envelope: page returned exceeds total");null!==t.cursor&&function(e){let t=fo(e,"page.cursor"),r=fn(t.kind,"page.cursor.kind");if("opaque"===r)fp(t.cursor,"page.cursor.cursor",4096);else throw TypeError(`malformed canonical envelope: unsupported page cursor kind ${r}`)}(t.cursor),null!==t.expires_at&&fd(t.expires_at,"page.expires_at")}(s.page);else if("preview"===e)fn(s.preview_id,"preview_id"),fn(s.preview_digest,"preview_digest"),fn(s.effect_class,"effect_class"),fo(s.authority,"authority"),fn(s.expected_state,"expected_state");else if("effect"===e)fn(s.effect_id,"effect_id"),fn(s.effect_class,"effect_class"),fn(s.idempotency_key,"idempotency_key"),fo(s.authority,"authority"),fn(s.expected_state,"expected_state"),fn(s.reconciliation,"reconciliation"),fo(s.receipt,"receipt");else throw TypeError(`malformed canonical envelope: unsupported outcome ${e}`);return{...s,payload:null===s.payload?null:a(s.payload)}}(u,p.value,o,n,a,s,d)}}}function fm(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}function ff(e){return"number"==typeof e&&Number.isSafeInteger(e)&&e>=0}function fh(e){return"number"==typeof e&&Number.isSafeInteger(e)}function fy(e,t){return"string"==typeof e&&e.length>0&&e.trim()===e&&fl.encode(e).byteLength<=t&&!/\p{Cc}/u.test(e)}async function fg(e){let t=await crypto.subtle.digest("SHA-256",fl.encode(ft(e)));return`sha256:${Array.from(new Uint8Array(t),e=>e.toString(16).padStart(2,"0")).join("")}`}function f_(e){return fm(e)&&"string"==typeof e.code&&"string"==typeof e.message}let fv={description:"Strongly typed algorithm-tagged integrity digest: `AccessPolicyDigest`.",type:"string"},fb={description:"Strongly typed canonical identity: `AccessRuleId`.",type:"string"},f$={description:"Strongly typed canonical identity: `ActorId`.",type:"string"},fS={description:"Strongly typed canonical identity: `AgentInstanceId`.",type:"string"},fk={enum:["memory_curator","session_reflector","skill_writer","combined_review","user_job"],type:"string"},fw={properties:{coverage:{$ref:"#/$defs/MetricCoverageV1"},current:{anyOf:[{$ref:"#/$defs/AnalyticsModeV1"},{type:"null"}]},transition_watermark:{type:["string","null"]},unavailable_reason:{type:["string","null"]}},required:["coverage"],type:"object"},fP={enum:["off","local_only","aggregate_share"],type:"string"},fV={oneOf:[{const:"project",description:"Analytics events of the resolved project.",type:"string"},{const:"all",description:"Analytics events of every registered project.",type:"string"}]},fR={description:"Strongly typed canonical identity: `AnalyzerEnvironmentVariable`.",type:"string"},fq={description:"Strongly typed canonical identity: `AnalyzerExecutableId`.",type:"string"},fI={oneOf:[{properties:{executable_id:{$ref:"#/$defs/AnalyzerExecutableId"},kind:{const:"built_in",type:"string"}},required:["kind","executable_id"],type:"object"},{properties:{executable_digest:{$ref:"#/$defs/ManifestDigest"},kind:{const:"approved_external",type:"string"}},required:["kind","executable_digest"],type:"object"}]},fx={description:"Strongly typed canonical identity: `AnalyzerLanguageId`.",type:"string"},fj={additionalProperties:!1,description:"One language's analyzer selection. Host registration may project only the\nnon-sensitive `language_id`/`enabled` pair; all other fields remain in the\nconfiguration authority.",properties:{arguments:{items:{type:"string"},type:"array"},enabled:{type:"boolean"},environment_allowlist:{items:{$ref:"#/$defs/AnalyzerEnvironmentVariable"},type:"array",uniqueItems:!0},executable:{$ref:"#/$defs/AnalyzerExecutableReferenceV1"},initialization_options:{additionalProperties:{$ref:"#/$defs/AnalyzerStructuredValueV1"},type:"object"},language_id:{$ref:"#/$defs/AnalyzerLanguageId"},privacy_class:{$ref:"#/$defs/AnalyzerPrivacyClassV1"},resource_limits:{$ref:"#/$defs/AnalyzerResourceLimitsV1"},restart_policy:{$ref:"#/$defs/AnalyzerRestartPolicyV1"},settings:{additionalProperties:{$ref:"#/$defs/AnalyzerStructuredValueV1"},type:"object"}},required:["language_id","enabled","executable","arguments","initialization_options","settings","environment_allowlist","privacy_class","resource_limits","restart_policy"],type:"object"},fC={enum:["non_sensitive","sensitive","restricted"],type:"string"},fT={additionalProperties:!1,properties:{maximum_memory_mib:{format:"uint32",minimum:0,type:"integer"},request_timeout_millis:{format:"uint64",minimum:0,type:"integer"},startup_timeout_millis:{format:"uint64",minimum:0,type:"integer"}},required:["maximum_memory_mib","startup_timeout_millis","request_timeout_millis"],type:"object"},fO={enum:["restart_on_configuration_change","manual_restart_only"],type:"string"},fE={additionalProperties:!1,description:"Canonical analyzer settings. A changed selection produces a new\nconfiguration revision/digest; cache invalidation remains owned elsewhere.",properties:{schema_version:{format:"uint16",maximum:65535,minimum:0,type:"integer"},selections:{items:{$ref:"#/$defs/AnalyzerLanguageSelectionV1"},type:"array"}},required:["schema_version","selections"],type:"object"},fA={description:"A structured analyzer option value. This deliberately excludes raw\nenvironment values, commands, credential material, and transport blobs.",oneOf:[{properties:{kind:{const:"boolean",type:"string"},value:{type:"boolean"}},required:["kind","value"],type:"object"},{properties:{kind:{const:"integer",type:"string"},value:{format:"int64",type:"integer"}},required:["kind","value"],type:"object"},{properties:{kind:{const:"text",type:"string"},value:{type:"string"}},required:["kind","value"],type:"object"},{properties:{kind:{const:"text_list",type:"string"},value:{items:{type:"string"},type:"array"}},required:["kind","value"],type:"object"},{properties:{kind:{const:"object",type:"string"},value:{additionalProperties:{$ref:"#/$defs/AnalyzerStructuredValueV1"},type:"object"}},required:["kind","value"],type:"object"}]},fW={description:"The structured facts behind a problem. Adapters read these fields; the\nproblem's `message` is only their one human rendering.",oneOf:[{additionalProperties:!1,description:"The worktree's code index is parked until the operator applies\n`remedy`; repeating the request cannot change the answer.",properties:{cause:{type:"string"},kind:{const:"parked",type:"string"},remedy:{type:"string"},retries_on_wake:{type:"boolean"}},required:["kind","cause","remedy","retries_on_wake"],type:"object"},{additionalProperties:!1,description:"A session refresh asked to begin from a source frontier the\ncommitted projection has already passed.",properties:{active:{format:"uint64",minimum:0,type:"integer"},committed:{format:"uint64",minimum:0,type:"integer"},kind:{const:"stale_refresh_frontier",type:"string"},requested:{format:"uint64",minimum:0,type:"integer"}},required:["kind","requested","committed","active"],type:"object"},{additionalProperties:!1,description:"A compare-and-swap request named `requested` in `field`, but the\nauthority holds `current`. Resending with `current` is a new request.",properties:{current:{format:"uint64",minimum:0,type:"integer"},field:{type:"string"},kind:{const:"stale_precondition",type:"string"},requested:{format:"uint64",minimum:0,type:"integer"}},required:["kind","field","requested","current"],type:"object"},{additionalProperties:!1,description:"A workflow step effect named placement digest `found`, but the step's\ncurrent placement is `expected`: the effect was settled against a\nplacement the run has since replaced.",properties:{expected:{type:"string"},found:{type:"string"},kind:{const:"workflow_placement_digest_stale",type:"string"}},required:["kind","expected","found"],type:"object"},{additionalProperties:!1,description:"A writer lock stayed held by other writers past its admission\ndeadline.",properties:{deadline_ms:{format:"uint64",minimum:0,type:"integer"},kind:{const:"lock_deadline",type:"string"},resource:{type:"string"}},required:["kind","resource","deadline_ms"],type:"object"},{additionalProperties:!1,description:"A persisted store whose shape this binary does not open. It is served\nin this typed state until the operator runs `remedy`, which deletes\nthe old data; nothing is migrated or backed up.",properties:{authority:{type:"string"},found_version:{format:"int64",type:["integer","null"]},kind:{const:"reset_required",type:"string"},reason:{type:"string"},remedy:{type:"string"},required_version:{format:"int64",type:["integer","null"]}},required:["kind","authority","reason","remedy"],type:"object"},{additionalProperties:!1,description:"No compiler runs automatically for the diagnostics scope: no tsconfig\nowns `file`, or, for a workspace read (`file` null), none exists under\nthe project root. `searched` lists the owner search's candidates,\nnearest first; it is empty for a workspace read or a file outside the\nproject root.",properties:{file:{type:["string","null"]},kind:{const:"diagnostics_unsupported",type:"string"},searched:{items:{$ref:"#/$defs/DiagnosticsSearchedTsconfigV1"},type:"array"}},required:["kind","searched"],type:"object"},{additionalProperties:!1,description:"The TypeScript `producer` has not published diagnostics for the\ncurrent code generation yet. `generation` is the last generation it\npublished, null when it has published none.",properties:{generation:{type:["string","null"]},kind:{const:"diagnostics_pending",type:"string"},producer:{type:"string"}},required:["kind","producer"],type:"object"},{additionalProperties:!1,description:"The code graph's engine or catalog was released for memory and was\nstill warming again when the read's budget ran out;\n`retry_after_millis` is the measured warm-up it still needs.",properties:{kind:{const:"code_graph_rewarming",type:"string"},retry_after_millis:{format:"uint64",minimum:0,type:"integer"}},required:["kind","retry_after_millis"],type:"object"},{additionalProperties:!1,description:"No TraceDecay daemon accepts connections on `socket`. `named_by` is\nthe environment variable that chose the socket, when one did;\n`service_unit` is what this client observed of the managed service.",properties:{kind:{const:"daemon_unreachable",type:"string"},named_by:{type:["string","null"]},service_unit:{$ref:"#/$defs/DaemonServiceUnitObservationV1"},socket:{type:"string"}},required:["kind","socket","service_unit"],type:"object"}]},fM={description:"Strongly typed canonical identity: `AttemptId`.",type:"string"},fN={description:"Authoritative scope of a source binding. A mutable path, label, or host\nprofile cannot be represented as authority.",oneOf:[{properties:{id:{$ref:"#/$defs/ProjectId"},kind:{const:"project",type:"string"}},required:["kind","id"],type:"object"},{properties:{id:{$ref:"#/$defs/UserProfileId"},kind:{const:"projectless_hermes",type:"string"}},required:["kind","id"],type:"object"}]},fz={additionalProperties:!1,description:"One exact application scope paired with its registered physical locator.\n\nThe scope remains the identity authority. The locator is retained only so\na later read or restart can reopen the exact registered root without an\nactive-graph or CWD fallback.",properties:{locator:{anyOf:[{$ref:"#/$defs/RegisteredRootLocatorV1"},{type:"null"}]},scope:{$ref:"#/$defs/ResolvedScope"}},required:["scope"],type:"object"},fD={additionalProperties:!1,description:"Immutable canonical set of exact roots admitted by their existing request\ncontexts. A registered locator participates only as frozen reopening\nevidence; its paired [`ResolvedScope`](crate::context::ResolvedScope) remains\nthe root identity authority.",properties:{actor_id:{$ref:"#/$defs/ActorId"},digest:{$ref:"#/$defs/ManifestDigest"},revision:{$ref:"#/$defs/ScopeSetRevision"},roots:{items:{$ref:"#/$defs/AuthorizedRoot"},type:"array"},scope_set_id:{$ref:"#/$defs/ScopeSetId"}},required:["scope_set_id","revision","actor_id","roots","digest"],type:"object"},fF={description:"A terminal automatic-fact receipt state.",enum:["applied","quarantined"],type:"string"},fL={oneOf:[{properties:{kind:{const:"disabled",type:"string"}},required:["kind"],type:"object"},{properties:{kind:{const:"eligible_only",type:"string"},maximum_per_run:{format:"uint16",maximum:65535,minimum:1,type:"integer"},minimum_idle_seconds:{format:"uint64",minimum:1,type:"integer"}},required:["kind","minimum_idle_seconds","maximum_per_run"],type:"object"}]},fU={enum:["disabled","codex_app_server"],type:"string"},fH={enum:["standalone","delegated_host"],type:"string"},fG={description:"The settled status every successful read in this family reports.",enum:["ok"],type:"string"},fB={description:"Which owner's automation schedulers a reconcile covers.",oneOf:[{const:"project",description:"The served project's scheduler, answered by the project's owner.",type:"string"},{const:"profile",description:"Every cached project scheduler of the profile, answered by the\ndaemon's profile owner.",type:"string"}]},fK={properties:{created_at:{type:"string"},kind:{type:"string"},path:{type:"string"},schema_version:{format:"uint32",minimum:0,type:"integer"},sha256:{type:"string"},summary:{type:["string","null"]}},required:["schema_version","kind","path","sha256","created_at"],type:"object"},fJ={description:"Automation run reads answer from the active project's ledger only.",enum:["active_project"],type:"string"},fZ={enum:["queued","running","succeeded","failed","skipped"],type:"string"},fQ={additionalProperties:!1,properties:{allow_job_commands:{type:"boolean"},backend:{$ref:"#/$defs/AutomationBackendV1"},combine_due_tasks:{type:"boolean"},enabled:{type:"boolean"},host_mode:{$ref:"#/$defs/AutomationHostModeV1"},model_id:{type:["string","null"]},scheduler_tick_secs:{format:"uint64",minimum:0,type:"integer"},schema_version:{format:"uint16",maximum:65535,minimum:0,type:"integer"},tasks:{$ref:"#/$defs/AutomationTaskSetV1"},timeout_secs:{format:"uint64",minimum:0,type:"integer"}},required:["schema_version","enabled","backend","host_mode","timeout_secs","scheduler_tick_secs","combine_due_tasks","allow_job_commands","tasks"],type:"object"},fX={additionalProperties:!1,properties:{memory_curator:{$ref:"#/$defs/AutomationTaskSettingsV1"},session_reflector:{$ref:"#/$defs/AutomationTaskSettingsV1"},skill_writer:{$ref:"#/$defs/AutomationTaskSettingsV1"}},required:["memory_curator","session_reflector","skill_writer"],type:"object"},fY={additionalProperties:!1,properties:{cooldown_secs:{format:"uint64",minimum:0,type:["integer","null"]},enabled:{type:"boolean"},interval_secs:{format:"uint64",minimum:0,type:["integer","null"]},min_idle_secs:{format:"uint64",minimum:0,type:["integer","null"]},schedule:{type:["string","null"]},session_evidence_budget_backoff_secs:{description:"Suppression window between session-evidence retrieval attempts while\nthe evidence budget stays exhausted. Unset uses the automation crate's\none-hour default. Distinct from `cooldown_secs`, which paces retries\nafter failed runs; budget exhaustion is a skip, not a failure.",format:"uint64",minimum:0,type:["integer","null"]}},required:["enabled"],type:"object"},f1={enum:["manual_cli","manual_mcp","dashboard","application","scheduler","host_receipt"],type:"string"},f0={description:"Strongly typed canonical identity: `BrainId`.",type:"string"},f2={oneOf:[{properties:{kind:{const:"reject",type:"string"}},required:["kind"],type:"object"},{properties:{kind:{const:"append_monotonic_ordinal",type:"string"},maximum_attempts:{format:"uint16",maximum:65535,minimum:1,type:"integer"}},required:["kind","maximum_attempts"],type:"object"}]},f4={oneOf:[{properties:{bytes:{format:"uint8",maximum:255,minimum:1,type:"integer"},kind:{const:"task_id_digest_prefix",type:"string"}},required:["kind","bytes"],type:"object"},{properties:{kind:{const:"repository_slug",type:"string"}},required:["kind"],type:"object"},{properties:{kind:{const:"work_class",type:"string"}},required:["kind"],type:"object"},{properties:{kind:{const:"monotonic_collision_ordinal",type:"string"}},required:["kind"],type:"object"}]},f6={enum:["hyphen","underscore","slash"],type:"string"},f3={additionalProperties:!1,properties:{collision:{$ref:"#/$defs/BranchCollisionPolicyV1"},components:{items:{$ref:"#/$defs/BranchNameComponentV1"},type:"array"},maximum_bytes:{format:"uint16",maximum:65535,minimum:1,type:"integer"},prefix:{$ref:"#/$defs/CanonicalGitRefPrefix"},separator:{$ref:"#/$defs/BranchNameSeparatorV1"}},required:["prefix","components","separator","maximum_bytes","collision"],type:"object"},f9={additionalProperties:!1,description:"A declared dependency edge; propagation direction remains an application\ndecision and is never inferred from this edge.",properties:{dependency:{$ref:"#/$defs/StackNodeId"},dependent:{$ref:"#/$defs/StackNodeId"}},required:["dependency","dependent"],type:"object"},f5={description:"Strongly typed canonical identity: `BranchStackId`.",type:"string"},f8={additionalProperties:!1,description:"One visible branch/ref at one immutable tip.",properties:{node_id:{$ref:"#/$defs/StackNodeId"},project_id:{$ref:"#/$defs/ProjectId"},reference:{$ref:"#/$defs/RefId"},repository_id:{$ref:"#/$defs/RepositoryId"},tip:{$ref:"#/$defs/CommitId"},worktree_id:{anyOf:[{$ref:"#/$defs/WorktreeId"},{type:"null"}]}},required:["node_id","project_id","repository_id","reference","tip"],type:"object"},f7={description:"Strongly typed canonical identity: `BranchStackRevisionId`.",type:"string"},he={additionalProperties:!1,description:"Immutable branch-stack projection at one exact inventory revision.",properties:{canonical_order:{items:{$ref:"#/$defs/StackNodeId"},type:"array"},digest:{$ref:"#/$defs/ManifestDigest"},edges:{items:{$ref:"#/$defs/BranchStackEdgeV1"},type:"array"},inventory_epoch:{$ref:"#/$defs/WorktreeInventoryEpoch"},inventory_snapshot_id:{$ref:"#/$defs/WorktreeInventorySnapshotId"},nodes:{items:{$ref:"#/$defs/BranchStackNodeV1"},type:"array"},revision_id:{$ref:"#/$defs/BranchStackRevisionId"},source:{$ref:"#/$defs/BranchStackSourceV1"},stack_id:{$ref:"#/$defs/BranchStackId"}},required:["stack_id","revision_id","inventory_snapshot_id","inventory_epoch","source","nodes","edges","canonical_order","digest"],type:"object"},ht={description:"Authoritative source that declared the exact stack topology.",enum:["explicit_declaration","accepted_task_branch_topology"],type:"string"},hr={enum:["no_branches","unbranched","independent_branches","local_stack"],type:"string"},hi={additionalProperties:!1,properties:{allowed:{items:{$ref:"#/$defs/BranchTopologyKindV1"},type:"array",uniqueItems:!0}},required:["allowed"],type:"object"},ho={description:"Strongly typed canonical identity: `CalibrationProfileId`.",type:"string"},hn={additionalProperties:!1,description:"Surface-owned query semantics. Page size remains an invocation control, but\ncontinuation is a request field so CLI, MCP, and HTTP callers all have the\nsame channel for spending a `next_cursor`.",properties:{cursor:{default:null,type:["string","null"]},order:{$ref:"#/$defs/RetrievalOrder"},projection:{$ref:"#/$defs/ResultProjection"}},required:["projection","order"],type:"object"},ha={additionalProperties:!1,properties:{observed_at:{$ref:"#/$defs/UtcMicros"},stage:{$ref:"#/$defs/CancellationStage"}},required:["stage","observed_at"],type:"object"},hs={description:"Exact stage at which cancellation or deadline state was observed.",enum:["before_admission","before_read","during_read","before_effect","effect_in_flight","reconciling","after_commit"],type:"string"},hd={additionalProperties:!1,description:"One retriever's scored contribution to a fused candidate. Every ranked\ncandidate retains every retriever's raw score domain, ordinal rank,\ncalibrated feature, weight, and weighted contribution.",properties:{calibrated_feature_micros:{format:"uint32",minimum:0,type:"integer"},calibration_profile_id:{$ref:"#/$defs/CalibrationProfileId"},ordinal_rank:{format:"uint32",minimum:0,type:"integer"},raw_score:{$ref:"#/$defs/FixedPointScore"},retriever:{$ref:"#/$defs/RetrieverKind"},retriever_revision:{$ref:"#/$defs/ComponentRevision"},score_domain:{$ref:"#/$defs/ScoreDomainId"},source_occurrence_id:{$ref:"#/$defs/SourceOccurrenceId"},weight_micros:{format:"uint32",minimum:0,type:"integer"},weighted_contribution_micros:{format:"uint64",minimum:0,type:"integer"}},required:["retriever","retriever_revision","source_occurrence_id","ordinal_rank","raw_score","score_domain","calibration_profile_id","calibrated_feature_micros","weight_micros","weighted_contribution_micros"],type:"object"},hc={description:"A validated full native Git ref name, such as `refs/heads/main`.",type:"string"},hl={description:"A validated ref/branch prefix. Branch naming accepts a short branch prefix\n(for example `tracedecay/`) while protected-ref selectors use full\n`refs/.../` prefixes.",type:"string"},hp={description:"Strongly typed canonical identity: `CapabilityId`.",type:"string"},hu={description:"Strongly typed canonical identity: `CatalogGenerationId`.",type:"string"},hm={description:"Strongly typed canonical identity: `ChangePlanId`.",type:"string"},hf={additionalProperties:!1,properties:{from_inclusive:{format:"int64",type:["integer","null"]},through_inclusive:{format:"int64",type:["integer","null"]}},type:"object"},hh={additionalProperties:!1,description:'Why co-change mining produced no answer, so an empty\n`missing_co_change_partners` does not read as "no partner is missing".',properties:{reason:{type:"string"},retryable:{type:"boolean"}},required:["reason","retryable"],type:"object"},hy={enum:["kind","language","path"],type:"string"},hg={description:"Strongly typed canonical identity: `CodeGenerationId`.",type:"string"},h_={description:"Freshness of the generation a verified graph read serves.",oneOf:[{properties:{state:{const:"current",type:"string"}},required:["state"],type:"object"},{properties:{rebuild_in_flight:{type:"boolean"},sealed_at:{$ref:"#/$defs/UtcMicros"},state:{const:"last_complete_stale",type:"string"}},required:["state","sealed_at","rebuild_in_flight"],type:"object"}]},hv={description:"A typed reason an otherwise active generation cannot make durable progress.",enum:["resident_memory","source_unavailable","artifact_store_unavailable","retry_backoff","publication_authority_corrupt"],type:"string"},hb={description:'A deterministic contract violation that parked background convergence.\n\nParked is not dead: the worker keeps re-observing the violation on its\nordinary wake cadence, so an operator fix (for example restoring an\nowner-private mode) is picked up on the next wake without a restart. The\nstate exists so `status`, doctor, and the dashboard report the violation\ntyped instead of an indefinite "warming".',properties:{blocked_reason:{anyOf:[{$ref:"#/$defs/CodeIndexBuildBlockedReasonV1"},{type:"null"}],description:"Stable class for callers that must decide whether new work is admissible."},observed_passes:{description:"Background passes that re-observed the violation since parking.",format:"uint64",minimum:0,type:"integer"},parked_at_micros:{description:"When the violation was first observed (microseconds since the Unix epoch).",format:"int64",type:"integer"},reason:{description:"Exact typed failure that parked convergence.",type:"string"},remediation:{description:"Operator action that clears the violation.",type:"string"},retries_on_wake:{description:"Whether the worker re-checks this violation on every ordinary wake.\nTrue for filesystem/contract violations an operator fix clears in\nplace; false for an abnormal task failure that only changed input (a\nnew sealed generation) retries.",type:"boolean"}},required:["reason","remediation","parked_at_micros","observed_passes","retries_on_wake"],type:"object"},h$={properties:{display_path:{description:"`git_path_bytes` decoded for display, invalid UTF-8 replaced.",type:"string"},git_path_bytes:{description:"The exact Git path bytes, which need not be UTF-8.",items:{format:"uint8",maximum:255,minimum:0,type:"integer"},type:"array"},reason:{$ref:"#/$defs/CodeIndexSourceOmissionReasonV1"}},required:["git_path_bytes","display_path","reason"],type:"object"},hS={description:"Sources a sealed snapshot captured but does not index.",properties:{count:{description:"Every omitted source in the snapshot.",format:"uint64",minimum:0,type:"integer"},sources:{description:"The first omitted sources in Git path order, at most\n[`CODE_INDEX_OMITTED_SOURCE_LIST_LIMIT`].",items:{$ref:"#/$defs/CodeIndexOmittedSourceV1"},type:"array"}},required:["count","sources"],type:"object"},hk={oneOf:[{description:"No logical path can carry the Git path: not UTF-8, a backslash, a\ncontrol character, or leading or trailing whitespace.",properties:{kind:{const:"unrepresentable_path",type:"string"}},required:["kind"],type:"object"},{description:"The privacy boundary withheld the file's bytes.",properties:{detail:{type:"string"},kind:{const:"privacy_withheld",type:"string"}},required:["kind","detail"],type:"object"}]},hw={description:"Closed staleness ladder for one mounted worktree.\n\nThe scheduler publishes one of these tokens. MCP, the dashboard, and the\nCLI must match the variant, not a hand-copied string, so a new ladder\nstate cannot appear at one caller and be missed at the others.",enum:["fresh","stale","indexing","refreshing","restoring","verifying","parked"],type:"string"},hP={description:"Profile-level worker-count intent for the process-wide code-index pool.\n`Automatic` delegates the concrete count to runtime resource admission;\n`Exact` persists an operator-requested positive worker count.",oneOf:[{additionalProperties:!1,properties:{mode:{const:"automatic",type:"string"}},required:["mode"],type:"object"},{additionalProperties:!1,properties:{mode:{const:"exact",type:"string"},workers:{format:"uint16",maximum:65535,minimum:0,type:"integer"}},required:["mode","workers"],type:"object"}]},hV={additionalProperties:!1,properties:{chunk:{anyOf:[{$ref:"#/$defs/CodeSearchChunkId"},{type:"null"}]},file:{$ref:"#/$defs/FileOccurrenceId"},path:{type:"string"},span:{$ref:"#/$defs/SourceSpan"},symbol:{anyOf:[{$ref:"#/$defs/SymbolOccurrenceId"},{type:"null"}]}},required:["file","path","span"],type:"object"},hR={additionalProperties:!1,description:"One immutable code-index generation inside the authorized single root.\nThe path prefix narrows a query but never establishes project identity.",properties:{generation:{$ref:"#/$defs/CodeGenerationId"},path_prefix:{type:["string","null"]}},required:["generation"],type:"object"},hq={description:"Strongly typed canonical identity: `CodeSearchChunkId`.",type:"string"},hI={description:"Strongly typed canonical identity: `CommitId`.",type:"string"},hx={enum:["promote","reject","insufficient_evidence"],type:"string"},hj={description:"Whether the bounded complexity walk over a symbol's body ran to the end.\n\nThe extractor stops walking a body once its traversal budget is spent. The\ncounters accumulated by then are lower bounds over the visited prefix, not\nfacts about the whole body, so every surface that prints, ranks, or\naggregates complexity must render this state instead of treating those\ncounters as exact.",oneOf:[{enum:["complete"],type:"string"},{const:"traversal_budget_exhausted",description:"The walk stopped when the traversal budget ran out.",type:"string"}]},hC={description:"Strongly typed canonical identity: `ComponentRevision`.",type:"string"},hT={description:"Strongly typed canonical identity: `ComponentVersion`.",type:"string"},hO={enum:["config_summary"],type:"string"},hE={additionalProperties:!1,description:"One entry per changed config file instead of one per config key.",properties:{config_keys:{format:"uint",minimum:0,type:"integer"},file:{type:"string"},kind:{$ref:"#/$defs/ConfigSummaryKindV1"}},required:["file","kind","config_keys"],type:"object"},hA={description:"Strongly typed canonical identity: `ConfigurationIdempotencyKey`.",type:"string"},hW={description:"A typed configuration layer identity. The default layer intentionally has\nno caller-controlled identifier.",oneOf:[{properties:{kind:{const:"default",type:"string"}},required:["kind"],type:"object"},{properties:{kind:{const:"user_profile",type:"string"},profile_id:{$ref:"#/$defs/UserProfileId"}},required:["kind","profile_id"],type:"object"},{properties:{kind:{const:"project",type:"string"},project_id:{$ref:"#/$defs/ProjectId"}},required:["kind","project_id"],type:"object"},{properties:{collection_id:{$ref:"#/$defs/QueryCollectionId"},kind:{const:"collection",type:"string"}},required:["kind","collection_id"],type:"object"}]},hM={description:"Strongly typed canonical identity: `ConfigurationReceiptId`.",type:"string"},hN={description:"Strongly typed canonical identity: `ConfigurationRevisionId`.",type:"string"},hz={description:"Strongly typed canonical identity: `ConfigurationSnapshotId`.",type:"string"},hD={description:"Values that the typed registry can accept.",oneOf:[{properties:{kind:{const:"boolean",type:"string"},value:{type:"boolean"}},required:["kind","value"],type:"object"},{properties:{kind:{const:"unsigned",type:"string"},value:{format:"uint64",minimum:0,type:"integer"}},required:["kind","value"],type:"object"},{properties:{kind:{const:"code_index_worker_selection",type:"string"},value:{$ref:"#/$defs/CodeIndexWorkerSelectionV1"}},required:["kind","value"],type:"object"},{properties:{kind:{const:"text",type:"string"},value:{type:"string"}},required:["kind","value"],type:"object"},{properties:{kind:{const:"string_list",type:"string"},value:{items:{type:"string"},type:"array"}},required:["kind","value"],type:"object"},{properties:{kind:{const:"source_bindings",type:"string"},value:{items:{$ref:"#/$defs/ScopeSourceBinding"},type:"array"}},required:["kind","value"],type:"object"},{properties:{kind:{const:"access_rules",type:"string"},value:{items:{$ref:"#/$defs/ScopeAccessRule"},type:"array"}},required:["kind","value"],type:"object"},{properties:{kind:{const:"analyzer_settings",type:"string"},value:{$ref:"#/$defs/AnalyzerSettingsV1"}},required:["kind","value"],type:"object"},{properties:{kind:{const:"work_topology_policy",type:"string"},value:{$ref:"#/$defs/WorkTopologyPolicyV1"}},required:["kind","value"],type:"object"},{properties:{kind:{const:"work_executable_bindings",type:"string"},value:{items:{$ref:"#/$defs/WorkExecutableBindingV1"},type:"array"}},required:["kind","value"],type:"object"},{properties:{kind:{const:"work_expertise_consent",type:"string"},value:{$ref:"#/$defs/WorkExpertiseConsentV1"}},required:["kind","value"],type:"object"},{properties:{kind:{const:"context_scout_settings",type:"string"},value:{$ref:"#/$defs/ContextScoutSettingsV1"}},required:["kind","value"],type:"object"},{properties:{kind:{const:"automation_settings",type:"string"},value:{$ref:"#/$defs/AutomationSettingsV1"}},required:["kind","value"],type:"object"},{properties:{kind:{const:"lcm_summarizer_executables",type:"string"},value:{$ref:"#/$defs/LcmSummarizerExecutablesV1"}},required:["kind","value"],type:"object"}]},hF={description:"Strongly typed algorithm-tagged integrity digest: `ContentDigest`.",type:"string"},hL={description:"What one caller `lexical_anchors` entry contributed to the response, in\ncaller order.",oneOf:[{additionalProperties:!1,description:"`matched` indexed rows carried the anchor; `admitted` result sites\ncarrying it are in this response, and `dropped` counts the sites the\nlexical lane admitted that a later stage removed, by reason.",properties:{admitted:{format:"uint64",minimum:0,type:"integer"},anchor:{type:"string"},dropped:{items:{$ref:"#/$defs/LexicalAnchorDropV1"},type:"array"},matched:{format:"uint64",minimum:0,type:"integer"},outcome:{const:"matched",type:"string"}},required:["outcome","anchor","matched","admitted"],type:"object"},{additionalProperties:!1,description:"No indexed row carries the anchor.",properties:{anchor:{type:"string"},outcome:{const:"unmatched",type:"string"}},required:["outcome","anchor"],type:"object"},{additionalProperties:!1,description:"The anchor's route did not serve; `coverage` names the lane state.",properties:{anchor:{type:"string"},outcome:{const:"not_served",type:"string"}},required:["outcome","anchor"],type:"object"}]},hU={enum:["explore","plan"],type:"string"},hH={additionalProperties:!1,description:"Exact opaque destination for one public Context Scout operation.\n\nThe daemon converts this transport-neutral address into its runtime value\nonly after catalog admission. Keeping the public wire here makes CLI, MCP,\nHTTP, and both SDKs share one generated schema authority.",properties:{agent_id:{items:{format:"uint8",maximum:255,minimum:0,type:"integer"},maxItems:16,minItems:16,type:"array"},logical_message_id:{items:{format:"uint8",maximum:255,minimum:0,type:"integer"},maxItems:16,minItems:16,type:"array"},profile_id:{items:{format:"uint8",maximum:255,minimum:0,type:"integer"},maxItems:16,minItems:16,type:"array"},project_id:{items:{format:"uint8",maximum:255,minimum:0,type:"integer"},maxItems:16,minItems:16,type:"array"},protected_session_id:{items:{format:"uint8",maximum:255,minimum:0,type:"integer"},maxItems:32,minItems:32,type:"array"},provider_id:{items:{format:"uint8",maximum:255,minimum:0,type:"integer"},maxItems:16,minItems:16,type:"array"},thread_id:{items:{format:"uint8",maximum:255,minimum:0,type:"integer"},maxItems:16,minItems:16,type:"array"},turn_id:{items:{format:"uint8",maximum:255,minimum:0,type:"integer"},maxItems:16,minItems:16,type:"array"}},required:["profile_id","provider_id","protected_session_id","thread_id","turn_id","agent_id","logical_message_id","project_id"],type:"object"},hG={enum:["retrieval","diagnostic","coordination","verification"],type:"string"},hB={additionalProperties:!1,description:"Public lease proof. It carries only opaque identities; the daemon resolves\nit back to the durable queue row before recording delivery.",properties:{envelope_id:{items:{format:"uint8",maximum:255,minimum:0,type:"integer"},maxItems:16,minItems:16,type:"array"},lease_expires_at:{$ref:"#/$defs/UtcMicros"},lease_id:{items:{format:"uint8",maximum:255,minimum:0,type:"integer"},maxItems:16,minItems:16,type:"array"},work:{$ref:"#/$defs/ContextScoutWorkV1"}},required:["work","envelope_id","lease_id","lease_expires_at"],type:"object"},hK={additionalProperties:!1,properties:{max_candidates:{format:"uint32",minimum:0,type:"integer"},max_evidence:{format:"uint32",minimum:0,type:"integer"},max_model_input_tokens:{format:"uint32",minimum:0,type:"integer"},max_model_output_tokens:{format:"uint32",minimum:0,type:"integer"},max_text_bytes:{format:"uint32",minimum:0,type:"integer"}},required:["max_candidates","max_evidence","max_text_bytes","max_model_input_tokens","max_model_output_tokens"],type:"object"},hJ={enum:["deterministic","configured_model"],type:"string"},hZ={enum:["active","paused","disabled"],type:"string"},hQ={enum:["codex_app_server"],type:"string"},hX={enum:["attempted","delayed","displayed","expanded","explicitly_accepted","explicitly_rejected","dismissed","expired_unseen","corrected","unknown"],type:"string"},hY={additionalProperties:!1,properties:{delivered_at:{$ref:"#/$defs/UtcMicros"},envelope_id:{items:{format:"uint8",maximum:255,minimum:0,type:"integer"},maxItems:16,minItems:16,type:"array"},outcome:{$ref:"#/$defs/ContextScoutDeliveryOutcomeV1"},receipt_id:{items:{format:"uint8",maximum:255,minimum:0,type:"integer"},maxItems:16,minItems:16,type:"array"}},required:["receipt_id","envelope_id","delivered_at","outcome"],type:"object"},h1={enum:["immediate","next_boundary","idle_window","on_request","suppressed"],type:"string"},h0={enum:["complete","partial","stale","cancelled","unavailable"],type:"string"},h2={additionalProperties:!1,properties:{anchor_ids:{items:{$ref:"#/$defs/RetrievalAnchorId"},type:"array"},availability:{$ref:"#/$defs/ContextScoutEvidenceAvailabilityV1"},claim_digest:{$ref:"#/$defs/ManifestDigest"},content_generation:{$ref:"#/$defs/CodeGenerationId"},session_window:{anyOf:[{$ref:"#/$defs/ContextScoutSessionWindowV1"},{type:"null"}],description:"Session turns a session-evidence suggestion was judged from. Absent for\ncode evidence."}},required:["content_generation","availability","anchor_ids","claim_digest"],type:"object"},h4={enum:["explicitly_accepted","explicitly_rejected","dismissed","corrected"],type:"string"},h6={additionalProperties:!1,properties:{kind:{$ref:"#/$defs/ContextScoutFeedbackKindV1"},receipt_id:{items:{format:"uint8",maximum:255,minimum:0,type:"integer"},maxItems:16,minItems:16,type:"array"}},required:["receipt_id","kind"],type:"object"},h3={description:"One user intent the Scout can recognize. The serialized keys are the\nhistorical hook hint category keys, so persisted hint analytics, hint\nsettlement, and evals keep one vocabulary.",enum:["search","semantic_search","file_read","tool_descriptor_read","broad_read","call_graph","impact","symbol_lookup","file_lookup","project_context","session_recall","atomic_edit","type_orientation","explore_subagent","subagent_start_context","build_diagnostics","review_changes","memory_store","edit_redundancy","unexpected_changes"],type:"string"},h9={additionalProperties:!1,description:"Operator configuration for the Context Scout intent pass.",properties:{action_fact_score_permille:{description:"Score a deterministic action fact contributes for its intent.",format:"uint16",maximum:65535,minimum:0,type:"integer"},enabled:{type:"boolean"},engine:{$ref:"#/$defs/DecisionEngineSettingsV1"},min_delivery_gap_secs:{format:"uint32",minimum:0,type:"integer"},prompt_lookup_deadline_ms:{format:"uint32",minimum:0,type:"integer"},questions:{items:{$ref:"#/$defs/IntentQuestionSettingsV1"},type:"array"},ttl_secs:{format:"uint32",minimum:0,type:"integer"},window:{$ref:"#/$defs/IntentWindowSettingsV1"}},required:["enabled","engine","window","questions","action_fact_score_permille","ttl_secs","min_delivery_gap_secs","prompt_lookup_deadline_ms"],type:"object"},h5={additionalProperties:!1,properties:{max_candidates:{format:"uint",minimum:0,type:"integer"},max_evidence:{format:"uint",minimum:0,type:"integer"},max_model_input_tokens:{format:"uint",minimum:0,type:"integer"},max_model_output_tokens:{format:"uint",minimum:0,type:"integer"},max_text_bytes:{format:"uint",minimum:0,type:"integer"}},required:["max_candidates","max_evidence","max_text_bytes","max_model_input_tokens","max_model_output_tokens"],type:"object"},h8={enum:["disabled","codex_app_server","unsupported","decision_engine"],type:"string"},h7={oneOf:[{enum:["not_requested","succeeded","disabled","unavailable","denied","disconnected","cancelled","deadline_exceeded","token_budget_exceeded","invalid_output"],type:"string"},{const:"backpressured",description:"The engine's concurrency bound was full; the request was not sent.",type:"string"}]},ye={additionalProperties:!1,properties:{actual_model:{type:["string","null"]},actual_provider:{type:["string","null"]},estimated_cost_microusd:{format:"uint64",minimum:0,type:["integer","null"]},input_tokens:{format:"uint64",minimum:0,type:["integer","null"]},output_tokens:{format:"uint64",minimum:0,type:["integer","null"]},requested_backend:{$ref:"#/$defs/ContextScoutModelBackendV1"}},required:["requested_backend"],type:"object"},yt={additionalProperties:!1,properties:{feedback:{anyOf:[{$ref:"#/$defs/ContextScoutFeedbackV1"},{type:"null"}]},receipt:{$ref:"#/$defs/ContextScoutDeliveryReceiptV1"},suggestion:{$ref:"#/$defs/ContextScoutSuggestionProjectionV1"}},required:["suggestion","receipt"],type:"object"},yr={oneOf:[{enum:["deterministic","model_assisted","deterministic_fallback"],type:"string"},{const:"decision_engine",description:"Produced by the session intent pass: decision-engine answers combined\nwith deterministic action facts.",type:"string"}]},yi={enum:["deterministic","configured_model"],type:"string"},yo={enum:["active","paused","disabled"],type:"string"},yn={additionalProperties:!1,description:"Exact bounded span of one session's transcript an intent pass read. The\nwindow body is never retained; only its digest and store-id bounds are.",properties:{first_store_id:{format:"int64",type:"integer"},last_store_id:{format:"int64",type:"integer"},message_count:{format:"uint16",maximum:65535,minimum:0,type:"integer"},newest_timestamp:{format:"int64",type:["integer","null"]},window_digest:{$ref:"#/$defs/ManifestDigest"}},required:["first_store_id","last_store_id","message_count","window_digest"],type:"object"},ya={additionalProperties:!1,description:"Canonical Context Scout control-plane value. Disabled is the only stock\nstate; deterministic or configured-model execution requires an explicit\nconfiguration revision.",properties:{intent:{anyOf:[{$ref:"#/$defs/ContextScoutIntentSettingsV1"},{type:"null"}],description:"Session intent pass. Absent means the Scout runs no intent pass; the\nfield is omitted from the canonical encoding so settings written before\nit existed keep their behavior digest."},limits:{$ref:"#/$defs/ContextScoutConfigurationLimitsV1"},mode:{$ref:"#/$defs/ContextScoutConfigurationModeV1"},model_id:{type:["string","null"]},model_path:{anyOf:[{$ref:"#/$defs/ContextScoutConfiguredModelPathV1"},{type:"null"}]},model_timeout_secs:{format:"uint64",minimum:0,type:["integer","null"]},schema_version:{format:"uint16",maximum:65535,minimum:0,type:"integer"},state:{$ref:"#/$defs/ContextScoutConfigurationStateV1"}},required:["schema_version","state","mode","limits"],type:"object"},ys={enum:["stored","duplicate","superseded"],type:"string"},yd={additionalProperties:!1,properties:{category:{$ref:"#/$defs/ContextScoutCategoryV1"},configuration_revision:{items:{format:"uint8",maximum:255,minimum:0,type:"integer"},maxItems:32,minItems:32,type:"array"},dedupe_key:{items:{format:"uint8",maximum:255,minimum:0,type:"integer"},maxItems:32,minItems:32,type:"array"},delivery_window:{$ref:"#/$defs/ContextScoutDeliveryWindowV1"},envelope_id:{items:{format:"uint8",maximum:255,minimum:0,type:"integer"},maxItems:16,minItems:16,type:"array"},evidence:{$ref:"#/$defs/ContextScoutEvidenceProjectionV1"},expires_at:{$ref:"#/$defs/UtcMicros"},model_outcome:{$ref:"#/$defs/ContextScoutModelOutcomeV1"},model_receipt:{anyOf:[{$ref:"#/$defs/ContextScoutModelReceiptV1"},{type:"null"}]},relevance_score:{format:"uint16",maximum:65535,minimum:0,type:"integer"},route:{$ref:"#/$defs/ContextScoutRouteV1"},suggestion_text:{type:"string"},work:{$ref:"#/$defs/ContextScoutWorkV1"}},required:["work","envelope_id","configuration_revision","delivery_window","route","model_outcome","dedupe_key","category","relevance_score","suggestion_text","evidence","expires_at"],type:"object"},yc={oneOf:[{enum:["disabled","paused","dirty_overlay","quiet_or_unreceptive","no_eligible_candidate","expired","duplicate","cancelled","model_output_invalid","evidence_partial","evidence_stale","evidence_unavailable"],type:"string"},{const:"pending_sibling",description:"A suggestion for the same session is already pending delivery.",type:"string"}]},yl={additionalProperties:!1,properties:{address:{$ref:"#/$defs/ContextScoutAddressV1"},generation:{format:"uint64",minimum:0,type:"integer"},input_watermark:{items:{format:"uint8",maximum:255,minimum:0,type:"integer"},maxItems:32,minItems:32,type:"array"}},required:["address","generation","input_watermark"],type:"object"},yp={properties:{authorized_scope_ref:{type:"string"},current:{type:"boolean"},estimated_cost:{items:{$ref:"#/$defs/MetricValueV1"},type:"array"},horizon:{$ref:"#/$defs/ObservabilityHorizonV1"},latency:{description:"Provider-backed operation latency, projected from the same retained\nPlan 26 operation-resource events as Observatory. Each entry keeps\nprovider/model identity explicit; `None` is a real uncorrelated state,\nnever a client-side guess.",items:{$ref:"#/$defs/ProviderLatencyReadModelV1"},type:"array"},observed_at_micros:{format:"int64",type:"integer"},pricing_revision:{type:["string","null"]},usage:{items:{$ref:"#/$defs/MetricValueV1"},type:"array"},watermark:{type:"string"}},required:["authorized_scope_ref","horizon","watermark","observed_at_micros","current","usage","estimated_cost","latency"],type:"object"},yu={description:"Which side of a file dependency the coupling report counts.",enum:["fan_in","fan_out"],type:"string"},ym={description:"Completeness is explicit; unknown never renders as clean.",enum:["complete","partial","unknown"],type:"string"},yf={additionalProperties:!1,properties:{completeness:{$ref:"#/$defs/CoverageCompleteness"},domain:{$ref:"#/$defs/EvidenceDomain"}},required:["domain","completeness"],type:"object"},yh={enum:["known","partial","stale","unknown","sampled","capped"],type:"string"},yy={description:"Strongly typed canonical identity: `CredentialReferenceId`.",type:"string"},yg={enum:["disabled","manual_receipt_only","fast_forward_only","merge_commit","cherry_pick_exact_commits"],type:"string"},y_={additionalProperties:!1,properties:{allow_cross_repository:{type:"boolean"},allowed_modes:{items:{$ref:"#/$defs/CrossMergeModeV1"},type:"array",uniqueItems:!0},default_mode:{$ref:"#/$defs/CrossMergeModeV1"}},required:["allowed_modes","default_mode","allow_cross_repository"],type:"object"},yv={description:"The managed daemon service unit as a client observed it, from the unit\nfile alone.",oneOf:[{additionalProperties:!1,properties:{state:{const:"not_installed",type:"string"}},required:["state"],type:"object"},{additionalProperties:!1,description:"The unit file could not be read.",properties:{error:{type:"string"},state:{const:"unobservable",type:"string"}},required:["state","error"],type:"object"},{additionalProperties:!1,description:"The unit file at `path` serves the socket `serves`.",properties:{path:{type:"string"},serves:{type:"string"},state:{const:"installed",type:"string"}},required:["state","path","serves"],type:"object"}]},yb={additionalProperties:!1,description:"One immutable deadline supplied by the caller or upstream admission layer.",properties:{expires_at:{$ref:"#/$defs/UtcMicros"}},required:["expires_at"],type:"object"},y$={additionalProperties:!1,description:"The decision engine the intent pass asks. There is no default endpoint or\nmodel; both come only from explicit operator configuration.",properties:{base_url:{type:"string"},max_concurrent:{format:"uint8",maximum:255,minimum:0,type:"integer"},max_state_bytes:{format:"uint32",minimum:0,type:"integer"},model:{type:["string","null"]},timeout_ms:{format:"uint32",minimum:0,type:"integer"}},required:["base_url","timeout_ms","max_concurrent","max_state_bytes"],type:"object"},yS={description:"Diagnostic severity. Source severity is preserved exactly; TraceDecay\nnever raises severity because several producers agree.",enum:["error","warning","information","hint"],type:"string"},yk={additionalProperties:!1,description:"One tsconfig location the diagnostics owner search checked.",properties:{path:{description:"Relative to the project root, forward-slash separated.",type:"string"},present:{description:"The config exists, but neither it nor its references include the\nfile.",type:"boolean"}},required:["path","present"],type:"object"},yw={description:"Whether Doctor observed all of a family's evidence sources.",oneOf:[{const:"complete",description:"Every relevant evidence source for the family was observed.",type:"string"},{const:"partial",description:"Some evidence sources were observed; others were omitted.",type:"string"},{const:"unknown",description:"Whether coverage is complete could not be determined.",type:"string"}]},yP={description:"Shape of the design-structure-matrix report.",enum:["stats","clusters","matrix"],type:"string"},yV={enum:["prevented","committed","unknown","not_applicable"],type:"string"},yR={enum:["exact_duplicate","superseded_overlap","repeated_investigation","duplicate_effect","not_duplicate","censored","unknown"],type:"string"},yq={description:"The stable effect classification of one application operation.\n\nGit index writes remain separate classes so policy cannot accidentally\nsubstitute one index mutation for another.",oneOf:[{enum:["read","preview","source_edit","git_index_stage","git_index_unstage","configuration_write","administrative"],type:"string"},{const:"spawns_process",description:"Runs a child process in the project (e.g. the project's test runner).",type:"string"},{const:"binds_server",description:"Binds a listening server in the daemon process.",type:"string"},{const:"schedules_work",description:"Queues work on a daemon-owned scheduler; the call answers with the\nscheduler's admission, not the finished work.",type:"string"},{const:"maintains_owner_state",description:"Maintains bookkeeping the daemon keeps for the project or profile it\nserves: resets a usage counter, records registry token accounting, or\nreconciles automation schedulers with the saved configuration. Each\nwrite settles within the call and answers its new state.",type:"string"},{const:"maintains_profile_state",description:"Reads and rewrites the daemon profile's own state: its project\nregistry, accounting ledgers, and session stores. Unlike bookkeeping,\nit includes long work, a registry collection or a transcript import,\nthat a cancelled call stops.",type:"string"},{const:"records_host_evidence",description:"Records a host's session evidence (transcripts, hook admissions,\nreceipts) in daemon-owned session stores.",type:"string"}]},yI={additionalProperties:!1,description:"Durable effect proof. It records identities and receipts, never credentials\nor arbitrary command text.",properties:{actor:{$ref:"#/$defs/ActorId"},catalog_digest:{$ref:"#/$defs/ManifestDigest"},committed_state:{anyOf:[{$ref:"#/$defs/ManifestDigest"},{type:"null"}]},configuration_digest:{$ref:"#/$defs/ManifestDigest"},effect_class:{$ref:"#/$defs/EffectClass"},expected_state:{$ref:"#/$defs/ManifestDigest"},external_proof:{anyOf:[{$ref:"#/$defs/RetrievalAnchorId"},{type:"null"}]},idempotency_key:{type:"string"},input_digest:{$ref:"#/$defs/ManifestDigest"},operation:{$ref:"#/$defs/UseCaseId"},outcome:{$ref:"#/$defs/EffectTermination"},policy_digest:{$ref:"#/$defs/ManifestDigest"},privacy_digest:{$ref:"#/$defs/ManifestDigest"},request_id:{type:"string"},scope:{$ref:"#/$defs/ResolvedScope"}},required:["operation","request_id","actor","scope","effect_class","idempotency_key","input_digest","expected_state","policy_digest","configuration_digest","catalog_digest","privacy_digest","outcome"],type:"object"},yx={description:"Durable effect receipt terminal state.",enum:["completed","cancelled","timed_out","failed","partial","effect_unknown"],type:"string"},yj={additionalProperties:!1,description:"Deterministic coverage fold input for an evidence packet.",properties:{completeness:{$ref:"#/$defs/CoverageCompleteness"},domains:{items:{$ref:"#/$defs/CoverageDomainState"},type:"array"},eligible:{format:"uint64",minimum:0,type:["integer","null"]},requested_domains:{items:{$ref:"#/$defs/EvidenceDomain"},type:"array"},returned:{format:"uint64",minimum:0,type:"integer"},visited:{format:"uint64",minimum:0,type:["integer","null"]}},required:["requested_domains","returned","completeness","domains"],type:"object"},yC={description:"Requested evidence domain for bounded coverage and omissions.",enum:["symbol","source","graph","test","temporal","anchor","operational","diagnostic"],type:"string"},yT={description:"Evidence role used by dedupe/diversity caps. Independent corroboration\nand contradictions are preserved.",enum:["primary","corroboration","contradiction","context"],type:"string"},yO={description:"The exact tiers, lexicographically ordered above all approximate\ncandidates. Fusion derives this only from a validated [`ExactAdmissionProof`].",enum:["exact_message","exact_literal_phrase","approximate"],type:"string"},yE={description:"The classification of one whole exact technical term. Whole exact terms\nand language-profiled subtokens are distinct fields.",enum:["whole_symbol","qualified_name","path","compiler_error_code","compiler_error_text","runtime_error_code","runtime_error_text","cli_flag","tool_name","configuration_key","commit_identifier"],type:"string"},yA={description:"Strongly typed canonical identity: `FactAssertionId`.",type:"string"},yW={enum:["general","user_pref","project","tool","decision","code_area"],type:"string"},yM={enum:["committed","idempotent_replay"],type:"string"},yN={oneOf:[{additionalProperties:!1,properties:{kind:{const:"profile",type:"string"}},required:["kind"],type:"object"},{additionalProperties:!1,properties:{kind:{const:"project",type:"string"},project_id:{$ref:"#/$defs/ProjectId"}},required:["kind","project_id"],type:"object"}]},yz={additionalProperties:!1,properties:{active_assertion_id:{anyOf:[{$ref:"#/$defs/FactAssertionId"},{type:"null"}]},committed_event_ids:{items:{$ref:"#/$defs/FactEventId"},type:"array"},disposition:{$ref:"#/$defs/FactCommitDispositionV1"},fact_id:{$ref:"#/$defs/FactId"},last_event_id:{$ref:"#/$defs/FactEventId"},owner:{$ref:"#/$defs/FactCommitOwnerV1"}},required:["disposition","fact_id","owner","committed_event_ids","last_event_id"],type:"object"},yD={description:"Strongly typed canonical identity: `FactEventId`.",type:"string"},yF={enum:["helpful","unhelpful"],type:"string"},yL={description:"Strongly typed canonical identity: `FactId`.",type:"string"},yU={oneOf:[{additionalProperties:!1,properties:{anchor_id:{$ref:"#/$defs/RetrievalAnchorId"},kind:{const:"evidence",type:"string"},stable_key:{$ref:"#/$defs/LocatorDigest"}},required:["kind","anchor_id","stable_key"],type:"object"},{additionalProperties:!1,properties:{kind:{const:"application",type:"string"},operation_id:{$ref:"#/$defs/ProvenanceId"}},required:["kind","operation_id"],type:"object"}]},yH={description:"Payload states that structurally cannot expose an available fact payload.",enum:["redacted","quarantined","retention_expired","deleted","unavailable","ambiguous"],type:"string"},yG={oneOf:[{additionalProperties:!1,properties:{fact:{$ref:"#/$defs/FactV1"},kind:{const:"available",type:"string"}},required:["kind","fact"],type:"object"},{additionalProperties:!1,properties:{fact:{$ref:"#/$defs/FactV1"},kind:{const:"superseded",type:"string"},superseded_by:{$ref:"#/$defs/FactId"}},required:["kind","fact","superseded_by"],type:"object"},{additionalProperties:!1,properties:{kind:{const:"unavailable",type:"string"},status:{$ref:"#/$defs/FactStatusV1"}},required:["kind","status"],type:"object"}]},yB={oneOf:[{additionalProperties:!1,properties:{kind:{const:"not_applicable",type:"string"}},required:["kind"],type:"object"},{additionalProperties:!1,properties:{kind:{const:"not_mounted",type:"string"}},required:["kind"],type:"object"},{additionalProperties:!1,properties:{expanded_fact_count:{format:"uint",minimum:0,type:"integer"},kind:{const:"complete",type:"string"},relation_count:{format:"uint",minimum:0,type:"integer"},root_count:{format:"uint",minimum:0,type:"integer"}},required:["kind","root_count","relation_count","expanded_fact_count"],type:"object"},{additionalProperties:!1,properties:{kind:{const:"degraded",type:"string"},reason:{$ref:"#/$defs/FactSearchGraphDegradationV1"}},required:["kind","reason"],type:"object"}]},yK={enum:["conflict","unavailable","budget_exhausted","deadline_exceeded"],type:"string"},yJ={additionalProperties:!1,properties:{fact:{$ref:"#/$defs/FactV1"},scores:{$ref:"#/$defs/FactSearchScoresV1"},why:{type:["string","null"]}},required:["fact","scores"],type:"object"},yZ={additionalProperties:!1,properties:{fts_score_millionths:{format:"uint32",minimum:0,type:"integer"},holographic_score_millionths:{format:"uint32",minimum:0,type:"integer"},jaccard_score_millionths:{format:"uint32",minimum:0,type:"integer"},score_millionths:{format:"uint32",minimum:0,type:"integer"},trust_score_millionths:{format:"uint32",minimum:0,type:"integer"}},required:["score_millionths","fts_score_millionths","jaccard_score_millionths","holographic_score_millionths","trust_score_millionths"],type:"object"},yQ={additionalProperties:!1,properties:{fact_id:{$ref:"#/$defs/FactId"},owner:{$ref:"#/$defs/FactCommitOwnerV1"},payload_access:{$ref:"#/$defs/FactPayloadAccessV1"},projected_as_of:{$ref:"#/$defs/UtcMicros"}},required:["owner","fact_id","payload_access","projected_as_of"],type:"object"},yX={additionalProperties:!1,properties:{access_count:{format:"uint64",minimum:0,type:"integer"},created_at:{$ref:"#/$defs/UtcMicros"},helpful_count:{format:"uint64",minimum:0,type:"integer"},last_feedback_at:{anyOf:[{$ref:"#/$defs/UtcMicros"},{type:"null"}]},last_recalled_at:{anyOf:[{$ref:"#/$defs/UtcMicros"},{type:"null"}]},last_retrieved_at:{anyOf:[{$ref:"#/$defs/UtcMicros"},{type:"null"}]},retrieval_count:{format:"uint64",minimum:0,type:"integer"},unhelpful_count:{format:"uint64",minimum:0,type:"integer"},updated_at:{$ref:"#/$defs/UtcMicros"}},required:["retrieval_count","access_count","helpful_count","unhelpful_count","created_at","updated_at"],type:"object"},yY={additionalProperties:!1,description:"Available fact projection. Unavailable payload states use\n[`FactProjectionV1::Unavailable`] and cannot fabricate payload fields.",properties:{active_assertion_id:{$ref:"#/$defs/FactAssertionId"},category:{$ref:"#/$defs/FactCategoryV1"},content:{type:"string"},entities:{items:{type:"string"},type:"array"},fact_id:{$ref:"#/$defs/FactId"},last_event_id:{$ref:"#/$defs/FactEventId"},metadata:{additionalProperties:!0,type:"object"},owner:{$ref:"#/$defs/FactCommitOwnerV1"},projected_as_of:{$ref:"#/$defs/UtcMicros"},source:{$ref:"#/$defs/FactIdentitySourceResultV1"},source_label:{type:["string","null"]},tags:{items:{type:"string"},type:"array"},telemetry:{$ref:"#/$defs/FactTelemetryV1"},trust_score_millionths:{format:"uint32",minimum:0,type:"integer"}},required:["owner","fact_id","content","category","tags","entities","trust_score_millionths","source","active_assertion_id","last_event_id","projected_as_of","telemetry","metadata"],type:"object"},y1={additionalProperties:!1,description:"Exact source-owned state for one advisory producer in a composed feedback\ncycle. The producer tag is part of the durable cycle result so consumers\nnever infer provenance from the position of an aggregate provider state.",properties:{producer:{$ref:"#/$defs/FeedbackDiagnosticProducerV1"},state:{$ref:"#/$defs/ProviderEvaluationStateV1"}},required:["producer","state"],type:"object"},y0={description:"Availability of the canonical baseline used to classify a current\ndiagnostic. An unavailable or partial baseline never upgrades a finding\nto `New`; only an authoritative `NoPriorBaseline` state may do so without\na baseline record.",oneOf:[{enum:["complete","partial","stale","unavailable"],type:"string"},{const:"no_prior_baseline",description:"The authoritative runtime confirmed that there is no prior saved\ngeneration to compare. This is authoritative empty history, not an\ninvented horizon and not unavailable/partial coverage.",type:"string"}]},y2={description:"Content identity distinguishes durable saved content from an authorized\nephemeral document overlay. Overlay identity is deliberately local to its\nowning session and cannot be made durable by converting it to a digest.",oneOf:[{properties:{file_digest:{$ref:"#/$defs/ManifestDigest"},generation_digest:{$ref:"#/$defs/ManifestDigest"},kind:{const:"saved_content",type:"string"}},required:["kind","generation_digest","file_digest"],type:"object"},{properties:{agent_id:{anyOf:[{$ref:"#/$defs/AgentInstanceId"},{type:"null"}]},document_version:{format:"uint64",minimum:0,type:"integer"},kind:{const:"ephemeral_overlay",type:"string"},overlay_digest:{$ref:"#/$defs/ManifestDigest"},owner_client_id:{$ref:"#/$defs/HostInstanceId"},session_id:{$ref:"#/$defs/SessionId"}},required:["kind","session_id","owner_client_id","document_version","overlay_digest"],type:"object"}]},y4={description:"Strongly typed canonical identity: `FeedbackCycleId`.",type:"string"},y6={enum:["clean","duplicate_noop","blocked","incomplete_coverage","stale_replan_required","budget_exceeded","cancelled","user_stop","daemon_unavailable"],type:"string"},y3={enum:["new","pre_existing","unknown"],type:"string"},y9={description:"Closed producer vocabulary for standard diagnostic projection.",enum:["code_diagnostic","git_hub_review","ci_localization","proximity"],type:"string"},y5={additionalProperties:!1,description:"Bounded code location used only to project an anchored advisory finding\ninto an editor. The finding's `retrieval_anchor_id` remains the evidence\nexpansion authority; this value carries no source body or provider payload.",properties:{code:{type:"string"},code_description_uri:{type:["string","null"]},file:{$ref:"#/$defs/FileOccurrenceId"},producer:{$ref:"#/$defs/FeedbackDiagnosticProducerV1"},safe_bounded_message:{type:"string"},severity:{$ref:"#/$defs/DiagnosticSeverityV1"},span:{$ref:"#/$defs/SourceSpan"},symbol:{anyOf:[{$ref:"#/$defs/SymbolOccurrenceId"},{type:"null"}]}},required:["file","span","code","severity","safe_bounded_message","producer"],type:"object"},y8={enum:["durable","session_only"],type:"string"},y7={description:"Strongly typed canonical identity: `FeedbackFindingId`.",type:"string"},ge={enum:["active","superseded","resolved","cleared"],type:"string"},gt={additionalProperties:!1,properties:{cycle_id:{$ref:"#/$defs/FeedbackCycleId"},expand_handle:{description:"Server-minted request handle for `feedback_expand`, present only when\nthe canonical finding has a retained retrieval anchor.",type:["string","null"]},finding:{$ref:"#/$defs/FeedbackFindingV1"},get_handle:{description:"Server-minted request handle for `feedback_get`; durable identity remains\n`finding.finding_id`.\n\nCursor identity types are deliberately absent from the generated schema\nsurface; the public wire form is the bounded opaque string.",type:"string"},result_id:{$ref:"#/$defs/FeedbackResultId"},scope:{$ref:"#/$defs/FeedbackScopeV1"}},required:["result_id","cycle_id","scope","finding","get_handle"],type:"object"},gr={additionalProperties:!1,description:"Reference-only post-edit feedback finding. The safe preview is bounded display framing,\nnever a source-text copy or a second diagnostic store.",properties:{classification:{$ref:"#/$defs/FeedbackDiagnosticClassificationV1"},diagnostic_projection:{anyOf:[{$ref:"#/$defs/FeedbackDiagnosticProjectionV1"},{type:"null"}]},finding_id:{$ref:"#/$defs/FeedbackFindingId"},lifecycle:{$ref:"#/$defs/FeedbackFindingLifecycleV1"},provider_state:{$ref:"#/$defs/ProviderEvaluationStateV1"},retrieval_anchor_id:{anyOf:[{$ref:"#/$defs/RetrievalAnchorId"},{type:"null"}]},safe_bounded_preview:{type:["string","null"]}},required:["finding_id","classification","lifecycle","provider_state"],type:"object"},gi={description:"Coverage state for graph impact and affected-test evidence. An empty impact\nset is clean only when its state is complete.",enum:["complete","partial","stale","unavailable"],type:"string"},go={additionalProperties:!1,description:"Reference-only graph and test impact for one feedback target. The owning\ngraph/query layer supplies these identities; this contract does not create\nanother graph, test map, or evidence store.",properties:{affected_callers:{items:{$ref:"#/$defs/SymbolOccurrenceId"},type:"array"},affected_files:{items:{$ref:"#/$defs/FileOccurrenceId"},type:"array"},affected_tests:{items:{$ref:"#/$defs/SymbolOccurrenceId"},type:"array"},affected_tests_state:{$ref:"#/$defs/FeedbackImpactStateV1"},evidence_anchors:{items:{$ref:"#/$defs/RetrievalAnchorId"},type:"array"},state:{$ref:"#/$defs/FeedbackImpactStateV1"},target:{$ref:"#/$defs/FeedbackTargetV1"}},required:["target","affected_files","affected_callers","affected_tests","evidence_anchors","state","affected_tests_state"],type:"object"},gn={description:"Strongly typed canonical identity: `FeedbackResultId`.",type:"string"},ga={additionalProperties:!1,description:"Exact repository scope used for a feedback evaluation. A path, current\nworking directory, repository display name, or mutable branch label is not\na substitute for this identity.",properties:{branch_ref:{type:"string"},head_commit_id:{$ref:"#/$defs/CommitId"},project_id:{$ref:"#/$defs/ProjectId"},repository_id:{$ref:"#/$defs/RepositoryId"},worktree_id:{$ref:"#/$defs/WorktreeId"}},required:["project_id","repository_id","worktree_id","branch_ref","head_commit_id"],type:"object"},gs={additionalProperties:!1,description:"Exact changed-code address for one single-root feedback evaluation. The\naddress carries canonical file/range/symbol identities, never a path or\nmutable line number.",properties:{file:{$ref:"#/$defs/FileOccurrenceId"},generation_id:{anyOf:[{$ref:"#/$defs/CodeGenerationId"},{type:"null"}]},span:{anyOf:[{$ref:"#/$defs/SourceSpan"},{type:"null"}]},symbol:{anyOf:[{$ref:"#/$defs/SymbolOccurrenceId"},{type:"null"}]}},required:["file"],type:"object"},gd={description:"Strongly typed canonical identity: `FileOccurrenceId`.",type:"string"},gc={description:"How `tracedecay_files` lays out its listing.",oneOf:[{const:"flat",description:"One file per line.",type:"string"},{const:"grouped",description:"Grouped by directory.",type:"string"}]},gl={description:"Deterministic fixed-point score in millionths. No floating point crosses\nthis boundary.",format:"uint64",minimum:0,type:"integer"},gp={description:"Compatibility state of one source/projection pair.",enum:["current","stale","incompatible","missing","unknown"],type:"string"},gu={additionalProperties:!1,description:"A candidate after contribution grouping and fixed-point fusion.",properties:{anchor_id:{$ref:"#/$defs/RetrievalAnchorId"},contributions:{items:{$ref:"#/$defs/CandidateContribution"},type:"array"},decisions:{items:{$ref:"#/$defs/RankingDecision"},type:"array"},exact_class:{$ref:"#/$defs/ExactClass"},freshness:{items:{$ref:"#/$defs/SourceFreshness"},type:"array"},logical_evidence_id:{$ref:"#/$defs/LogicalEvidenceId"},occurrences:{items:{$ref:"#/$defs/OccurrenceProvenance"},type:"array"},source_role:{$ref:"#/$defs/RetrievalSourceRoleV1",default:"production_other",description:"Strongest source role across the fused occurrences. Absent historical\ncandidates deserialize as a non-definition hit."},utility_micros:{format:"uint64",minimum:0,type:"integer"}},required:["anchor_id","logical_evidence_id","occurrences","exact_class","utility_micros","contributions","freshness","decisions"],type:"object"},gm={description:"Metric whose distribution the Gini report measures.",enum:["complexity","lines","fan_in","fan_out","members"],type:"string"},gf={description:"Unit the Gini report aggregates its metric over.",enum:["file","symbol"],type:"string"},gh={description:"Expected blob identity, or explicit absent-file state.",oneOf:[{enum:["absent_file"],type:"string"},{additionalProperties:!1,properties:{present:{$ref:"#/$defs/GitOidV1"}},required:["present"],type:"object"}]},gy={description:"Native change kind for one side (index or worktree) of a status entry,\nor for a whole-file diff record.",enum:["unmodified","modified","added","deleted","renamed","copied","type_changed","unmerged"],type:"string"},gg={additionalProperties:!1,description:"A symbol the exact base/head branch-generation comparison reports.",properties:{content_digest:{type:"string"},file:{type:"string"},id:{type:"string"},kind:{type:"string"},name:{type:"string"},qualified_name:{type:"string"}},required:["id","name","qualified_name","kind","file","content_digest"],type:"object"},g_={oneOf:[{additionalProperties:!1,description:"Caller-selected files: symbols may be unchanged or not yet edited.",properties:{kind:{const:"proposed_files",type:"string"}},required:["kind"],type:"object"},{additionalProperties:!1,properties:{base:{$ref:"#/$defs/GitOidV1"},head:{$ref:"#/$defs/GitOidV1"},kind:{const:"commit_range",type:"string"}},required:["kind","base","head"],type:"object"},{additionalProperties:!1,description:"Pinned HEAD (or empty tree) to the selected immutable index blobs.",properties:{head:{anyOf:[{$ref:"#/$defs/GitOidV1"},{type:"null"}]},kind:{const:"staged",type:"string"}},required:["kind"],type:"object"},{additionalProperties:!1,description:"Selected index blobs to captured working-tree bytes.",properties:{kind:{const:"working_tree",type:"string"}},required:["kind"],type:"object"},{additionalProperties:!1,description:"Net change from pinned HEAD (or empty tree), including untracked files.",properties:{head:{anyOf:[{$ref:"#/$defs/GitOidV1"},{type:"null"}]},kind:{const:"head_to_worktree",type:"string"}},required:["kind"],type:"object"}]},gv={additionalProperties:!1,description:"A verified-graph symbol a git-context read reports.",properties:{file:{type:"string"},id:{type:"string"},kind:{type:"string"},line:{format:"uint32",minimum:0,type:"integer"},name:{type:"string"}},required:["id","name","kind","file","line"],type:"object"},gb={additionalProperties:!1,description:"Typed coverage of a read-only Git result: the sorted, de-duplicated set\nof degradations observed while capturing it.",properties:{degradations:{items:{$ref:"#/$defs/GitDegradationV1"},type:"array"}},required:["degradations"],type:"object"},g$={description:"Typed coverage/degradation reasons for a read-only Git result. A result\ncarrying any degradation is truthful but not complete; callers must not\ntreat it as a clean full view.",oneOf:[{enum:["detached_head","unborn_branch","sparse_checkout","split_index","unreadable_state","unsupported_object_format","in_progress_operation","shallow_boundary","truncated_output"],type:"string"},{const:"ignored_collision",description:"Ignored content shares a directory with live tracked/untracked\nentries, so the untracked/ignored view may be collapsed by Git.",type:"string"},{const:"conflicted_state",description:"Unmerged index stages are present.",type:"string"},{const:"submodule_state",description:"Submodule entries exist; the adapter does not recurse into them.",type:"string"}]},gS={description:"A native Git file mode as stored in tree/index records (six octal digits,\ne.g. `100644`, `100755`, `120000` symlink, `160000` gitlink/submodule).",type:"string"},gk={description:"A changed file's semantic role.",enum:["config","docs","source","test"],type:"string"},gw={description:"Native HEAD state. Missing, unborn, and detached states are explicit,\nnever guessed.",oneOf:[{properties:{branch:{type:"string"},commit:{$ref:"#/$defs/GitOidV1"},state:{const:"attached",type:"string"}},required:["state","branch","commit"],type:"object"},{properties:{commit:{$ref:"#/$defs/GitOidV1"},state:{const:"detached",type:"string"}},required:["state","commit"],type:"object"},{properties:{branch:{type:"string"},state:{const:"unborn",type:"string"}},required:["state","branch"],type:"object"}]},gP={enum:["disabled","probe_private_preview"],type:"string"},gV={additionalProperties:!1,description:"Expected index entry state for compare-and-swap: blob identity (or\nabsent), mode, and unmerged-stage state. `unmerged_stage` is `None` for a\nmerged (stage-0) entry.",properties:{blob:{$ref:"#/$defs/GitBlobExpectationV1"},mode:{anyOf:[{$ref:"#/$defs/GitFileModeV1"},{type:"null"}]},unmerged_stage:{format:"uint8",maximum:255,minimum:0,type:["integer","null"]}},required:["blob"],type:"object"},gR={description:"Strongly typed canonical identity: `GitIndexPreviewId`.",type:"string"},gq={description:"The only native Git mutations represented by the index-transaction runtime. Generic Git execution,\nref rewrites, commits, merge/rebase/cherry-pick, push, and worktree writes are\ndeliberately absent.",enum:["stage_hunks","unstage_hunks"],type:"string"},gI={description:"A native Git object id (commit, tree, or blob), lowercase hex, SHA-1 or\nSHA-256 length. This is identity evidence only; it never authorizes\nobject reconstruction or traversal outside native Git.",type:"string"},gx={description:"In-progress native Git operation state, read from repository metadata.",enum:["none","merge","rebase","cherry_pick","revert","bisect","sequencer","unknown"],type:"string"},gj={description:"Whether a bounded page holds every answer or stopped at its limit.",enum:["complete","partial"],type:"string"},gC={enum:["complete"],type:"string"},gT={enum:["partial"],type:"string"},gO={enum:["unavailable"],type:"string"},gE={enum:["result_limit"],type:"string"},gA={additionalProperties:!1,properties:{branch:{type:["string","null"]},commit:{type:["string","null"]},worktree:{type:["string","null"]}},type:"object"},gW={description:"Flat public selector for an admitted Git diff scope.\n\nThis intentionally differs from [`tracedecay_domain::GitDiffScopeV1`]: MCP\nand CLI accept `scope`, `base`, and `head` as sibling fields, then\ntransport parsing builds the canonical domain scope after checking their\nlegal combinations.",enum:["working_tree","staged","commit_range"],type:"string"},gM={enum:["git"],type:"string"},gN={additionalProperties:!1,properties:{kind:{$ref:"#/$defs/GitToolErrorKindV1"},message:{type:"string"},operation:{$ref:"#/$defs/GitToolOperationV1"}},required:["kind","operation","message"],type:"object"},gz={additionalProperties:!1,description:"Git itself refused the refs, worktree status, or history the tool reads.",properties:{error:{$ref:"#/$defs/GitToolErrorV1"}},required:["error"],type:"object"},gD={description:"The git step that refused the read.",enum:["diff","status","log"],type:"string"},gF={additionalProperties:!1,properties:{binding_digest:{$ref:"#/$defs/ManifestDigest"},consumed_at:{$ref:"#/$defs/UtcMicros"},input_digest:{$ref:"#/$defs/ManifestDigest"},receipt_digest:{$ref:"#/$defs/ManifestDigest"},request_id:{type:"string"},token_digest:{$ref:"#/$defs/ManifestDigest"}},required:["binding_digest","token_digest","request_id","input_digest","consumed_at","receipt_digest"],type:"object"},gL={enum:["forbid_force_and_rebase"],type:"string"},gU={description:"Strongly typed canonical identity: `HostInstanceId`.",type:"string"},gH={description:"`HunkRef` operation direction: working tree to index, or index to\nHEAD/base. No other direction is encodable.",enum:["working_tree_to_index","index_to_head"],type:"string"},gG={additionalProperties:!1,description:"Immutable hunk identity for compare-and-swap. A hunk is identified by exact repository,\ndirection, path, expected base/index/worktree identity, normalized hunk\nheader, context and patch digests, and the preview that issued the\nreference, never by display ordinal or line number alone.\n\nquery mints these as read-only identity evidence only. Applying them is a\ndaemon Git mutation path and is not representable here.",properties:{attributes_digest:{anyOf:[{$ref:"#/$defs/ManifestDigest"},{type:"null"}],description:"Attributes/filter identity relevant to clean/smudge and EOL handling."},context_digest:{$ref:"#/$defs/ManifestDigest"},direction:{$ref:"#/$defs/HunkDirectionV1"},expected_base_blob:{$ref:"#/$defs/GitBlobExpectationV1"},expected_index_entry:{$ref:"#/$defs/GitIndexEntryExpectationV1"},expected_worktree_blob:{anyOf:[{$ref:"#/$defs/GitBlobExpectationV1"},{type:"null"}],description:"Expected working-tree identity when the operation reads the worktree:\na native content digest or explicit absent-file state. `None` means\nthe operation direction does not read the worktree."},expected_worktree_mode:{anyOf:[{$ref:"#/$defs/GitFileModeV1"},{type:"null"}]},hunk_header:{description:"Normalized `@@ -o,l +n,m @@` header text.",type:"string"},original_path:{description:"Old path for a rename or copy.",type:["string","null"]},patch_digest:{$ref:"#/$defs/ManifestDigest"},path:{type:"string"},preview_id:{type:"string"},repository:{$ref:"#/$defs/RepositoryId"},schema_version:{type:"string"},selected_line_bitmap:{description:"Selected hunk-line bitmap (little-endian word order, line 1 = bit 0\nof word 0). Full-hunk identity covers the larger old/new side so\ndeletion-only hunks remain representable.",items:{format:"uint64",minimum:0,type:"integer"},type:"array"},snapshot_digest:{$ref:"#/$defs/ManifestDigest"},worktree:{$ref:"#/$defs/WorktreeId"}},required:["repository","worktree","direction","path","expected_base_blob","expected_index_entry","hunk_header","context_digest","patch_digest","selected_line_bitmap","preview_id","schema_version","snapshot_digest"],type:"object"},gB={enum:["available","retained_but_unavailable","redacted","deleted","retention_expired","unauthorized","locked","unverifiable"],type:"string"},gK={additionalProperties:!1,description:"One yes/no question asked of the decision engine for one intent. The\nintent is a candidate when the engine's probability reaches\n`threshold_permille` and, when set, exceeds the runner-up by\n`margin_permille`.",properties:{instructions:{type:"string"},intent:{$ref:"#/$defs/ContextScoutIntentKindV1"},margin_permille:{format:"uint16",maximum:65535,minimum:0,type:["integer","null"]},threshold_permille:{format:"uint16",maximum:65535,minimum:0,type:"integer"}},required:["intent","instructions","threshold_permille"],type:"object"},gJ={additionalProperties:!1,description:"Bounds on the recent-session window one intent pass reads.",properties:{freshen_budget_ms:{description:"Time the pass may wait for the transcript store to ingest the newest\nturn before it reads the window as it stands.",format:"uint32",minimum:0,type:"integer"},max_age_secs:{format:"uint32",minimum:0,type:"integer"},max_bytes:{format:"uint32",minimum:0,type:"integer"},max_messages:{format:"uint8",maximum:255,minimum:0,type:"integer"},max_user_turns:{format:"uint8",maximum:255,minimum:0,type:"integer"}},required:["max_user_turns","max_messages","max_bytes","max_age_secs","freshen_budget_ms"],type:"object"},gZ={description:"p50/p95/p99 for one provider operation latency stage.",properties:{p50:{$ref:"#/$defs/MetricValueV1"},p95:{$ref:"#/$defs/MetricValueV1"},p99:{$ref:"#/$defs/MetricValueV1"}},required:["p50","p95","p99"],type:"object"},gQ={oneOf:[{properties:{state:{const:"ready",type:"string"}},required:["state"],type:"object"},{properties:{state:{const:"denied",type:"string"}},required:["state"],type:"object"},{properties:{state:{const:"cancelled",type:"string"}},required:["state"],type:"object"},{properties:{state:{const:"timed_out",type:"string"}},required:["state"],type:"object"},{properties:{reason:{type:"string"},state:{const:"unavailable",type:"string"}},required:["state","reason"],type:"object"},{properties:{diagnostic:{type:"string"},state:{const:"failed",type:"string"}},required:["state","diagnostic"],type:"object"}]},gX={additionalProperties:!1,properties:{limit:{format:"uint64",minimum:0,type:"integer"},offset:{format:"uint64",minimum:0,type:"integer"},returned_chars:{format:"uint64",minimum:0,type:"integer"},total_chars:{format:"uint64",minimum:0,type:"integer"},truncated:{type:"boolean"}},required:["offset","limit","returned_chars","total_chars","truncated"],type:"object"},gY={description:"Whether historical discovery, projection publication, and summary\nconvergence have all settled for everything the store's sources hold.",oneOf:[{const:"converging",description:"A stage still owes committed work.",type:"string"},{const:"converged",description:"The worker committed the last owed item and has nothing pending.",type:"string"},{const:"blocked",description:"Every runnable stage settled, but historical discovery is blocked.",type:"string"},{const:"unavailable",description:"No worker is serving the store.",type:"string"}]},g1={additionalProperties:!1,properties:{converged_at_unix_micros:{description:"When the latest convergence event was published.",format:"int64",type:["integer","null"]},epoch:{description:"Convergence events this worker has published; a larger value is a\nnewer event.",format:"uint64",minimum:0,type:"integer"},reason:{description:"The historical discovery blocker when `state` is `blocked`.",type:["string","null"]},state:{$ref:"#/$defs/LcmConvergenceStateV1"}},required:["state","epoch"],type:"object"},g0={description:"Whether the refresh worker that serves this store's temporal projection\nis current, still converging history, or not serving at all.",enum:["current","stale","unavailable"],type:"string"},g2={additionalProperties:!1,description:"The temporal projection's serving state at diagnosis time. A store whose\nschema is healthy can still have nothing to serve while history is being\nre-derived (for example on a fresh profile); this is where\nthat state is named instead of being read as absent data.",properties:{convergence:{$ref:"#/$defs/LcmConvergenceV1"},reason:{description:"Machine reason for a non-current state: `historical_convergence`,\n`historical_retry:`, `historical_blocked:`, or the worker\nunavailability (`worker_missing`, `worker_recovering`, `worker_stalled`,\n`worker_stopped`).",type:["string","null"]},state:{$ref:"#/$defs/LcmDoctorProjectionStateV1"},worker:{$ref:"#/$defs/RetrievalWorkerStatusV1"}},required:["state","worker","convergence"],type:"object"},g4={additionalProperties:!1,properties:{content:{type:"string"},content_hash:{type:"string"},message_id:{type:"string"},metadata_json:{type:["string","null"]},ordinal:{format:"int64",type:"integer"},payload_ref:{type:["string","null"]},provider:{type:"string"},role:{type:"string"},session_id:{type:"string"},storage_kind:{$ref:"#/$defs/LcmStorageKindV1"},store_id:{format:"int64",type:"integer"},timestamp:{format:"int64",type:["integer","null"]}},required:["provider","message_id","session_id","store_id","role","ordinal","content","content_hash","storage_kind"],type:"object"},g6={oneOf:[{properties:{freshness:{$ref:"#/$defs/TemporalFreshnessV1"},outcome:{const:"complete",type:"string"}},required:["outcome","freshness"],type:"object"},{properties:{freshness:{$ref:"#/$defs/TemporalFreshnessV1"},omitted:{format:"uint64",minimum:0,type:"integer"},outcome:{const:"partial",type:"string"}},required:["outcome","freshness","omitted"],type:"object"},{properties:{freshness:{$ref:"#/$defs/TemporalFreshnessV1"},outcome:{const:"stale",type:"string"}},required:["outcome","freshness"],type:"object"}]},g3={oneOf:[{properties:{kind:{const:"raw_message",type:"string"},store_id:{format:"int64",type:"integer"}},required:["kind","store_id"],type:"object"},{properties:{kind:{const:"summary_node",type:"string"},node_id:{type:"string"}},required:["kind","node_id"],type:"object"}]},g9={enum:["inline","external","canonical_occurrence"],type:"string"},g5={description:"One provider's summarizer executable: absent by default, or the exact\nabsolute path the operator configured with its optional tuning.",oneOf:[{properties:{state:{const:"unconfigured",type:"string"}},required:["state"],type:"object"},{properties:{canonical_path:{type:"string"},model:{description:"Model requested for summary turns; the provider default when absent.",type:["string","null"]},state:{const:"configured",type:"string"},timeout_secs:{description:"Wall-clock budget for one summary run, within\n[`LCM_SUMMARIZER_TIMEOUT_SECS_RANGE`]; the caller's default when absent.",format:"uint64",minimum:0,type:["integer","null"]}},required:["state","canonical_path"],type:"object"}]},g8={additionalProperties:!1,description:"The per-provider summarizer executables one configuration snapshot admits.",properties:{codex:{$ref:"#/$defs/LcmSummarizerExecutableV1",default:{state:"unconfigured"},description:"`codex`, driven over app-server JSON-RPC for Codex sessions."},cursor_agent:{$ref:"#/$defs/LcmSummarizerExecutableV1",default:{state:"unconfigured"},description:"`cursor-agent`, asked for a summary of Cursor sessions."}},type:"object"},g7={additionalProperties:!1,properties:{conversation_id:{type:"string"},created_at:{format:"int64",type:"integer"},depth:{format:"int64",type:"integer"},expand_hint:{type:["string","null"]},metadata_json:{type:["string","null"]},node_id:{type:"string"},provider:{type:"string"},session_id:{type:"string"},source_refs:{items:{$ref:"#/$defs/LcmSourceRefV1"},type:"array"},source_time_end:{format:"int64",type:["integer","null"]},source_time_start:{format:"int64",type:["integer","null"]},source_token_count:{format:"int64",type:"integer"},summary_hash:{type:"string"},summary_text:{type:"string"},summary_token_count:{format:"int64",type:"integer"}},required:["node_id","provider","conversation_id","session_id","depth","summary_text","summary_hash","source_refs","summary_token_count","source_token_count","created_at"],type:"object"},_e={additionalProperties:!1,properties:{anchors:{items:{type:"string"},type:"array"},authorized_root:{type:["string","null"]},coverage:{$ref:"#/$defs/TemporalCoverageV1"},explanations:{items:{$ref:"#/$defs/TemporalExplanationV1"},type:"array"},next_cursor:{type:["string","null"]},omissions:{items:{$ref:"#/$defs/TemporalOmissionV1"},type:"array"},source_coverage:{items:{$ref:"#/$defs/SessionSourceCoverageV1"},type:"array"},watermarks:{$ref:"#/$defs/TemporalWatermarksV1"}},required:["anchors","watermarks","coverage","explanations"],type:"object"},_t={description:"Why a site the lexical lane admitted for a caller anchor is absent from\nthe response.",oneOf:[{const:"diversity_cap",description:"Collapsed as a duplicate or held back by the per-file diversity cap.",type:"string"},{const:"outside_page",description:"Ranked, but outside the returned page: an earlier page, or behind\n`next_cursor`.",type:"string"},{const:"not_hydrated",description:"On the page, but late hydration returned no source for it.",type:"string"},{const:"out_of_scope",description:"Outside the caller's scope prefix.",type:"string"}]},_r={additionalProperties:!1,description:"Anchor sites one serving stage removed from the response.",properties:{reason:{$ref:"#/$defs/LexicalAnchorDropReasonV1"},sites:{format:"uint64",minimum:0,type:"integer"}},required:["reason","sites"],type:"object"},_i={description:"Strongly typed algorithm-tagged integrity digest: `LocatorDigest`.",type:"string"},_o={description:"Strongly typed canonical identity: `LogicalCopyClusterId`.",type:"string"},_n={description:"Strongly typed canonical identity: `LogicalEvidenceId`.",type:"string"},_a={enum:["global","project"],type:"string"},_s={properties:{absorbed_into:{type:["string","null"]},activated_at:{format:"int64",type:["integer","null"]},archived_reason:{type:["string","null"]},category:{type:"string"},checksum:{type:"string"},created_at:{format:"int64",type:"integer"},id:{type:"string"},materialization_scope:{$ref:"#/$defs/ManagedSkillMaterializationScope"},pinned:{type:"boolean"},provenance:{$ref:"#/$defs/ManagedSkillProvenance"},routing_description:{type:"string"},state:{$ref:"#/$defs/ManagedSkillState"},summary:{type:"string"},targets:{default:["cursor","codex","claude","agents","opencode","kimi","kiro","hermes"],items:{$ref:"#/$defs/SkillInstallTarget"},type:"array"},title:{type:"string"},updated_at:{format:"int64",type:"integer"}},required:["id","title","summary","routing_description","category","state","pinned","checksum","created_at","updated_at","provenance"],type:"object"},_d={properties:{actor:{type:"string"},run_id:{type:["string","null"]},source:{$ref:"#/$defs/ManagedSkillSource"}},required:["source","actor"],type:"object"},_c={enum:["automation_run","user","import"],type:"string"},_l={enum:["active","disabled","archived"],type:"string"},_p={description:"Strongly typed algorithm-tagged integrity digest: `ManifestDigest`.",type:"string"},_u={description:"The only Git histories this product operation can create.",enum:["fast_forward","two_parent_merge","cherry_pick_exact_commits"],type:"string"},_m={enum:["project","user"],type:"string"},_f={enum:["all","parents_only","subagents_only"],type:"string"},_h={enum:["all","direct_user","tool_result"],type:"string"},_y={properties:{calibration_revision:{type:"string"},cohort_revision:{type:"string"},drift_valid:{type:"boolean"},estimator_revision:{type:"string"},support:{format:"uint64",minimum:0,type:"integer"}},required:["estimator_revision","calibration_revision","cohort_revision","support","drift_valid"],type:"object"},_g={properties:{descriptor_revision:{type:"string"},eligible_population:{type:"string"}},required:["descriptor_revision","eligible_population"],type:"object"},__={properties:{censored:{format:"uint64",minimum:0,type:"integer"},completed:{format:"uint64",minimum:0,type:"integer"},eligible:{description:"Exact denominator cardinality. `None` means the denominator is unknown.",format:"uint64",minimum:0,type:["integer","null"]},excluded:{format:"uint64",minimum:0,type:"integer"},observed:{format:"uint64",minimum:0,type:"integer"},state:{$ref:"#/$defs/CoverageStateV1"},unknown:{format:"uint64",minimum:0,type:"integer"}},required:["observed","completed","censored","unknown","excluded","state"],type:"object"},_v={enum:["measurement","association","calibrated_prediction"],type:"string"},_b={properties:{projector_revision:{type:"string"},source:{$ref:"#/$defs/MetricSourceV1"},source_revision:{type:"string"},watermark:{type:"string"}},required:["source","source_revision","projector_revision","watermark"],type:"object"},_$={enum:["observability_envelope","feedback_observations","provider_usage_observation","savings_ledger"],type:"string"},_S={properties:{baseline_watermark:{type:["string","null"]},delta:{format:"double",type:["number","null"]},horizon:{$ref:"#/$defs/ObservabilityHorizonV1"}},required:["horizon"],type:"object"},_k={properties:{lower:{format:"double",type:["number","null"]},reason:{type:["string","null"]},upper:{format:"double",type:["number","null"]}},type:"object"},_w={properties:{calibration:{anyOf:[{$ref:"#/$defs/MetricCalibrationV1"},{type:"null"}]},cohort:{$ref:"#/$defs/MetricCohortV1"},coverage:{$ref:"#/$defs/MetricCoverageV1"},denominator:{type:"string"},denominator_value:{format:"uint64",minimum:0,type:["integer","null"]},descriptor_revision:{type:"string"},evidence_class:{$ref:"#/$defs/MetricEvidenceClassV1"},metric:{type:"string"},provenance:{$ref:"#/$defs/MetricProvenanceV1"},temporal:{$ref:"#/$defs/MetricTemporalV1"},unavailable_reason:{type:["string","null"]},uncertainty:{$ref:"#/$defs/MetricUncertaintyV1"},unit:{type:"string"},value:{description:"Aggregate value. It is absent whenever its denominator or coverage is\ninsufficient; observed lower bounds remain available in `coverage`.",format:"double",type:["number","null"]}},required:["descriptor_revision","metric","unit","denominator","coverage","evidence_class","provenance","cohort","temporal","uncertainty"],type:"object"},_P={additionalProperties:!1,description:"A file that historically changes with `partner_of` but is missing from the\nchange set under review, e.g. a migration beside its schema.",properties:{co_changes:{description:"Commits that changed both `partner_of` and `file`.",format:"uint64",minimum:0,type:"integer"},file:{type:"string"},partner_of:{type:"string"},partner_of_changes:{description:"Commits that changed `partner_of`.",format:"uint64",minimum:0,type:"integer"}},required:["file","partner_of","co_changes","partner_of_changes"],type:"object"},_V={additionalProperties:!1,description:"Frozen continuation identity shared by all participating roots.",properties:{digest:{$ref:"#/$defs/ManifestDigest"},next_page:{format:"uint64",minimum:1,type:"integer"},order_digest:{$ref:"#/$defs/ManifestDigest"},query_digest:{$ref:"#/$defs/ManifestDigest"},root_cursors:{items:{$ref:"#/$defs/RootScopeOutcomeV1_for_Nullable_string"},type:"array"},root_generations:{items:{$ref:"#/$defs/RootScopeOutcomeV1_for_Nullable_RootGenerationV1"},type:"array"},scope_set_digest:{$ref:"#/$defs/ManifestDigest"}},required:["scope_set_digest","root_generations","root_cursors","query_digest","order_digest","next_page","digest"],type:"object"},_R={description:"Strongly typed canonical identity: `NativeIntegrationApprovalId`.",type:"string"},_q={description:"Explicit direction of one integration. Stack meaning is never inferred.",enum:["propagate_dependency_to_dependent","land_dependent_into_dependency","integrate_independent_branch"],type:"string"},_I={description:"Truthful preview classification. Only `MechanicalIntegrationEligible`\ncarries apply-eligible evidence.",oneOf:[{properties:{detail:{$ref:"#/$defs/MechanicalIntegrationModeV1"},state:{const:"mechanical_integration_eligible",type:"string"}},required:["state","detail"],type:"object"},{properties:{state:{const:"already_integrated",type:"string"}},required:["state"],type:"object"},{properties:{detail:{properties:{conflict_digest:{$ref:"#/$defs/ManifestDigest"}},required:["conflict_digest"],type:"object"},state:{const:"native_conflict",type:"string"}},required:["state","detail"],type:"object"},{properties:{detail:{properties:{evidence_digest:{$ref:"#/$defs/ManifestDigest"}},required:["evidence_digest"],type:"object"},state:{const:"semantic_review_required",type:"string"}},required:["state","detail"],type:"object"},{properties:{detail:{properties:{reason:{$ref:"#/$defs/NativeIntegrationUnavailabilityV1"}},required:["reason"],type:"object"},state:{const:"partial",type:"string"}},required:["state","detail"],type:"object"},{properties:{detail:{properties:{reason:{$ref:"#/$defs/NativeIntegrationUnavailabilityV1"}},required:["reason"],type:"object"},state:{const:"unavailable",type:"string"}},required:["state","detail"],type:"object"}]},_x={description:"Strongly typed canonical identity: `NativeIntegrationPreviewId`.",type:"string"},_j={additionalProperties:!1,description:"Canonical stack-snapshot proof returned by `stack_snapshot` and consumed\nverbatim by preflight.",properties:{authorized_scope_set_digest:{$ref:"#/$defs/ManifestDigest"},authorized_scope_set_id:{$ref:"#/$defs/ScopeSetId"},authorized_scope_set_revision:{$ref:"#/$defs/ScopeSetRevision"},destination:{$ref:"#/$defs/ResolvedScope"},grant_digest:{$ref:"#/$defs/ManifestDigest"},inventory_epoch:{$ref:"#/$defs/WorktreeInventoryEpoch"},inventory_snapshot_id:{$ref:"#/$defs/WorktreeInventorySnapshotId"},policy_digest:{$ref:"#/$defs/ManifestDigest"},selection:{$ref:"#/$defs/NativeIntegrationSelectionBindingV1"},source:{$ref:"#/$defs/ResolvedScope"}},required:["source","destination","authorized_scope_set_id","authorized_scope_set_revision","authorized_scope_set_digest","inventory_snapshot_id","inventory_epoch","selection","grant_digest","policy_digest"],type:"object"},_C={description:"Canonically sealed selection passed to the topology authority.\n\n`stack_snapshot` requests carry declaration content; its boundary seals\nthat declaration into this proof, and preflight accepts the proof verbatim.\nThe topology authority never discovers roots or edges.",oneOf:[{properties:{binding:{properties:{declared_revision:{$ref:"#/$defs/BranchStackRevisionV1"},destination_node_id:{$ref:"#/$defs/StackNodeId"},direction:{$ref:"#/$defs/NativeIntegrationDirectionV1"},revision_digest:{$ref:"#/$defs/ManifestDigest"},revision_id:{$ref:"#/$defs/BranchStackRevisionId"},source_node_id:{$ref:"#/$defs/StackNodeId"},stack_id:{$ref:"#/$defs/BranchStackId"}},required:["stack_id","revision_id","revision_digest","declared_revision","source_node_id","destination_node_id","direction"],type:"object"},kind:{const:"declared_stack_edge",type:"string"}},required:["kind","binding"],type:"object"},{properties:{binding:{properties:{destination_ref:{$ref:"#/$defs/RefId"},proposal_digest:{$ref:"#/$defs/ManifestDigest"},source_ref:{$ref:"#/$defs/RefId"}},required:["proposal_digest","source_ref","destination_ref"],type:"object"},kind:{const:"independent_branch",type:"string"}},required:["kind","binding"],type:"object"}]},_T={description:"The only truthful terminal outcomes after recovery.",enum:["committed","aborted_no_change","rolled_back","needs_inspection"],type:"string"},_O={description:"Strongly typed canonical identity: `NativeIntegrationTransactionId`.",type:"string"},_E={description:"Why a preflight cannot authorize apply.",enum:["partial_evidence","stale_scope","denied","native_state_unavailable","reset_required","durability_uncertain","unsupported_hooks","signing_required","destination_occupied"],type:"string"},_A={description:"A target selected by exact registered identity. Repository inventory names\none repository; cleanup names one worktree within that repository.",oneOf:[{properties:{kind:{const:"repository",type:"string"},project_id:{$ref:"#/$defs/ProjectId"},repository_id:{$ref:"#/$defs/RepositoryId"}},required:["kind","project_id","repository_id"],type:"object"},{properties:{kind:{const:"worktree",type:"string"},project_id:{$ref:"#/$defs/ProjectId"},repository_id:{$ref:"#/$defs/RepositoryId"},worktree_id:{$ref:"#/$defs/WorktreeId"}},required:["kind","project_id","repository_id","worktree_id"],type:"object"}]},_W={additionalProperties:!1,properties:{body:{format:"uint64",minimum:0,type:"integer"},full_file:{format:"uint64",minimum:0,type:"integer"}},required:["body","full_file"],type:"object"},_M={properties:{since_micros:{format:"int64",type:"integer"},until_micros:{format:"int64",type:"integer"}},required:["since_micros","until_micros"],type:"object"},_N={additionalProperties:!1,description:"Stable logical identity of one provider observation source.\n\nThe session identity is provider-native evidence. The physical file identity\nis represented separately by [`ObservationSourceGenerationV1`].",properties:{provider:{$ref:"#/$defs/ProviderId"},session_id:{$ref:"#/$defs/SessionId"},source_key:{anyOf:[{$ref:"#/$defs/SessionId"},{type:"null"}]}},required:["provider","session_id"],type:"object"},_z={properties:{analytics_mode:{$ref:"#/$defs/AnalyticsModeReadModelV1"},authorized_scope_ref:{type:"string"},comparison:{$ref:"#/$defs/PerformanceComparisonReadModelV1"},current:{type:"boolean"},horizon:{$ref:"#/$defs/ObservabilityHorizonV1"},metrics:{items:{$ref:"#/$defs/MetricValueV1"},type:"array"},observed_at_micros:{format:"int64",type:"integer"},rejected_arguments:{$ref:"#/$defs/RejectedArgumentAnalyticsV1"},watermark:{type:"string"}},required:["authorized_scope_ref","horizon","watermark","observed_at_micros","current","metrics","analytics_mode","comparison","rejected_arguments"],type:"object"},_D={additionalProperties:!1,description:"Structured occurrence provenance retained through fusion. Fusion\npreserves each exact `(source_occurrence_id, retriever_evidence_anchor)`\npair; parallel unassociated provenance vectors are forbidden.",properties:{evidence_role:{$ref:"#/$defs/EvidenceRole"},file_occurrence_id:{anyOf:[{$ref:"#/$defs/FileOccurrenceId"},{type:"null"}]},freshness:{$ref:"#/$defs/SourceFreshness"},logical_copy_cluster_id:{anyOf:[{$ref:"#/$defs/LogicalCopyClusterId"},{type:"null"}]},logical_copy_evidence_anchor:{anyOf:[{$ref:"#/$defs/RetrievalAnchorId"},{type:"null"}]},repository_id:{anyOf:[{$ref:"#/$defs/RepositoryId"},{type:"null"}]},retriever_evidence_anchor:{$ref:"#/$defs/RetrievalAnchorId"},session_or_thread_id:{anyOf:[{$ref:"#/$defs/SessionOrThreadId"},{type:"null"}]},source_namespace:{$ref:"#/$defs/SourceNamespace"},source_occurrence_id:{$ref:"#/$defs/SourceOccurrenceId"}},required:["source_occurrence_id","retriever_evidence_anchor","source_namespace","evidence_role","freshness"],type:"object"},_F={additionalProperties:!1,description:"Bounded work accounting supplied by an owning port or transaction.",properties:{bytes_consumed:{format:"uint64",minimum:0,type:"integer"},elapsed_micros:{format:"uint64",minimum:0,type:"integer"},units_consumed:{format:"uint64",minimum:0,type:"integer"}},required:["units_consumed","bytes_consumed","elapsed_micros"],type:"object"},_L={additionalProperties:!1,description:"Canonical operation evidence. An admitted failure remains represented here\nrather than being replaced by a transport exception.",properties:{budget:{$ref:"#/$defs/OperationBudgetUsage"},cancellation:{anyOf:[{$ref:"#/$defs/CancellationObservation"},{type:"null"}]},effective_deadline:{$ref:"#/$defs/Deadline"},ended_at:{$ref:"#/$defs/UtcMicros"},started_at:{$ref:"#/$defs/UtcMicros"},termination:{$ref:"#/$defs/OperationTermination"}},required:["started_at","ended_at","effective_deadline","budget","termination"],type:"object"},_U={description:"Terminal state after an operation has been admitted.",enum:["completed","cancelled","timed_out","failed","unavailable","partial","effect_unknown"],type:"string"},_H={additionalProperties:!1,description:"Bounded opaque page request. Resume authorization occurs before an adapter\ndecodes or hydrates the cursor.",properties:{cursor:{description:"Opaque resume token. The identifier type is deliberately absent from the\ngenerated schema surface, so the public wire form is its bounded string.",type:["string","null"]},page_size:{format:"uint32",minimum:0,type:"integer"}},required:["page_size"],type:"object"},_G={properties:{baseline_build:{type:["string","null"]},candidate_build:{type:["string","null"]},configuration:{type:["string","null"]},corpus:{type:["string","null"]},coverage:{$ref:"#/$defs/MetricCoverageV1"},disposition:{$ref:"#/$defs/ComparisonDispositionV1"},eligible_outcomes:{format:"uint64",minimum:0,type:["integer","null"]},environment:{type:["string","null"]},oracle:{type:["string","null"]},paired_outcomes:{format:"uint64",minimum:0,type:["integer","null"]},platform:{type:["string","null"]},regression_observed:{type:["boolean","null"]},rollback_profile:{type:["string","null"]},unavailable_reason:{type:["string","null"]},workload:{type:["string","null"]}},required:["disposition","coverage"],type:"object"},_B={oneOf:[{enum:["brief"],type:"string"},{const:"symbols",description:"Exact changed-symbol enumeration, with its existing continuation cursor.",type:"string"}]},_K={description:"Whether the served code generation is known current at serve time.",enum:["fresh","possibly_stale"],type:"string"},_J={additionalProperties:!1,description:"The indexing state behind a `possibly_stale` verdict: the served\ngeneration, the scheduler's latest sealed generation, its staleness-ladder\nstate, and the lanes that answered from an older generation. `summary` is\nthe one-line rendering agents read.",properties:{latest_generation:{type:["string","null"]},parked:{anyOf:[{$ref:"#/$defs/CodeIndexConvergenceParkedV1"},{type:"null"}],description:"The park holding convergence until the operator applies its remedy.\nNo wake retries it, so repeating the request cannot change the answer."},reason:{type:["string","null"]},rebuild_in_flight:{type:["boolean","null"]},served_generation:{type:["string","null"]},stale_lanes:{items:{type:"string"},type:"array"},staleness_state:{anyOf:[{$ref:"#/$defs/CodeIndexStalenessStateV1"},{type:"null"}]},summary:{type:"string"}},required:["summary"],type:"object"},_Z={enum:["complete"],type:"string"},_Q={additionalProperties:!1,properties:{freshness:{anyOf:[{$ref:"#/$defs/PrimitiveSearchFreshnessV1"},{type:"null"}],description:"The worktree verdict a served graph read opens with."},message:{type:"string"},node_id:{type:"string"},reason_code:{type:"string"},status:{type:"string"},suggestions:{description:"Nearest served symbols by edit distance to the requested id, by id,\nsimple name, or qualified name.",items:{$ref:"#/$defs/PrimitiveSymbolLocationV1"},type:"array"}},required:["status","reason_code","node_id","message"],type:"object"},_X={enum:["full","partial"],type:"string"},_Y={additionalProperties:!1,description:"Freshness verdict carried by every search and context response. `indexing`\nis present exactly when the state is `possibly_stale`.",properties:{indexing:{anyOf:[{$ref:"#/$defs/PrimitiveIndexingStateV1"},{type:"null"}]},state:{$ref:"#/$defs/PrimitiveFreshnessStateV1"}},required:["state"],type:"object"},_1={additionalProperties:!1,properties:{language:{type:["string","null"]},provider:{type:["string","null"]},reason:{type:"string"}},required:["reason"],type:"object"},_0={additionalProperties:!1,properties:{end_line:{format:"uint32",minimum:0,type:"integer"},file:{type:"string"},kind:{type:"string"},name:{type:"string"},node_id:{type:"string"},qualified_name:{type:"string"},start_line:{format:"uint32",minimum:0,type:"integer"},unavailable_fields:{items:{type:"string"},type:"array"}},required:["node_id","name","qualified_name","kind","file","start_line","end_line","unavailable_fields"],type:"object"},_2={additionalProperties:!1,properties:{detail:{type:"string"},reason_code:{type:"string"},retryable:{type:"boolean"},status:{$ref:"#/$defs/PrimitiveUnavailableStatusV1"}},required:["status","reason_code","retryable","detail"],type:"object"},_4={enum:["unavailable"],type:"string"},_6={description:"Strongly typed canonical identity: `ProjectId`.",type:"string"},_3={properties:{alias_count:{format:"uint",minimum:0,type:"integer"},artifact_count:{format:"uint",minimum:0,type:"integer"},branches:{items:{type:"string"},type:"array"},canonical_root:{type:"string"},default_branch:{description:"Repository default branch recorded at registration.",type:["string","null"]},head_branch:{description:"Branch the checkout's HEAD names now; `None` when HEAD is detached or\nno checkout of this project could be read.",type:["string","null"]},is_active:{type:["boolean","null"]},kind:{type:"string"},label:{type:"string"},last_seen_at:{format:"int64",type:"integer"},project_id:{type:"string"},project_root:{type:"string"},store_count:{format:"uint",minimum:0,type:"integer"}},required:["project_id","label","project_root","canonical_root","kind","branches","store_count","artifact_count","alias_count","last_seen_at"],type:"object"},_9={properties:{project_count:{format:"uint",minimum:0,type:"integer"},repo_count:{format:"uint",minimum:0,type:"integer"},truncated:{type:"boolean"}},required:["project_count","repo_count","truncated"],type:"object"},_5={properties:{branches:{items:{type:"string"},type:"array"},git_common_dir:{type:["string","null"]},label:{type:"string"},project_count:{format:"uint",minimum:0,type:"integer"},projects:{items:{$ref:"#/$defs/ProjectRegistryEntry"},type:"array"}},required:["label","project_count","branches","projects"],type:"object"},_8={description:"Strongly typed canonical identity: `ProjectionGenerationId`.",type:"string"},_7={description:"Strongly typed canonical identity: `ProposalId`.",type:"string"},ve={enum:["reject","require_human_approval_and_independent_review"],type:"string"},vt={additionalProperties:!1,properties:{disposition:{$ref:"#/$defs/ProtectedRefDispositionV1"},selector:{$ref:"#/$defs/ProtectedRefSelectorV1"}},required:["selector","disposition"],type:"object"},vr={oneOf:[{properties:{kind:{const:"native_default_branch",type:"string"}},required:["kind"],type:"object"},{properties:{kind:{const:"exact",type:"string"},value:{$ref:"#/$defs/CanonicalGitRefNameV1"}},required:["kind","value"],type:"object"},{properties:{kind:{const:"prefix",type:"string"},value:{$ref:"#/$defs/CanonicalGitRefPrefix"}},required:["kind","value"],type:"object"}]},vi={description:"Strongly typed canonical identity: `ProvenanceId`.",type:"string"},vo={description:"Complete provider states remain distinct. Empty findings are clean only\nwhen every requested provider completed with complete supported coverage.",enum:["supported_completed_complete","unsupported","absent","indexing","stale","cancelled","timed_out","failed","partial","unavailable"],type:"string"},vn={description:"Strongly typed canonical identity: `ProviderId`.",type:"string"},va={description:"One provider/model cohort in the Costs latency read model.\n\nThe percentile cells are ordinary canonical metrics so every value carries\nits exact unit, horizon, denominator, coverage/censoring, and projector\nprovenance. Identity provenance is kept separately because latency is\nmeasured by `OperationResourceObservedV1`, while provider/model identity\nmay be joined from an exact `ProviderUsageObservationV1` request/session.",properties:{first_progress:{$ref:"#/$defs/LatencyDistributionReadModelV1"},identity_provenance:{$ref:"#/$defs/MetricProvenanceV1"},identity_unavailable_reason:{type:["string","null"]},model:{type:["string","null"]},provider:{type:["string","null"]},queue:{$ref:"#/$defs/LatencyDistributionReadModelV1"},service:{$ref:"#/$defs/LatencyDistributionReadModelV1"},start:{$ref:"#/$defs/LatencyDistributionReadModelV1"},terminal:{$ref:"#/$defs/LatencyDistributionReadModelV1"}},required:["identity_provenance","queue","start","first_progress","service","terminal"],type:"object"},vs={properties:{canonical_root:{type:"string"},created_at:{format:"int64",type:"integer"},default_branch:{description:"Repository default branch recorded at registration.",type:["string","null"]},display_root:{type:"string"},git_common_dir:{type:["string","null"]},head_branch:{description:"Branch the checkout's HEAD names now; `None` when HEAD is detached or\nno checkout of this project could be read.",type:["string","null"]},is_active:{type:["boolean","null"]},label:{type:"string"},last_seen_at:{format:"int64",type:"integer"},project_id:{type:"string"},project_root:{type:"string"}},required:["project_id","label","project_root","display_root","canonical_root","created_at","last_seen_at"],type:"object"},vd={enum:["owner_receipt","locally_measured","estimated","unknown"],type:"string"},vc={description:"Strongly typed canonical identity: `QueryCollectionId`.",type:"string"},vl={description:"Which endpoint of each counted edge the rank report ranks.",enum:["incoming","outgoing"],type:"string"},vp={description:"Relationship the rank report counts.",enum:["implements","extends","calls","uses","contains","annotates","type_of","returns","receives"],type:"string"},vu={additionalProperties:!1,description:"One recorded ranking decision. Explanations are rendered from this\nprovenance, never reconstructed from a final scalar score.",properties:{detail:{type:"string"},evidence_anchor:{anyOf:[{$ref:"#/$defs/RetrievalAnchorId"},{type:"null"}]},kind:{$ref:"#/$defs/RankingDecisionKind"},policy_anchor:{anyOf:[{$ref:"#/$defs/RetrievalAnchorId"},{type:"null"}]},retriever:{anyOf:[{$ref:"#/$defs/RetrieverKind"},{type:"null"}]}},required:["kind","detail"],type:"object"},vm={description:"The decision kinds the pipeline must record.",enum:["exact_tier_admission","same_source_duplicate_collapse","logical_copy_representative_selection","contradiction_preservation","diversity_cap","comparator_provenance","fallback"],type:"string"},vf={description:"Strongly typed canonical identity: `RefId`.",type:"string"},vh={additionalProperties:!1,description:"Exact registered root locator retained with an authorized scope.\n\n`canonical_root` is routing evidence for the already-resolved\n[`ResolvedScope`]. It cannot replace or manufacture that scope identity.",properties:{canonical_root:{type:"string"},profile:{$ref:"#/$defs/SharedProfileStoreLocatorV1"},project_id:{$ref:"#/$defs/ProjectId"}},required:["project_id","profile","canonical_root"],type:"object"},vy={description:"Frequency and rate projection for dispatcher rejected-argument observations.\n\nCounts may be known while `rejection_rate` stays absent: Plan 26 forbids\nfabricating a rate when the eligible-attempt denominator is unknown.",properties:{coverage:{$ref:"#/$defs/MetricCoverageV1"},eligible_attempts:{format:"uint64",minimum:0,type:["integer","null"]},groups:{items:{$ref:"#/$defs/RejectedArgumentGroupV1"},type:"array"},projector_revision:{type:"string"},redacted_name_count:{format:"uint64",minimum:0,type:"integer"},rejected_total:{format:"uint64",minimum:0,type:["integer","null"]},rejection_rate:{format:"double",type:["number","null"]},unavailable_reason:{type:["string","null"]},watermark:{type:"string"}},required:["coverage","projector_revision","watermark","redacted_name_count","groups"],type:"object"},vg={description:"Closed error class for a rejected surface argument.",enum:["missing","invalid_shape","out_of_bounds","unsupported","unauthorized","stale","unknown"],type:"string"},v_={description:"One surface \xd7 operation \xd7 argument \xd7 error-class cell in the rejected-argument view.",properties:{argument:{$ref:"#/$defs/RejectedArgumentNameV1"},count:{format:"uint64",minimum:0,type:"integer"},error_class:{$ref:"#/$defs/RejectedArgumentErrorClassV1"},operation:{type:"string"},rate:{description:"Eligible-attempt rate for this cell. Absent when the attempt\ndenominator or coverage is insufficient.",format:"double",type:["number","null"]},surface:{$ref:"#/$defs/RejectedArgumentSurfaceV1"}},required:["surface","operation","argument","error_class","count"],type:"object"},vv={description:"Normalized rejected-argument name. Raw flags, values, and tokens never\nenter this vocabulary.",enum:["request_body","pagination","request_handle","operation","lifecycle","unknown"],type:"string"},vb={description:"Transport that rejected a surface argument. Unknown preserves missing\nattribution instead of inventing cli/mcp/http.",enum:["cli","mcp","http","unknown"],type:"string"},v$={description:"Strongly typed canonical identity: `RepositoryId`.",type:"string"},vS={oneOf:[{properties:{kind:{const:"all_authorized",type:"string"}},required:["kind"],type:"object"},{properties:{kind:{const:"allowlist",type:"string"},repositories:{items:{$ref:"#/$defs/RepositoryId"},type:"array",uniqueItems:!0}},required:["kind","repositories"],type:"object"}]},vk={enum:["successful_terminal"],type:"string"},vw={additionalProperties:!1,properties:{capability_id:{$ref:"#/$defs/CapabilityId"},expectation:{$ref:"#/$defs/RequiredCheckExpectationV1"},maximum_age_seconds:{format:"uint32",minimum:1,type:"integer"}},required:["capability_id","expectation","maximum_age_seconds"],type:"object"},vP={additionalProperties:!1,description:"The resolved configuration scope is one exact project/repository/worktree root.\n\nPaths, CWDs, labels, and mutable branch spellings are deliberately absent.",properties:{project_id:{$ref:"#/$defs/ProjectId"},reference:{anyOf:[{$ref:"#/$defs/RefId"},{type:"null"}]},repository_id:{$ref:"#/$defs/RepositoryId"},scope_digest:{$ref:"#/$defs/ManifestDigest"},worktree_id:{$ref:"#/$defs/WorktreeId"}},required:["project_id","repository_id","worktree_id","scope_digest"],type:"object"},vV={description:"Bounded output projection chosen by a concrete use case.",enum:["summary","evidence","references_only"],type:"string"},vR={additionalProperties:!1,properties:{code:{type:"string"},kind:{type:["string","null"]},maximum:{format:"uint",minimum:0,type:["integer","null"]},message:{type:"string"},observed:{format:"uint",minimum:0,type:["integer","null"]},reason:{type:["string","null"]},retryable:{type:["boolean","null"]}},required:["code","message"],type:"object"},vq={enum:["aborted","budget_exhausted","busy","cancelled","complete","complete_zero","cursor_manifest_limit_exceeded","deadline_exceeded","deleted","denied","error","failed","joined","locked","not_found","ok","partial","recorded","redacted","running","stale","started","unavailable","unsupported_filter","wrong_scope"],type:"string"},vI={anyOf:[{format:"uint64",minimum:0,type:"integer"},{type:"string"}],description:"The temporal filter intentionally retains the established integer-or-text\nwire form (Unix timestamps, RFC3339, and relative expressions)."},vx={description:"Strongly typed canonical identity: `RetrievalAnchorId`.",type:"string"},vj={description:"Stable semantic ordering; adapters may not replace it with transport order.",enum:["relevance","source_position","temporal_descending","stable_identity"],type:"string"},vC={additionalProperties:!1,properties:{order:{$ref:"#/$defs/RetrievalOrder"},page:{$ref:"#/$defs/PageRequest"},projection:{$ref:"#/$defs/ResultProjection"},temporal:{$ref:"#/$defs/TemporalModeV1"}},required:["temporal","page","projection","order"],type:"object"},vT={description:"Source-role evidence used at lane admission and fusion.\n\nA production definition outranks a test-file hit for the same symbol even\nwhen the test has a higher measured score. Non-definition production hits\ncompete with test hits on measured scores so comments and references do\nnot crowd out relevant tests.",oneOf:[{const:"production_definition",description:"Non-test path whose name or signature matched the query.",type:"string"},{const:"production_other",description:"Non-test path that is not a name or signature definition match.",type:"string"},{const:"test_reference",description:"Hit under a test path.",type:"string"}]},vO={additionalProperties:!1,properties:{backlog:{format:"uint",minimum:0,type:"integer"},blocker:{type:["string","null"]},last_progress_at_unix_micros:{format:"int64",type:["integer","null"]},retry_class:{type:["string","null"]}},required:["backlog"],type:"object"},vE={description:"Runtime-backed retrieval lanes. Each lane is independently testable,\ndisableable, budgeted, and attributable; one lane is never an alias over\nanother.",enum:["exact_literal","lexical","graph","temporal","task_session","diagnostic"],type:"string"},vA={oneOf:[{properties:{kind:{const:"none",type:"string"}},required:["kind"],type:"object"},{properties:{count:{format:"uint16",maximum:65535,minimum:1,type:"integer"},kind:{const:"independent_review_count",type:"string"}},required:["kind","count"],type:"object"},{properties:{kind:{const:"code_owner_and_independent_review",type:"string"}},required:["kind"],type:"object"}]},vW={enum:["no_review","independent_review","standard_pull_requests","git_hub_stacked_pull_requests"],type:"string"},vM={additionalProperties:!1,properties:{allowed:{items:{$ref:"#/$defs/ReviewTopologyKindV1"},type:"array",uniqueItems:!0},github_stacked_prs:{$ref:"#/$defs/GitHubStackedPullRequestPolicyV1"}},required:["allowed","github_stacked_prs"],type:"object"},vN={additionalProperties:!1,description:"Immutable collection and stack revisions for one exact resolved root.",properties:{collection_revision:{$ref:"#/$defs/ManifestDigest"},generation_digest:{$ref:"#/$defs/ManifestDigest"},scope_digest:{$ref:"#/$defs/ManifestDigest"},stack_revision:{$ref:"#/$defs/ManifestDigest"}},required:["scope_digest","collection_revision","stack_revision","generation_digest"],type:"object"},vz={additionalProperties:!1,description:"One typed outcome pinned to the digest of an exact resolved root.",properties:{outcome:{$ref:"#/$defs/ScopeOutcome_for_Nullable_RootGenerationV1"},scope_digest:{$ref:"#/$defs/ManifestDigest"}},required:["scope_digest","outcome"],type:"object"},vD={additionalProperties:!1,description:"One typed outcome pinned to the digest of an exact resolved root.",properties:{outcome:{$ref:"#/$defs/ScopeOutcome_for_Nullable_string"},scope_digest:{$ref:"#/$defs/ManifestDigest"}},required:["scope_digest","outcome"],type:"object"},vF={enum:["allow","deny"],type:"string"},vL={description:"Strongly typed canonical identity: `RunId`.",type:"string"},vU={additionalProperties:!1,properties:{degraded_row:{type:["string","null"]},progress:{anyOf:[{$ref:"#/$defs/SchemaConvergenceProgressV1"},{type:"null"}]},stage:{$ref:"#/$defs/SchemaConvergenceStageV1"},started_at_micros:{format:"int64",type:"integer"},state:{$ref:"#/$defs/SchemaConvergenceStateV1"},store:{type:"string"}},required:["store","stage","state","started_at_micros"],type:"object"},vH={oneOf:[{additionalProperties:!1,properties:{done:{format:"uint64",minimum:0,type:"integer"},remaining:{format:"uint64",minimum:0,type:"integer"},unit:{const:"rows",type:"string"}},required:["unit","done","remaining"],type:"object"},{additionalProperties:!1,properties:{done:{format:"uint64",minimum:0,type:"integer"},remaining:{format:"uint64",minimum:0,type:"integer"},unit:{const:"pages",type:"string"}},required:["unit","done","remaining"],type:"object"}]},vG={enum:["registered_schema"],type:"string"},vB={enum:["pending_schema_migration","released_shape_convergence_in_progress","degraded","completed"],type:"string"},vK={additionalProperties:!1,description:"Restrictive policy input. An allow never grants capabilities absent from\nthe independently authorized capability set passed to the resolver.",properties:{authority:{$ref:"#/$defs/AuthorityRef"},capabilities:{items:{$ref:"#/$defs/CapabilityId"},type:"array",uniqueItems:!0},effect:{$ref:"#/$defs/RuleEffect"},expires_at:{anyOf:[{$ref:"#/$defs/UtcMicros"},{type:"null"}]},rule_id:{$ref:"#/$defs/AccessRuleId"},subject:{$ref:"#/$defs/ScopeAccessSubjectV1"}},required:["rule_id","subject","authority","capabilities","effect"],type:"object"},vJ={additionalProperties:!1,description:"Typed rule selectors. Unset dimensions match all values at that dimension,\nbut at least one dimension must be constrained. Free-form paths, labels,\ncollection names, and branch names are deliberately absent.",properties:{actor:{anyOf:[{$ref:"#/$defs/ActorId"},{type:"null"}]},operation:{anyOf:[{$ref:"#/$defs/ScopeControlOperationV1"},{type:"null"}]},source_kind:{anyOf:[{$ref:"#/$defs/SourceKindV1"},{type:"null"}]}},type:"object"},vZ={enum:["read","source_bind","source_rebind","source_unbind","access_rule_upsert","access_rule_remove","replace_topology_policy","rollback"],type:"string"},vQ={description:"Truthful outcome for one authorized root or an aggregate over roots.\n\n`Denied` and `Unavailable` carry no value and therefore cannot be confused\nwith a successful empty result.",oneOf:[{properties:{outcome:{const:"exact",type:"string"},value:{anyOf:[{$ref:"#/$defs/RootGenerationV1"},{type:"null"}]}},required:["outcome","value"],type:"object"},{properties:{outcome:{const:"partial",type:"string"},value:{properties:{reason:{$ref:"#/$defs/ScopePartialReasonV1"},value:{anyOf:[{$ref:"#/$defs/RootGenerationV1"},{type:"null"}]}},required:["reason"],type:"object"}},required:["outcome","value"],type:"object"},{properties:{outcome:{const:"denied",type:"string"}},required:["outcome"],type:"object"},{properties:{outcome:{const:"unavailable",type:"string"},value:{properties:{reason:{$ref:"#/$defs/ScopeUnavailableReasonV1"}},required:["reason"],type:"object"}},required:["outcome","value"],type:"object"}]},vX={description:"Truthful outcome for one authorized root or an aggregate over roots.\n\n`Denied` and `Unavailable` carry no value and therefore cannot be confused\nwith a successful empty result.",oneOf:[{properties:{outcome:{const:"exact",type:"string"},value:{type:["string","null"]}},required:["outcome","value"],type:"object"},{properties:{outcome:{const:"partial",type:"string"},value:{properties:{reason:{$ref:"#/$defs/ScopePartialReasonV1"},value:{type:["string","null"]}},required:["reason"],type:"object"}},required:["outcome","value"],type:"object"},{properties:{outcome:{const:"denied",type:"string"}},required:["outcome"],type:"object"},{properties:{outcome:{const:"unavailable",type:"string"},value:{properties:{reason:{$ref:"#/$defs/ScopeUnavailableReasonV1"}},required:["reason"],type:"object"}},required:["outcome","value"],type:"object"}]},vY={description:"Typed explanation for a root that returned usable but incomplete data.",enum:["incomplete","stale","budget_exceeded","root_denied","root_unavailable"],type:"string"},v1={description:"Stable identity of one authorized scope-set record.",type:"string"},v0={description:"Monotonic optimistic-concurrency revision of one scope set.",format:"uint64",minimum:1,type:"integer"},v2={additionalProperties:!1,description:"A source-to-authority binding. It stores only the source kind, a redacted\nlocator digest, and the pre-resolved authority reference.",properties:{authority:{$ref:"#/$defs/AuthorityRef"},binding_id:{$ref:"#/$defs/SourceBindingId"},source_kind:{$ref:"#/$defs/SourceKindV1"},source_locator_digest:{$ref:"#/$defs/LocatorDigest"}},required:["binding_id","source_kind","source_locator_digest","authority"],type:"object"},v4={description:"Typed explanation for a root that could not return usable data.",enum:["authority_unavailable","root_missing","store_unavailable"],type:"string"},v6={description:"Strongly typed canonical identity: `ScoreDomainId`.",type:"string"},v3={additionalProperties:!1,description:"Reference-only filesystem locator. The raw path is sealed outside this\ncontract; only the privacy-bound locator digest and sealed-value digest are\nrepresentable here.",properties:{locator_digest:{$ref:"#/$defs/LocatorDigest"},sealed_value_digest:{$ref:"#/$defs/ManifestDigest"}},required:["locator_digest","sealed_value_digest"],type:"object"},v9={additionalProperties:!1,properties:{knowledge:{$ref:"#/$defs/ClosedUtcIntervalV1"},valid:{$ref:"#/$defs/ValidCoverageIntervalV1"}},required:["knowledge","valid"],type:"object"},v5={oneOf:[{properties:{kind:{const:"caught_up",type:"string"}},required:["kind"],type:"object"},{properties:{kind:{const:"projection_behind_source",type:"string"},lag:{format:"uint64",minimum:0,type:"integer"}},required:["kind","lag"],type:"object"},{properties:{kind:{const:"source_behind_target",type:"string"},lag:{format:"uint64",minimum:0,type:"integer"}},required:["kind","lag"],type:"object"},{properties:{kind:{const:"projection_and_source_behind",type:"string"},projection_lag:{format:"uint64",minimum:0,type:"integer"},source_lag:{format:"uint64",minimum:0,type:"integer"}},required:["kind","projection_lag","source_lag"],type:"object"},{properties:{kind:{const:"locked",type:"string"}},required:["kind"],type:"object"},{properties:{kind:{const:"redacted",type:"string"}},required:["kind"],type:"object"},{properties:{kind:{const:"retention_withheld",type:"string"}},required:["kind"],type:"object"},{properties:{kind:{const:"unavailable",type:"string"}},required:["kind"],type:"object"}]},v8={additionalProperties:!1,properties:{mode:{$ref:"#/$defs/TemporalModeV1"}},required:["mode"],type:"object"},v7={enum:["fresh","stale","partial","locked","redacted","retention_withheld","unavailable"],type:"string"},be={description:"Strongly typed canonical identity: `SessionId`.",type:"string"},bt={description:"Strongly typed canonical identity: `SessionOrThreadId`.",type:"string"},br={additionalProperties:!1,properties:{committed_through:{format:"uint64",minimum:0,type:"integer"},observed_through:{format:"uint64",minimum:0,type:"integer"}},required:["observed_through","committed_through"],type:"object"},bi={additionalProperties:!1,properties:{committed_batches:{format:"uint64",minimum:0,type:"integer"},committed_records:{format:"uint64",minimum:0,type:"integer"},coverage:{$ref:"#/$defs/TemporalCoverageV1"},frontier:{$ref:"#/$defs/SessionRefreshFrontierResultV1"},operation_id:{type:"string"},session_id:{type:"string"},source_coverage:{items:{$ref:"#/$defs/SessionSourceCoverageV1"},type:"array"},updated_at:{format:"int64",type:"integer"}},required:["operation_id","session_id","frontier","coverage","committed_batches","committed_records","updated_at"],type:"object"},bo={additionalProperties:!1,properties:{coverage:{$ref:"#/$defs/TemporalCoverageV1"},failure_code:{type:["string","null"]},frontier:{$ref:"#/$defs/SessionRefreshFrontierResultV1"},operation_id:{type:"string"},session_id:{type:"string"},source_coverage:{items:{$ref:"#/$defs/SessionSourceCoverageV1"},type:"array"},state:{$ref:"#/$defs/SessionRefreshTerminalStateResultV1"},terminal_at:{format:"int64",type:"integer"}},required:["operation_id","session_id","frontier","coverage","state","terminal_at"],type:"object"},bn={enum:["complete","failed","cancelled"],type:"string"},ba={description:"Structural budget boundary that rejected a session retrieval request.\nThese causes are non-retryable request corrections; concurrent permit or\nqueue pressure remains a separate capacity-saturation failure.",enum:["request_result_limit","request_hydration_limit","request_context_bytes","request_candidate_bytes","request_record_bytes","request_hydration_bytes","estimator_version_mismatch","execution_work_exhausted","candidate_read_exhausted","record_read_exhausted","kernel_result_limit","participant_manifest_participants","participant_manifest_canonical_bytes","cursor_manifest_limit","hydration_bytes","context_bytes","context_tokens"],type:"string"},bs={additionalProperties:!1,properties:{committed_frontier:{format:"uint64",minimum:0,type:"integer"},covered_intervals:{items:{$ref:"#/$defs/SessionCoverageIntervalV1"},type:"array"},missing_intervals:{items:{$ref:"#/$defs/SessionCoverageIntervalV1"},type:"array"},observed_frontier:{format:"uint64",minimum:0,type:"integer"},reason:{$ref:"#/$defs/SessionCoverageReasonV1"},request:{$ref:"#/$defs/SessionCoverageRequestV1"},source_id:{type:"string"},state:{$ref:"#/$defs/SessionCoverageStateV1"},target_watermark:{format:"uint64",minimum:0,type:"integer"}},required:["source_id","observed_frontier","committed_frontier","target_watermark","request","covered_intervals","missing_intervals","state","reason"],type:"object"},bd={description:"Typed configuration key. Keys are lowercase, dotted product identifiers;\nuntyped host/adapter keys are not representable.",type:"string"},bc={additionalProperties:!1,description:"Logical and verified physical identity of the shared Profile shard.\n\nBrain and profile IDs select the shard; the verified store locator binds its\nphysical store. Lease incarnations and authority epochs remain runtime fences.",properties:{brain_id:{$ref:"#/$defs/BrainId"},profile_id:{$ref:"#/$defs/UserProfileId"},store_id:{type:"string"}},required:["brain_id","profile_id","store_id"],type:"object"},bl={additionalProperties:!1,properties:{complete:{type:"boolean"},family_digest:{$ref:"#/$defs/ManifestDigest"},match_class:{$ref:"#/$defs/SimilarMatchClassV1"},member_count:{format:"uint",minimum:0,type:"integer"},members:{items:{$ref:"#/$defs/SimilarOccurrenceV1"},type:"array"},next_cursor:{type:["string","null"]},normalization_revision:{format:"uint16",maximum:65535,minimum:0,type:"integer"},representative_payload_digest:{$ref:"#/$defs/ManifestDigest"}},required:["match_class","normalization_revision","family_digest","representative_payload_digest","member_count","members","complete"],type:"object"},bp={enum:["conservative_exact","rename_normalized_exact"],type:"string"},bu={additionalProperties:!1,properties:{body_span:{$ref:"#/$defs/SourceSpan"},path:{type:"string"},project_id:{$ref:"#/$defs/ProjectId"},repository_id:{$ref:"#/$defs/RepositoryId"},snapshot_digest:{$ref:"#/$defs/ManifestDigest"},source_generation:{$ref:"#/$defs/CodeGenerationId"},symbol_occurrence_id:{$ref:"#/$defs/SymbolOccurrenceId"},worktree_id:{anyOf:[{$ref:"#/$defs/WorktreeId"},{type:"null"}]}},required:["project_id","repository_id","source_generation","snapshot_digest","symbol_occurrence_id","path","body_span"],type:"object"},bm={properties:{evidence:{default:[],items:{type:"string"},type:"array"},improvement:{type:"boolean"},priority:{type:"string"},reason:{type:"string"},recommendation:{type:"string"},skill_id:{type:"string"}},required:["skill_id","improvement","recommendation","reason","priority"],type:"object"},bf={enum:["cursor","codex","claude","agents","opencode","kimi","kiro","hermes"],type:"string"},bh={properties:{evidence:{default:[],items:{type:"string"},type:"array"},reason:{type:"string"},recommendation:{type:"string"},skill_id:{type:"string"},stale:{type:"boolean"}},required:["skill_id","stale","recommendation","reason"],type:"object"},by={description:"One skill's durable usage counters. The ledger stores one per skill; a\nsummary is the same record merged with the skill's current metadata.",properties:{activated_at:{description:"When the skill last transitioned into the active state; mirrors the\nmanaged skill metadata so outcome scoring works from summaries alone.",format:"int64",type:["integer","null"]},category:{type:["string","null"]},created_by:{type:["string","null"]},first_seen_at:{format:"int64",type:"integer"},imported_analytics_events:{description:"Import keys that already counted toward this skill. They are not a\nstore-wide set: each key names this skill, so another skill must not\nshare the write.",items:{type:"string"},type:"array",uniqueItems:!0},last_activity_at:{format:"int64",type:"integer"},last_patched_at:{format:"int64",type:["integer","null"]},last_used_at:{format:"int64",type:["integer","null"]},last_viewed_at:{format:"int64",type:["integer","null"]},patch_count:{format:"uint64",minimum:0,type:"integer"},pinned:{type:"boolean"},provenance_source:{anyOf:[{$ref:"#/$defs/ManagedSkillSource"},{type:"null"}]},schema_version:{format:"uint32",minimum:0,type:"integer"},skill_id:{type:"string"},state:{anyOf:[{$ref:"#/$defs/ManagedSkillState"},{type:"null"}]},targets:{default:[],items:{type:"string"},type:"array"},title:{type:["string","null"]},use_count:{format:"uint64",minimum:0,type:"integer"},use_count_at_activation:{format:"uint64",minimum:0,type:["integer","null"]},view_count:{format:"uint64",minimum:0,type:"integer"},view_count_at_activation:{description:"View/use totals captured at activation time so activity since activation\nis an exact delta rather than a heuristic.",format:"uint64",minimum:0,type:["integer","null"]}},required:["schema_version","skill_id","pinned","view_count","use_count","patch_count","first_seen_at","last_activity_at"],type:"object"},bg={description:"Strongly typed canonical identity: `SourceBindingId`.",type:"string"},b_={additionalProperties:!1,description:"Source freshness is source- and retriever-specific: there is no global\nage-decay multiplier. Missing, stale, incompatible, and current are\ndistinct states.",properties:{compatibility:{$ref:"#/$defs/FreshnessCompatibilityV1"},generation_lag:{format:"uint64",minimum:0,type:["integer","null"]},observed_at:{$ref:"#/$defs/UtcMicros"},policy_revision:{$ref:"#/$defs/ComponentRevision"},projection_watermark:{format:"uint64",minimum:0,type:["integer","null"]},source_generation:{format:"uint64",minimum:0,type:["integer","null"]},source_instance:{$ref:"#/$defs/SourceInstanceKey"},source_namespace:{$ref:"#/$defs/SourceNamespace"},source_watermark:{format:"uint64",minimum:0,type:["integer","null"]}},required:["source_namespace","source_instance","observed_at","compatibility","policy_revision"],type:"object"},bv={description:"Strongly typed canonical identity: `SourceInstanceKey`.",type:"string"},bb={enum:["claude","codex","cursor","git_hub","hermes","kiro"],type:"string"},b$={description:"Strongly typed canonical identity: `SourceNamespace`.",type:"string"},bS={description:"Strongly typed canonical identity: `SourceOccurrenceId`.",type:"string"},bk={additionalProperties:!1,description:"Byte range inside one sanitized source file. Mutable line numbers are\nnever part of identity.",properties:{end_byte:{format:"uint64",minimum:0,type:"integer"},start_byte:{format:"uint64",minimum:0,type:"integer"}},required:["start_byte","end_byte"],type:"object"},bw={description:"Strongly typed canonical identity: `SourceStoreId`.",type:"string"},bP={description:"Strongly typed canonical identity: `StackDeliveryWatermarkId`.",type:"string"},bV={description:"Strongly typed canonical identity: `StackNodeId`.",type:"string"},bR={description:"Strongly typed canonical identity: `StackSignalId`.",type:"string"},bq={additionalProperties:!1,description:"Exact base/head symbol comparison was unavailable; the git evidence beside\nit is still the answer.",properties:{reason:{type:"string"},retryable:{type:"boolean"},status:{$ref:"#/$defs/GitReadUnavailableV1"}},required:["status","reason","retryable"],type:"object"},bI={additionalProperties:!1,description:"Optional narrowing inside the immutable project/repository/worktree scope\ncarried by [`RequestContext`]. A path prefix never establishes identity or\nauthorization.",properties:{path_prefix:{type:["string","null"]}},type:"object"},bx={description:"Strongly typed canonical identity: `SymbolOccurrenceId`.",type:"string"},bj={additionalProperties:!1,properties:{end_line:{format:"uint32",minimum:0,type:"integer"},file:{type:"string"},is_async:{type:"boolean"},kind:{type:"string"},line:{description:"One-based user-facing line.",format:"uint32",minimum:0,type:"integer"},name:{type:"string"},node_id:{type:"string"},qualified_name:{type:"string"},score:{format:"double",type:["number","null"]},signature:{type:["string","null"]}},required:["node_id","name","qualified_name","kind","file","line","end_line","is_async"],type:"object"},bC={additionalProperties:!1,properties:{depth:{format:"uint32",minimum:0,type:["integer","null"]},dispatch_from:{type:["string","null"]},dispatch_via_trait:{type:"boolean"},edge_kind:{type:"string"},symbol:{$ref:"#/$defs/SymbolPrimitiveRecord"}},required:["symbol","edge_kind","dispatch_via_trait"],type:"object"},bT={additionalProperties:!1,properties:{anchor_id:{$ref:"#/$defs/RetrievalAnchorId"},evidence_digest:{$ref:"#/$defs/ManifestDigest"},link_id:{type:"string"},observed_at:{$ref:"#/$defs/UtcMicros"},revision:{format:"uint64",minimum:0,type:"integer"},task_id:{$ref:"#/$defs/TaskId"}},required:["link_id","revision","task_id","anchor_id","evidence_digest","observed_at"],type:"object"},bO={additionalProperties:!1,properties:{definition_id:{$ref:"#/$defs/WorkflowDefinitionId"},definition_version:{format:"uint64",minimum:1,type:"integer"},from_actor_id:{$ref:"#/$defs/ActorId"},project_id:{$ref:"#/$defs/ProjectId"},repository_id:{$ref:"#/$defs/RepositoryId"},run_id:{$ref:"#/$defs/RunId"},step_id:{$ref:"#/$defs/WorkflowStepId"},task_id:{$ref:"#/$defs/TaskId"},thread_id:{$ref:"#/$defs/ThreadId"},to_actor_id:{$ref:"#/$defs/ActorId"},worktree_id:{$ref:"#/$defs/WorktreeId"}},required:["project_id","repository_id","worktree_id","definition_id","definition_version","step_id","task_id","thread_id","run_id","from_actor_id","to_actor_id"],type:"object"},bE={description:"Strongly typed canonical identity: `TaskId`.",type:"string"},bA={additionalProperties:!1,properties:{hidden:{format:"uint64",minimum:0,type:"integer"},redacted:{format:"uint64",minimum:0,type:"integer"},unknown:{format:"uint64",minimum:0,type:"integer"},visible:{format:"uint64",minimum:0,type:"integer"}},required:["visible","hidden","unknown","redacted"],type:"object"},bW={additionalProperties:!1,properties:{anchor:{type:"string"},summary:{type:"string"}},required:["anchor","summary"],type:"object"},bM={oneOf:[{properties:{state:{const:"fresh",type:"string"}},required:["state"],type:"object"},{properties:{generation_lag:{format:"uint64",minimum:0,type:"integer"},state:{const:"stored",type:"string"}},required:["state","generation_lag"],type:"object"},{properties:{generation_lag:{format:"uint64",minimum:0,type:"integer"},state:{const:"partial",type:"string"}},required:["state","generation_lag"],type:"object"}]},bN={description:"Requested temporal interpretation.",oneOf:[{additionalProperties:!1,properties:{kind:{const:"current",type:"string"}},required:["kind"],type:"object"},{additionalProperties:!1,properties:{cutoff:{$ref:"#/$defs/UtcMicros"},kind:{const:"as_of",type:"string"}},required:["kind","cutoff"],type:"object"},{additionalProperties:!1,properties:{kind:{const:"evolution",type:"string"}},required:["kind"],type:"object"},{additionalProperties:!1,properties:{kind:{const:"forensic",type:"string"}},required:["kind"],type:"object"}]},bz={additionalProperties:!1,properties:{anchor:{type:"string"},rank:{format:"uint32",minimum:0,type:"integer"},reason:{$ref:"#/$defs/HydrationStateResultV1"}},required:["rank","anchor","reason"],type:"object"},bD={additionalProperties:!1,properties:{generation:{format:"uint64",minimum:0,type:"integer"},index:{format:"uint64",minimum:0,type:"integer"},projection:{format:"uint64",minimum:0,type:"integer"},source:{format:"uint64",minimum:0,type:"integer"},summary:{format:"uint64",minimum:0,type:"integer"}},required:["generation","source","projection","index","summary"],type:"object"},bF={description:"Strongly typed canonical identity: `ThreadId`.",type:"string"},bL={additionalProperties:!1,description:"What a token budget did to an answer. `est_tokens` is the kept rows.\n`over_ceiling` means a single row was larger than its section quota and\nwas kept anyway.",properties:{budget_tokens:{format:"uint32",minimum:0,type:"integer"},est_tokens:{format:"uint32",minimum:0,type:"integer"},over_ceiling:{type:"boolean"},sections:{items:{$ref:"#/$defs/TokenBudgetSectionV1"},type:"array"}},required:["budget_tokens","est_tokens","over_ceiling","sections"],type:"object"},bU={additionalProperties:!1,description:"One section a token budget kept or cut.",properties:{section:{type:"string"},shown:{format:"uint32",minimum:0,type:"integer"},total:{format:"uint32",minimum:0,type:"integer"}},required:["section","total","shown"],type:"object"},bH={additionalProperties:!1,properties:{maximum_active_per_repository:{format:"uint16",maximum:65535,minimum:1,type:"integer"},maximum_global_active:{format:"uint16",maximum:65535,minimum:1,type:"integer"},maximum_parallel_per_task:{format:"uint16",maximum:65535,minimum:1,type:"integer"},maximum_stack_depth:{format:"uint16",maximum:65535,minimum:1,type:"integer"}},required:["maximum_active_per_repository","maximum_parallel_per_task","maximum_global_active","maximum_stack_depth"],type:"object"},bG={enum:["reject","require_explicit_human_approval","require_human_approval_and_independent_review"],type:"string"},bB={additionalProperties:!1,properties:{cleanliness:{$ref:"#/$defs/WorktreeCleanlinessRequirementV1"},maximum_preflight_age_seconds:{format:"uint32",minimum:1,type:"integer"},require_fresh_preflight:{type:"boolean"},review:{$ref:"#/$defs/ReviewRequirementV1"},tests:{items:{$ref:"#/$defs/RequiredCheckV1"},type:"array"}},required:["cleanliness","tests","review","require_fresh_preflight","maximum_preflight_age_seconds"],type:"object"},bK={enum:["critical_only","lifecycle","verbose"],type:"string"},bJ={description:"Risky construct the pattern scan looks for.",enum:["unwrap","expect","panic","todo","unimplemented","unsafe_block"],type:"string"},bZ={description:"Stable, canonical catalog identity for `UseCaseId`.",type:"string"},bQ={description:"Strongly typed canonical identity: `UserProfileId`.",type:"string"},bX={description:"UTC timestamp represented as microseconds from the Unix epoch.",format:"int64",type:"integer"},bY={oneOf:[{properties:{interval:{$ref:"#/$defs/ClosedUtcIntervalV1"},kind:{const:"known",type:"string"}},required:["kind","interval"],type:"object"},{properties:{kind:{const:"unknown",type:"string"}},required:["kind"],type:"object"}]},b1={additionalProperties:!1,description:"One exact verified graph snapshot identity.",properties:{event_sequence:{format:"uint64",minimum:0,type:"integer"},graph_version:{format:"uint64",minimum:0,type:"integer"},recovered_graph_digest:{$ref:"#/$defs/ManifestDigest"},source_watermark:{additionalProperties:{format:"uint64",minimum:0,type:"integer"},type:"object"}},required:["graph_version","event_sequence","source_watermark","recovered_graph_digest"],type:"object"},b0={additionalProperties:!1,properties:{criterion_id:{type:"string"},description:{type:"string"},evidence_required:{type:"boolean"}},required:["criterion_id","description","evidence_required"],type:"object"},b2={enum:["never","on_request"],type:"string"},b4={description:"Strongly typed canonical identity: `WorkArtifactId`.",type:"string"},b6={additionalProperties:!1,properties:{artifact_id:{$ref:"#/$defs/WorkArtifactId"},byte_length:{format:"uint64",minimum:0,type:"integer"},digest:{$ref:"#/$defs/ManifestDigest"}},required:["artifact_id","digest","byte_length"],type:"object"},b3={additionalProperties:!1,description:"Sealed terminal evidence for one provider attempt. The digest of this\nrecord is the evidence digest carried by [`WorkTerminalEvidenceV1`] and by\nthe `RuntimeEvidenceRef` attached to the Work projection, so the receipt\nin Work always names an inspectable record.",properties:{actual_route:{anyOf:[{$ref:"#/$defs/WorkProviderRouteV1"},{type:"null"}]},identity:{$ref:"#/$defs/WorkAttemptIdentityV1"},observed_at:{$ref:"#/$defs/UtcMicros"},outcome:{$ref:"#/$defs/WorkAttemptProviderOutcomeV1"},provider_fallback:{anyOf:[{$ref:"#/$defs/WorkProviderFallbackRecordV1"},{type:"null"}],description:"Present only when the pinned preferred backend was disqualified before\nstartup. `None` means the attempt ran on its first-choice backend."},provider_session:{anyOf:[{$ref:"#/$defs/ObservationSourceIdentityV1"},{type:"null"}],description:"Native provider-qualified session/thread identity, when the provider\nreported one. Admission cannot supply this value and no fallback is\nfabricated."},requested_route:{$ref:"#/$defs/WorkProviderRouteV1"},stderr:{anyOf:[{$ref:"#/$defs/WorkAttemptStreamSummaryV1"},{type:"null"}]},stdout:{anyOf:[{$ref:"#/$defs/WorkAttemptStreamSummaryV1"},{type:"null"}]}},required:["identity","requested_route","outcome","observed_at"],type:"object"},b9={additionalProperties:!1,properties:{attempt_id:{$ref:"#/$defs/AttemptId"},run_id:{$ref:"#/$defs/RunId"},task_id:{$ref:"#/$defs/TaskId"}},required:["task_id","run_id","attempt_id"],type:"object"},b5={description:"How much of the authorized attempt set one page covers.",oneOf:[{additionalProperties:!1,description:"Every attempt after the page start was returned; zero returned is the\nexplicit empty authorized result, not a concealment.",properties:{coverage:{const:"complete",type:"string"},returned:{format:"uint32",minimum:0,type:"integer"}},required:["coverage","returned"],type:"object"},{additionalProperties:!1,description:"The page cap was reached; `resume` continues under the same verified\ntopology generation.",properties:{coverage:{const:"capped",type:"string"},remaining:{format:"uint32",minimum:0,type:"integer"},resume:{$ref:"#/$defs/WorkAttemptListCursorV1"},returned:{format:"uint32",minimum:0,type:"integer"}},required:["coverage","returned","remaining","resume"],type:"object"}]},b8={description:"Opaque resume point for the next page of one attempt-list-family read,\nbound to the operation and `page_size` that minted it and pinned to the\nverified topology generation the page was read under.",type:"string"},b7={additionalProperties:!1,properties:{completed:{format:"uint64",minimum:0,type:"integer"},total:{format:"uint64",minimum:0,type:"integer"}},required:["completed","total"],type:"object"},$e={additionalProperties:!1,properties:{accepted_proposal:{$ref:"#/$defs/ProposalId",description:"Exact accepted proposal the attempt was admitted against. A superseded\nor cleared proposal is a different binding, not a compatible refresh."},event_sequence:{description:"Exact immutable product event that verified this graph version.",format:"uint64",minimum:0,type:"integer"},graph_version:{format:"uint64",minimum:0,type:"integer"},recovered_graph_digest:{$ref:"#/$defs/ManifestDigest",description:"Digest of the graph recovered and verified at admission."},source_watermark:{additionalProperties:{format:"uint64",minimum:0,type:"integer"},description:"Source-frontier identity preserved from the verified product graph.",type:"object"}},required:["graph_version","event_sequence","source_watermark","recovered_graph_digest","accepted_proposal"],type:"object"},$t={description:"How one provider attempt ended, as observed by the daemon runtime.",oneOf:[{properties:{code:{format:"int32",type:"integer"},outcome:{const:"exited",type:"string"}},required:["outcome","code"],type:"object"},{properties:{outcome:{const:"signalled",type:"string"},signal:{format:"int32",type:"integer"}},required:["outcome","signal"],type:"object"},{properties:{outcome:{const:"timed_out",type:"string"}},required:["outcome"],type:"object"},{properties:{outcome:{const:"cancelled",type:"string"}},required:["outcome"],type:"object"},{properties:{outcome:{const:"provider_unavailable",type:"string"},state:{$ref:"#/$defs/WorkProviderAvailabilityV1"}},required:["outcome","state"],type:"object"},{properties:{channel:{$ref:"#/$defs/WorkAttemptStreamChannelV1"},outcome:{const:"stream_overflow",type:"string"}},required:["outcome","channel"],type:"object"},{properties:{outcome:{const:"launch_failed",type:"string"}},required:["outcome"],type:"object"},{description:"The provider started but its typed protocol session did not reach a\nterminal answer: a malformed, out-of-order, oversized, or lost frame.\nPlan 32 requires such a stream to seal failed evidence rather than a\ntext-scraped success.",properties:{outcome:{const:"protocol_failed",type:"string"}},required:["outcome"],type:"object"}]},$r={additionalProperties:!1,properties:{artifacts:{items:{$ref:"#/$defs/WorkArtifactRefV1"},type:"array"},evidence:{anyOf:[{$ref:"#/$defs/WorkAttemptEvidenceRecordV1"},{type:"null"}]},identity:{$ref:"#/$defs/WorkAttemptIdentityV1"}},required:["identity","artifacts"],type:"object"},$i={enum:["leased","running","cancellation_requested","cancellation_acknowledged","cancellation_escalated","recovery_required","succeeded","failed","timed_out","cancelled"],type:"string"},$o={enum:["stdout","stderr"],type:"string"},$n={additionalProperties:!1,description:"Bounded summary of one captured provider stream.",properties:{byte_length:{format:"uint64",minimum:0,type:"integer"},digest:{$ref:"#/$defs/ManifestDigest"},truncated:{type:"boolean"}},required:["byte_length","truncated","digest"],type:"object"},$a={additionalProperties:!1,description:"The verified Work topology snapshot one attempt-list page was read under.",properties:{generation:{description:"The verified graph generation the topology snapshot is published under.",type:"string"},task_count:{description:"The number of tasks in the verified topology.",format:"uint32",minimum:0,type:"integer"}},required:["generation","task_count"],type:"object"},$s={properties:{actual_route:{anyOf:[{$ref:"#/$defs/WorkProviderRouteV1"},{type:"null"}]},artifacts:{items:{$ref:"#/$defs/WorkArtifactRefV1"},type:"array"},cancellation:{$ref:"#/$defs/WorkCancellationStateV1"},execution:{$ref:"#/$defs/WorkExecutionEnvelopeV1"},identity:{$ref:"#/$defs/WorkAttemptIdentityV1"},lease:{$ref:"#/$defs/WorkLeaseFenceV1"},progress:{anyOf:[{$ref:"#/$defs/WorkAttemptProgressV1"},{type:"null"}]},projection_binding:{$ref:"#/$defs/WorkAttemptProjectionBindingV1"},recovery:{$ref:"#/$defs/WorkRecoveryStateV1"},requested_route:{$ref:"#/$defs/WorkProviderRouteV1"},state:{$ref:"#/$defs/WorkAttemptStateV1"},terminal:{anyOf:[{$ref:"#/$defs/WorkTerminalEvidenceV1"},{type:"null"}]}},required:["identity","projection_binding","execution","lease","state","artifacts","cancellation","recovery","requested_route"],type:"object"},$d={additionalProperties:!1,properties:{acknowledged_at:{$ref:"#/$defs/UtcMicros"},request:{$ref:"#/$defs/WorkCancellationRequestV1"}},required:["request","acknowledged_at"],type:"object"},$c={additionalProperties:!1,properties:{acknowledgement:{$ref:"#/$defs/WorkCancellationAcknowledgementV1"},escalated_at:{$ref:"#/$defs/UtcMicros"}},required:["acknowledgement","escalated_at"],type:"object"},$l={description:"Strongly typed canonical identity: `WorkCancellationRequestId`.",type:"string"},$p={additionalProperties:!1,properties:{request_id:{$ref:"#/$defs/WorkCancellationRequestId"},requested_at:{$ref:"#/$defs/UtcMicros"}},required:["request_id","requested_at"],type:"object"},$u={oneOf:[{properties:{state:{const:"none",type:"string"}},required:["state"],type:"object"},{properties:{state:{const:"requested",type:"string"},value:{$ref:"#/$defs/WorkCancellationRequestV1"}},required:["state","value"],type:"object"},{properties:{state:{const:"acknowledged",type:"string"},value:{$ref:"#/$defs/WorkCancellationAcknowledgementV1"}},required:["state","value"],type:"object"},{properties:{state:{const:"escalated",type:"string"},value:{$ref:"#/$defs/WorkCancellationEscalationV1"}},required:["state","value"],type:"object"}]},$m={description:"Strongly typed canonical identity: `WorkCommandId`.",type:"string"},$f={description:"Where a configured route places task content.",enum:["local","tenant","external"],type:"string"},$h={additionalProperties:!1,properties:{topology_generation:{$ref:"#/$defs/WorkTopologyGenerationRefV1"},work_generation:{$ref:"#/$defs/ProjectionGenerationId"}},required:["work_generation","topology_generation"],type:"object"},$y={additionalProperties:!1,properties:{cost_micros:{format:"uint64",minimum:0,type:["integer","null"]},coverage:{$ref:"#/$defs/CoverageStateV1"},effect_count:{format:"uint64",minimum:0,type:["integer","null"]},effect_outcome:{$ref:"#/$defs/DuplicateEffectOutcomeV1"},evidence:{$ref:"#/$defs/QuantityEvidenceClassV1"},test_count:{format:"uint64",minimum:0,type:["integer","null"]},token_count:{format:"uint64",minimum:0,type:["integer","null"]},wall_micros:{format:"uint64",minimum:0,type:["integer","null"]}},required:["evidence","effect_outcome","coverage"],type:"object"},$g={description:"Effect semantics admitted for one provider attempt.",enum:["observational","intercepted","compound_non_repeatable"],type:"string"},$_={description:"Declared effort class of a configured route.",enum:["minimal","standard","extended"],type:"string"},$v={enum:["deny","allowlisted"],type:"string"},$b={oneOf:[{additionalProperties:!1,properties:{cursor:{type:"string"},kind:{const:"anchor",type:"string"},link_id:{type:"string"}},required:["kind","link_id","cursor"],type:"object"},{additionalProperties:!1,properties:{continuation:{$ref:"#/$defs/WorkTaskSessionContinuationV1"},kind:{const:"task_session",type:"string"}},required:["kind","continuation"],type:"object"}]},$$={additionalProperties:!1,description:"One immutable evidence frontier. Local code/session evidence and live Git\nevidence each carry their own frontier; the evaluator never merges,\nsubstitutes, or advances one from the other.",properties:{digest:{$ref:"#/$defs/ManifestDigest"},watermark:{$ref:"#/$defs/UtcMicros"}},required:["watermark","digest"],type:"object"},$S={additionalProperties:!1,description:"Exact on-disk executable selected for one opaque executable identity.\n\nThe path is configuration data, never a lookup hint. Runtime admission\ncanonicalizes it again and verifies the file bytes against\n`executable.artifact_digest` before returning an executable binding.",properties:{canonical_path:{type:"string"},capabilities:{items:{$ref:"#/$defs/WorkExecutableCapabilityV1"},type:"array"},executable:{$ref:"#/$defs/WorkExecutableReference"},routes:{items:{$ref:"#/$defs/WorkRouteCandidateV1"},type:"array"}},required:["executable","canonical_path","capabilities","routes"],type:"object"},$k={description:"One executable capability admitted by a configured artifact binding.\n\nThe closed variants bind a provider backend to its exact wire protocol.\nCallers cannot claim an arbitrary backend/protocol combination.",enum:["claude_code_stream_json","codex_app_server_json_rpc","codex_cli_exec_json"],type:"string"},$w={additionalProperties:!1,properties:{artifact_digest:{$ref:"#/$defs/ManifestDigest"},executable_id:{type:"string"}},required:["executable_id","artifact_digest"],type:"object"},$P={additionalProperties:!1,description:"Exact immutable provider admission attached to the durable Work attempt.\n\nCallers name typed route and scope facts, never argv, environment entries,\nor executable paths. The daemon resolves the registered executable only\nafter this envelope has been persisted and admitted to the canonical queue.",properties:{attempt_identity:{$ref:"#/$defs/WorkAttemptIdentityV1"},cancellation_generation:{format:"uint64",minimum:0,type:"integer"},commit:{$ref:"#/$defs/CommitId"},effect_state:{$ref:"#/$defs/WorkEffectStateV1"},execution_snapshot:{$ref:"#/$defs/WorkExecutionSnapshot"},instructions:{description:"Exact provider instructions admitted with this attempt. The adapter\ndelivers these bytes verbatim on the provider's typed input channel;\nthey are never interpolated into argv or an ambient prompt source.",type:"string"},operation:{$ref:"#/$defs/WorkflowOperationRef"},project_id:{$ref:"#/$defs/ProjectId"},projection_binding:{$ref:"#/$defs/WorkAttemptProjectionBindingV1"},reference:{anyOf:[{$ref:"#/$defs/RefId"},{type:"null"}]},repository_id:{$ref:"#/$defs/RepositoryId"},worktree_id:{$ref:"#/$defs/WorktreeId"},worktree_root:{type:"string"}},required:["attempt_identity","projection_binding","operation","execution_snapshot","project_id","repository_id","worktree_id","worktree_root","commit","instructions","cancellation_generation","effect_state"],type:"object"},$V={additionalProperties:!1,properties:{max_concurrency:{format:"uint32",minimum:0,type:"integer"},max_input_tokens:{format:"uint64",minimum:0,type:"integer"},max_output_tokens:{format:"uint64",minimum:0,type:"integer"},max_protocol_bytes:{format:"uint64",minimum:0,type:"integer"},max_stderr_bytes:{format:"uint64",minimum:0,type:"integer"},max_stdout_bytes:{format:"uint64",minimum:0,type:"integer"}},required:["max_input_tokens","max_output_tokens","max_stdout_bytes","max_stderr_bytes","max_protocol_bytes","max_concurrency"],type:"object"},$R={additionalProperties:!1,description:"Immutable provider and topology authority pinned for exactly one Work\nexecution. Every constraint the execution is governed by is named here;\nnothing in this value is an opaque stand-in that a reader must resolve\nagainst a mutable store.",properties:{approval:{$ref:"#/$defs/WorkApprovalPolicy"},backend:{$ref:"#/$defs/WorkProviderBackendV1"},configuration_revision_id:{$ref:"#/$defs/ConfigurationRevisionId"},configuration_snapshot_id:{$ref:"#/$defs/ConfigurationSnapshotId"},credential_references:{items:{$ref:"#/$defs/CredentialReferenceId"},type:"array",uniqueItems:!0},deadline:{$ref:"#/$defs/UtcMicros"},effective_behavior_digest:{$ref:"#/$defs/ManifestDigest"},egress:{$ref:"#/$defs/WorkEgressPolicy"},environment_allowlist:{items:{type:"string"},type:"array",uniqueItems:!0},executable:{$ref:"#/$defs/WorkExecutableReference"},fallback:{$ref:"#/$defs/WorkFallbackTopology"},filesystem:{$ref:"#/$defs/WorkFilesystemPolicy"},limits:{$ref:"#/$defs/WorkExecutionLimits"},model:{type:"string"},protocol:{$ref:"#/$defs/WorkProviderProtocol"},resolution_provenance_digest:{$ref:"#/$defs/ManifestDigest"},route:{$ref:"#/$defs/WorkProviderRouteV1"},sandbox:{$ref:"#/$defs/WorkSandboxPolicy"},topology:{$ref:"#/$defs/WorkTopologyPolicyV1",description:"See [`WorkExecutionSnapshotInput::topology`]. Validated on construction,\nso an admitted snapshot can never pin a topology that weakens the\nprotected-ref floor or permits a native integration without its gates."}},required:["configuration_revision_id","configuration_snapshot_id","effective_behavior_digest","resolution_provenance_digest","route","backend","protocol","model","executable","sandbox","approval","filesystem","egress","environment_allowlist","credential_references","limits","deadline","fallback","topology"],type:"object"},$q={enum:["language","framework","architecture","testing","operations","security","domain"],type:"string"},$I={additionalProperties:!1,description:"Explicit, expiring consent for ephemeral expertise context.\n\nUser-profile and project authorization are separate registered settings;\nWork requires both and uses only their category intersection.",properties:{allowed_categories:{items:{$ref:"#/$defs/WorkExpertiseCategoryV1"},type:"array",uniqueItems:!0},enabled:{type:"boolean"},expires_at:{anyOf:[{$ref:"#/$defs/UtcMicros"},{type:"null"}]},granted_at:{anyOf:[{$ref:"#/$defs/UtcMicros"},{type:"null"}]},schema_version:{format:"uint16",maximum:65535,minimum:0,type:"integer"}},required:["schema_version","enabled","allowed_categories"],type:"object"},$x={oneOf:[{additionalProperties:!1,properties:{kind:{const:"disabled",type:"string"}},required:["kind"],type:"object"},{additionalProperties:!1,properties:{executable:{$ref:"#/$defs/WorkExecutableReference"},kind:{const:"codex_cli",type:"string"},route:{$ref:"#/$defs/WorkProviderRouteV1"}},required:["kind","route","executable"],type:"object"}]},$j={format:"uint64",minimum:0,title:"WorkFenceEpochV1",type:"integer"},$C={enum:["read_only","workspace_write"],type:"string"},$T={oneOf:[{additionalProperties:!1,properties:{item:{$ref:"#/$defs/WorkItemV1"},kind:{const:"task_added",type:"string"}},required:["kind","item"],type:"object"},{additionalProperties:!1,properties:{initiative:{$ref:"#/$defs/WorkInitiativeV1"},item:{$ref:"#/$defs/WorkItemV1"},kind:{const:"task_created",type:"string"},milestone:{$ref:"#/$defs/WorkMilestoneV1"},plan:{$ref:"#/$defs/WorkPlanV1"}},required:["kind","initiative","plan","milestone","item"],type:"object"},{additionalProperties:!1,properties:{decided_at:{$ref:"#/$defs/UtcMicros"},disposition:{$ref:"#/$defs/WorkProposalDispositionV1"},kind:{const:"relation_replan_decided",type:"string"},proposal:{$ref:"#/$defs/WorkRelationReplanProposalV1"}},required:["kind","proposal","disposition","decided_at"],type:"object"},{additionalProperties:!1,properties:{applied_at:{$ref:"#/$defs/UtcMicros"},kind:{const:"task_relations_replanned",type:"string"},proposal_id:{$ref:"#/$defs/ProposalId"}},required:["kind","proposal_id","applied_at"],type:"object"},{additionalProperties:!1,properties:{evidence:{$ref:"#/$defs/TaskEvidenceLinkV1"},kind:{const:"evidence_linked",type:"string"},task_id:{$ref:"#/$defs/TaskId"}},required:["kind","task_id","evidence"],type:"object"},{additionalProperties:!1,properties:{decided_at:{$ref:"#/$defs/UtcMicros"},disposition:{$ref:"#/$defs/WorkProposalDispositionV1"},kind:{const:"proposal_decided",type:"string"},proposal:{$ref:"#/$defs/WorkProposalV1"}},required:["kind","proposal","disposition","decided_at"],type:"object"},{additionalProperties:!1,properties:{accepted_at:{$ref:"#/$defs/UtcMicros"},kind:{const:"proposal_accepted",type:"string"},proposal:{$ref:"#/$defs/WorkProposalV1"}},required:["kind","proposal","accepted_at"],type:"object"},{additionalProperties:!1,properties:{admitted_at:{$ref:"#/$defs/UtcMicros"},based_on_version:{format:"uint64",minimum:0,type:"integer"},kind:{const:"execution_admitted",type:"string"},task_id:{$ref:"#/$defs/TaskId"}},required:["kind","task_id","based_on_version","admitted_at"],type:"object"},{additionalProperties:!1,properties:{based_on_version:{format:"uint64",minimum:0,type:"integer"},identity:{$ref:"#/$defs/WorkAttemptIdentityV1"},kind:{const:"accepted_attempt_linked",type:"string"},linked_at:{$ref:"#/$defs/UtcMicros"},task_id:{$ref:"#/$defs/TaskId"}},required:["kind","task_id","based_on_version","identity","linked_at"],type:"object"},{additionalProperties:!1,properties:{accepted_at:{$ref:"#/$defs/UtcMicros"},evidence_by_criterion:{additionalProperties:{type:"string"},type:"object"},kind:{const:"task_accepted",type:"string"},task_id:{$ref:"#/$defs/TaskId"}},required:["kind","task_id","evidence_by_criterion","accepted_at"],type:"object"},{additionalProperties:!1,properties:{handoff:{$ref:"#/$defs/WorkHandoffV1"},kind:{const:"handoff_recorded",type:"string"}},required:["kind","handoff"],type:"object"}]},$O={additionalProperties:!1,description:"One attempt on the evidence frontier: exactly which attempt, in which\nstate, backed by which sealed evidence digest (when the attempt has\nreported one). No lease or fence is part of the frontier. Those are\nruntime authority, not checkpoint evidence.",properties:{evidence_digest:{anyOf:[{$ref:"#/$defs/ManifestDigest"},{type:"null"}],description:"The digest of the sealed terminal evidence record, when the attempt\nhas one. `None` is the typed not-yet-reported state."},identity:{$ref:"#/$defs/WorkAttemptIdentityV1"},state:{$ref:"#/$defs/WorkAttemptStateV1"}},required:["identity","state"],type:"object"},$E={additionalProperties:!1,description:"The exact work/evidence frontier one handoff records.",properties:{attempts:{description:"The evidence frontier: every attempt the issuer knows about, in\nstable identity order.",items:{$ref:"#/$defs/WorkHandoffAttemptFrontierV1"},type:"array"},blockers:{description:"What is blocking progress. Bounded, non-empty entries.",items:{type:"string"},type:"array"},legal_actions:{description:"The actions the issuer believes are legal next steps.",items:{type:"string"},type:"array"},lineage:{$ref:"#/$defs/WorkHandoffLineageV1"},task_id:{$ref:"#/$defs/TaskId"},unknowns:{description:"What the issuer does not know yet. Bounded, non-empty entries.",items:{type:"string"},type:"array"},work_version:{description:"The exact Work version the frontier was cut at.",format:"uint64",minimum:0,type:"integer"}},required:["task_id","work_version","attempts","unknowns","blockers","legal_actions","lineage"],type:"object"},$A={additionalProperties:!1,description:"Who issued this frontier and what it supersedes.",properties:{issued_at:{$ref:"#/$defs/UtcMicros"},issued_by:{$ref:"#/$defs/ActorId"},prior_frontier_digest:{anyOf:[{$ref:"#/$defs/ManifestDigest"},{type:"null"}],description:"The canonical digest of the frontier this one supersedes, when the\ntask has been handed off before. `None` states a first handoff."}},required:["issued_by","issued_at"],type:"object"},$W={additionalProperties:!1,properties:{evidence_frontier:{items:{type:"string"},type:"array",uniqueItems:!0},from_actor:{$ref:"#/$defs/ActorId"},handed_off_at:{$ref:"#/$defs/UtcMicros"},handoff_id:{type:"string"},task_id:{$ref:"#/$defs/TaskId"},to_actor:{$ref:"#/$defs/ActorId"},unknowns:{items:{type:"string"},type:"array",uniqueItems:!0}},required:["handoff_id","task_id","from_actor","to_actor","evidence_frontier","unknowns","handed_off_at"],type:"object"},$M={additionalProperties:!1,properties:{initiative_id:{type:"string"},milestone_id:{type:"string"},plan_id:{type:"string"}},required:["initiative_id","plan_id","milestone_id"],type:"object"},$N={additionalProperties:!1,properties:{created_at:{$ref:"#/$defs/UtcMicros"},id:{type:"string"},title:{type:"string"}},required:["id","title","created_at"],type:"object"},$z={additionalProperties:!1,properties:{acceptance_criteria:{items:{$ref:"#/$defs/WorkAcceptanceCriterionV1"},type:"array"},causal_candidates:{items:{$ref:"#/$defs/TaskId"},type:"array",uniqueItems:!0},created_at:{$ref:"#/$defs/UtcMicros"},deadline:{anyOf:[{$ref:"#/$defs/UtcMicros"},{type:"null"}]},dependencies:{items:{$ref:"#/$defs/TaskId"},type:"array",uniqueItems:!0},effort:{format:"uint32",minimum:0,type:"integer"},hierarchy:{$ref:"#/$defs/WorkHierarchyV1"},informational_relations:{items:{$ref:"#/$defs/TaskId"},type:"array",uniqueItems:!0},scheduled_at:{anyOf:[{$ref:"#/$defs/UtcMicros"},{type:"null"}]},task_id:{$ref:"#/$defs/TaskId"},title:{type:"string"},updated_at:{$ref:"#/$defs/UtcMicros"}},required:["task_id","hierarchy","title","dependencies","informational_relations","causal_candidates","acceptance_criteria","effort","created_at","updated_at"],type:"object"},$D={additionalProperties:!1,properties:{accepted_at:{anyOf:[{$ref:"#/$defs/UtcMicros"},{type:"null"}]},accepted_attempts:{items:{$ref:"#/$defs/WorkAttemptIdentityV1"},type:"array"},accepted_criteria:{additionalProperties:{type:"string"},type:"object"},accepted_proposal:{anyOf:[{$ref:"#/$defs/ProposalId"},{type:"null"}]},accepted_route:{anyOf:[{$ref:"#/$defs/WorkRouteDecisionV1"},{type:"null"}]},archived_at:{anyOf:[{$ref:"#/$defs/UtcMicros"},{type:"null"}]},evidence_links:{items:{type:"string"},type:"array",uniqueItems:!0},execution_admitted_at:{anyOf:[{$ref:"#/$defs/UtcMicros"},{type:"null"}]},handoffs:{items:{$ref:"#/$defs/WorkHandoffV1"},type:"array"},input:{$ref:"#/$defs/WorkItemInputV1"}},required:["input","evidence_links","accepted_criteria","accepted_attempts","handoffs"],type:"object"},$F={description:"A job task key: `[a-z0-9-]`, 1 to 48 bytes. Identities derive from it.",type:"string"},$L={additionalProperties:!1,properties:{epoch:{$ref:"#/$defs/WorkFenceEpochV1"},lease_id:{$ref:"#/$defs/WorkLeaseId"}},required:["lease_id","epoch"],type:"object"},$U={description:"Strongly typed canonical identity: `WorkLeaseId`.",type:"string"},$H={additionalProperties:!1,properties:{created_at:{$ref:"#/$defs/UtcMicros"},id:{type:"string"},plan_id:{type:"string"},title:{type:"string"}},required:["id","plan_id","title","created_at"],type:"object"},$G={description:"Ordinal band. Never a probability, never a scalar score.\n\nBands are ordered `Lowest` .. `Highest`. Comparison is the only operation\nconsumers perform over them, so no weighted sum can be reconstructed from\na recorded decision.",enum:["lowest","low","moderate","high","highest"],type:"string"},$B={description:"Closed set of conditions that block admission or removal.",oneOf:[{const:"dirty_tracked_files",description:"Tracked files differ from the index or HEAD.",type:"string"},{const:"untracked_data",description:"Untracked data is present in the target.",type:"string"},{const:"unique_commits",description:"The target holds commits reachable from nowhere else.",type:"string"},{const:"active_holder",description:"Another admitted placement holds this target.",type:"string"},{const:"unresolved_effect",description:"An effect against this placement is unresolved.",type:"string"},{const:"unacknowledged_receipt",description:"A receipt produced against this placement is unacknowledged.",type:"string"},{const:"uncertain_pull_request",description:"A pull request produced from this placement is in an uncertain state.",type:"string"},{const:"shared_ref",description:"A ref in this target is shared with another holder.",type:"string"},{const:"missing_anchor",description:"A retrieval or evidence anchor this placement referenced is missing.",type:"string"},{const:"stale_scope",description:"The authorized scope no longer matches the placement.",type:"string"},{const:"authorization_lost",description:"Authorization for this placement was lost.",type:"string"},{const:"target_unreadable",description:"The target could not be read, so its state is unknown.",type:"string"},{const:"network_required",description:"The placement declared itself network-free but the action needs network.",type:"string"}],title:"WorkPlacementBlockerV1"},$K={additionalProperties:!1,description:"Which run a placement belongs to. Placement never redefines TaskId.",properties:{run_id:{$ref:"#/$defs/RunId"},task_id:{$ref:"#/$defs/TaskId"}},required:["task_id","run_id"],title:"WorkPlacementIdentityV1",type:"object"},$J={description:"The supported placement choices, and only those.",oneOf:[{const:"no_managed_placement",description:"TraceDecay manages no checkout for this run. No-Git work is first class.",type:"string"},{const:"clean_in_place",description:"The caller's own strictly clean checkout, explicitly acknowledged.",type:"string"},{const:"linked_worktree",description:"A linked worktree of the same repository.",type:"string"},{const:"isolated_clone",description:"An isolated local clone.",type:"string"}],title:"WorkPlacementKindV1"},$Z={description:"The durable state of one admitted placement.",oneOf:[{const:"admitted",description:"The placement holds its target.",type:"string"},{const:"released",description:"The placement gave its target up cleanly. Nothing was deleted by this\ntransition; removal is a separate cleanup preflight.",type:"string"},{const:"quarantined",description:"The placement was retained because removal is blocked.",type:"string"}],title:"WorkPlacementStateV1"},$Q={additionalProperties:!1,description:"The exact placement a caller asked for.",properties:{in_place_acknowledged:{description:"Set only for `CleanInPlace`: the caller states it accepts running in\nits own checkout. Acknowledgement is explicit, never inferred.",type:"boolean"},kind:{$ref:"#/$defs/WorkPlacementKindV1"},network_free:{description:"The placement declares it needs no network. Declared, not detected.",type:"boolean"},root:{description:"Absolute root, present exactly when the kind manages one.",type:["string","null"]}},required:["kind","in_place_acknowledged","network_free"],title:"WorkPlacementTargetV1",type:"object"},$X={additionalProperties:!1,description:"One run's durable placement relation.",properties:{authority_version:{format:"uint64",minimum:0,type:"integer"},blockers:{items:{$ref:"#/$defs/WorkPlacementBlockerV1"},type:"array",uniqueItems:!0},identity:{$ref:"#/$defs/WorkPlacementIdentityV1"},retention_eligible_at:{anyOf:[{$ref:"#/$defs/UtcMicros"},{type:"null"}],description:"When retention makes this placement *eligible* for a fresh cleanup\npreflight. Eligibility is not delete authority."},state:{$ref:"#/$defs/WorkPlacementStateV1"},target:{$ref:"#/$defs/WorkPlacementTargetV1"},transitioned_at:{$ref:"#/$defs/UtcMicros"}},required:["identity","target","state","authority_version","transitioned_at","blockers"],title:"WorkPlacementV1",type:"object"},$Y={additionalProperties:!1,properties:{created_at:{$ref:"#/$defs/UtcMicros"},id:{type:"string"},initiative_id:{type:"string"},title:{type:"string"}},required:["id","initiative_id","title","created_at"],type:"object"},$1={oneOf:[{additionalProperties:!1,properties:{kind:{const:"project",type:"string"},project_id:{$ref:"#/$defs/ProjectId"}},required:["kind","project_id"],type:"object"},{additionalProperties:!1,properties:{kind:{const:"repository",type:"string"},project_id:{$ref:"#/$defs/ProjectId"},repository_id:{$ref:"#/$defs/RepositoryId"}},required:["kind","project_id","repository_id"],type:"object"}]},$0={additionalProperties:!1,properties:{anchor_id:{$ref:"#/$defs/RetrievalAnchorId"},evidence_digest:{$ref:"#/$defs/ManifestDigest"},source_store_id:{$ref:"#/$defs/SourceStoreId"}},required:["source_store_id","anchor_id","evidence_digest"],type:"object"},$2={oneOf:[{additionalProperties:!1,properties:{graph:{$ref:"#/$defs/WorkProductGraphV1"},kind:{const:"created",type:"string"}},required:["kind","graph"],type:"object"},{additionalProperties:!1,properties:{change:{$ref:"#/$defs/WorkGraphChangeV1"},kind:{const:"changed",type:"string"}},required:["kind","change"],type:"object"}]},$4={additionalProperties:!1,properties:{actor_id:{$ref:"#/$defs/ActorId"},authorized_relation_scopes:{items:{$ref:"#/$defs/WorkProductAuthorizedRelationScopeV1"},type:"array"},canonical_input_digest:{$ref:"#/$defs/ManifestDigest"},catalog_generation_id:{$ref:"#/$defs/CatalogGenerationId"},causation_event_id:{type:["string","null"]},command_id:{$ref:"#/$defs/WorkCommandId"},configuration_revision_id:{$ref:"#/$defs/ConfigurationRevisionId"},event_id:{type:"string"},evidence:{items:{$ref:"#/$defs/WorkProductEventEvidenceV1"},type:"array"},expected_graph_version:{format:"uint64",minimum:0,type:["integer","null"]},occurred_at:{$ref:"#/$defs/UtcMicros"},owner_scope:{$ref:"#/$defs/WorkProductProfileScopeV1"},payload:{$ref:"#/$defs/WorkProductEventPayloadV1"},policy_revision_id:{type:"string"},result_graph_version:{format:"uint64",minimum:0,type:"integer"},sequence:{format:"uint64",minimum:0,type:"integer"},source_watermark:{additionalProperties:{format:"uint64",minimum:0,type:"integer"},type:"object"}},required:["event_id","sequence","actor_id","owner_scope","authorized_relation_scopes","result_graph_version","command_id","canonical_input_digest","evidence","source_watermark","occurred_at","policy_revision_id","configuration_revision_id","catalog_generation_id","payload"],type:"object"},$6={oneOf:[{additionalProperties:!1,properties:{authority:{const:"no_prior_graph",type:"string"}},required:["authority"],type:"object"},{additionalProperties:!1,properties:{authority:{const:"verified",type:"string"},verified_version:{$ref:"#/$defs/VerifiedWorkGraphVersionV1"}},required:["authority","verified_version"],type:"object"}]},$3={additionalProperties:!1,properties:{evidence:{items:{$ref:"#/$defs/TaskEvidenceLinkV1"},type:"array"},initiatives:{items:{$ref:"#/$defs/WorkInitiativeV1"},type:"array"},items:{items:{$ref:"#/$defs/WorkItemV1"},type:"array"},milestones:{items:{$ref:"#/$defs/WorkMilestoneV1"},type:"array"},plans:{items:{$ref:"#/$defs/WorkPlanV1"},type:"array"},proposal_decisions:{items:{$ref:"#/$defs/WorkProposalDecisionV1"},type:"array"},relation_replan_decisions:{items:{$ref:"#/$defs/WorkRelationReplanDecisionV1"},type:"array"},version:{format:"uint64",minimum:0,type:"integer"}},required:["version","initiatives","plans","milestones","items","proposal_decisions","relation_replan_decisions","evidence"],type:"object"},$9={additionalProperties:!1,properties:{causation_event_id:{type:["string","null"]},command_id:{$ref:"#/$defs/WorkCommandId"},evidence:{items:{$ref:"#/$defs/WorkProductEventEvidenceV1"},type:"array"},expected_authority:{$ref:"#/$defs/WorkProductExpectedAuthorityV1"},occurred_at:{$ref:"#/$defs/UtcMicros"},revisions:{$ref:"#/$defs/WorkProductRevisionPinsV1"}},required:["expected_authority","command_id","evidence","occurred_at","revisions"],type:"object"},$5={additionalProperties:!1,properties:{event:{$ref:"#/$defs/WorkProductEventV1"},replayed:{type:"boolean"},verified_graph_version:{$ref:"#/$defs/VerifiedWorkGraphVersionV1"}},required:["event","verified_graph_version","replayed"],type:"object"},$8={additionalProperties:!1,properties:{brain_id:{$ref:"#/$defs/BrainId"},profile_id:{$ref:"#/$defs/UserProfileId"}},required:["brain_id","profile_id"],type:"object"},$7={oneOf:[{properties:{initiative_id:{type:"string"},kind:{const:"initiative_contains_plan",type:"string"},plan_id:{type:"string"}},required:["kind","initiative_id","plan_id"],type:"object"},{properties:{kind:{const:"plan_contains_milestone",type:"string"},milestone_id:{type:"string"},plan_id:{type:"string"}},required:["kind","plan_id","milestone_id"],type:"object"},{properties:{kind:{const:"milestone_contains_task",type:"string"},milestone_id:{type:"string"},task_id:{$ref:"#/$defs/TaskId"}},required:["kind","milestone_id","task_id"],type:"object"},{properties:{dependency:{$ref:"#/$defs/TaskId"},dependent:{$ref:"#/$defs/TaskId"},kind:{const:"gates",type:"string"}},required:["kind","dependency","dependent"],type:"object"},{properties:{kind:{const:"informational",type:"string"},source:{$ref:"#/$defs/TaskId"},target:{$ref:"#/$defs/TaskId"}},required:["kind","source","target"],type:"object"},{properties:{cause:{$ref:"#/$defs/TaskId"},effect:{$ref:"#/$defs/TaskId"},kind:{const:"causal_candidate",type:"string"}},required:["kind","cause","effect"],type:"object"},{properties:{kind:{const:"evidence",type:"string"},link_id:{type:"string"},task_id:{$ref:"#/$defs/TaskId"}},required:["kind","task_id","link_id"],type:"object"},{properties:{identity:{$ref:"#/$defs/WorkAttemptIdentityV1"},kind:{const:"accepted_attempt",type:"string"},task_id:{$ref:"#/$defs/TaskId"}},required:["kind","task_id","identity"],type:"object"},{properties:{handoff_id:{type:"string"},kind:{const:"handoff",type:"string"},task_id:{$ref:"#/$defs/TaskId"}},required:["kind","task_id","handoff_id"],type:"object"},{properties:{kind:{const:"proposal_decision",type:"string"},proposal_id:{$ref:"#/$defs/ProposalId"},task_id:{$ref:"#/$defs/TaskId"}},required:["kind","task_id","proposal_id"],type:"object"}]},Se={additionalProperties:!1,properties:{catalog_generation_id:{$ref:"#/$defs/CatalogGenerationId"},configuration_revision_id:{$ref:"#/$defs/ConfigurationRevisionId"},policy_revision_id:{type:"string"}},required:["policy_revision_id","configuration_revision_id","catalog_generation_id"],type:"object"},St={description:"The exact owner-relative relation set selected for a canonical Work graph.\n\nThis identity lives in the domain because attempt admission must retain\nit byte-for-byte through provider settlement. Reconstructing it from a\nproject context would conflate explicit no-Git work with a scoped\nrepository relation.",oneOf:[{properties:{selection:{const:"profile_owned_no_git",type:"string"}},required:["selection"],type:"object"},{properties:{relation_scopes:{items:{$ref:"#/$defs/WorkProductAuthorizedRelationScopeV1"},type:"array",uniqueItems:!0},selection:{const:"relations",type:"string"}},required:["selection","relation_scopes"],type:"object"}]},Sr={additionalProperties:!1,properties:{decided_at:{$ref:"#/$defs/UtcMicros"},disposition:{$ref:"#/$defs/WorkProposalDispositionV1"},proposal:{$ref:"#/$defs/WorkProposalV1"}},required:["proposal","disposition","decided_at"],type:"object"},Si={enum:["accepted","rejected","superseded"],type:"string"},So={additionalProperties:!1,properties:{based_on_version:{format:"uint64",minimum:0,type:"integer"},children:{items:{$ref:"#/$defs/WorkProposedChildV1"},type:"array"},configuration_digest:{$ref:"#/$defs/ManifestDigest"},evidence_digest:{$ref:"#/$defs/ManifestDigest"},explanation:{type:"string"},proposal_id:{$ref:"#/$defs/ProposalId"},route:{$ref:"#/$defs/WorkRouteDecisionV1"},shape:{$ref:"#/$defs/WorkShapeAssessmentV1"},sizing:{$ref:"#/$defs/WorkSizingV1"},task_id:{$ref:"#/$defs/TaskId"}},required:["proposal_id","task_id","based_on_version","shape","sizing","children","route","explanation","evidence_digest","configuration_digest"],type:"object"},Sn={additionalProperties:!1,properties:{dependencies:{items:{$ref:"#/$defs/TaskId"},type:"array",uniqueItems:!0},effort:{format:"uint32",minimum:0,type:"integer"},task_id:{$ref:"#/$defs/TaskId"},title:{type:"string"}},required:["task_id","title","effort","dependencies"],type:"object"},Sa={description:"Typed provider availability observed at negotiation. These are product\nstates, not transport errors: each one names why the configured native\nprovider could not run, without inventing a fallback.",oneOf:[{const:"absent",description:"No executable binding is configured for the pinned executable identity.",type:"string"},{const:"stale",description:"The configured binding no longer matches the pinned reference.",type:"string"},{const:"unsupported",description:"The configured binding does not admit the pinned backend/protocol.",type:"string"},{const:"digest_mismatch",description:"The on-disk executable bytes do not match the pinned digest.",type:"string"},{const:"unavailable",description:"The configured executable could not be read or is not executable.",type:"string"}]},Ss={description:"Provider protocol selected by the pinned Work configuration snapshot.",enum:["claude_code_cli","codex_app_server","codex_cli"],type:"string"},Sd={additionalProperties:!1,description:'Why an admitted attempt did not run on the backend its pinned execution\nsnapshot preferred.\n\nPlan 32 (`docs/plans/tracedecay-v2/32-dynamic-workflow-runtime-and-sdk.md`,\n"Native provider execution") admits the Codex CLI "only when app-server is\nunsupported or absent before session start and the pinned Plan 20 snapshot\nexplicitly allows that fallback", and the plan index requires that fallback\nto be "reported rather than hidden". This record is that report: it names\nthe preferred backend, the typed state that disqualified it, and the\nconfiguration-bounded fallback that was selected, so a fallback run can\nnever be read as a first choice.\n\nIt is also written when the fallback itself was refused, so a denial keeps\nboth failures instead of collapsing them into one state.',properties:{fallback_backend:{$ref:"#/$defs/WorkProviderBackendV1",description:"The backend named by the snapshot's configured fallback topology."},fallback_route:{$ref:"#/$defs/WorkProviderRouteV1",description:"The route that fallback runs on."},fallback_state:{anyOf:[{$ref:"#/$defs/WorkProviderAvailabilityV1"},{type:"null"}],description:"`None` when the fallback actually started; `Some(state)` when the\nfallback was itself refused."},preferred_backend:{$ref:"#/$defs/WorkProviderBackendV1",description:"The backend the pinned snapshot named first."},preferred_route:{$ref:"#/$defs/WorkProviderRouteV1",description:"The route that backend would have run on."},preferred_state:{$ref:"#/$defs/WorkProviderAvailabilityV1",description:"Why the preferred backend could not be used."}},required:["preferred_backend","preferred_route","preferred_state","fallback_backend","fallback_route"],type:"object"},Sc={enum:["claude_stream_json","codex_app_server_json_rpc","codex_exec_json"],type:"string"},Sl={description:"Strongly typed canonical identity: `WorkProviderRouteId`.",type:"string"},Sp={additionalProperties:!1,properties:{provider_id:{$ref:"#/$defs/ProviderId"},route_id:{$ref:"#/$defs/WorkProviderRouteId"}},required:["provider_id","route_id"],type:"object"},Su={oneOf:[{properties:{state:{const:"fresh",type:"string"}},required:["state"],type:"object"},{properties:{checkpoint:{anyOf:[{$ref:"#/$defs/WorkArtifactRefV1"},{type:"null"}]},source_attempt_id:{$ref:"#/$defs/AttemptId"},state:{const:"resumed",type:"string"}},required:["state","source_attempt_id"],type:"object"},{properties:{reason:{$ref:"#/$defs/WorkRestartReasonV1"},source_attempt_id:{$ref:"#/$defs/AttemptId"},state:{const:"restarted",type:"string"}},required:["state","source_attempt_id","reason"],type:"object"},{description:"The attempt cannot continue and must be recovered. A first attempt\nlost before it ever resumed anything has no predecessor, so the source\nis absent rather than pointing at the attempt itself.",properties:{observed_at:{$ref:"#/$defs/UtcMicros"},reason:{$ref:"#/$defs/WorkRestartReasonV1"},source_attempt_id:{anyOf:[{$ref:"#/$defs/AttemptId"},{type:"null"}],default:null},state:{const:"recovery_required",type:"string"}},required:["state","reason","observed_at"],type:"object"}]},Sm={additionalProperties:!1,properties:{decided_at:{$ref:"#/$defs/UtcMicros"},disposition:{$ref:"#/$defs/WorkProposalDispositionV1"},proposal:{$ref:"#/$defs/WorkRelationReplanProposalV1"}},required:["proposal","disposition","decided_at"],type:"object"},Sf={additionalProperties:!1,properties:{based_on_version:{format:"uint64",minimum:0,type:"integer"},causal_candidates:{items:{$ref:"#/$defs/TaskId"},type:"array",uniqueItems:!0},dependencies:{items:{$ref:"#/$defs/TaskId"},type:"array",uniqueItems:!0},informational_relations:{items:{$ref:"#/$defs/TaskId"},type:"array",uniqueItems:!0},payload_digest:{$ref:"#/$defs/ManifestDigest"},proposal_id:{$ref:"#/$defs/ProposalId"},task_id:{$ref:"#/$defs/TaskId"}},required:["proposal_id","task_id","based_on_version","dependencies","informational_relations","causal_candidates","payload_digest"],type:"object"},Sh={enum:["lease_lost","provider_unavailable","process_lost","failure_observed"],type:"string"},Sy={enum:["runtime_failure","restart_recovery_required"],type:"string"},Sg={additionalProperties:!1,description:"A selector into the owning runtime-terminal evidence authority.\n\n`evidence_ref` is an opaque local reference. The Work retry owner resolves\nit through [`WorkRetryEvidencePortV1`]; callers never submit the evidence\ndigest, outcome, or observation time that decides eligibility.",properties:{cause:{$ref:"#/$defs/WorkRetryCauseV1"},evidence_ref:{type:"string"},source:{$ref:"#/$defs/WorkRetrySourceV1"}},required:["source","cause","evidence_ref"],type:"object"},S_={enum:["runtime"],type:"string"},Sv={additionalProperties:!1,description:"One eligible route supplied by the authorized configuration snapshot.\n\nThe application filters these candidates by the current request grant and\nverifies the exact pinned executable before policy evaluates them.",properties:{autonomy:{$ref:"#/$defs/WorkOrdinalBandV1"},content_location:{$ref:"#/$defs/WorkContentLocationClassV1"},correctness:{$ref:"#/$defs/WorkOrdinalBandV1"},cost:{$ref:"#/$defs/WorkOrdinalBandV1"},declared_budget_ceiling:{format:"uint64",minimum:0,type:"integer"},effort:{$ref:"#/$defs/WorkEffortClassV1"},evidence_quality:{$ref:"#/$defs/WorkOrdinalBandV1"},execution:{$ref:"#/$defs/WorkRouteExecutionProfileV1"},latency:{$ref:"#/$defs/WorkOrdinalBandV1"},model_id:{type:"string"},provider_capability_id:{type:"string"},route_id:{type:"string"},sensitive_data_fitness:{$ref:"#/$defs/WorkOrdinalBandV1"}},required:["route_id","provider_capability_id","model_id","effort","declared_budget_ceiling","content_location","correctness","sensitive_data_fitness","latency","cost","autonomy","evidence_quality","execution"],type:"object"},Sb={oneOf:[{properties:{alternatives:{items:{$ref:"#/$defs/WorkProviderRouteV1"},type:"array"},decision:{const:"selected",type:"string"},exclusions:{items:{type:"string"},type:"array",uniqueItems:!0},fallback:{type:"string"},recommended:{$ref:"#/$defs/WorkProviderRouteV1"}},required:["decision","recommended","alternatives","exclusions","fallback"],type:"object"},{properties:{decision:{const:"abstained",type:"string"},reason:{type:"string"}},required:["decision","reason"],type:"object"}]},S$={additionalProperties:!1,description:"Complete execution constraints configured for one provider route.\n\nThe route candidate is the configuration authority for these values. Work\nadmission copies them into the immutable execution snapshot; provider\nadapters never supply defaults.",properties:{approval:{$ref:"#/$defs/WorkApprovalPolicy"},credential_references:{items:{$ref:"#/$defs/CredentialReferenceId"},type:"array",uniqueItems:!0},egress:{$ref:"#/$defs/WorkEgressPolicy"},environment_allowlist:{items:{type:"string"},type:"array",uniqueItems:!0},fallback:{$ref:"#/$defs/WorkFallbackTopology"},filesystem:{$ref:"#/$defs/WorkFilesystemPolicy"},limits:{$ref:"#/$defs/WorkExecutionLimits"},maximum_duration_micros:{description:"Maximum elapsed time from execution admission to provider completion.",format:"uint64",minimum:0,type:"integer"},sandbox:{$ref:"#/$defs/WorkSandboxPolicy"}},required:["sandbox","approval","filesystem","egress","environment_allowlist","credential_references","limits","maximum_duration_micros","fallback"],type:"object"},SS={description:"A monotonically versioned control authority.",format:"uint64",minimum:0,title:"WorkRunControlAuthorityV1",type:"integer"},Sk={description:"Why a run was paused or resumed. A closed vocabulary keeps the reason out\nof free text so it can be read by a projection without being a prompt.",oneOf:[{const:"operator_request",description:"An authorized operator asked for the transition.",type:"string"},{const:"human_wait",description:"The run is waiting on a human approval or answer.",type:"string"},{const:"budget_exhausted",description:"The shared budget ledger is exhausted for now.",type:"string"},{const:"recovery",description:"Recovery or failover is reconciling the run.",type:"string"}],title:"WorkRunControlReasonV1"},Sw={description:'The published control state of one run.\n\nThere is no `Cancelled` here: cancellation is an attempt-level authority\nowned through the lease fence, and duplicating it as a run state would\ncreate a second place a run could be "over".',oneOf:[{const:"running",description:"New reservations are admitted.",type:"string"},{const:"paused",description:"New reservations are fenced; committed evidence is preserved.",type:"string"}],title:"WorkRunControlStateV1"},SP={additionalProperties:!1,description:"The run's deadline as of the last control transition.\n\n`remaining_micros` is the authority; `deadline` is the absolute instant that\nremaining resolves to while the run is running. Both are recorded so a\nreader never has to recompute one from a clock it does not trust.",properties:{checkpoint_at:{$ref:"#/$defs/UtcMicros",description:"The instant the checkpoint was taken."},deadline:{$ref:"#/$defs/UtcMicros",description:"The absolute deadline the run is measured against right now."},remaining_micros:{description:"Micros left against that deadline at `checkpoint_at`. Never negative,\nand never larger than the value the previous checkpoint carried.",format:"int64",type:"integer"}},required:["deadline","remaining_micros","checkpoint_at"],title:"WorkRunDeadlineCheckpointV1",type:"object"},SV={enum:["required"],type:"string"},SR={enum:["ordinal","heuristic","calibrated_range"],type:"string"},Sq={additionalProperties:!1,properties:{ambiguity:{format:"uint8",maximum:255,minimum:0,type:"integer"},blast_radius:{format:"uint8",maximum:255,minimum:0,type:"integer"},complexity:{format:"uint8",maximum:255,minimum:0,type:"integer"},integration_overhead:{format:"uint8",maximum:255,minimum:0,type:"integer"},score_kind:{$ref:"#/$defs/WorkScoreKindV1"}},required:["score_kind","complexity","ambiguity","blast_radius","integration_overhead"],type:"object"},SI={additionalProperties:!1,properties:{coverage:{type:"string"},high:{format:"uint32",minimum:0,type:"integer"},likely:{format:"uint32",minimum:0,type:"integer"},low:{format:"uint32",minimum:0,type:"integer"},score_kind:{$ref:"#/$defs/WorkScoreKindV1"}},required:["score_kind","low","likely","high","coverage"],type:"object"},Sx={additionalProperties:!1,description:"Succeeded sources grouped by the exact artifact digest list they produced.\nGroups are ordered largest first; smaller groups are the minority\nevidence, and more than one group is the disagreement, preserved as\nstructure instead of being resolved by fiat.",properties:{artifacts:{description:"The artifact digest list every source in this group produced.",items:{$ref:"#/$defs/ManifestDigest"},type:"array"},sources:{description:"The concurring sources, in the caller's requested order.",items:{$ref:"#/$defs/WorkAttemptIdentityV1"},type:"array"}},required:["artifacts","sources"],type:"object"},Sj={description:"Why a synthesis request was answered with the unsynthesized set instead\nof an admitted attempt.",oneOf:[{const:"no_citable_sources",description:"No source contributed a citable artifact: every source failed, was\ncancelled, timed out, is still unknown, or succeeded without\ndeclaring artifacts. There is nothing a synthesis could truthfully\ncite.",type:"string"}]},SC={additionalProperties:!1,description:"One immutable source envelope: which attempt, and what it truthfully\ncontributed at admission time.",properties:{outcome:{$ref:"#/$defs/WorkSynthesisSourceOutcomeV1"},source:{$ref:"#/$defs/WorkAttemptIdentityV1"}},required:["source","outcome"],type:"object"},ST={description:"One sibling attempt's terminal contribution, captured verbatim from the\nWork authority at admission time.",oneOf:[{description:"The source succeeded; its declared artifact digests, in declaration\norder, are the evidence a synthesis may cite.",properties:{artifacts:{items:{$ref:"#/$defs/ManifestDigest"},type:"array"},outcome:{const:"succeeded",type:"string"}},required:["outcome","artifacts"],type:"object"},{description:"The source failed; its sealed terminal evidence digest is preserved\nso the failure stays visible in the synthesis record.",properties:{evidence:{$ref:"#/$defs/ManifestDigest"},outcome:{const:"failed",type:"string"}},required:["outcome","evidence"],type:"object"},{description:"The source timed out; preserved like a failure.",properties:{evidence:{$ref:"#/$defs/ManifestDigest"},outcome:{const:"timed_out",type:"string"}},required:["outcome","evidence"],type:"object"},{description:"The source was cancelled; preserved like a failure.",properties:{evidence:{$ref:"#/$defs/ManifestDigest"},outcome:{const:"cancelled",type:"string"}},required:["outcome","evidence"],type:"object"},{description:"The source has not reached a terminal state. The unknown is preserved\nas an unknown; it contributes no citable evidence and is never\nguessed at.",properties:{outcome:{const:"unknown",type:"string"},state:{$ref:"#/$defs/WorkAttemptStateV1"}},required:["outcome","state"],type:"object"}]},SO={additionalProperties:!1,description:"The ordered, digest-sealed source envelope set a synthesis admission\nconsumed. Reordering or mutating any envelope changes the digest, so a\nreplayed or tampered set is distinguishable from the admitted one.",properties:{set_digest:{$ref:"#/$defs/ManifestDigest",description:"Canonical digest over the ordered envelopes."},sources:{description:"The envelopes, exactly in the caller's requested order.",items:{$ref:"#/$defs/WorkSynthesisSourceEnvelopeV1"},type:"array"}},required:["sources","set_digest"],type:"object"},SE={additionalProperties:!1,properties:{attempt:{$ref:"#/$defs/WorkAttemptIdentityV1"},binding:{description:"Binds the continuation to the retrieve-evidence operation and the\nresult-shaping request fields the envelope does not echo.",type:"string"},participant_epoch:{$ref:"#/$defs/ManifestDigest"},ranking_cursor:{type:["string","null"]},source:{$ref:"#/$defs/ObservationSourceIdentityV1"},temporal_cursor:{type:["string","null"]},verified_version:{$ref:"#/$defs/VerifiedWorkGraphVersionV1"}},required:["verified_version","attempt","source","participant_epoch","binding"],type:"object"},SA={oneOf:[{properties:{evidence_digest:{$ref:"#/$defs/ManifestDigest"},observed_at:{$ref:"#/$defs/UtcMicros"},outcome:{const:"succeeded",type:"string"}},required:["outcome","evidence_digest","observed_at"],type:"object"},{properties:{evidence_digest:{$ref:"#/$defs/ManifestDigest"},observed_at:{$ref:"#/$defs/UtcMicros"},outcome:{const:"failed",type:"string"}},required:["outcome","evidence_digest","observed_at"],type:"object"},{properties:{evidence_digest:{$ref:"#/$defs/ManifestDigest"},observed_at:{$ref:"#/$defs/UtcMicros"},outcome:{const:"timed_out",type:"string"}},required:["outcome","evidence_digest","observed_at"],type:"object"},{properties:{evidence_digest:{$ref:"#/$defs/ManifestDigest"},observed_at:{$ref:"#/$defs/UtcMicros"},outcome:{const:"cancelled",type:"string"}},required:["outcome","evidence_digest","observed_at"],type:"object"}]},SW={description:"Strongly typed algorithm-tagged integrity digest: `WorkTopologyGenerationRefV1`.",type:"string"},SM={additionalProperties:!1,description:"Complete V1 policy. Partial values are intentionally impossible: callers\nmust provide the entire policy and validation rejects adapter-local defaults.",properties:{branch_naming:{$ref:"#/$defs/BranchNamingPolicyV1"},branch_topology:{$ref:"#/$defs/BranchTopologyPolicyV1"},concurrency:{$ref:"#/$defs/TopologyConcurrencyPolicyV1"},cross_merge:{$ref:"#/$defs/CrossMergePolicyV1"},escalation:{$ref:"#/$defs/TopologyEscalationPolicyV1"},gates:{$ref:"#/$defs/TopologyGatePolicyV1"},history_rewrite:{$ref:"#/$defs/HistoryRewritePolicyV1"},notifications:{$ref:"#/$defs/TopologyNotificationLevelV1"},placement:{$ref:"#/$defs/WorktreePlacementModeV1"},protected_refs:{items:{$ref:"#/$defs/ProtectedRefRuleV1"},type:"array"},retention:{$ref:"#/$defs/WorktreeRetentionPolicyV1"},review_topology:{$ref:"#/$defs/ReviewTopologyPolicyV1"},roots:{items:{$ref:"#/$defs/WorktreeRootPolicyV1"},type:"array"},schema_version:{format:"uint16",maximum:65535,minimum:0,type:"integer"}},required:["schema_version","placement","roots","branch_topology","review_topology","branch_naming","concurrency","cross_merge","gates","protected_refs","history_rewrite","escalation","retention","notifications"],type:"object"},SN={additionalProperties:!1,properties:{definition_id:{$ref:"#/$defs/WorkflowDefinitionId"},definition_version:{format:"uint64",minimum:0,type:"integer"},pinned_catalog_digest:{$ref:"#/$defs/ManifestDigest",description:"Must equal the live Work executable catalog digest. Validation and\nactivation report the current digest when this pin is stale."},pinned_configuration_digest:{$ref:"#/$defs/ManifestDigest"},pinned_policy_digest:{$ref:"#/$defs/ManifestDigest"},project_id:{$ref:"#/$defs/ProjectId"},steps:{items:{$ref:"#/$defs/WorkflowStep"},type:"array"}},required:["definition_id","definition_version","project_id","steps","pinned_policy_digest","pinned_configuration_digest","pinned_catalog_digest"],type:"object"},Sz={description:"Strongly typed canonical identity: `WorkflowDefinitionId`.",type:"string"},SD={additionalProperties:!1,properties:{max_width:{format:"uint32",minimum:0,type:"integer"}},required:["max_width"],type:"object"},SF={description:"Strongly typed canonical identity: `WorkflowOperationRef`.",type:"string"},SL={description:"Strongly typed canonical identity: `WorkflowOutputName`.",type:"string"},SU={additionalProperties:!1,properties:{output_name:{$ref:"#/$defs/WorkflowOutputName"},producer_step_id:{$ref:"#/$defs/WorkflowStepId"}},required:["producer_step_id","output_name"],type:"object"},SH={additionalProperties:!1,properties:{fan_out:{anyOf:[{$ref:"#/$defs/WorkflowFanOut"},{type:"null"}]},inputs:{items:{$ref:"#/$defs/WorkflowOutputReference"},type:"array"},operation:{$ref:"#/$defs/WorkflowOperationRef"},outputs:{items:{$ref:"#/$defs/WorkflowOutputName"},type:"array"},predecessors:{items:{$ref:"#/$defs/WorkflowStepId"},type:"array",uniqueItems:!0},step_id:{$ref:"#/$defs/WorkflowStepId"}},required:["step_id","operation","predecessors","inputs","outputs"],type:"object"},SG={description:"Strongly typed canonical identity: `WorkflowStepId`.",type:"string"},SB={additionalProperties:!1,description:"A provider's claim that one artifact of a fan-out output synthesizes its\nsibling source artifacts.",properties:{cited_source_digests:{description:"Content digests of every source artifact the synthesis consumed.",items:{$ref:"#/$defs/ManifestDigest"},type:"array",uniqueItems:!0},output_name:{$ref:"#/$defs/WorkflowOutputName",description:"The fan-out output the synthesis belongs to."},synthesis_attempt:{$ref:"#/$defs/WorkAttemptIdentityV1",description:"The attempt that produced the synthesis artifact inside that output."}},required:["output_name","synthesis_attempt","cited_source_digests"],type:"object"},SK={enum:["require_clean","allow_untracked_only_for_preflight","read_only_preflight_only"],type:"string"},SJ={description:"Strongly typed canonical identity: `WorktreeId`.",type:"string"},SZ={description:"Monotonic epoch of the worktree inventory frozen into a stack revision.",format:"uint64",minimum:0,type:"integer"},SQ={description:"Strongly typed canonical identity: `WorktreeInventorySnapshotId`.",type:"string"},SX={oneOf:[{properties:{kind:{const:"existing_worktree_only",type:"string"}},required:["kind"],type:"object"},{properties:{kind:{const:"sibling_of_primary_checkout",type:"string"}},required:["kind"],type:"object"},{properties:{kind:{const:"repository_local_root",type:"string"}},required:["kind"],type:"object"},{properties:{kind:{const:"configured_root",type:"string"},root_id:{type:"string"}},required:["kind","root_id"],type:"object"}]},SY={additionalProperties:!1,properties:{abandoned_retention_seconds:{format:"uint64",minimum:1,type:["integer","null"]},automatic_gc:{$ref:"#/$defs/AutomaticWorktreeGcV1"},maximum_retained_per_repository:{format:"uint16",maximum:65535,minimum:1,type:["integer","null"]},terminal_retention_seconds:{format:"uint64",minimum:1,type:["integer","null"]}},required:["automatic_gc"],type:"object"},S1={additionalProperties:!1,properties:{locator:{$ref:"#/$defs/SensitiveFilesystemLocatorV1"},maximum_active_worktrees:{format:"uint16",maximum:65535,minimum:1,type:"integer"},repository_scope:{$ref:"#/$defs/RepositoryPlacementScopeV1"},root_id:{type:"string"}},required:["root_id","locator","repository_scope","maximum_active_worktrees"],type:"object"},S0=[{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,title:"ActiveProjectSurfaceRequestV1",type:"object"},{$defs:{ActiveProjectBranchV1:{additionalProperties:!1,properties:{branch_drifted:{type:"boolean"},branch_resolution:{type:"string"},current_branch:{type:["string","null"]},open_active_branch:{type:["string","null"]},serving_branch:{type:["string","null"]},tracked_branch_count:{format:"uint",minimum:0,type:"integer"},warnings:{items:{type:"string"},type:"array"}},required:["branch_resolution","branch_drifted","tracked_branch_count","warnings"],type:"object"},ActiveProjectResolutionSourceV1:{enum:["active_project"],type:"string"},ActiveProjectStorageV1:{additionalProperties:!1,properties:{class:{type:"string"},data_root:{type:"string"},graph_db_exists:{type:"boolean"},graph_db_path:{type:"string"},graph_db_size_bytes:{format:"uint64",minimum:0,type:"integer"},lcm_payload_root:{type:"string"},mode:{type:"string"},response_handle_root:{type:"string"},sessions_db_path:{type:"string"}},required:["class","mode","data_root","graph_db_path","graph_db_exists","graph_db_size_bytes","sessions_db_path","response_handle_root","lcm_payload_root"],type:"object"}},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"The resolved active project of this MCP session.",properties:{branch:{$ref:"#/$defs/ActiveProjectBranchV1"},project_id:{type:["string","null"]},project_root:{type:"string"},repository_id:{type:"string"},resolution_source:{$ref:"#/$defs/ActiveProjectResolutionSourceV1"},scope_prefix:{type:["string","null"]},storage:{$ref:"#/$defs/ActiveProjectStorageV1"}},required:["repository_id","project_root","resolution_source","storage","branch"],title:"ActiveProjectResultV1",type:"object"},{$defs:{AdminCliScopeV1:{description:"What a cost or analytics action reads: the served project's ledgers and\nsessions, or the whole profile's.",enum:["project","profile"],type:"string"}},$schema:"https://json-schema.org/draft/2020-12/schema",oneOf:[{additionalProperties:!1,description:"Savings and provider-usage cost over `range` (`today`, `7d`, ...).",properties:{action:{const:"cost_summary",type:"string"},range:{type:"string"},scope:{$ref:"#/$defs/AdminCliScopeV1"}},required:["action","range","scope"],type:"object"},{additionalProperties:!1,description:"Import every host's transcripts into the project's session store.",properties:{action:{const:"sessions_import",type:"string"}},required:["action"],type:"object"},{additionalProperties:!1,description:"Converge project sessions with Git history.",properties:{action:{const:"sessions_git_sync",type:"string"},dry_run:{type:"boolean"},limit_sessions:{format:"uint",minimum:0,type:"integer"},since:{format:"int64",type:"integer"}},required:["action","since","limit_sessions","dry_run"],type:"object"},{additionalProperties:!1,properties:{action:{const:"sessions_sync_status",type:"string"},idempotency_key:{type:"string"}},required:["action","idempotency_key"],type:"object"},{additionalProperties:!1,properties:{action:{const:"sessions_sync_cancel",type:"string"},idempotency_key:{type:"string"}},required:["action","idempotency_key"],type:"object"},{additionalProperties:!1,properties:{action:{const:"sessions_unfinished",type:"string"},limit:{format:"uint",minimum:0,type:"integer"}},required:["action","limit"],type:"object"},{additionalProperties:!1,description:"Import hook analytics JSONL into the accounting ledger.",properties:{action:{const:"analytics_sync",type:"string"},scope:{$ref:"#/$defs/AdminCliScopeV1"}},required:["action","scope"],type:"object"},{additionalProperties:!1,properties:{action:{const:"analytics_diagnostics",type:"string"},all:{type:"boolean"},no_sync:{type:"boolean"},scope:{$ref:"#/$defs/AdminCliScopeV1"}},required:["action","scope","all","no_sync"],type:"object"},{additionalProperties:!1,description:"Record the served project's saved-token total.",properties:{action:{const:"registry_update",type:"string"},tokens:{format:"uint64",minimum:0,type:"integer"}},required:["action","tokens"],type:"object"},{additionalProperties:!1,properties:{action:{const:"registry_list",type:"string"},limit:{format:"uint",minimum:0,type:"integer"},project_arg:{description:"Checkout to mark active when the caller's connection names no\nproject.",type:["string","null"]},query:{type:["string","null"]}},required:["action","limit"],type:"object"},{additionalProperties:!1,properties:{action:{const:"registry_context",type:"string"},project_arg:{description:"Project path or alias; the caller's project when omitted.",type:["string","null"]}},required:["action"],type:"object"},{additionalProperties:!1,properties:{action:{const:"registry_empty",type:"string"}},required:["action"],type:"object"},{additionalProperties:!1,properties:{action:{const:"registry_project_tokens",type:"string"},project_args:{items:{type:"string"},type:"array"}},required:["action","project_args"],type:"object"},{additionalProperties:!1,description:"Plan, or with `apply` execute, collection of registry rows whose\ncheckout is gone.",properties:{action:{const:"registry_gc",type:"string"},apply:{type:"boolean"},prefix:{type:["string","null"]}},required:["action","apply"],type:"object"},{additionalProperties:!1,description:"One project's storage (`project_id` with `project_root`), or one page\nof the profile's.",properties:{action:{const:"storage_report",type:"string"},cursor:{default:null,type:["string","null"]},limit:{default:8,format:"uint",minimum:0,type:"integer"},project_id:{type:["string","null"]},project_root:{type:["string","null"]}},required:["action"],type:"object"},{additionalProperties:!1,properties:{action:{const:"gain_query",type:"string"},history:{type:"boolean"},project_arg:{type:["string","null"]},since:{format:"int64",type:"integer"}},required:["action","since","history"],type:"object"}],title:"AdminCliSurfaceRequestV1"},{$defs:{AdminCliAnalyticsImportV1:{additionalProperties:!1,properties:{imported:{format:"uint64",minimum:0,type:"integer"},sources:{description:"One row per hook JSONL source: `path`, `imported`, `skipped`, `error`.",items:!0,type:"array"}},required:["imported","sources"],type:"object"},AdminCliCostSummaryV1:{additionalProperties:!1,properties:{range:{type:"string"},summary:{$ref:"#/$defs/AdminCliCostTotalsV1"},today:{$ref:"#/$defs/AdminCliCostTodayV1"}},required:["range","summary","today"],type:"object"},AdminCliCostTodayV1:{additionalProperties:!1,properties:{provider_usage:!0},required:["provider_usage"],type:"object"},AdminCliCostTotalsV1:{additionalProperties:!1,properties:{efficiency_ratio:{description:"Saved over saved-plus-consumed; null when consumption is unmeasured.",format:"double",type:["number","null"]},provider_usage:{description:"The provider-usage cost summary as the session memory prices it."},tokens_saved:{format:"uint64",minimum:0,type:"integer"}},required:["provider_usage","tokens_saved"],type:"object"},AdminCliGainDayV1:{additionalProperties:!1,properties:{calls:{format:"uint64",minimum:0,type:"integer"},day:{description:"Start-of-day epoch seconds (UTC).",format:"int64",type:"integer"},saved_tokens:{format:"uint64",minimum:0,type:"integer"}},required:["day","saved_tokens","calls"],type:"object"},AdminCliGainHistoryV1:{additionalProperties:!1,properties:{history:{items:{$ref:"#/$defs/AdminCliGainDayV1"},type:"array"}},required:["history"],type:"object"},AdminCliGainTotalV1:{additionalProperties:!1,properties:{calls:{format:"uint64",minimum:0,type:"integer"},saved_tokens:{format:"uint64",minimum:0,type:"integer"}},required:["saved_tokens","calls"],type:"object"},AdminCliProjectTokenTotalV1:{additionalProperties:!1,description:"A project whose ledger could not be read reports a null total and the\nreason, never a measured zero.",properties:{error:{type:["string","null"]},project:{type:"string"},tokens:{format:"uint64",minimum:0,type:["integer","null"]}},required:["project"],type:"object"},AdminCliProjectTokensV1:{additionalProperties:!1,properties:{projects:{items:{$ref:"#/$defs/AdminCliProjectTokenTotalV1"},type:"array"}},required:["projects"],type:"object"},AdminCliRegistryContextV1:{oneOf:[{additionalProperties:!1,properties:{aliases:{description:"Alias rows exactly as the registry serializes them.",items:!0,type:"array"},profile_id:{type:"string"},project:{$ref:"#/$defs/PublicCodeProject"},status:{const:"ok",type:"string"},stores:{description:"Store rows exactly as the registry serializes them.",items:!0,type:"array"}},required:["status","profile_id","project","aliases","stores"],type:"object"},{additionalProperties:!1,description:"The call named no project and its connection has none.",properties:{project:{type:"null"},status:{const:"invalid",type:"string"}},required:["status","project"],type:"object"},{additionalProperties:!1,properties:{project:{type:"null"},status:{const:"not_found",type:"string"}},required:["status","project"],type:"object"}]},AdminCliRegistryEmptyV1:{additionalProperties:!1,properties:{empty:{type:"boolean"}},required:["empty"],type:"object"},AdminCliRegistryGcV1:{additionalProperties:!1,description:"The registry collection plan, with its deletion counters filled when it\nwas applied.",properties:{apply:{type:"boolean"},candidate_count:{format:"uint",minimum:0,type:"integer"},candidate_paths:{items:{type:"string"},type:"array"},candidates:{description:"Registry project rows exactly as the registry serializes them.",items:!0,type:"array"},code_project_candidate_count:{format:"uint",minimum:0,type:"integer"},deleted_code_project_count:{format:"uint",minimum:0,type:"integer"},deleted_count:{format:"uint",minimum:0,type:"integer"},deleted_storage_project_count:{format:"uint",minimum:0,type:"integer"},metadata_candidate_count:{format:"uint",minimum:0,type:"integer"},prefix:{type:["string","null"]},protected_code_project_count:{format:"uint",minimum:0,type:"integer"},protected_code_projects:{items:!0,type:"array"},storage_project_candidate_count:{format:"uint",minimum:0,type:"integer"},storage_project_candidates:{items:{type:"string"},type:"array"}},required:["apply","candidate_count","metadata_candidate_count","code_project_candidate_count","storage_project_candidate_count","protected_code_project_count","deleted_count","deleted_code_project_count","deleted_storage_project_count","candidate_paths","candidates","protected_code_projects","storage_project_candidates"],type:"object"},AdminCliRegistryListV1:{oneOf:[{additionalProperties:!1,properties:{limit:{format:"uint",minimum:0,type:"integer"},project_tree:{items:{$ref:"#/$defs/ProjectRepoGroup"},type:"array"},projects:{items:{$ref:"#/$defs/PublicCodeProject"},type:"array"},query:{type:["string","null"]},status:{const:"ok",type:"string"},summary:{$ref:"#/$defs/ProjectRegistrySummary"},truncated:{type:"boolean"}},required:["status","limit","truncated","summary","project_tree","projects"],type:"object"}]},AdminCliRegistryUpdateV1:{additionalProperties:!1,properties:{current:{format:"uint64",minimum:0,type:"integer"},previous:{description:"The total before this write; null when the ledger could not be read.",format:"uint64",minimum:0,type:["integer","null"]},previous_error:{type:["string","null"]}},required:["current"],type:"object"},AdminCliSessionSyncV1:{description:"The daemon session-sync owner's answer.",oneOf:[{additionalProperties:!1,properties:{accepted_at:{$ref:"#/$defs/UtcMicros"},idempotency_key:{type:"string"},operation_id:{type:"string"},status:{const:"accepted",type:"string"}},required:["status","operation_id","idempotency_key","accepted_at"],type:"object"},{additionalProperties:!1,description:"An identical sync was already running; this call joined it.",properties:{accepted_at:{$ref:"#/$defs/UtcMicros"},idempotency_key:{type:"string"},operation_id:{type:"string"},status:{const:"joined",type:"string"}},required:["status","operation_id","idempotency_key","accepted_at"],type:"object"},{additionalProperties:!1,properties:{coalesced_primary:{type:["string","null"]},completed_at:{$ref:"#/$defs/UtcMicros"},coverage:{items:{$ref:"#/$defs/SessionSyncSourceCoverageV1"},type:"array"},failure_codes:{items:{type:"string"},type:"array"},idempotency_key:{type:"string"},operation_id:{type:"string"},source:{$ref:"#/$defs/SessionSyncSourceV1"},source_frontiers:{items:{$ref:"#/$defs/SessionSyncSourceFrontierV1"},type:"array"},stats:{$ref:"#/$defs/SessionSyncStatsV1"},status:{const:"complete",type:"string"},termination:{$ref:"#/$defs/OperationTermination"}},required:["status","operation_id","idempotency_key","source","termination","stats","coverage","source_frontiers","failure_codes","completed_at"],type:"object"},{additionalProperties:!1,properties:{status:{const:"cancelled",type:"string"}},required:["status"],type:"object"},{additionalProperties:!1,properties:{status:{const:"deadline_exceeded",type:"string"}},required:["status"],type:"object"},{additionalProperties:!1,properties:{status:{const:"wrong_scope",type:"string"}},required:["status"],type:"object"},{additionalProperties:!1,properties:{reason_code:{type:"string"},status:{const:"unavailable",type:"string"}},required:["status","reason_code"],type:"object"}]},AdminCliStorageReportV1:{additionalProperties:!1,description:"One storage report page, or one project's report.",properties:{code_generation_retention:{items:!0,type:"array"},code_generation_retention_availability:{items:!0,type:"array"},coverage:!0,full_profile_size:!0,global_db_bytes:{format:"uint64",minimum:0,type:"integer"},profile_root:{type:"string"},stores:{description:"Report rows exactly as the retention report serializes them.",items:!0,type:"array"},unregistered_bytes:{format:"uint64",minimum:0,type:"integer"},unregistered_dir_count:{format:"uint",minimum:0,type:"integer"},user_sessions_db_bytes:{default:0,format:"uint64",minimum:0,type:"integer"}},required:["profile_root","stores","code_generation_retention","code_generation_retention_availability","unregistered_dir_count","unregistered_bytes","global_db_bytes","coverage"],type:"object"},AdminCliUnfinishedSessionsV1:{additionalProperties:!1,properties:{items:{description:"Workflow state rows exactly as the session store serializes them.",items:!0,type:"array"}},required:["items"],type:"object"},OperationTermination:_U,ProjectRegistryEntry:_3,ProjectRegistrySummary:_9,ProjectRepoGroup:_5,PublicCodeProject:vs,SessionSyncCoverageV1:{oneOf:[{properties:{outcome:{const:"complete",type:"string"}},required:["outcome"],type:"object"},{properties:{deferred_units:{format:"uint64",minimum:0,type:"integer"},outcome:{const:"partial",type:"string"}},required:["outcome","deferred_units"],type:"object"},{properties:{admitted_units:{format:"uint64",minimum:0,type:"integer"},outcome:{const:"backpressured",type:"string"},rejected_units:{format:"uint64",minimum:0,type:"integer"}},required:["outcome","admitted_units","rejected_units"],type:"object"}]},SessionSyncSourceCoverageV1:{properties:{coverage:{$ref:"#/$defs/SessionSyncCoverageV1"},store_scope:{type:"string"}},required:["store_scope","coverage"],type:"object"},SessionSyncSourceFrontierV1:{description:"Exact canonical observation cursor committed by one source/store authority.",properties:{committed_cursor_json:{type:"string"},scope_json:{type:"string"},source_json:{type:"string"},store_scope:{type:"string"}},required:["store_scope","source_json","scope_json","committed_cursor_json"],type:"object"},SessionSyncSourceV1:{description:"The command that started a session sync, without its options.",oneOf:[{const:"import_transcripts",description:"Hands its remaining historical catch-up to the background refresh\nworkers.",type:"string"},{const:"synchronize_git",description:"A bounded foreground pass; nothing resumes its unfinished coverage.",type:"string"}]},SessionSyncStatsV1:{properties:{commits_attributed:{format:"uint64",minimum:0,type:"integer"},messages_imported:{format:"uint64",minimum:0,type:"integer"},sessions_imported:{format:"uint64",minimum:0,type:"integer"},sessions_scanned:{format:"uint64",minimum:0,type:"integer"},skipped:{format:"uint64",minimum:0,type:"integer"},spans_written:{format:"uint64",minimum:0,type:"integer"}},required:["sessions_imported","messages_imported","sessions_scanned","spans_written","commits_attributed","skipped"],type:"object"},UtcMicros:bX},$schema:"https://json-schema.org/draft/2020-12/schema",anyOf:[{$ref:"#/$defs/AdminCliCostSummaryV1"},{$ref:"#/$defs/AdminCliSessionSyncV1"},{$ref:"#/$defs/AdminCliUnfinishedSessionsV1"},{$ref:"#/$defs/AdminCliAnalyticsImportV1"},{$ref:"#/$defs/AdminCliRegistryUpdateV1"},{$ref:"#/$defs/AdminCliRegistryListV1"},{$ref:"#/$defs/AdminCliRegistryContextV1"},{$ref:"#/$defs/AdminCliRegistryEmptyV1"},{$ref:"#/$defs/AdminCliProjectTokensV1"},{$ref:"#/$defs/AdminCliRegistryGcV1"},{$ref:"#/$defs/AdminCliStorageReportV1"},{$ref:"#/$defs/AdminCliGainHistoryV1"},{$ref:"#/$defs/AdminCliGainTotalV1"},{description:"The diagnostics report is the analytics bridge's open document; it\ndecodes last so it never claims another action's body."}],description:"One action's answer.",title:"AdminCliResultV1"},{$defs:{AutomaticFactReceiptStateV1:fF,AutomationReconcileScope:fB},$schema:"https://json-schema.org/draft/2020-12/schema",description:"Every action is a struct variant: an internally tagged unit variant would\nignore keys beside its tag instead of refusing them.",oneOf:[{additionalProperties:!1,description:"Read the project's local usage counter.",properties:{action:{const:"counter_get",type:"string"}},required:["action"],type:"object"},{additionalProperties:!1,description:"Reset the project's local usage counter to zero.",properties:{action:{const:"counter_reset",type:"string"}},required:["action"],type:"object"},{additionalProperties:!1,description:"Record the project's saved-token total in the profile registry and\nread it back beside the other projects' total.",properties:{action:{const:"status_accounting",type:"string"}},required:["action"],type:"object"},{additionalProperties:!1,description:"List terminal automatic-fact receipts.",properties:{action:{const:"automatic_fact_receipt_list",type:"string"},limit:{format:"uint",minimum:0,type:"integer"},state:{anyOf:[{$ref:"#/$defs/AutomaticFactReceiptStateV1"},{type:"null"}],description:"Only receipts in this state (default: every state)."}},required:["action","limit"],type:"object"},{additionalProperties:!1,description:"Read one automatic-fact receipt by its apply id.",properties:{action:{const:"automatic_fact_receipt_view",type:"string"},id:{type:"string"}},required:["action","id"],type:"object"},{additionalProperties:!1,description:"Reconcile automation schedulers with the saved configuration.",properties:{action:{const:"automation_reconcile",type:"string"},scope:{$ref:"#/$defs/AutomationReconcileScope"}},required:["action","scope"],type:"object"}],title:"AdminProjectSurfaceRequestV1"},{$defs:{AdminProjectCounterResetV1:{additionalProperties:!1,properties:{reset:{description:"Always true: a reset that did not settle is a refusal.",type:"boolean"}},required:["reset"],type:"object"},AdminProjectCounterV1:{additionalProperties:!1,properties:{counter:{format:"uint64",minimum:0,type:"integer"}},required:["counter"],type:"object"},AdminProjectStatusAccountingV1:{additionalProperties:!1,properties:{global_tokens_saved:{description:"Tokens the profile's other projects saved; null when they saved none.",format:"uint64",minimum:0,type:["integer","null"]},tokens_saved:{format:"uint64",minimum:0,type:"integer"}},required:["tokens_saved"],type:"object"},AutomaticFactAddRequestV1:{additionalProperties:!1,description:"The add-fact request an automatic apply recorded.",properties:{category:{$ref:"#/$defs/FactCategoryV1"},content:{type:"string"},entities:{items:{type:"string"},type:"array"},metadata:!0,source_label:{type:["string","null"]},tags:{items:{type:"string"},type:"array"},trust:{format:"double",type:"number"}},required:["content","category","tags","entities","trust","metadata"],type:"object"},AutomaticFactEvidenceV1:{additionalProperties:!1,description:"Automation evidence retained with the receipt.",properties:{evidence_hash:{type:["string","null"]},item:!0,validation:!0},type:"object"},AutomaticFactReceiptAvailabilityV1:{oneOf:[{additionalProperties:!1,properties:{state:{const:"available",type:"string"}},required:["state"],type:"object"}]},AutomaticFactReceiptListV1:{additionalProperties:!1,properties:{availability:{$ref:"#/$defs/AutomaticFactReceiptAvailabilityV1"},count:{format:"uint",minimum:0,type:"integer"},next_after_apply_id:{description:"Continue after this apply id; null on the last page.",type:["string","null"]},receipts:{items:{$ref:"#/$defs/AutomaticFactReceiptV1"},type:"array"}},required:["availability","count","receipts"],type:"object"},AutomaticFactReceiptStateV1:fF,AutomaticFactReceiptV1:{additionalProperties:!1,description:"One terminal automatic-fact apply receipt.",properties:{add_fact_request:{$ref:"#/$defs/AutomaticFactAddRequestV1"},applied_fact_id:{description:"Present when the fact was applied.",type:["string","null"]},apply_id:{type:"string"},evidence:{$ref:"#/$defs/AutomaticFactEvidenceV1"},operation_id:{type:"string"},quarantine_reason:{description:"Present when the fact was quarantined.",type:["string","null"]},recorded_at_micros:{format:"int64",type:"integer"},state:{$ref:"#/$defs/AutomaticFactReceiptStateV1"}},required:["apply_id","state","operation_id","add_fact_request","evidence","recorded_at_micros"],type:"object"},AutomaticFactReceiptViewV1:{additionalProperties:!1,properties:{receipt:{$ref:"#/$defs/AutomaticFactReceiptV1"}},required:["receipt"],type:"object"},AutomationReconcileScope:fB,AutomationSchedulerOwnerReconcileOutcome:{additionalProperties:!1,properties:{graph_db_path:{type:"string"},outcome:{$ref:"#/$defs/AutomationSchedulerReconcileOutcome"},project_id:{type:["string","null"]},scope_prefix:{type:["string","null"]},store_root:{type:"string"}},required:["store_root","graph_db_path","outcome"],type:"object"},AutomationSchedulerReconcileOutcome:{description:"What reconciling one automation scheduler did.",enum:["started","running_notified","exiting","finished","retiring","not_configured","lifecycle_inactive","owner_unavailable"],type:"string"},FactCategoryV1:yW,ProfileAutomationReconcileReport:{additionalProperties:!1,description:"Every cached project scheduler of the profile, reconciled.",properties:{cached_owners:{format:"uint",minimum:0,type:"integer"},outcomes:{items:{$ref:"#/$defs/AutomationSchedulerOwnerReconcileOutcome"},type:"array"},scope:{$ref:"#/$defs/AutomationReconcileScope",description:"Always `profile`."},uncached_projects:{$ref:"#/$defs/UncachedProjectReconcileOutcome"}},required:["scope","cached_owners","outcomes","uncached_projects"],type:"object"},ProjectAutomationReconcileReport:{additionalProperties:!1,description:"The served project's scheduler reconcile.",properties:{outcome:{$ref:"#/$defs/AutomationSchedulerReconcileOutcome"},scope:{$ref:"#/$defs/AutomationReconcileScope",description:"Always `project`."}},required:["scope","outcome"],type:"object"},UncachedProjectReconcileOutcome:{description:"A project whose scheduler is not cached reconciles when it next starts.",enum:["deferred_until_project_startup"],type:"string"}},$schema:"https://json-schema.org/draft/2020-12/schema",anyOf:[{$ref:"#/$defs/AdminProjectCounterV1"},{$ref:"#/$defs/AdminProjectCounterResetV1"},{$ref:"#/$defs/AdminProjectStatusAccountingV1"},{$ref:"#/$defs/AutomaticFactReceiptListV1"},{$ref:"#/$defs/AutomaticFactReceiptViewV1"},{$ref:"#/$defs/ProjectAutomationReconcileReport"},{$ref:"#/$defs/ProfileAutomationReconcileReport"}],description:"One action's result, in the shape the action has always answered.",title:"AdminProjectResultV1"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"`tracedecay_admin_sync` takes no arguments: it reconciles the served\nproject.",title:"AdminSyncSurfaceRequestV1",type:"object"},{$defs:{AdminSyncAdmissionV1:{description:"The code-index scheduler's admission of the reconcile.",oneOf:[{enum:["queued"],type:"string"},{const:"not_applicable",description:"Code indexing does not apply to this project.",type:"string"}]},AdminSyncReconcileScopeV1:{description:"What the reconcile covers.",enum:["authoritative_project"],type:"string"}},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{project_root:{type:"string"},reconcile_scope:{$ref:"#/$defs/AdminSyncReconcileScopeV1"},status:{$ref:"#/$defs/AdminSyncAdmissionV1"}},required:["reconcile_scope","status","project_root"],title:"AdminSyncResultV1",type:"object"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{depth:{description:"Maximum dependency traversal depth (default: 5, at most 10).",format:"uint32",minimum:0,type:["integer","null"]},files:{description:"List of changed file paths to analyze.",items:{type:"string"},type:"array"},filter:{description:"Custom glob pattern for test files (default: common test patterns).",type:["string","null"]}},required:["files"],title:"AffectedSurfaceRequestV1",type:"object"},{$defs:{AffectedRankingMetadataV1:{additionalProperties:!1,properties:{compatibility_field:{type:"string"},distance:{type:"string"},recommended_proximity:{items:{type:"string"},type:"array"},strategy:{type:"string"}},required:["strategy","distance","recommended_proximity","compatibility_field"],type:"object"},CodeIndexBuildBlockedReasonV1:hv,CodeIndexConvergenceParkedV1:hb,CodeIndexStalenessStateV1:hw,PrimitiveFreshnessStateV1:_K,PrimitiveIndexingStateV1:_J,PrimitiveSearchFreshnessV1:_Y,RankedAffectedTestV1:{additionalProperties:!1,properties:{distance:{format:"uint",minimum:0,type:"integer"},path:{type:"string"},proximity:{type:"string"},rank:{format:"uint",minimum:0,type:"integer"}},required:["path","rank","distance","proximity"],type:"object"}},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{affected_tests:{items:{type:"string"},type:"array"},changed_files:{items:{type:"string"},type:"array"},count:{format:"uint",minimum:0,type:"integer"},freshness:{anyOf:[{$ref:"#/$defs/PrimitiveSearchFreshnessV1"},{type:"null"}],description:"The worktree verdict a served graph read opens with."},ranked_tests:{items:{$ref:"#/$defs/RankedAffectedTestV1"},type:"array"},ranking_metadata:{$ref:"#/$defs/AffectedRankingMetadataV1"},recommended_tests:{description:"Tests within two dependency hops of a changed file.",items:{type:"string"},type:"array"}},required:["changed_files","affected_tests","count","ranked_tests","recommended_tests","ranking_metadata"],title:"AffectedResultV1",type:"object"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"Opaque daemon-minted handle accepted by the first feedback read invocation.",properties:{request_handle:{type:"string"}},required:["request_handle"],title:"FeedbackHandleRequestV1",type:"object"},{$defs:{AgentInstanceId:fS,CodeGenerationId:hg,CommitId:hI,FeedbackContentIdentityV1:y2,FeedbackCycleId:y4,FeedbackImpactStateV1:gi,FeedbackResultId:gn,FeedbackScopeV1:ga,FeedbackTargetV1:gs,FileOccurrenceId:gd,HostInstanceId:gU,ManifestDigest:_p,ProjectId:_6,RepositoryId:v$,RetrievalAnchorId:vx,SessionId:be,SourceSpan:bk,SymbolOccurrenceId:bx,WorktreeId:SJ},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"Canonical affected-tests projection returned by `affected_tests`.",properties:{affected_tests:{items:{$ref:"#/$defs/SymbolOccurrenceId"},type:"array"},content_identity:{anyOf:[{$ref:"#/$defs/FeedbackContentIdentityV1"},{type:"null"}]},cycle_id:{$ref:"#/$defs/FeedbackCycleId"},evidence_anchors:{items:{$ref:"#/$defs/RetrievalAnchorId"},type:"array"},result_id:{$ref:"#/$defs/FeedbackResultId"},scope:{$ref:"#/$defs/FeedbackScopeV1"},state:{anyOf:[{$ref:"#/$defs/FeedbackImpactStateV1"},{type:"null"}]},target:{anyOf:[{$ref:"#/$defs/FeedbackTargetV1"},{type:"null"}]}},required:["result_id","cycle_id","scope","affected_tests","evidence_anchors"],title:"CanonicalAffectedTestsProjectionV1",type:"object"},{$defs:{AnalyticsScopeV1:fV,AnalyticsSectionV1:{enum:["tools","hints","facts","automation"],type:"string"}},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{scope:{anyOf:[{$ref:"#/$defs/AnalyticsScopeV1"},{type:"null"}],description:'"project" (default) scopes analytics_events to the resolved project;\n"all" reports across every registered project.'},section:{anyOf:[{$ref:"#/$defs/AnalyticsSectionV1"},{type:"null"}],description:"Optional filter to a single section. Omit to return all sections."},window_days:{description:"Lookback window in days for events and automation runs (default: 14,\n1-365).",format:"uint32",maximum:365,minimum:1,type:["integer","null"]}},title:"AnalyticsSurfaceRequestV1",type:"object"},{$defs:{AnalyticsAutomationJobOutcomesV1:{additionalProperties:!1,properties:{failed:{format:"int64",type:"integer"},job:{type:"string"},other:{format:"int64",type:"integer"},skipped:{format:"int64",type:"integer"},succeeded:{format:"int64",type:"integer"}},required:["job","succeeded","failed","skipped","other"],type:"object"},AnalyticsAutomationOutcomesV1:{additionalProperties:!1,description:"`available` is always `true`.",properties:{available:{type:"boolean"},by_job:{items:{$ref:"#/$defs/AnalyticsAutomationJobOutcomesV1"},type:"array"},dashboard_root:{type:"string"},records_considered:{format:"uint",minimum:0,type:"integer"},records_in_window:{format:"uint",minimum:0,type:"integer"},records_truncated:{type:"boolean"}},required:["available","dashboard_root","records_considered","records_in_window","records_truncated","by_job"],type:"object"},AnalyticsAutomationSectionV1:{anyOf:[{$ref:"#/$defs/AnalyticsAutomationOutcomesV1"},{$ref:"#/$defs/AnalyticsLedgerUnavailableV1"},{$ref:"#/$defs/AnalyticsSectionUnavailableV1"}],description:"The automation run outcomes of the resolved project's ledger, or why the\nledger is unavailable."},AnalyticsCanonicalCallNameV1:{additionalProperties:!1,description:"A recorded event name that resolved to a canonical tool under another\nspelling.",properties:{calls:{format:"int64",type:"integer"},canonical_tool_name:{type:"string"},errors:{format:"int64",type:"integer"},event_name:{type:"string"}},required:["event_name","canonical_tool_name","calls","errors"],type:"object"},AnalyticsEventCallNameV1:{additionalProperties:!1,description:"A recorded event name with no advertised canonical tool.",properties:{calls:{format:"int64",type:"integer"},errors:{format:"int64",type:"integer"},event_name:{type:"string"}},required:["event_name","calls","errors"],type:"object"},AnalyticsFactFunnelV1:{additionalProperties:!1,description:"`available` is always `true`.",properties:{available:{type:"boolean"},facts:{format:"uint64",minimum:0,type:"integer"},facts_rated:{format:"uint64",minimum:0,type:"integer"},facts_retrieved:{format:"uint64",minimum:0,type:"integer"},helpful_feedback:{format:"uint64",minimum:0,type:"integer"},project_root:{type:"string"},retrievals:{format:"uint64",minimum:0,type:"integer"},unhelpful_feedback:{format:"uint64",minimum:0,type:"integer"}},required:["available","project_root","facts","retrievals","facts_retrieved","helpful_feedback","unhelpful_feedback","facts_rated"],type:"object"},AnalyticsFactsSectionV1:{anyOf:[{$ref:"#/$defs/AnalyticsFactFunnelV1"},{$ref:"#/$defs/AnalyticsProjectSectionUnavailableV1"},{$ref:"#/$defs/AnalyticsSectionUnavailableV1"}],description:"The fact-store funnel of the resolved project, or why it is unavailable.\n\nThe variants are distinguished by their exact field sets, so each one\ndenies unknown fields and the most specific shape is tried first."},AnalyticsHintCategoryV1:{properties:{category:{type:"string"},emitted:{format:"int64",type:"integer"},followed:{format:"int64",type:"integer"},ignored:{format:"int64",type:"integer"},suppressed:{format:"int64",type:"integer"}},required:["category","emitted","followed","ignored","suppressed"],type:"object"},AnalyticsHintsPayloadV1:{properties:{available:{type:"boolean"},by_category:{items:{$ref:"#/$defs/AnalyticsHintCategoryV1"},type:"array"},error:{default:null,type:["string","null"]},source:{type:"string"}},required:["available","source","by_category"],type:"object"},AnalyticsLedgerUnavailableV1:{additionalProperties:!1,description:"The ledger exists but failed to read. `available` is always `false`.",properties:{available:{type:"boolean"},dashboard_root:{type:"string"},reason:{type:"string"}},required:["available","reason","dashboard_root"],type:"object"},AnalyticsModeReadModelV1:fw,AnalyticsModeV1:fP,AnalyticsProjectSectionUnavailableV1:{additionalProperties:!1,description:"A project-scoped section whose store failed to read. `available` is\nalways `false`.",properties:{available:{type:"boolean"},project_root:{type:"string"},reason:{type:"string"}},required:["available","reason","project_root"],type:"object"},AnalyticsReportStatusV1:{description:"The settled status of an analytics report.",enum:["ok"],type:"string"},AnalyticsScopeV1:fV,AnalyticsSectionUnavailableV1:{additionalProperties:!1,description:"A section the report could not read. `available` is always `false`.",properties:{available:{type:"boolean"},reason:{type:"string"}},required:["available","reason"],type:"object"},AnalyticsTierCountsV1:{additionalProperties:!1,properties:{calls:{format:"int64",type:"integer"},errors:{format:"int64",type:"integer"},tier:{type:"string"}},required:["tier","calls","errors"],type:"object"},AnalyticsToolsSectionV1:{additionalProperties:!1,properties:{aliased_call_names:{items:{$ref:"#/$defs/AnalyticsCanonicalCallNameV1"},type:"array"},available:{type:"boolean"},available_defined_tool_count:{format:"uint",minimum:0,type:"integer"},bound_internal_call_names:{items:{$ref:"#/$defs/AnalyticsEventCallNameV1"},type:"array"},called_available_defined_tool_count:{format:"uint",minimum:0,type:"integer"},raw_distinct_event_name_count:{format:"uint",minimum:0,type:"integer"},tiers:{items:{$ref:"#/$defs/AnalyticsTierCountsV1"},type:"array"},top_tools:{items:{$ref:"#/$defs/AnalyticsTopToolV1"},type:"array"},unknown_or_retired_call_names:{items:{$ref:"#/$defs/AnalyticsEventCallNameV1"},type:"array"},zero_call_available_defined_tools:{$ref:"#/$defs/AnalyticsZeroCallToolsV1"}},required:["available","tiers","top_tools","raw_distinct_event_name_count","called_available_defined_tool_count","available_defined_tool_count","aliased_call_names","bound_internal_call_names","unknown_or_retired_call_names","zero_call_available_defined_tools"],type:"object"},AnalyticsTopToolV1:{additionalProperties:!1,properties:{calls:{format:"int64",type:"integer"},errors:{format:"int64",type:"integer"},tier:{type:"string"},tool_name:{type:"string"}},required:["tool_name","tier","calls","errors"],type:"object"},AnalyticsZeroCallToolsV1:{additionalProperties:!1,properties:{count:{format:"uint",minimum:0,type:"integer"},sample:{items:{type:"string"},type:"array"},sample_truncated:{type:"boolean"}},required:["count","sample","sample_truncated"],type:"object"},ComparisonDispositionV1:hx,CostsReadModelV1:yp,CoverageStateV1:yh,LatencyDistributionReadModelV1:gZ,MetricCalibrationV1:_y,MetricCohortV1:_g,MetricCoverageV1:__,MetricEvidenceClassV1:_v,MetricProvenanceV1:_b,MetricSourceV1:_$,MetricTemporalV1:_S,MetricUncertaintyV1:_k,MetricValueV1:_w,ObservabilityHorizonV1:_M,ObservatoryReadModelV1:_z,PerformanceComparisonReadModelV1:_G,ProviderLatencyReadModelV1:va,RejectedArgumentAnalyticsV1:vy,RejectedArgumentErrorClassV1:vg,RejectedArgumentGroupV1:v_,RejectedArgumentNameV1:vv,RejectedArgumentSurfaceV1:vb},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{automation:{anyOf:[{$ref:"#/$defs/AnalyticsAutomationSectionV1"},{type:"null"}]},costs:{anyOf:[{$ref:"#/$defs/CostsReadModelV1"},{type:"null"}],description:"Present only when no section filter was requested."},event_count:{format:"int64",type:"integer"},event_count_truncated:{type:"boolean"},facts:{anyOf:[{$ref:"#/$defs/AnalyticsFactsSectionV1"},{type:"null"}]},hints:{anyOf:[{$ref:"#/$defs/AnalyticsHintsPayloadV1"},{type:"null"}]},observatory:{anyOf:[{$ref:"#/$defs/ObservatoryReadModelV1"},{type:"null"}],description:"Present only when no section filter was requested."},project_id:{description:'The canonical analytics project key; `None` for `scope: "all"`.',type:["string","null"]},project_root:{type:"string"},scope:{$ref:"#/$defs/AnalyticsScopeV1"},since:{format:"int64",type:"integer"},status:{$ref:"#/$defs/AnalyticsReportStatusV1"},tools:{anyOf:[{$ref:"#/$defs/AnalyticsToolsSectionV1"},{type:"null"}]},window_days:{format:"uint32",minimum:0,type:"integer"}},required:["status","scope","project_root","window_days","since","event_count","event_count_truncated"],title:"AnalyticsResultV1",type:"object"},{$defs:{ManifestDigest:_p,NativeIntegrationApprovalId:_R,NativeIntegrationPreviewId:_x,NativeIntegrationTransactionId:_O},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"Exact one-use apply request.\n\nApply accepts only an unexpired preview identity/digest plus a one-use\ncontent-bound approval. Arbitrary Git arguments, caller-supplied paths,\nSHAs, patches, commit lists, messages, environment, or config are\nunrepresentable.",properties:{approval_digest:{$ref:"#/$defs/ManifestDigest"},approval_id:{$ref:"#/$defs/NativeIntegrationApprovalId"},preview_digest:{$ref:"#/$defs/ManifestDigest"},preview_id:{$ref:"#/$defs/NativeIntegrationPreviewId"},transaction_id:{$ref:"#/$defs/NativeIntegrationTransactionId"}},required:["preview_id","preview_digest","approval_id","approval_digest","transaction_id"],title:"NativeIntegrationApplySurfaceRequest",type:"object"},{$defs:{ActorId:f$,BranchStackEdgeV1:f9,BranchStackId:f5,BranchStackNodeV1:f8,BranchStackRevisionId:f7,BranchStackRevisionV1:he,BranchStackSourceV1:ht,CapabilityId:hp,CodeGenerationId:hg,CommitId:hI,ContentDigest:hF,GitOidV1:gI,GitOperationStateV1:gx,ManifestDigest:_p,MechanicalIntegrationModeV1:_u,NativeIntegrationAnalysisAnchorV1:{additionalProperties:!1,description:"Source-local anchor for a semantic conflict finding.",properties:{generation_id:{$ref:"#/$defs/CodeGenerationId"},logical_path:{type:"string"},source_span:{$ref:"#/$defs/SourceSpan"}},required:["generation_id","logical_path","source_span"],type:"object"},NativeIntegrationAnalysisCoverageV1:{description:"Completeness of one independently evaluated semantic evidence lane.",enum:["complete","partial","unsupported"],type:"string"},NativeIntegrationAnalysisGapV1:{description:"Why one semantic evidence lane cannot authorize integration.",enum:["parser_failure","unresolved_required_edge","withheld_source","stale_evidence","unsupported_language","dynamic_schema","unbound_migration_order","capacity_unavailable","authority_unavailable"],type:"string"},NativeIntegrationAnalysisLaneV1:{additionalProperties:!1,description:"Coverage and exact gaps for one independently evaluated analysis lane.",properties:{coverage:{$ref:"#/$defs/NativeIntegrationAnalysisCoverageV1"},gaps:{items:{$ref:"#/$defs/NativeIntegrationAnalysisGapV1"},type:"array"}},required:["coverage","gaps"],type:"object"},NativeIntegrationAnalysisReportV1:{additionalProperties:!1,description:"Daemon-produced semantic evidence for one exact native candidate tree.",properties:{analyzer_revision:{type:"string"},candidate:{$ref:"#/$defs/NativeIntegrationGenerationBindingV1"},conflicts:{items:{$ref:"#/$defs/NativeIntegrationSemanticConflictV1"},type:"array"},destination:{$ref:"#/$defs/NativeIntegrationGenerationBindingV1"},digest:{$ref:"#/$defs/ManifestDigest"},graph:{$ref:"#/$defs/NativeIntegrationAnalysisLaneV1"},merge_base:{$ref:"#/$defs/NativeIntegrationGenerationBindingV1"},migrations:{$ref:"#/$defs/NativeIntegrationAnalysisLaneV1"},schema:{$ref:"#/$defs/NativeIntegrationAnalysisLaneV1"},source:{$ref:"#/$defs/NativeIntegrationGenerationBindingV1"},tests:{$ref:"#/$defs/NativeIntegrationAnalysisLaneV1"}},required:["merge_base","source","destination","candidate","graph","tests","schema","migrations","conflicts","analyzer_revision","digest"],type:"object"},NativeIntegrationApprovalId:_R,NativeIntegrationDirectionV1:_q,NativeIntegrationGenerationBindingV1:{additionalProperties:!1,description:"One immutable code-generation binding used by native integration analysis.",properties:{content_identity:{$ref:"#/$defs/ContentDigest"},generation_id:{$ref:"#/$defs/CodeGenerationId"},project_id:{$ref:"#/$defs/ProjectId"},reference:{anyOf:[{$ref:"#/$defs/RefId"},{type:"null"}]},repository_id:{$ref:"#/$defs/RepositoryId"},seal_digest:{$ref:"#/$defs/ManifestDigest"},snapshot_digest:{$ref:"#/$defs/ManifestDigest"},source_revision:{anyOf:[{$ref:"#/$defs/GitOidV1"},{type:"null"}]},source_tree:{$ref:"#/$defs/GitOidV1"},worktree_id:{anyOf:[{$ref:"#/$defs/WorktreeId"},{type:"null"}]}},required:["generation_id","project_id","repository_id","snapshot_digest","content_identity","source_tree","seal_digest"],type:"object"},NativeIntegrationPhaseV1:{description:"Durable transaction phase. `RefCommitStarted` is the cancellation boundary.",enum:["prepared","candidate_verified","ref_commit_started","final_state_verification","terminal"],type:"string"},NativeIntegrationPreviewDispositionV1:_I,NativeIntegrationPreviewId:_x,NativeIntegrationSealedStackSnapshotV1:_j,NativeIntegrationSelectionBindingV1:_C,NativeIntegrationSemanticConflictKindV1:{description:"Static conflict class produced from canonical generation evidence.",enum:["divergent_symbol","signature_dependent","test_write_interaction","divergent_schema","migration_order"],type:"string"},NativeIntegrationSemanticConflictV1:{additionalProperties:!1,description:"One deterministic conflict finding with source evidence from both branches.",properties:{destination:{$ref:"#/$defs/NativeIntegrationAnalysisAnchorV1"},evidence_digest:{$ref:"#/$defs/ManifestDigest"},kind:{$ref:"#/$defs/NativeIntegrationSemanticConflictKindV1"},source:{$ref:"#/$defs/NativeIntegrationAnalysisAnchorV1"}},required:["kind","source","destination","evidence_digest"],type:"object"},NativeIntegrationSnapshotProjectionV1:{additionalProperties:!1,description:"Bounded projection of one frozen selection.",properties:{destination_ref:{$ref:"#/$defs/RefId"},frozen_at:{$ref:"#/$defs/UtcMicros"},inventory_epoch:{$ref:"#/$defs/WorktreeInventoryEpoch"},project_id:{$ref:"#/$defs/ProjectId"},repository_id:{$ref:"#/$defs/RepositoryId"},selection_digest:{$ref:"#/$defs/ManifestDigest"},source_ref:{$ref:"#/$defs/RefId"}},required:["selection_digest","project_id","repository_id","source_ref","destination_ref","inventory_epoch","frozen_at"],type:"object"},NativeIntegrationStatusProjectionV1:{additionalProperties:!1,description:"Bounded projection of one durable transaction status.",properties:{cancellation_requested:{type:"boolean"},destination_ref:{$ref:"#/$defs/RefId"},phase:{$ref:"#/$defs/NativeIntegrationPhaseV1"},phase_revision:{format:"uint64",minimum:0,type:"integer"},preview_digest:{$ref:"#/$defs/ManifestDigest"},preview_id:{$ref:"#/$defs/NativeIntegrationPreviewId"},repository_id:{$ref:"#/$defs/RepositoryId"},terminal_outcome:{anyOf:[{$ref:"#/$defs/NativeIntegrationTerminalOutcomeV1"},{type:"null"}]},transaction_id:{$ref:"#/$defs/NativeIntegrationTransactionId"},updated_at:{$ref:"#/$defs/UtcMicros"}},required:["transaction_id","preview_id","preview_digest","repository_id","destination_ref","phase","phase_revision","cancellation_requested","updated_at"],type:"object"},NativeIntegrationSurfaceUnavailableV1:{description:"Why a native-integration operation produced no advancing state.\n\nEvery variant is read-only and truthful. None of them authorizes apply, and\na denied or absent target is reported indistinguishably from an unavailable\nauthority so no identity, path, count, or topology leaks.",oneOf:[{enum:["partial","stale","denied","reset_required","durability_uncertain","cancelled","approval_conflict","transaction_conflict","recovery_required","needs_inspection","unknown_transaction"],type:"string"},{const:"authority_unmounted",description:"No native-integration runtime authority is mounted for this daemon.",type:"string"}]},NativeIntegrationTerminalOutcomeV1:_T,NativeIntegrationTransactionId:_O,NativeIntegrationUnavailabilityV1:_E,NativeWorktreeSurfaceResultV1:{oneOf:[{oneOf:[{properties:{coverage:{$ref:"#/$defs/WorktreeCoverageV1"},digest:{$ref:"#/$defs/ManifestDigest"},entries:{items:{$ref:"#/$defs/WorktreeInventoryEntryV1"},type:"array"},epoch:{$ref:"#/$defs/WorktreeInventoryEpoch"},observed_at:{$ref:"#/$defs/UtcMicros"},scope_set_digest:{$ref:"#/$defs/ManifestDigest"},scope_set_id:{$ref:"#/$defs/ScopeSetId"},scope_set_revision:{$ref:"#/$defs/ScopeSetRevision"},snapshot_id:{$ref:"#/$defs/WorktreeInventorySnapshotId"},state:{const:"snapshot",type:"string"}},required:["state","scope_set_id","scope_set_revision","scope_set_digest","snapshot_id","epoch","entries","coverage","observed_at","digest"],type:"object"},{properties:{state:{const:"stale",type:"string"}},required:["state"],type:"object"},{properties:{state:{const:"denied",type:"string"}},required:["state"],type:"object"},{properties:{state:{const:"unavailable",type:"string"}},required:["state"],type:"object"}],properties:{operation:{const:"inventory",type:"string"}},required:["operation"],type:"object"},{oneOf:[{properties:{clean:{$ref:"#/$defs/WorktreeObservationV1",description:"Whether Git status contains no tracked or untracked changes."},head:{anyOf:[{$ref:"#/$defs/GitOidV1"},{type:"null"}]},holder:{$ref:"#/$defs/WorktreeObservationV1"},inspection_digest:{$ref:"#/$defs/ManifestDigest"},kind:{anyOf:[{$ref:"#/$defs/WorktreeKindV1"},{type:"null"}]},locked:{$ref:"#/$defs/WorktreeObservationV1"},observed_at:{$ref:"#/$defs/UtcMicros"},operation_state:{anyOf:[{$ref:"#/$defs/GitOperationStateV1"},{type:"null"}]},presence:{$ref:"#/$defs/WorktreePresenceV1"},reference:{anyOf:[{$ref:"#/$defs/RefId"},{type:"null"}]},state:{const:"inspection",type:"string"},target:{$ref:"#/$defs/NativeWorktreeTargetV1"},unique_data:{$ref:"#/$defs/WorktreeObservationV1"},worktree_id:{$ref:"#/$defs/WorktreeId"}},required:["state","target","presence","worktree_id","clean","locked","holder","unique_data","observed_at","inspection_digest"],type:"object"},{properties:{state:{const:"stale",type:"string"}},required:["state"],type:"object"},{properties:{state:{const:"foreign",type:"string"}},required:["state"],type:"object"},{properties:{state:{const:"denied",type:"string"}},required:["state"],type:"object"},{properties:{state:{const:"unavailable",type:"string"}},required:["state"],type:"object"}],properties:{operation:{const:"inspection",type:"string"}},required:["operation"],type:"object"},{oneOf:[{properties:{confirmation_digest:{$ref:"#/$defs/ManifestDigest"},confirmed_at:{$ref:"#/$defs/UtcMicros"},inspection_digest:{$ref:"#/$defs/ManifestDigest"},state:{const:"confirmed",type:"string"},target:{$ref:"#/$defs/NativeWorktreeTargetV1"}},required:["state","target","inspection_digest","confirmation_digest","confirmed_at"],type:"object"},{properties:{state:{const:"stale",type:"string"}},required:["state"],type:"object"},{properties:{state:{const:"denied",type:"string"}},required:["state"],type:"object"},{properties:{state:{const:"needs_inspection",type:"string"}},required:["state"],type:"object"},{properties:{state:{const:"unavailable",type:"string"}},required:["state"],type:"object"}],properties:{operation:{const:"confirmation",type:"string"}},required:["operation"],type:"object"},{$ref:"#/$defs/WorktreeCleanupRemovalV1",properties:{operation:{const:"removal",type:"string"}},required:["operation"],type:"object"},{$ref:"#/$defs/WorktreeCleanupReconciliationV1",properties:{operation:{const:"reconciliation",type:"string"}},required:["operation"],type:"object"}]},NativeWorktreeTargetV1:_A,ProjectId:_6,RefId:vf,RepositoryId:v$,ResolvedScope:vP,ScopeSetId:v1,ScopeSetRevision:v0,SourceSpan:bk,StackNodeId:bV,UtcMicros:bX,WorktreeCleanupReconciliationV1:{oneOf:[{properties:{confirmation_digest:{$ref:"#/$defs/ManifestDigest"},observed_at:{$ref:"#/$defs/UtcMicros"},state:{const:"removed",type:"string"}},required:["state","confirmation_digest","observed_at"],type:"object"},{properties:{state:{const:"still_present",type:"string"}},required:["state"],type:"object"},{properties:{state:{const:"durability_uncertain",type:"string"}},required:["state"],type:"object"},{properties:{state:{const:"stale",type:"string"}},required:["state"],type:"object"},{properties:{state:{const:"denied",type:"string"}},required:["state"],type:"object"},{properties:{state:{const:"unavailable",type:"string"}},required:["state"],type:"object"}]},WorktreeCleanupRemovalV1:{oneOf:[{properties:{confirmation_digest:{$ref:"#/$defs/ManifestDigest"},observed_at:{$ref:"#/$defs/UtcMicros"},state:{const:"removed",type:"string"}},required:["state","confirmation_digest","observed_at"],type:"object"},{properties:{confirmation_digest:{$ref:"#/$defs/ManifestDigest"},observed_at:{$ref:"#/$defs/UtcMicros"},state:{const:"already_removed",type:"string"}},required:["state","confirmation_digest","observed_at"],type:"object"},{properties:{state:{const:"denied",type:"string"}},required:["state"],type:"object"},{properties:{state:{const:"stale",type:"string"}},required:["state"],type:"object"},{properties:{state:{const:"durability_uncertain",type:"string"}},required:["state"],type:"object"},{properties:{state:{const:"unavailable",type:"string"}},required:["state"],type:"object"}]},WorktreeCoverageV1:{enum:["complete","partial"],type:"string"},WorktreeId:SJ,WorktreeInventoryEntryV1:{additionalProperties:!1,properties:{clean:{$ref:"#/$defs/WorktreeObservationV1",description:"Whether Git status contains no tracked or untracked changes."},evidence_digest:{$ref:"#/$defs/ManifestDigest"},head:{anyOf:[{$ref:"#/$defs/GitOidV1"},{type:"null"}]},holder:{$ref:"#/$defs/WorktreeObservationV1"},kind:{anyOf:[{$ref:"#/$defs/WorktreeKindV1"},{type:"null"}]},locked:{$ref:"#/$defs/WorktreeObservationV1"},observed_at:{$ref:"#/$defs/UtcMicros"},operation:{anyOf:[{$ref:"#/$defs/GitOperationStateV1"},{type:"null"}]},presence:{$ref:"#/$defs/WorktreePresenceV1"},reference:{anyOf:[{$ref:"#/$defs/RefId"},{type:"null"}]},target:{$ref:"#/$defs/NativeWorktreeTargetV1"},unique_data:{$ref:"#/$defs/WorktreeObservationV1"},worktree_id:{anyOf:[{$ref:"#/$defs/WorktreeId"},{type:"null"}]}},required:["target","presence","clean","locked","holder","unique_data","observed_at","evidence_digest"],type:"object"},WorktreeInventoryEpoch:SZ,WorktreeInventorySnapshotId:SQ,WorktreeKindV1:{description:"Native Git worktree kind visible to an authorized caller.",enum:["main","linked","bare"],type:"string"},WorktreeObservationV1:{enum:["yes","no","unknown"],type:"string"},WorktreePresenceV1:{description:"Presence is intentionally not a bool: stale, unavailable and foreign are\npolicy-safe states with different reconciliation consequences.",enum:["present","stale","unavailable","foreign"],type:"string"}},$schema:"https://json-schema.org/draft/2020-12/schema",description:"One typed result for every native-integration surface operation.",oneOf:[{additionalProperties:!1,description:"Frozen selection summary plus the exact sealed proof preflight accepts.",properties:{outcome:{const:"stack_snapshot",type:"string"},sealed_snapshot:{$ref:"#/$defs/NativeIntegrationSealedStackSnapshotV1"},selection:{$ref:"#/$defs/NativeIntegrationSnapshotProjectionV1"}},required:["outcome","selection","sealed_snapshot"],type:"object"},{additionalProperties:!1,description:"Bounded projection of one immutable preview.\n\nCandidate trees, conflict bodies, and ordered commit objects stay behind the\npreview digest: the surface reports identity, classification, and expiry so\na caller can approve exactly this preview and nothing else.",properties:{analysis:{anyOf:[{$ref:"#/$defs/NativeIntegrationAnalysisReportV1"},{type:"null"}]},created_at:{$ref:"#/$defs/UtcMicros"},disposition:{$ref:"#/$defs/NativeIntegrationPreviewDispositionV1"},expires_at:{$ref:"#/$defs/UtcMicros"},ordered_commit_count:{format:"uint32",minimum:0,type:"integer"},outcome:{const:"preview",type:"string"},preview_digest:{$ref:"#/$defs/ManifestDigest"},preview_id:{$ref:"#/$defs/NativeIntegrationPreviewId"},selection:{$ref:"#/$defs/NativeIntegrationSnapshotProjectionV1"}},required:["outcome","preview_id","preview_digest","selection","disposition","ordered_commit_count","created_at","expires_at"],type:"object"},{additionalProperties:!1,description:"Bounded projection of one issued one-use approval.\n\nThe approval digest is the caller's proof-of-issuance handle for apply;\nthe preview binding and expiry are audit metadata. No preview body,\ncandidate tree, or commit content crosses this boundary.",properties:{approval_digest:{$ref:"#/$defs/ManifestDigest"},approval_id:{$ref:"#/$defs/NativeIntegrationApprovalId"},capability:{$ref:"#/$defs/CapabilityId"},expires_at:{$ref:"#/$defs/UtcMicros"},issued_at:{$ref:"#/$defs/UtcMicros"},outcome:{const:"approval",type:"string"},preview_digest:{$ref:"#/$defs/ManifestDigest"},preview_id:{$ref:"#/$defs/NativeIntegrationPreviewId"},principal:{$ref:"#/$defs/ActorId"},transaction_id:{$ref:"#/$defs/NativeIntegrationTransactionId",description:"Daemon-minted identity consumed verbatim by apply, status, and cancel."}},required:["outcome","transaction_id","approval_id","preview_id","preview_digest","principal","capability","issued_at","expires_at","approval_digest"],type:"object"},{additionalProperties:!1,description:"Bounded projection of one durable terminal receipt.\n\nThe receipt digest and final ref/tree identity are audit metadata; no patch,\nworktree body, or source content crosses this boundary.",properties:{completed_at:{$ref:"#/$defs/UtcMicros"},final_ref_tip:{type:"string"},final_tree:{type:"string"},outcome:{const:"receipt",type:"string"},receipt_digest:{$ref:"#/$defs/ManifestDigest"},status:{$ref:"#/$defs/NativeIntegrationStatusProjectionV1"},terminal_outcome:{$ref:"#/$defs/NativeIntegrationTerminalOutcomeV1"}},required:["outcome","status","terminal_outcome","final_ref_tip","final_tree","completed_at","receipt_digest"],type:"object"},{additionalProperties:!1,description:"Bounded projection of one durable transaction status.",properties:{cancellation_requested:{type:"boolean"},destination_ref:{$ref:"#/$defs/RefId"},outcome:{const:"status",type:"string"},phase:{$ref:"#/$defs/NativeIntegrationPhaseV1"},phase_revision:{format:"uint64",minimum:0,type:"integer"},preview_digest:{$ref:"#/$defs/ManifestDigest"},preview_id:{$ref:"#/$defs/NativeIntegrationPreviewId"},repository_id:{$ref:"#/$defs/RepositoryId"},terminal_outcome:{anyOf:[{$ref:"#/$defs/NativeIntegrationTerminalOutcomeV1"},{type:"null"}]},transaction_id:{$ref:"#/$defs/NativeIntegrationTransactionId"},updated_at:{$ref:"#/$defs/UtcMicros"}},required:["outcome","transaction_id","preview_id","preview_digest","repository_id","destination_ref","phase","phase_revision","cancellation_requested","updated_at"],type:"object"},{description:"Cancellation disposition. After the native commit point the committed\nreceipt is returned instead of a cancellation claim.",oneOf:[{enum:["cancellation_requested","commit_point_passed"],type:"string"},{properties:{already_terminal:{$ref:"#/$defs/NativeIntegrationTerminalOutcomeV1"}},required:["already_terminal"],type:"object"}],properties:{outcome:{const:"cancellation",type:"string"}},required:["outcome"],type:"object"},{$ref:"#/$defs/NativeWorktreeSurfaceResultV1",properties:{outcome:{const:"worktree",type:"string"}},required:["outcome"],type:"object"},{properties:{outcome:{const:"unavailable",type:"string"},reason:{$ref:"#/$defs/NativeIntegrationSurfaceUnavailableV1"}},required:["outcome","reason"],type:"object"}],title:"NativeIntegrationSurfaceResultV1"},{$defs:{ManifestDigest:_p,NativeIntegrationPreviewId:_x},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"Exact approval-issuance request (the owner-decided sixth operation).\n\nThe caller names one unexpired preview by exact identity *and* digest;\napproving an identity without its content digest is unrepresentable. The\ndaemon mints the one-use approval bound to the requesting principal, the\napply capability, the current grant lineage, and a bounded expiry, none\nof which the caller can choose.",properties:{preview_digest:{$ref:"#/$defs/ManifestDigest"},preview_id:{$ref:"#/$defs/NativeIntegrationPreviewId"}},required:["preview_id","preview_digest"],title:"NativeIntegrationApproveSurfaceRequest",type:"object"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"Exact public input accepted by `tracedecay_ast_grep_rewrite`.",properties:{dry_run:{default:!1,type:"boolean"},expected_state:{description:"Exact `preview_digest`/`expected_state` returned by the dry run. Apply\nre-resolves the typed plan and rejects any candidate-state drift.",type:["string","null"]},idempotency_key:{type:["string","null"]},path:{type:"string"},pattern:{type:"string"},rewrite:{type:"string"},verify:{default:!1,type:"boolean"}},required:["path","pattern","rewrite"],title:"AstGrepRewriteSurfaceRequestV1",type:"object"},{$defs:{ActorId:f$,AstGrepResult:{description:"Result of an ast-grep rewrite operation.",properties:{diff:{description:"Bounded preview of the would-be change. Populated only on a successful\ndry run; `None` for real edits and for failures.",type:["string","null"]},dry_run:{description:"True when this was a dry run: the rewrite was resolved but nothing was\nwritten.",type:"boolean"},file_path:{type:"string"},message:{type:"string"},pattern:{type:"string"},rewrite:{type:"string"},success:{type:"boolean"}},required:["success","file_path","pattern","rewrite","message"],type:"object"},AuthorityReceipt:{additionalProperties:!1,description:"Proof that this request crossed the current authorization boundary.",properties:{authorized_scope_digest:{$ref:"#/$defs/ManifestDigest"},disclosure:{$ref:"#/$defs/DisclosureClass"},grant_digest:{$ref:"#/$defs/ManifestDigest"},grant_id:{type:"string"},grant_revision:{format:"uint64",minimum:0,type:"integer"},policy:{$ref:"#/$defs/PolicyDecisionRef"},revalidated_at:{$ref:"#/$defs/UtcMicros"}},required:["grant_id","grant_revision","grant_digest","authorized_scope_digest","disclosure","policy","revalidated_at"],type:"object"},CancellationObservation:ha,CancellationStage:hs,ComponentVersion:hT,Deadline:yb,DisclosureClass:{description:"Disclosure ceiling carried by an immutable grant and revalidated at sinks.",enum:["metadata","evidence","sensitive"],type:"string"},EditResult:{description:"Result of a single string replacement edit.",properties:{diff:{description:"Bounded preview diff of the would-be change. Populated only on a\nsuccessful dry run; `None` for real edits and for failures.",type:["string","null"]},dry_run:{description:"True when this was a dry run: validation, spans, and the resulting\ncontent were all computed, but nothing was written to disk.",type:"boolean"},file_path:{type:"string"},matched_str:{type:"string"},message:{type:"string"},new_str:{type:"string"},replaced_span:{description:"The exact source text that was replaced. For `replace_symbol` this is\nthe item's full span, including any leading doc-comment / attribute\nblock, so callers can recover its docs/attrs if the replacement\ndropped them; for `str_replace` it is the matched `old_str` text.\n`None` only on a failed edit, where nothing was resolved to replace.",type:["string","null"]},success:{type:"boolean"}},required:["success","file_path","matched_str","new_str","message"],type:"object"},EffectClass:yq,EffectReceipt:yI,EffectResult:{additionalProperties:!1,description:"Result of an admitted effect. `EffectUnknown` remains a receipt state and\ncannot be remapped into a pre-admission problem.",properties:{authority:{$ref:"#/$defs/AuthorityReceipt"},effect_class:{$ref:"#/$defs/EffectClass"},effect_id:{type:"string"},execution:{$ref:"#/$defs/OperationReceipt"},expected_state:{$ref:"#/$defs/ManifestDigest"},idempotency_key:{type:"string"},payload:{anyOf:[{$ref:"#/$defs/SourceEditDurableEffectPayloadV1"},{type:"null"}]},receipt:{$ref:"#/$defs/EffectReceipt"},reconciliation:{$ref:"#/$defs/ReconciliationState"}},required:["effect_id","effect_class","idempotency_key","authority","expected_state","execution","reconciliation","receipt"],type:"object"},EffectTermination:yx,InsertResult:{description:"Result of an insert-at operation.",properties:{anchor_line:{format:"uint32",minimum:0,type:"integer"},before:{type:"boolean"},content:{type:"string"},diff:{description:"Bounded preview diff of the would-be change. Populated only on a\nsuccessful dry run; `None` for real edits and for failures.",type:["string","null"]},dry_run:{description:"True when this was a dry run: the insertion point was resolved and the\nresulting content computed, but nothing was written to disk.",type:"boolean"},file_path:{type:"string"},message:{type:"string"},success:{type:"boolean"}},required:["success","file_path","anchor_line","content","before","message"],type:"object"},ManifestDigest:_p,MoveHint:{description:"One evidence-based, actionable finding produced by the `move_symbol` impact\nengine. Each hint points at a concrete file/line and carries a suggestion\nthe caller (or a follow-up refactor) can act on. Hints are derived from graph\nedges (callers/callees) and parse-level facts (identifiers, `use` lines,\nmodule declarations), never speculative noise.",properties:{detail:{description:"Human-readable description of what the move breaks or affects.",type:"string"},file:{description:"File the finding concerns (the caller's file, the destination, or the\nsource), project-relative.",type:"string"},kind:{description:"Taxonomy tag: `caller_reference`, `dependency_broken`, `import_needed`,\n`visibility_required`, `collision`, `module_missing`, `cycle_risk`,\n`orphaned_import`, or `cfg_context`.",type:"string"},line:{description:"1-based line the finding concerns, when a specific site is known.",format:"uint32",minimum:0,type:["integer","null"]},suggestion:{description:"The exact change to make (e.g. a `use` line to add, a path to rewrite, a\nvisibility to escalate). `None` when no single mechanical fix applies.",type:["string","null"]}},required:["kind","file","detail"],type:"object"},MoveResult:{description:"Result of a `move_symbol` operation: the moved span, a dry-run diff of the\nsource + destination files, and the centerpiece, the impact report of\neverything the move breaks or that needs attention.",properties:{applied_imports:{description:"`use` lines auto-inserted at the destination because the moved body's\ndependency on them was unambiguous. Reported so the caller sees exactly\nwhat the move added.",items:{type:"string"},type:"array"},dest_file:{type:"string"},diff:{description:"Combined preview diff of the source (removal) and destination (insertion)\nfiles. Populated on a successful dry run; `None` for real moves.",type:["string","null"]},dry_run:{description:"True when this was a dry run: spans, the destination shape, and the\nimpact report were all computed, but nothing was written to disk.",type:"boolean"},impact:{description:"The impact report: every actionable finding. Empty on a truly clean\nmove.",items:{$ref:"#/$defs/MoveHint"},type:"array"},message:{type:"string"},moved_span:{description:"The exact source span that was moved, including its leading\ndoc-comment / attribute block. `None` on failure.",type:["string","null"]},source_file:{type:"string"},success:{type:"boolean"},symbol:{description:"The resolved symbol that was (or would be) moved, `name (kind)`.",type:"string"}},required:["success","symbol","source_file","dest_file","message"],type:"object"},MultiEditResult:{description:"Result of a multi-string replacement edit.",properties:{applied_count:{format:"uint",minimum:0,type:"integer"},diff:{description:"Bounded preview diff of the would-be change. Populated only on a\nsuccessful dry run; `None` for real edits and for failures.",type:["string","null"]},dry_run:{description:"True when this was a dry run: replacements were validated and the\nresulting content computed, but nothing was written to disk.",type:"boolean"},file_path:{type:"string"},message:{type:"string"},success:{type:"boolean"}},required:["success","file_path","applied_count","message"],type:"object"},OperationBudgetUsage:_F,OperationReceipt:_L,OperationTermination:_U,PolicyDecisionRef:{additionalProperties:!1,description:"A policy decision pinned into a receipt or provider identity.",properties:{decision_id:{type:"string"},digest:{$ref:"#/$defs/ManifestDigest"},evaluator_revision:{$ref:"#/$defs/ComponentVersion"},revision:{format:"uint64",minimum:0,type:"integer"}},required:["decision_id","revision","digest","evaluator_revision"],type:"object"},ProjectId:_6,ReconciliationState:{description:"Reconciliation state retained after an admitted effect.",enum:["pending","reconciled","failed"],type:"string"},RefId:vf,RenameDispositionCountsV1:{additionalProperties:!1,properties:{blocked:{format:"uint",minimum:0,type:"integer"},changed:{format:"uint",minimum:0,type:"integer"},skipped:{format:"uint",minimum:0,type:"integer"},unchanged:{format:"uint",minimum:0,type:"integer"}},required:["changed","unchanged","skipped","blocked"],type:"object"},RenameFileEditV1:{additionalProperties:!1,description:"One file a rename changed (or would change), with the exact bound-site count.",properties:{file:{type:"string"},replaced_count:{format:"uint",minimum:0,type:"integer"}},required:["file","replaced_count"],type:"object"},RenameHazardKindV1:{enum:["invalid_identifier","stale_evidence","ambiguous_symbol","namespace_collision","changed_resolution","shadowing","unsupported_syntax","macro_expansion","generated_source","overlapping_site"],type:"string"},RenameHazardV1:{additionalProperties:!1,properties:{blocking:{type:"boolean"},kind:{$ref:"#/$defs/RenameHazardKindV1"},message:{type:"string"},site_id:{type:["string","null"]}},required:["kind","blocking","message"],type:"object"},RenameImpactV1:{additionalProperties:!1,properties:{affected_files:{items:{type:"string"},type:"array"},affected_tests:{items:{type:"string"},type:"array"},callers:{items:{type:"string"},type:"array"},reexports:{items:{type:"string"},type:"array"}},required:["callers","reexports","affected_files","affected_tests"],type:"object"},RenameProtectedValueCategoryV1:{enum:["wire_value","serialized_name","sql_identifier","persisted_name","schema_epoch","hash_domain","protocol_name","contract_snapshot","string_literal","byte_literal"],type:"string"},RenameProtectedValueV1:{additionalProperties:!1,description:"A byte-exact stable value deliberately preserved by the rename.",properties:{category:{$ref:"#/$defs/RenameProtectedValueCategoryV1"},end_byte:{format:"uint64",minimum:0,type:"integer"},exact_bytes:{type:"string"},file:{type:"string"},site_id:{type:"string"},start_byte:{format:"uint64",minimum:0,type:"integer"}},required:["site_id","file","start_byte","end_byte","category","exact_bytes"],type:"object"},RenameResult:{description:"The same typed payload is serialized by application, CLI, and MCP paths.",properties:{diff:{type:["string","null"]},dispositions:{$ref:"#/$defs/RenameDispositionCountsV1"},dry_run:{type:"boolean"},files:{items:{$ref:"#/$defs/RenameFileEditV1"},type:"array"},graph_revision:{anyOf:[{$ref:"#/$defs/ManifestDigest"},{type:"null"}],description:"Digest of the admitted generation, exact target, same-name symbols,\nand graph edges used to classify bound and protected sites."},hazards:{items:{$ref:"#/$defs/RenameHazardV1"},type:"array"},impact:{$ref:"#/$defs/RenameImpactV1"},message:{type:"string"},new_name:{type:"string"},old_name:{type:"string"},plan_digest:{anyOf:[{$ref:"#/$defs/ManifestDigest"},{type:"null"}],description:"Digest of the complete typed site/hazard/protected-value manifest."},preview_digest:{anyOf:[{$ref:"#/$defs/ManifestDigest"},{type:"null"}],description:"Exact candidate-state digest that apply must echo as `expected_state`."},preview_id:{anyOf:[{$ref:"#/$defs/ManifestDigest"},{type:"null"}],description:"Digest-addressed identity of the bound symbol plus proposed name."},protected_values:{items:{$ref:"#/$defs/RenameProtectedValueV1"},type:"array"},reference_count:{format:"uint",minimum:0,type:"integer"},repository_revision:{default:null,description:"Current Git HEAD when the worktree has one; dirty bytes remain bound by\n`preview_digest` independently of this revision.",type:["string","null"]},sites:{items:{$ref:"#/$defs/RenameSiteV1"},type:"array"},success:{type:"boolean"},symbol:{description:"Qualified name of the renamed symbol at plan time.",type:"string"}},required:["success","symbol","old_name","new_name","reference_count","dispositions","impact","message"],type:"object"},RenameSiteDispositionV1:{enum:["changed","unchanged","skipped","blocked"],type:"string"},RenameSiteKindV1:{enum:["declaration","import","reexport","qualified_path","unqualified_path","annotation","generic_argument","constructor","pattern","trait_declaration","trait_implementation","resolved_call","inherent_method","enum_variant","test","example","documentation","protected_value","unresolved_text"],type:"string"},RenameSiteV1:{additionalProperties:!1,description:"One exact old-name occurrence and the rename planner's disposition.",properties:{disposition:{$ref:"#/$defs/RenameSiteDispositionV1"},end_byte:{format:"uint64",minimum:0,type:"integer"},expected_bytes:{type:"string"},file:{type:"string"},kind:{$ref:"#/$defs/RenameSiteKindV1"},line:{format:"uint32",minimum:0,type:"integer"},reason:{type:"string"},replacement_bytes:{type:"string"},site_id:{type:"string"},source_node_id:{description:"Canonical source `SymbolOccurrenceId` that attested this site.",type:["string","null"]},start_byte:{format:"uint64",minimum:0,type:"integer"}},required:["site_id","kind","disposition","file","line","start_byte","end_byte","expected_bytes","replacement_bytes","reason"],type:"object"},RepositoryId:v$,ResolvedScope:vP,RetrievalAnchorId:vx,SourceEditCancelledResultV1:{description:"Terminal payload when cancellation is observed before an edit commits.",properties:{cancelled:{type:"boolean"},message:{type:"string"},success:{type:"boolean"}},required:["success","cancelled","message"],type:"object"},SourceEditDiagnosticV1:{properties:{code:{type:"string"},line:{format:"uint32",minimum:0,type:"integer"},message:{type:"string"}},required:["line","code","message"],type:"object"},SourceEditDurableEffectPayloadV1:{additionalProperties:!1,description:"Body-free source-edit evidence retained inside durable effect receipts.\n\nThis payload intentionally contains no caller-supplied edit text, preview\ndiff, moved span, import, diagnostic, or impact detail. It is also the\nexact replay outcome, so replay never fabricates a live edit body.",properties:{before:{type:["boolean","null"]},cancelled:{type:"boolean"},change_count:{format:"uint",minimum:0,type:["integer","null"]},durable_metadata_only:{type:"boolean"},effect_unknown:{type:"boolean"},failed:{type:"boolean"},files:{items:{type:"string"},type:"array"},finding_count:{format:"uint",minimum:0,type:["integer","null"]},import_count:{format:"uint",minimum:0,type:["integer","null"]},line:{format:"uint32",minimum:0,type:["integer","null"]},message:{type:"string"},observed_state:{anyOf:[{$ref:"#/$defs/ManifestDigest"},{type:"null"}],description:"Exact candidate-file observation from an inspection attempt."},operation:{$ref:"#/$defs/UseCaseId"},reconciled:{type:"boolean"},success:{type:"boolean"},timed_out:{type:"boolean"}},required:["operation","success","files","failed","cancelled","timed_out","effect_unknown","reconciled","durable_metadata_only","message"],type:"object"},SourceEditEffectUnknownResultV1:{description:"Terminal payload when publication may have occurred and inspection is required.",properties:{effect_unknown:{type:"boolean"},message:{type:"string"},success:{type:"boolean"}},required:["success","effect_unknown","message"],type:"object"},SourceEditFailedResultV1:{description:"Terminal payload when an edit is refused before it can publish an effect.",properties:{failed:{type:"boolean"},message:{type:"string"},success:{type:"boolean"}},required:["success","failed","message"],type:"object"},SourceEditReconciledResultV1:{description:"Terminal payload returned by explicit reconciliation.",properties:{message:{type:"string"},reconciled:{type:"boolean"},success:{type:"boolean"}},required:["success","reconciled","message"],type:"object"},SourceEditTimedOutResultV1:{description:"Terminal payload when an edit deadline expires before commit.",properties:{message:{type:"string"},success:{type:"boolean"},timed_out:{type:"boolean"}},required:["success","timed_out","message"],type:"object"},SourceEditVerificationStateV1:{enum:["clean","errors","unavailable","failed","cancelled"],type:"string"},SourceEditVerificationV1:{properties:{error_count:{format:"uint",minimum:0,type:"integer"},first_errors:{items:{$ref:"#/$defs/SourceEditDiagnosticV1"},type:"array"},message:{type:["string","null"]},state:{$ref:"#/$defs/SourceEditVerificationStateV1"},verdict:{type:"string"},warning_count:{format:"uint",minimum:0,type:"integer"}},required:["state","verdict","error_count","warning_count","first_errors"],type:"object"},UseCaseId:bZ,UtcMicros:bX,WorktreeId:SJ},$schema:"https://json-schema.org/draft/2020-12/schema",anyOf:[{$ref:"#/$defs/SourceEditDurableEffectPayloadV1"},{$ref:"#/$defs/EditResult"},{$ref:"#/$defs/MultiEditResult"},{$ref:"#/$defs/InsertResult"},{$ref:"#/$defs/AstGrepResult"},{$ref:"#/$defs/MoveResult"},{$ref:"#/$defs/RenameResult"},{$ref:"#/$defs/SourceEditFailedResultV1"},{$ref:"#/$defs/SourceEditCancelledResultV1"},{$ref:"#/$defs/SourceEditTimedOutResultV1"},{$ref:"#/$defs/SourceEditEffectUnknownResultV1"},{$ref:"#/$defs/SourceEditReconciledResultV1"}],description:"Canonical result returned directly by every source-edit use case.",properties:{effect:{anyOf:[{$ref:"#/$defs/EffectResult"},{type:"null"}]},expected_state:{$ref:"#/$defs/ManifestDigest"},predicted_state:{anyOf:[{$ref:"#/$defs/ManifestDigest"},{type:"null"}]},replayed:{type:"boolean"},verification:{anyOf:[{$ref:"#/$defs/SourceEditVerificationV1"},{type:"null"}]}},required:["expected_state","replayed"],title:"SourceEditSurfaceResultV1",type:"object"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{lang:{description:"Optional language key to force (e.g. 'rust', 'typescript', 'python').\nOmit to auto-detect each file from its extension.",type:["string","null"]},max_results:{description:"Maximum number of matches to return (default: 50, max: 200).",format:"uint32",minimum:0,type:["integer","null"]},path_glob:{description:"Optional glob restricting which files are searched, matched against\nproject-relative paths (e.g. 'src/**/*.rs').",type:["string","null"]},pattern:{description:"ast-grep structural pattern (SGPattern syntax), e.g.\n'reserve_stock($$$)' or 'Result<$T, $E>'.",type:"string"}},required:["pattern"],title:"AstGrepSearchSurfaceRequestV1",type:"object"},{$defs:{AstGrepSearchMatchV1:{additionalProperties:!1,properties:{column:{format:"uint32",minimum:0,type:"integer"},file:{type:"string"},lang:{type:"string"},line:{format:"uint32",minimum:0,type:"integer"},line_text:{type:"string"},match:{type:"string"}},required:["file","line","column","lang","match","line_text"],type:"object"},CodeIndexBuildBlockedReasonV1:hv,CodeIndexConvergenceParkedV1:hb,CodeIndexStalenessStateV1:hw,PrimitiveFreshnessStateV1:_K,PrimitiveIndexingStateV1:_J,PrimitiveSearchFreshnessV1:_Y},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{files_scanned:{format:"uint64",minimum:0,type:"integer"},freshness:{anyOf:[{$ref:"#/$defs/PrimitiveSearchFreshnessV1"},{type:"null"}],description:"The worktree verdict a served graph read opens with."},match_count:{format:"uint64",minimum:0,type:"integer"},results:{items:{$ref:"#/$defs/AstGrepSearchMatchV1"},type:"array"},truncated:{type:"boolean"}},required:["results","match_count","files_scanned","truncated"],title:"AstGrepSearchResultV1",type:"object"},{$defs:{AutomationRunArtifactKind:{enum:["traces","feedback","generated_evals","validation_gate","optimizer_diagnosis","codex_handoff"],type:"string"}},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{kind:{$ref:"#/$defs/AutomationRunArtifactKind",description:"Artifact kind to read."},run_id:{description:"Automation run id to inspect.",type:"string"}},required:["run_id","kind"],title:"AutomationRunArtifactViewSurfaceRequestV1",type:"object"},{$defs:{AutomationReadStatusV1:fG,AutomationRunArtifact:fK},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{artifact:{$ref:"#/$defs/AutomationRunArtifact"},payload:{description:"The hash-verified artifact document, as the run wrote it."},run_id:{type:"string"},status:{$ref:"#/$defs/AutomationReadStatusV1"}},required:["status","run_id","artifact","payload"],title:"AutomationRunArtifactViewResultV1",type:"object"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{limit:{description:"Maximum run records to return (default: 50, max: 200).",format:"uint32",maximum:200,minimum:1,type:["integer","null"]}},title:"AutomationRunListSurfaceRequestV1",type:"object"},{$defs:{AgentTaskKind:fk,AutomationReadStatusV1:fG,AutomationRunListEntryV1:{additionalProperties:!1,description:"One run as the list shows it: the ledger record's identity, outcome and\nartifact kinds, without the artifact payloads or operation bodies.",properties:{accepted_count:{format:"uint",minimum:0,type:"integer"},artifact_kinds:{items:{type:"string"},type:"array"},backend:{type:"string"},completed_at:{type:"string"},error:{type:["string","null"]},model:{type:["string","null"]},rejected_count:{format:"uint",minimum:0,type:"integer"},reviewed_count:{format:"uint",minimum:0,type:"integer"},run_id:{type:"string"},skipped_count:{format:"uint",minimum:0,type:"integer"},started_at:{type:"string"},status:{$ref:"#/$defs/AutomationRunStatus"},task:{$ref:"#/$defs/AgentTaskKind"},task_key:{type:["string","null"]},trigger:{$ref:"#/$defs/AutomationTrigger"}},required:["run_id","task","trigger","backend","status","reviewed_count","accepted_count","rejected_count","skipped_count","started_at","completed_at","artifact_kinds"],type:"object"},AutomationRunPageCompletenessV1:{description:"Whether a run page read every ledger row it examined.",oneOf:[{const:"known",description:"Every examined row decoded.",type:"string"},{const:"partial",description:"The page skipped malformed rows or more runs exist past it.",type:"string"}]},AutomationRunScopeV1:fJ,AutomationRunStatus:fZ,AutomationTrigger:f1},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{completeness:{$ref:"#/$defs/AutomationRunPageCompletenessV1"},count:{format:"uint",minimum:0,type:"integer"},has_more:{type:"boolean"},limit:{format:"uint32",minimum:0,type:"integer"},malformed_row_count:{format:"uint",minimum:0,type:"integer"},runs:{items:{$ref:"#/$defs/AutomationRunListEntryV1"},type:"array"},scope:{$ref:"#/$defs/AutomationRunScopeV1"},status:{$ref:"#/$defs/AutomationReadStatusV1"}},required:["status","scope","runs","count","limit","has_more","malformed_row_count","completeness"],title:"AutomationRunListResultV1",type:"object"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{run_id:{description:"Exact automation run id to inspect.",minLength:1,type:"string"}},required:["run_id"],title:"AutomationRunViewSurfaceRequestV1",type:"object"},{$defs:{AgentTaskFailureClass:{oneOf:[{enum:["retryable","permanent","timeout","unavailable","denied","disconnected","malformed_output"],type:"string"},{const:"input_too_large",description:"The backend refused the request because it exceeds its input or\ncontext-window limit.",type:"string"}]},AgentTaskKind:fk,AgentTaskRetryAttempt:{properties:{attempt:{format:"uint32",minimum:0,type:"integer"},backoff_millis:{format:"uint64",minimum:0,type:"integer"},failure_classification:{anyOf:[{$ref:"#/$defs/AgentTaskFailureClass"},{type:"null"}]},succeeded:{type:"boolean"}},required:["attempt","succeeded","backoff_millis"],type:"object"},AutomationReadStatusV1:fG,AutomationRunArtifact:fK,AutomationRunLedgerRecord:{properties:{accepted_count:{format:"uint",minimum:0,type:"integer"},applied_ops:!0,artifacts:{items:{$ref:"#/$defs/AutomationRunArtifact"},type:"array"},backend:{type:"string"},backend_attempt_count:{default:0,format:"uint",minimum:0,type:"integer"},backend_attempts:{items:{$ref:"#/$defs/AgentTaskRetryAttempt"},type:"array"},backend_identity:{description:"The durable backend/configuration identity this run executed under.\n\nA settled deterministic failure stays suppressed only while this\nmatches the identity now configured, so the scheduler can re-admit the\ntask the moment the backend or configuration changes. Records written\nbefore this field existed carry `None` and never suppress: an\nunidentified failure cannot be shown to have failed under the current\nidentity.",type:["string","null"]},completed_at:{type:"string"},completed_at_micros:{format:"int64",type:["integer","null"]},error:{type:["string","null"]},error_classification:{anyOf:[{$ref:"#/$defs/AgentTaskFailureClass"},{type:"null"}]},error_retryable:{type:["boolean","null"]},evidence_hash:{type:["string","null"]},fallback_status:{type:["string","null"]},host_mode:{type:["string","null"]},input_hash:{type:["string","null"]},model:{type:["string","null"]},output_hash:{type:["string","null"]},prompt_version:{type:["string","null"]},proposed_ops:!0,rejected_count:{format:"uint",minimum:0,type:"integer"},rejected_ops:!0,report_ref:!0,response_schema:!0,reviewed_count:{default:0,format:"uint",minimum:0,type:"integer"},run_id:{type:"string"},schema_version:{format:"uint32",minimum:0,type:"integer"},session_evidence_budget_stage:{anyOf:[{$ref:"#/$defs/SessionRetrievalBudgetStageV1"},{type:"null"}],description:"Exhausted retrieval boundary of a `session_evidence_budget_exhausted`\nskip; present exactly on those skips."},skipped_count:{default:0,format:"uint",minimum:0,type:"integer"},started_at:{type:"string"},status:{$ref:"#/$defs/AutomationRunStatus"},strict_json:{type:["boolean","null"]},task:{$ref:"#/$defs/AgentTaskKind"},task_key:{type:["string","null"]},trigger:{$ref:"#/$defs/AutomationTrigger"},validation_report:!0},required:["schema_version","run_id","trigger","task","backend","status","accepted_count","rejected_count","started_at","completed_at"],type:"object"},AutomationRunScopeV1:fJ,AutomationRunStatus:fZ,AutomationTrigger:f1,SessionRetrievalBudgetStageV1:ba},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{run:{$ref:"#/$defs/AutomationRunLedgerRecord"},scope:{$ref:"#/$defs/AutomationRunScopeV1"},status:{$ref:"#/$defs/AutomationReadStatusV1"}},required:["status","scope","run"],title:"AutomationRunViewResultV1",type:"object"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{base:{description:"Base local branch name (e.g. 'main').",type:"string"},cursor:{description:"Authenticated continuation cursor returned by the preceding exact\nbranch-diff page.",type:["string","null"]},file:{description:"Optional file path filter, only show diffs for symbols in this file.",type:["string","null"]},head:{description:"Head local branch name (e.g. 'feature/foo'). Defaults to the current\nbranch.",type:["string","null"]},kind:{description:"Optional kind filter, only show diffs for this symbol kind (e.g.\n'function', 'struct').",type:["string","null"]},limit:{description:"Maximum combined added, removed, and changed results (default: 100,\nat most 256).",format:"uint32",minimum:0,type:["integer","null"]}},required:["base"],title:"BranchDiffSurfaceRequestV1",type:"object"},{$defs:{BranchDiffCompleteV1:{additionalProperties:!1,properties:{base:{type:"string"},base_generation:{type:"string"},base_revision:{type:"string"},base_tree:{type:"string"},changes:{items:{$ref:"#/$defs/BranchSymbolChangeV1"},type:"array"},freshness:{anyOf:[{$ref:"#/$defs/PrimitiveSearchFreshnessV1"},{type:"null"}],description:"The worktree verdict a served graph read opens with."},head:{type:"string"},head_generation:{type:"string"},head_revision:{type:"string"},head_tree:{type:"string"},status:{$ref:"#/$defs/GitReadCompleteV1"},summary:{$ref:"#/$defs/BranchDiffSummaryV1"},total_changes:{format:"uint",minimum:0,type:"integer"}},required:["status","base","head","base_revision","base_tree","head_revision","head_tree","base_generation","head_generation","total_changes","summary","changes"],type:"object"},BranchDiffPartialV1:{additionalProperties:!1,properties:{base:{type:"string"},base_generation:{type:"string"},base_revision:{type:"string"},base_tree:{type:"string"},changes:{items:{$ref:"#/$defs/BranchSymbolChangeV1"},type:"array"},freshness:{anyOf:[{$ref:"#/$defs/PrimitiveSearchFreshnessV1"},{type:"null"}],description:"The worktree verdict a served graph read opens with."},head:{type:"string"},head_generation:{type:"string"},head_revision:{type:"string"},head_tree:{type:"string"},next_cursor:{type:"string"},reason:{$ref:"#/$defs/GitResultLimitV1"},status:{$ref:"#/$defs/GitReadPartialV1"},summary:{$ref:"#/$defs/BranchDiffSummaryV1"},total_changes:{format:"uint",minimum:0,type:"integer"}},required:["status","reason","base","head","base_revision","base_tree","head_revision","head_tree","base_generation","head_generation","total_changes","next_cursor","summary","changes"],type:"object"},BranchDiffReferenceUnavailableV1:{additionalProperties:!1,description:"Either branch of `base..head` does not resolve to a local commit.",properties:{base_or_head:{description:"The requested range, `base..head`.",type:"string"},reason:{type:"string"},retryable:{type:"boolean"},status:{$ref:"#/$defs/GitReadUnavailableV1"}},required:["status","base_or_head","reason","retryable"],type:"object"},BranchDiffSummaryV1:{additionalProperties:!1,properties:{added:{format:"uint",minimum:0,type:"integer"},changed:{format:"uint",minimum:0,type:"integer"},removed:{format:"uint",minimum:0,type:"integer"}},required:["added","removed","changed"],type:"object"},BranchDiffUnavailableV1:{additionalProperties:!1,description:"No sealed code-index generations compare the two branches' commits.",properties:{base:{type:"string"},base_generation:{type:["string","null"]},base_revision:{type:"string"},head:{type:"string"},head_generation:{type:["string","null"]},head_revision:{type:"string"},reason:{type:"string"},retryable:{type:"boolean"},status:{$ref:"#/$defs/GitReadUnavailableV1"}},required:["status","base","head","base_revision","head_revision","reason","retryable"],type:"object"},BranchSymbolChangeV1:{oneOf:[{additionalProperties:!1,properties:{change:{const:"added",type:"string"},symbol:{$ref:"#/$defs/BranchSymbolV1"}},required:["change","symbol"],type:"object"},{additionalProperties:!1,properties:{change:{const:"removed",type:"string"},symbol:{$ref:"#/$defs/BranchSymbolV1"}},required:["change","symbol"],type:"object"},{additionalProperties:!1,properties:{base:{$ref:"#/$defs/BranchSymbolV1"},change:{const:"changed",type:"string"},head:{$ref:"#/$defs/BranchSymbolV1"}},required:["change","base","head"],type:"object"}]},BranchSymbolV1:{additionalProperties:!1,description:"A symbol in one branch's sealed generation.",properties:{content_digest:{type:"string"},file:{type:"string"},file_identity:{type:"string"},file_occurrence_id:{type:"string"},kind:{type:"string"},name:{type:"string"},qualified_name:{type:"string"},symbol_identity:{type:"string"},symbol_occurrence_id:{type:"string"}},required:["symbol_identity","symbol_occurrence_id","file_identity","file_occurrence_id","name","qualified_name","kind","file","content_digest"],type:"object"},CodeIndexBuildBlockedReasonV1:hv,CodeIndexConvergenceParkedV1:hb,CodeIndexStalenessStateV1:hw,GitReadCompleteV1:gC,GitReadPartialV1:gT,GitReadUnavailableV1:gO,GitResultLimitV1:gE,PrimitiveFreshnessStateV1:_K,PrimitiveIndexingStateV1:_J,PrimitiveSearchFreshnessV1:_Y},$schema:"https://json-schema.org/draft/2020-12/schema",anyOf:[{$ref:"#/$defs/BranchDiffCompleteV1"},{$ref:"#/$defs/BranchDiffPartialV1"},{$ref:"#/$defs/BranchDiffUnavailableV1"},{$ref:"#/$defs/BranchDiffReferenceUnavailableV1"}],title:"BranchDiffResultV1"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{cursor:{description:"Continuation cursor returned as `next_cursor` by the preceding page\nwith the same `limit`.",type:["string","null"]},limit:{description:"Maximum local refs to return (default: 100, at most 128).",format:"uint32",minimum:0,type:["integer","null"]}},title:"BranchListSurfaceRequestV1",type:"object"},{$defs:{BranchListPageV1:{additionalProperties:!1,properties:{examined:{format:"uint",minimum:0,type:"integer"},freshness:{anyOf:[{$ref:"#/$defs/PrimitiveSearchFreshnessV1"},{type:"null"}],description:"The worktree verdict a served graph read opens with."},limit:{format:"uint",minimum:0,type:"integer"},next_cursor:{type:["string","null"]},reason:{anyOf:[{$ref:"#/$defs/GitReferenceLimitV1"},{type:"null"}]},snapshot_count:{format:"uint",minimum:0,type:"integer"},snapshots:{items:{$ref:"#/$defs/BranchSnapshotEntryV1"},type:"array"},status:{$ref:"#/$defs/GitPageStatusV1"}},required:["status","snapshot_count","examined","limit","snapshots"],type:"object"},BranchReadUnavailableV1:{additionalProperties:!1,description:"A local branch read refused before any snapshot was taken.",properties:{reason:{type:"string"},retryable:{type:"boolean"},status:{$ref:"#/$defs/GitReadUnavailableV1"}},required:["status","reason","retryable"],type:"object"},BranchSnapshotEntryV1:{additionalProperties:!1,properties:{branch:{type:"string"},source_revision:{type:"string"},source_tree:{type:"string"}},required:["branch","source_revision","source_tree"],type:"object"},CodeIndexBuildBlockedReasonV1:hv,CodeIndexConvergenceParkedV1:hb,CodeIndexStalenessStateV1:hw,GitPageStatusV1:gj,GitReadUnavailableV1:gO,GitReferenceLimitV1:{enum:["reference_limit"],type:"string"},PrimitiveFreshnessStateV1:_K,PrimitiveIndexingStateV1:_J,PrimitiveSearchFreshnessV1:_Y},$schema:"https://json-schema.org/draft/2020-12/schema",anyOf:[{$ref:"#/$defs/BranchListPageV1"},{$ref:"#/$defs/BranchReadUnavailableV1"}],title:"BranchListResultV1"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{branch:{description:"Exact local branch name to search.",type:"string"},cursor:{description:"Authenticated continuation cursor returned by the preceding exact\nbranch-search page.",type:["string","null"]},limit:{description:"Maximum number of results to return (default: 10, at most 500).",format:"uint32",minimum:0,type:["integer","null"]},query:{description:"Search query string to match against symbol names.",type:"string"}},required:["branch","query"],title:"BranchSearchSurfaceRequestV1",type:"object"},{$defs:{BranchReferenceUnavailableV1:{additionalProperties:!1,description:"The named branch does not resolve to a local commit.",properties:{branch:{type:"string"},reason:{type:"string"},retryable:{type:"boolean"},status:{$ref:"#/$defs/GitReadUnavailableV1"}},required:["status","branch","reason","retryable"],type:"object"},BranchSearchHitV1:{additionalProperties:!1,properties:{branch:{type:"string"},candidate:{$ref:"#/$defs/RankedCandidate"},code_generation:{type:"string"},kind:{type:["string","null"]},name:{type:["string","null"]},path:{type:["string","null"]},qualified_name:{type:["string","null"]},source_reference:{type:"string"},source_revision:{type:"string"},source_tree:{type:"string"}},required:["candidate","branch","source_reference","source_revision","source_tree","code_generation"],type:"object"},BranchSearchPageV1:{additionalProperties:!1,properties:{branch:{type:"string"},code_generation:{type:"string"},freshness:{anyOf:[{$ref:"#/$defs/PrimitiveSearchFreshnessV1"},{type:"null"}],description:"The worktree verdict a served graph read opens with."},next_cursor:{type:["string","null"]},reason:{anyOf:[{$ref:"#/$defs/GitResultLimitV1"},{type:"null"}]},results:{items:{$ref:"#/$defs/BranchSearchHitV1"},type:"array"},source_reference:{type:"string"},source_revision:{type:"string"},source_tree:{type:"string"},status:{$ref:"#/$defs/GitPageStatusV1"}},required:["status","branch","source_reference","source_revision","source_tree","code_generation","results"],type:"object"},BranchSearchUnavailableV1:{additionalProperties:!1,description:"No sealed code-index generation answers for the branch's commit.",properties:{branch:{type:"string"},code_generation:{type:["string","null"]},reason:{type:"string"},retryable:{type:"boolean"},source_revision:{type:"string"},status:{$ref:"#/$defs/GitReadUnavailableV1"}},required:["status","branch","source_revision","reason","retryable"],type:"object"},CalibrationProfileId:ho,CandidateContribution:hd,CodeIndexBuildBlockedReasonV1:hv,CodeIndexConvergenceParkedV1:hb,CodeIndexStalenessStateV1:hw,ComponentRevision:hC,EvidenceRole:yT,ExactClass:yO,FileOccurrenceId:gd,FixedPointScore:gl,FreshnessCompatibilityV1:gp,FusedCandidate:gu,GitPageStatusV1:gj,GitReadUnavailableV1:gO,GitResultLimitV1:gE,LogicalCopyClusterId:_o,LogicalEvidenceId:_n,OccurrenceProvenance:_D,PrimitiveFreshnessStateV1:_K,PrimitiveIndexingStateV1:_J,PrimitiveSearchFreshnessV1:_Y,RankedCandidate:{additionalProperties:!1,description:"A fused candidate with its final deterministic ordinal.",properties:{candidate:{$ref:"#/$defs/FusedCandidate"},final_ordinal:{format:"uint32",minimum:0,type:"integer"}},required:["candidate","final_ordinal"],type:"object"},RankingDecision:vu,RankingDecisionKind:vm,RepositoryId:v$,RetrievalAnchorId:vx,RetrievalSourceRoleV1:vT,RetrieverKind:vE,ScoreDomainId:v6,SessionOrThreadId:bt,SourceFreshness:b_,SourceInstanceKey:bv,SourceNamespace:b$,SourceOccurrenceId:bS,UtcMicros:bX},$schema:"https://json-schema.org/draft/2020-12/schema",anyOf:[{$ref:"#/$defs/BranchSearchPageV1"},{$ref:"#/$defs/BranchSearchUnavailableV1"},{$ref:"#/$defs/BranchReferenceUnavailableV1"}],title:"BranchSearchResultV1"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{qualified_name:{description:"The exact qualified name to look up.",type:"string"}},required:["qualified_name"],title:"ByQualifiedNameSurfaceRequestV1",type:"object"},{$defs:{PrimitiveSymbolLocationV1:_0},$schema:"https://json-schema.org/draft/2020-12/schema",description:"Every indexed symbol sharing one qualified name (overloads, generics,\nseparate impl blocks).",items:{$ref:"#/$defs/PrimitiveSymbolLocationV1"},title:"ByQualifiedNameResultV1",type:"array"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{from_node_id:{type:"string"},maximum_depth:{default:8,format:"uint32",minimum:0,type:"integer"},to_node_id:{type:"string"}},required:["from_node_id","to_node_id"],title:"CallChainPrimitiveRequest",type:"object"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{edge_kinds:{items:{type:"string"},type:"array"},node_ids:{items:{type:"string"},type:"array"}},required:["node_ids","edge_kinds"],title:"CallChainPrimitiveResult",type:"object"},{$defs:{NativeIntegrationTransactionId:_O},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{transaction_id:{$ref:"#/$defs/NativeIntegrationTransactionId"}},required:["transaction_id"],title:"NativeIntegrationCancelSurfaceRequest",type:"object"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{from_ref:{description:"Starting git ref (commit, branch, tag).",type:"string"},to_ref:{description:"Ending git ref (commit, branch, tag).",type:"string"}},required:["from_ref","to_ref"],title:"ChangelogSurfaceRequestV1",type:"object"},{$defs:{ChangelogCompleteV1:{additionalProperties:!1,properties:{base_generation:{type:"string"},changed_file_count:{format:"uint",minimum:0,type:"integer"},changed_files:{items:{type:"string"},type:"array"},freshness:{anyOf:[{$ref:"#/$defs/PrimitiveSearchFreshnessV1"},{type:"null"}],description:"The worktree verdict a served graph read opens with."},from_ref:{type:"string"},head_generation:{type:"string"},status:{$ref:"#/$defs/GitReadCompleteV1"},symbol_changes_coverage:{$ref:"#/$defs/SymbolChangesCompleteV1"},symbols_added:{items:{$ref:"#/$defs/GitComparedSymbolV1"},type:"array"},symbols_modified:{items:{$ref:"#/$defs/GitComparedSymbolV1"},type:"array"},symbols_removed:{items:{$ref:"#/$defs/GitComparedSymbolV1"},type:"array"},to_ref:{type:"string"}},required:["status","from_ref","to_ref","changed_file_count","changed_files","base_generation","head_generation","symbols_added","symbols_removed","symbols_modified","symbol_changes_coverage"],type:"object"},ChangelogPartialV1:{additionalProperties:!1,description:"The tree diff without symbol changes: the refs are not both exact local\nbranches with sealed generations.",properties:{changed_file_count:{format:"uint",minimum:0,type:"integer"},changed_files:{items:{type:"string"},type:"array"},freshness:{anyOf:[{$ref:"#/$defs/PrimitiveSearchFreshnessV1"},{type:"null"}],description:"The worktree verdict a served graph read opens with."},from_ref:{type:"string"},status:{$ref:"#/$defs/GitReadPartialV1"},symbol_changes_coverage:{$ref:"#/$defs/SymbolChangesUnavailableV1"},symbols_added:{items:{$ref:"#/$defs/GitComparedSymbolV1"},type:"array"},symbols_modified:{items:{$ref:"#/$defs/GitComparedSymbolV1"},type:"array"},symbols_removed:{items:{$ref:"#/$defs/GitComparedSymbolV1"},type:"array"},to_ref:{type:"string"}},required:["status","from_ref","to_ref","changed_file_count","changed_files","symbols_added","symbols_removed","symbols_modified","symbol_changes_coverage"],type:"object"},CodeIndexBuildBlockedReasonV1:hv,CodeIndexConvergenceParkedV1:hb,CodeIndexStalenessStateV1:hw,GitComparedSymbolV1:gg,GitReadCompleteV1:gC,GitReadPartialV1:gT,GitReadUnavailableV1:gO,GitToolErrorKindV1:gM,GitToolErrorV1:gN,GitToolFailureV1:gz,GitToolOperationV1:gD,PrimitiveFreshnessStateV1:_K,PrimitiveIndexingStateV1:_J,PrimitiveSearchFreshnessV1:_Y,SymbolChangesCompleteV1:{additionalProperties:!1,properties:{status:{$ref:"#/$defs/GitReadCompleteV1"}},required:["status"],type:"object"},SymbolChangesUnavailableV1:bq},$schema:"https://json-schema.org/draft/2020-12/schema",anyOf:[{$ref:"#/$defs/ChangelogCompleteV1"},{$ref:"#/$defs/ChangelogPartialV1"},{$ref:"#/$defs/GitToolFailureV1"}],title:"ChangelogResultV1"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{limit:{description:"Maximum number of cycles to report, largest first (default: 25, max:\n200). The response always states the total detected and how many were\nomitted.",format:"uint32",minimum:0,type:["integer","null"]},member_limit:{description:"Maximum member files listed per reported cycle (default: 12, max:\n200). Each entry states its true member_count and\nomitted_member_count.",format:"uint32",minimum:0,type:["integer","null"]}},title:"CircularSurfaceRequestV1",type:"object"},{$defs:{CircularCycleV1:{additionalProperties:!1,description:"One reported file cycle: the members that fit the member bound, plus the\ncomponent's true size so the omission is stated rather than hidden.",properties:{member_count:{format:"uint64",minimum:0,type:"integer"},members:{items:{type:"string"},type:"array"},omitted_member_count:{format:"uint64",minimum:0,type:"integer"}},required:["members","member_count","omitted_member_count"],type:"object"},CodeIndexBuildBlockedReasonV1:hv,CodeIndexConvergenceParkedV1:hb,CodeIndexStalenessStateV1:hw,PrimitiveFreshnessStateV1:_K,PrimitiveIndexingStateV1:_J,PrimitiveSearchFreshnessV1:_Y},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{cycle_count:{format:"uint64",minimum:0,type:"integer"},cycles:{items:{$ref:"#/$defs/CircularCycleV1"},type:"array"},freshness:{anyOf:[{$ref:"#/$defs/PrimitiveSearchFreshnessV1"},{type:"null"}],description:"The worktree verdict a served graph read opens with."},limit:{format:"uint64",minimum:0,type:"integer"},member_limit:{format:"uint64",minimum:0,type:"integer"},omitted_cycle_count:{format:"uint64",minimum:0,type:"integer"},reported_cycle_count:{format:"uint64",minimum:0,type:"integer"}},required:["cycle_count","reported_cycle_count","omitted_cycle_count","limit","member_limit","cycles"],title:"CircularResultV1",type:"object"},{$defs:{CallableCodeSurfaceMeta:hn,CodeGenerationId:hg,CodeQueryScope:hR,ResultProjection:vV,RetrievalOrder:vj},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{maximum_depth:{default:3,format:"uint32",minimum:0,type:"integer"},meta:{$ref:"#/$defs/CallableCodeSurfaceMeta",default:{cursor:null,order:"source_position",projection:"evidence"}},node_id:{type:"string"},resolve_trait_dispatch:{default:!0,type:"boolean"},scope:{$ref:"#/$defs/CodeQueryScope",default:{generation:"code-generation:unpinned-latest.v1",path_prefix:null}}},required:["node_id"],title:"CodeCalleesSurfaceRequest",type:"object"},{$defs:{CodeGenerationId:hg,SymbolPrimitiveRecord:bj,SymbolRelationRecord:bC},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"Generation-bound page returned by every callable code query. Coverage,\nomissions, scoring, and terminal state remain in the enclosing\n[`crate::result::RetrievalEvidence`].",properties:{generation:{$ref:"#/$defs/CodeGenerationId"},items:{items:{$ref:"#/$defs/SymbolRelationRecord"},type:"array"},next_cursor:{description:"Opaque resume token; its bounded string is the public wire form.",type:["string","null"]},query_fallback:{description:"Independently hashed exact/lexical/graph subpayload. Callers preserve it\nbyte-for-byte rather than interpreting it, so the public schema admits\nthe canonical JSON it carries without re-declaring its internals."},total:{format:"uint64",minimum:0,type:["integer","null"]}},required:["generation","items"],title:"CodeQueryPage",type:"object"},{$defs:{CallableCodeSurfaceMeta:hn,ResultProjection:vV,RetrievalOrder:vj,SymbolGraphScope:bI},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{maximum_depth:{default:3,format:"uint32",minimum:0,type:"integer"},meta:{$ref:"#/$defs/CallableCodeSurfaceMeta",default:{cursor:null,order:"source_position",projection:"evidence"}},node_id:{type:"string"},scope:{$ref:"#/$defs/SymbolGraphScope",default:{path_prefix:null}}},required:["node_id"],title:"CodeCallersSurfaceRequest",type:"object"},{$defs:{CodeGenerationId:hg,CodeGraphReadFreshnessV1:h_,PrimitiveSupportGap:_1,SymbolPrimitiveRecord:bj,SymbolRelationRecord:bC,UtcMicros:bX},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"Bounded semantic result shared by the compatibility surfaces. Rendering,\ntransport envelopes, and MCP content blocks remain outside this contract.",properties:{freshness:{$ref:"#/$defs/CodeGraphReadFreshnessV1"},generation:{$ref:"#/$defs/CodeGenerationId"},items:{items:{$ref:"#/$defs/SymbolRelationRecord"},type:"array"},next_cursor:{description:"Opaque resume token; its bounded string is the public wire form.",type:["string","null"]},related_edge_count:{format:"uint64",minimum:0,type:["integer","null"]},support_gaps:{items:{$ref:"#/$defs/PrimitiveSupportGap"},type:"array"},total:{format:"uint64",minimum:0,type:["integer","null"]},truncated:{type:"boolean"}},required:["generation","freshness","items","truncated","support_gaps"],title:"SymbolGraphPage",type:"object"},{$defs:{CallableCodeSurfaceMeta:hn,CodeGenerationId:hg,CodeQueryScope:hR,ResultProjection:vV,RetrievalOrder:vj},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{meta:{$ref:"#/$defs/CallableCodeSurfaceMeta"},node_id:{type:"string"},scope:{$ref:"#/$defs/CodeQueryScope"}},required:["node_id","scope","meta"],title:"CodeNavigationSurfaceRequest",type:"object"},{$defs:{CodeGenerationId:hg,SymbolPrimitiveRecord:bj},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"Generation-bound page returned by every callable code query. Coverage,\nomissions, scoring, and terminal state remain in the enclosing\n[`crate::result::RetrievalEvidence`].",properties:{generation:{$ref:"#/$defs/CodeGenerationId"},items:{items:{$ref:"#/$defs/SymbolPrimitiveRecord"},type:"array"},next_cursor:{description:"Opaque resume token; its bounded string is the public wire form.",type:["string","null"]},query_fallback:{description:"Independently hashed exact/lexical/graph subpayload. Callers preserve it\nbyte-for-byte rather than interpreting it, so the public schema admits\nthe canonical JSON it carries without re-declaring its internals."},total:{format:"uint64",minimum:0,type:["integer","null"]}},required:["generation","items"],title:"CodeQueryPage",type:"object"},{$defs:{CallableCodeSurfaceMeta:hn,CodeGenerationId:hg,CodeQueryScope:hR,ExactTechnicalTermKindV1:yE,ResultProjection:vV,RetrievalOrder:vj},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{kind:{anyOf:[{$ref:"#/$defs/ExactTechnicalTermKindV1"},{type:"null"}]},literal:{type:"string"},meta:{$ref:"#/$defs/CallableCodeSurfaceMeta"},scope:{$ref:"#/$defs/CodeQueryScope"}},required:["literal","scope","meta"],title:"CodeExactOccurrenceSurfaceRequest",type:"object"},{$defs:{CodeGenerationId:hg,CodeOccurrenceRecord:hV,CodeSearchChunkId:hq,ExactOccurrenceRecord:{additionalProperties:!1,properties:{matched_kind:{$ref:"#/$defs/ExactTechnicalTermKindV1"},matched_literal:{type:"string"},occurrence:{$ref:"#/$defs/CodeOccurrenceRecord"}},required:["occurrence","matched_kind","matched_literal"],type:"object"},ExactTechnicalTermKindV1:yE,FileOccurrenceId:gd,SourceSpan:bk,SymbolOccurrenceId:bx},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"Generation-bound page returned by every callable code query. Coverage,\nomissions, scoring, and terminal state remain in the enclosing\n[`crate::result::RetrievalEvidence`].",properties:{generation:{$ref:"#/$defs/CodeGenerationId"},items:{items:{$ref:"#/$defs/ExactOccurrenceRecord"},type:"array"},next_cursor:{description:"Opaque resume token; its bounded string is the public wire form.",type:["string","null"]},query_fallback:{description:"Independently hashed exact/lexical/graph subpayload. Callers preserve it\nbyte-for-byte rather than interpreting it, so the public schema admits\nthe canonical JSON it carries without re-declaring its internals."},total:{format:"uint64",minimum:0,type:["integer","null"]}},required:["generation","items"],title:"CodeQueryPage",type:"object"},{$defs:{CallableCodeSurfaceMeta:hn,CodeFacetDimension:hy,CodeGenerationId:hg,CodeQueryScope:hR,ResultProjection:vV,RetrievalOrder:vj},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{dimension:{$ref:"#/$defs/CodeFacetDimension"},meta:{$ref:"#/$defs/CallableCodeSurfaceMeta"},scope:{$ref:"#/$defs/CodeQueryScope"}},required:["dimension","scope","meta"],title:"CodeFacetSurfaceRequest",type:"object"},{$defs:{CodeFacetDimension:hy,CodeFacetRecord:{additionalProperties:!1,properties:{count:{format:"uint64",minimum:0,type:"integer"},dimension:{$ref:"#/$defs/CodeFacetDimension"},value:{type:"string"}},required:["dimension","value","count"],type:"object"},CodeGenerationId:hg},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"Generation-bound page returned by every callable code query. Coverage,\nomissions, scoring, and terminal state remain in the enclosing\n[`crate::result::RetrievalEvidence`].",properties:{generation:{$ref:"#/$defs/CodeGenerationId"},items:{items:{$ref:"#/$defs/CodeFacetRecord"},type:"array"},next_cursor:{description:"Opaque resume token; its bounded string is the public wire form.",type:["string","null"]},query_fallback:{description:"Independently hashed exact/lexical/graph subpayload. Callers preserve it\nbyte-for-byte rather than interpreting it, so the public schema admits\nthe canonical JSON it carries without re-declaring its internals."},total:{format:"uint64",minimum:0,type:["integer","null"]}},required:["generation","items"],title:"CodeQueryPage",type:"object"},{$defs:{CallableCodeSurfaceMeta:hn,ImplementationSelector:{oneOf:[{properties:{name:{type:"string"},selector:{const:"trait",type:"string"}},required:["selector","name"],type:"object"},{properties:{name:{type:"string"},selector:{const:"method",type:"string"}},required:["selector","name"],type:"object"}]},ResultProjection:vV,RetrievalOrder:vj,SymbolGraphScope:bI},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{meta:{$ref:"#/$defs/CallableCodeSurfaceMeta",default:{cursor:null,order:"source_position",projection:"evidence"}},scope:{$ref:"#/$defs/SymbolGraphScope",default:{path_prefix:null}},selector:{$ref:"#/$defs/ImplementationSelector"}},required:["selector"],title:"CodeImplementationsSurfaceRequest",type:"object"},{$defs:{CodeGenerationId:hg,CodeGraphReadFreshnessV1:h_,ImplementationRecord:{additionalProperties:!1,description:"One implementation match with its exact source: the implementing\nimpl/class block (methods included) for a trait selector, or the function\nbody for a method selector.",properties:{body:{type:"string"},dispatch_from:{description:"Trait or interface node a trait-selector match was reached through.",type:["string","null"]},edge_kind:{type:"string"},symbol:{$ref:"#/$defs/SymbolPrimitiveRecord"}},required:["symbol","edge_kind","body"],type:"object"},PrimitiveSupportGap:_1,SymbolPrimitiveRecord:bj,UtcMicros:bX},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"Bounded semantic result shared by the compatibility surfaces. Rendering,\ntransport envelopes, and MCP content blocks remain outside this contract.",properties:{freshness:{$ref:"#/$defs/CodeGraphReadFreshnessV1"},generation:{$ref:"#/$defs/CodeGenerationId"},items:{items:{$ref:"#/$defs/ImplementationRecord"},type:"array"},next_cursor:{description:"Opaque resume token; its bounded string is the public wire form.",type:["string","null"]},related_edge_count:{format:"uint64",minimum:0,type:["integer","null"]},support_gaps:{items:{$ref:"#/$defs/PrimitiveSupportGap"},type:"array"},total:{format:"uint64",minimum:0,type:["integer","null"]},truncated:{type:"boolean"}},required:["generation","freshness","items","truncated","support_gaps"],title:"SymbolGraphPage",type:"object"},{$defs:{CallableCodeSurfaceMeta:hn,CodeGenerationId:hg,CodeLexicalField:{description:"Typed code fields accepted by the generation-owned lexical authority.",enum:["symbol_name","qualified_name","path","signature","documentation","body_text","preamble_text","exact_term","subtoken"],type:"string"},CodeLexicalFieldFilter:{additionalProperties:!1,properties:{field:{$ref:"#/$defs/CodeLexicalField"},include:{type:"boolean"}},required:["field","include"],type:"object"},CodeQueryScope:hR,ResultProjection:vV,RetrievalOrder:vj},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"Serializable adapter DTO for the request-local phrase query view.\n\nThe callable application request deliberately keeps its sanitized query\nnon-serializable. The owning runtime supplies the exact sanitizer\nrevisions when converting this transport DTO.",properties:{field_filters:{default:[],items:{$ref:"#/$defs/CodeLexicalFieldFilter"},type:"array"},fuzzy_budget:{default:0,format:"uint32",minimum:0,type:"integer"},meta:{$ref:"#/$defs/CallableCodeSurfaceMeta"},phrases:{items:{type:"string"},type:"array"},query:{type:"string"},scope:{$ref:"#/$defs/CodeQueryScope"}},required:["query","phrases","scope","meta"],title:"CodePhraseSearchSurfaceRequest",type:"object"},{$defs:{CodeGenerationId:hg,CodeOccurrenceRecord:hV,CodeSearchChunkId:hq,FileOccurrenceId:gd,LexicalOccurrenceRecord:{additionalProperties:!1,properties:{matched_phrases:{items:{type:"string"},type:"array"},matched_terms:{items:{type:"string"},type:"array"},occurrence:{$ref:"#/$defs/CodeOccurrenceRecord"},score_micros:{format:"uint64",minimum:0,type:"integer"}},required:["occurrence","score_micros","matched_phrases","matched_terms"],type:"object"},SourceSpan:bk,SymbolOccurrenceId:bx},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"Generation-bound page returned by every callable code query. Coverage,\nomissions, scoring, and terminal state remain in the enclosing\n[`crate::result::RetrievalEvidence`].",properties:{generation:{$ref:"#/$defs/CodeGenerationId"},items:{items:{$ref:"#/$defs/LexicalOccurrenceRecord"},type:"array"},next_cursor:{description:"Opaque resume token; its bounded string is the public wire form.",type:["string","null"]},query_fallback:{description:"Independently hashed exact/lexical/graph subpayload. Callers preserve it\nbyte-for-byte rather than interpreting it, so the public schema admits\nthe canonical JSON it carries without re-declaring its internals."},total:{format:"uint64",minimum:0,type:["integer","null"]}},required:["generation","items"],title:"CodeQueryPage",type:"object"},{$defs:{CallableCodeSurfaceMeta:hn,ResultProjection:vV,RetrievalOrder:vj,SymbolGraphScope:bI},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{is_async:{type:["boolean","null"]},meta:{$ref:"#/$defs/CallableCodeSurfaceMeta",default:{cursor:null,order:"source_position",projection:"evidence"}},params:{default:[],items:{type:"string"},type:"array"},returns:{type:["string","null"]},scope:{$ref:"#/$defs/SymbolGraphScope",default:{path_prefix:null}}},title:"CodeSignatureSearchSurfaceRequest",type:"object"},{$defs:{CodeGenerationId:hg,CodeGraphReadFreshnessV1:h_,PrimitiveSupportGap:_1,SymbolPrimitiveRecord:bj,UtcMicros:bX},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"Bounded semantic result shared by the compatibility surfaces. Rendering,\ntransport envelopes, and MCP content blocks remain outside this contract.",properties:{freshness:{$ref:"#/$defs/CodeGraphReadFreshnessV1"},generation:{$ref:"#/$defs/CodeGenerationId"},items:{items:{$ref:"#/$defs/SymbolPrimitiveRecord"},type:"array"},next_cursor:{description:"Opaque resume token; its bounded string is the public wire form.",type:["string","null"]},related_edge_count:{format:"uint64",minimum:0,type:["integer","null"]},support_gaps:{items:{$ref:"#/$defs/PrimitiveSupportGap"},type:"array"},total:{format:"uint64",minimum:0,type:["integer","null"]},truncated:{type:"boolean"}},required:["generation","freshness","items","truncated","support_gaps"],title:"SymbolGraphPage",type:"object"},{$defs:{CallableCodeSurfaceMeta:hn,ResultProjection:vV,RetrievalOrder:vj,SymbolGraphScope:bI},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{lazy_index_ignored_dependencies:{type:"boolean"},meta:{$ref:"#/$defs/CallableCodeSurfaceMeta"},query:{type:"string"},scope:{$ref:"#/$defs/SymbolGraphScope"}},required:["query","scope","lazy_index_ignored_dependencies","meta"],title:"CodeSymbolSearchSurfaceRequest",type:"object"},{$defs:{CallableCodeSurfaceMeta:hn,CodeGenerationId:hg,CodeQueryScope:hR,ResultProjection:vV,RetrievalOrder:vj},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{meta:{$ref:"#/$defs/CallableCodeSurfaceMeta"},scope:{$ref:"#/$defs/CodeQueryScope"}},required:["scope","meta"],title:"CodeTimelineSurfaceRequest",type:"object"},{$defs:{CodeGenerationId:hg,CodeTimelineRecord:{additionalProperties:!1,properties:{file_count:{format:"uint64",minimum:0,type:"integer"},generation:{$ref:"#/$defs/CodeGenerationId"},indexed_at:{$ref:"#/$defs/UtcMicros"},symbol_count:{format:"uint64",minimum:0,type:"integer"}},required:["generation","indexed_at","file_count","symbol_count"],type:"object"},UtcMicros:bX},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"Generation-bound page returned by every callable code query. Coverage,\nomissions, scoring, and terminal state remain in the enclosing\n[`crate::result::RetrievalEvidence`].",properties:{generation:{$ref:"#/$defs/CodeGenerationId"},items:{items:{$ref:"#/$defs/CodeTimelineRecord"},type:"array"},next_cursor:{description:"Opaque resume token; its bounded string is the public wire form.",type:["string","null"]},query_fallback:{description:"Independently hashed exact/lexical/graph subpayload. Callers preserve it\nbyte-for-byte rather than interpreting it, so the public schema admits\nthe canonical JSON it carries without re-declaring its internals."},total:{format:"uint64",minimum:0,type:["integer","null"]}},required:["generation","items"],title:"CodeQueryPage",type:"object"},{$defs:{CallableCodeSurfaceMeta:hn,ResultProjection:vV,RetrievalOrder:vj,SymbolGraphScope:bI},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{maximum_depth:{default:5,format:"uint32",minimum:0,type:"integer"},meta:{$ref:"#/$defs/CallableCodeSurfaceMeta",default:{cursor:null,order:"source_position",projection:"evidence"}},node_id:{type:"string"},scope:{$ref:"#/$defs/SymbolGraphScope",default:{path_prefix:null}}},required:["node_id"],title:"CodeTypeHierarchySurfaceRequest",type:"object"},{$defs:{CodeGenerationId:hg,CodeGraphReadFreshnessV1:h_,PrimitiveSupportGap:_1,SymbolPrimitiveRecord:bj,TypeHierarchyRecord:{additionalProperties:!1,properties:{depth:{format:"uint32",minimum:0,type:"integer"},edge_kind:{type:"string"},parent_node_id:{type:"string"},symbol:{$ref:"#/$defs/SymbolPrimitiveRecord"}},required:["symbol","parent_node_id","edge_kind","depth"],type:"object"},UtcMicros:bX},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"Bounded semantic result shared by the compatibility surfaces. Rendering,\ntransport envelopes, and MCP content blocks remain outside this contract.",properties:{freshness:{$ref:"#/$defs/CodeGraphReadFreshnessV1"},generation:{$ref:"#/$defs/CodeGenerationId"},items:{items:{$ref:"#/$defs/TypeHierarchyRecord"},type:"array"},next_cursor:{description:"Opaque resume token; its bounded string is the public wire form.",type:["string","null"]},related_edge_count:{format:"uint64",minimum:0,type:["integer","null"]},support_gaps:{items:{$ref:"#/$defs/PrimitiveSupportGap"},type:"array"},total:{format:"uint64",minimum:0,type:["integer","null"]},truncated:{type:"boolean"}},required:["generation","freshness","items","truncated","support_gaps"],title:"SymbolGraphPage",type:"object"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{staged_only:{description:"If true, compare pinned HEAD with immutable staged index blobs. The\ndefault compares HEAD with captured working-tree bytes, including\nuntracked files: a staged edit undone in the working tree cancels out.",type:["boolean","null"]}},title:"CommitContextSurfaceRequestV1",type:"object"},{$defs:{CodeIndexBuildBlockedReasonV1:hv,CodeIndexConvergenceParkedV1:hb,CodeIndexStalenessStateV1:hw,CommitCategoryV1:{description:"The commit category the changed file roles suggest.",enum:["feature/fix (source + tests)","feature/fix/refactor","test","chore/docs/config"],type:"string"},CommitContextSummaryV1:{additionalProperties:!1,properties:{changed_files:{items:{$ref:"#/$defs/CommitFileRoleV1"},type:"array"},comparison:{anyOf:[{$ref:"#/$defs/GitContextComparisonV1"},{type:"null"}]},freshness:{anyOf:[{$ref:"#/$defs/PrimitiveSearchFreshnessV1"},{type:"null"}],description:"The worktree verdict a served graph read opens with."},recent_commits:{items:{type:"string"},type:"array"},source_coverage:{anyOf:[{$ref:"#/$defs/GitContextSourceCoverageV1"},{type:"null"}]},suggested_category:{anyOf:[{$ref:"#/$defs/CommitCategoryV1"},{type:"null"}],description:"Absent when the worktree has no changes."},summary:{type:"string"},symbols_by_role:{additionalProperties:!1,properties:{config:{items:{$ref:"#/$defs/CommitSymbolEntryV1"},type:"array"},docs:{items:{$ref:"#/$defs/CommitSymbolEntryV1"},type:"array"},source:{items:{$ref:"#/$defs/CommitSymbolEntryV1"},type:"array"},test:{items:{$ref:"#/$defs/CommitSymbolEntryV1"},type:"array"}},type:"object"}},required:["changed_files","symbols_by_role","recent_commits","summary"],type:"object"},CommitFileRoleV1:{additionalProperties:!1,properties:{comparison:{anyOf:[{$ref:"#/$defs/GitContextFileComparisonV1"},{type:"null"}]},file:{type:"string"},role:{$ref:"#/$defs/GitFileRoleV1"},symbols:{format:"uint",minimum:0,type:"integer"}},required:["file","role","symbols"],type:"object"},CommitSymbolEntryV1:{anyOf:[{$ref:"#/$defs/CommitSymbolV1"},{$ref:"#/$defs/ConfigSummaryV1"}]},CommitSymbolV1:{additionalProperties:!1,properties:{change:{anyOf:[{$ref:"#/$defs/GitDeclarationChangeKindV1"},{type:"null"}]},file:{type:"string"},kind:{type:"string"},line:{format:"uint32",minimum:0,type:"integer"},name:{type:"string"},source_side:{anyOf:[{$ref:"#/$defs/GitContextSourceSideV1"},{type:"null"}]}},required:["name","kind","file","line"],type:"object"},ConfigSummaryKindV1:hO,ConfigSummaryV1:hE,GitChangeKindV1:gy,GitContextComparisonV1:g_,GitContextFileComparisonV1:{additionalProperties:!1,properties:{after_blob:{anyOf:[{$ref:"#/$defs/GitOidV1"},{type:"null"}]},before_blob:{anyOf:[{$ref:"#/$defs/GitOidV1"},{type:"null"}]},change:{$ref:"#/$defs/GitChangeKindV1"},previous_file:{type:["string","null"]}},required:["change"],type:"object"},GitContextSourceConsistencyV1:{oneOf:[{enum:["immutable_blobs"],type:"string"},{const:"per_file_worktree_capture",description:"Each file is checked around its bounded read; this is not an atomic\nsnapshot of the entire working tree.",type:"string"}]},GitContextSourceCoverageV1:{additionalProperties:!1,properties:{complete:{type:"boolean"},consistency:{$ref:"#/$defs/GitContextSourceConsistencyV1"},gaps:{items:{$ref:"#/$defs/GitContextSourceGapV1"},type:"array"},git:{$ref:"#/$defs/GitCoverageV1"}},required:["complete","git","gaps","consistency"],type:"object"},GitContextSourceGapV1:{additionalProperties:!1,properties:{file:{type:"string"},reason:{type:"string"}},required:["file","reason"],type:"object"},GitContextSourceSideV1:{enum:["before","after"],type:"string"},GitCoverageV1:gb,GitDeclarationChangeKindV1:{enum:["added","removed","modified","signature_changed","visibility_changed","renamed","ambiguous_overload"],type:"string"},GitDegradationV1:g$,GitFileRoleV1:gk,GitOidV1:gI,GitToolErrorKindV1:gM,GitToolErrorV1:gN,GitToolFailureV1:gz,GitToolOperationV1:gD,PrimitiveFreshnessStateV1:_K,PrimitiveIndexingStateV1:_J,PrimitiveSearchFreshnessV1:_Y},$schema:"https://json-schema.org/draft/2020-12/schema",anyOf:[{$ref:"#/$defs/CommitContextSummaryV1"},{$ref:"#/$defs/GitToolFailureV1"}],title:"CommitContextResultV1"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{limit:{description:"Maximum number of results to return (default: 10, at most 100).",format:"uint32",minimum:0,type:["integer","null"]},node_kind:{description:"Filter by node kind (default: every kind).",type:["string","null"]},path:{description:"Filter to files under this directory path (e.g. 'src/main/java').",type:["string","null"]}},title:"ComplexitySurfaceRequestV1",type:"object"},{$defs:{CodeIndexBuildBlockedReasonV1:hv,CodeIndexConvergenceParkedV1:hb,CodeIndexStalenessStateV1:hw,ComplexityAnalysisV1:hj,ComplexityReportEntryV1:{additionalProperties:!1,properties:{branches:{format:"uint32",minimum:0,type:["integer","null"]},complexity_analysis:{$ref:"#/$defs/ComplexityAnalysisV1"},cyclomatic_complexity:{description:"The counters are `None` when `complexity_analysis` reports the bounded\nwalk did not cover the body.",format:"uint32",minimum:0,type:["integer","null"]},fan_in:{format:"uint64",minimum:0,type:"integer"},fan_out:{format:"uint64",minimum:0,type:"integer"},file:{type:"string"},id:{type:"string"},kind:{type:"string"},line:{format:"uint32",minimum:0,type:"integer"},lines:{format:"uint32",minimum:0,type:"integer"},loops:{format:"uint32",minimum:0,type:["integer","null"]},max_nesting:{format:"uint32",minimum:0,type:["integer","null"]},name:{type:"string"},score:{format:"uint64",minimum:0,type:"integer"}},required:["id","name","kind","file","line","lines","complexity_analysis","fan_out","fan_in","score"],type:"object"},PrimitiveFreshnessStateV1:_K,PrimitiveIndexingStateV1:_J,PrimitiveSearchFreshnessV1:_Y},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{formula:{type:"string"},freshness:{anyOf:[{$ref:"#/$defs/PrimitiveSearchFreshnessV1"},{type:"null"}],description:"The worktree verdict a served graph read opens with."},note:{type:"string"},ranking:{items:{$ref:"#/$defs/ComplexityReportEntryV1"},type:"array"},result_count:{format:"uint64",minimum:0,type:"integer"}},required:["formula","note","result_count","ranking"],title:"ComplexityReportV1",type:"object"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"Exactly one of `path` or `glob` names the files to query.",properties:{glob:{description:"Glob pattern to match multiple config files (e.g. '**/Cargo.toml').\nMutually exclusive with 'path'.",type:["string","null"]},key:{description:"Dot-separated key path (e.g. 'package.version',\n'dependencies.tokio.version').",type:"string"},path:{description:"Project-relative path to a single config file (e.g. 'Cargo.toml').\nMutually exclusive with 'glob'.",type:["string","null"]}},required:["key"],title:"ConfigSurfaceRequestV1",type:"object"},{$defs:{CodeIndexBuildBlockedReasonV1:hv,CodeIndexConvergenceParkedV1:hb,CodeIndexStalenessStateV1:hw,ConfigKeyFoundV1:{additionalProperties:!1,properties:{file:{type:"string"},key:{type:"string"},line:{description:"The first line whose text starts with the key's leaf segment.",format:"uint32",minimum:0,type:["integer","null"]},value:!0},required:["file","key","value"],type:"object"},ConfigKeyMissingV1:{additionalProperties:!1,description:"`value` is always null and `found` always false; both stay on the wire\nso a missing key reads the same as it always has.",properties:{file:{type:"string"},found:{type:"boolean"},key:{type:"string"},value:{type:"null"}},required:["file","key","value","found"],type:"object"},ConfigMatchV1:{anyOf:[{$ref:"#/$defs/ConfigParseErrorV1"},{$ref:"#/$defs/ConfigKeyMissingV1"},{$ref:"#/$defs/ConfigKeyFoundV1"}],description:"One queried config file: the file's parse error, the key's absence, or the\nkey's value and defining line.\n\nThe variants are distinguished by their exact field sets, so each one\ndenies unknown fields and the most specific shapes are tried first."},ConfigParseErrorV1:{additionalProperties:!1,properties:{error:{type:"string"},file:{type:"string"}},required:["file","error"],type:"object"},PrimitiveFreshnessStateV1:_K,PrimitiveIndexingStateV1:_J,PrimitiveSearchFreshnessV1:_Y},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{freshness:{anyOf:[{$ref:"#/$defs/PrimitiveSearchFreshnessV1"},{type:"null"}],description:"The worktree verdict a served graph read opens with."},match_count:{description:"Files where the key was found or that failed to parse.",format:"uint",minimum:0,type:"integer"},matches:{items:{$ref:"#/$defs/ConfigMatchV1"},type:"array"}},required:["match_count","matches"],title:"ConfigResultV1",type:"object"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{cursor:{default:null,description:"The previous page's `next_cursor`, valid only with the same `limit`.",type:["string","null"]},limit:{format:"uint",minimum:0,type:"integer"}},required:["limit"],title:"ConfigurationAuditRequestV1",type:"object"},{$defs:{ActorId:f$,ConfigurationAuditEvent:{additionalProperties:!1,description:"Append-only audit record. `target_commitment` is event-scoped and cannot be\njoined across audit events; a caller must be separately authorized before\nany canonical target is resolved by the store/application layer.",properties:{actor_id:{$ref:"#/$defs/ActorId"},base_revision_id:{$ref:"#/$defs/ConfigurationRevisionId"},event_id:{$ref:"#/$defs/ConfigurationAuditEventId"},event_kind:{$ref:"#/$defs/ConfigurationAuditEventKindV1"},idempotency_key:{anyOf:[{$ref:"#/$defs/ConfigurationIdempotencyKey"},{type:"null"}]},occurred_at:{$ref:"#/$defs/UtcMicros"},operation_digest:{$ref:"#/$defs/ManifestDigest"},receipt_id:{anyOf:[{$ref:"#/$defs/ConfigurationReceiptId"},{type:"null"}]},result_revision_id:{anyOf:[{$ref:"#/$defs/ConfigurationRevisionId"},{type:"null"}]},safe_reason_code:{type:["string","null"]},target_commitment:{$ref:"#/$defs/ManifestDigest"}},required:["event_id","event_kind","actor_id","base_revision_id","operation_digest","target_commitment","occurred_at"],type:"object"},ConfigurationAuditEventId:{description:"Strongly typed canonical identity: `ConfigurationAuditEventId`.",type:"string"},ConfigurationAuditEventKindV1:{enum:["dry_run_created","applied","rejected","expired","activation_failed","rollback_dry_run_created","rollback_applied","recovered"],type:"string"},ConfigurationIdempotencyKey:hA,ConfigurationReceiptId:hM,ConfigurationRevisionId:hN,ManifestDigest:_p,UtcMicros:bX},$schema:"https://json-schema.org/draft/2020-12/schema",properties:{events:{items:{$ref:"#/$defs/ConfigurationAuditEvent"},type:"array"},next_cursor:{description:"Opaque continuation, bound to this operation and request.",type:["string","null"]}},required:["events"],title:"ConfigurationAuditPage",type:"object"},{$defs:{AccessRuleId:fb,ActorId:f$,AnalyzerEnvironmentVariable:fR,AnalyzerExecutableId:fq,AnalyzerExecutableReferenceV1:fI,AnalyzerLanguageId:fx,AnalyzerLanguageSelectionV1:fj,AnalyzerPrivacyClassV1:fC,AnalyzerResourceLimitsV1:fT,AnalyzerRestartPolicyV1:fO,AnalyzerSettingsV1:fE,AnalyzerStructuredValueV1:fA,AuthorityRef:fN,AutomaticWorktreeGcV1:fL,AutomationBackendV1:fU,AutomationHostModeV1:fH,AutomationSettingsV1:fQ,AutomationTaskSetV1:fX,AutomationTaskSettingsV1:fY,BranchCollisionPolicyV1:f2,BranchNameComponentV1:f4,BranchNameSeparatorV1:f6,BranchNamingPolicyV1:f3,BranchTopologyKindV1:hr,BranchTopologyPolicyV1:hi,CanonicalGitRefNameV1:hc,CanonicalGitRefPrefix:hl,CapabilityId:hp,CodeIndexWorkerSelectionV1:hP,ConfigurationDirectMutationRequestV1:{oneOf:[{properties:{key:{$ref:"#/$defs/SettingKey"},layer:{$ref:"#/$defs/ConfigurationLayerIdV1"},operation:{const:"set",type:"string"},value:{$ref:"#/$defs/ConfigurationValueV1"}},required:["operation","layer","key","value"],type:"object"},{properties:{key:{$ref:"#/$defs/SettingKey"},layer:{$ref:"#/$defs/ConfigurationLayerIdV1"},operation:{const:"unset",type:"string"}},required:["operation","layer","key"],type:"object"}]},ConfigurationIdempotencyKey:hA,ConfigurationLayerIdV1:hW,ConfigurationRevisionId:hN,ConfigurationValueV1:hD,ContextScoutConfigurationLimitsV1:hK,ContextScoutConfigurationModeV1:hJ,ContextScoutConfigurationStateV1:hZ,ContextScoutConfiguredModelPathV1:hQ,ContextScoutIntentKindV1:h3,ContextScoutIntentSettingsV1:h9,ContextScoutSettingsV1:ya,CredentialReferenceId:yy,CrossMergeModeV1:yg,CrossMergePolicyV1:y_,DecisionEngineSettingsV1:y$,GitHubStackedPullRequestPolicyV1:gP,HistoryRewritePolicyV1:gL,IntentQuestionSettingsV1:gK,IntentWindowSettingsV1:gJ,LcmSummarizerExecutableV1:g5,LcmSummarizerExecutablesV1:g8,LocatorDigest:_i,ManifestDigest:_p,ProjectId:_6,ProtectedRefDispositionV1:ve,ProtectedRefRuleV1:vt,ProtectedRefSelectorV1:vr,ProviderId:vn,QueryCollectionId:vc,RepositoryId:v$,RepositoryPlacementScopeV1:vS,RequiredCheckExpectationV1:vk,RequiredCheckV1:vw,ReviewRequirementV1:vA,ReviewTopologyKindV1:vW,ReviewTopologyPolicyV1:vM,RuleEffect:vF,ScopeAccessRule:vK,ScopeAccessSubjectV1:vJ,ScopeControlOperationV1:vZ,ScopeSourceBinding:v2,SensitiveFilesystemLocatorV1:v3,SettingKey:bd,SourceBindingId:bg,SourceKindV1:bb,TopologyConcurrencyPolicyV1:bH,TopologyEscalationPolicyV1:bG,TopologyGatePolicyV1:bB,TopologyNotificationLevelV1:bK,UserProfileId:bQ,UtcMicros:bX,WorkApprovalPolicy:b2,WorkContentLocationClassV1:$f,WorkEffortClassV1:$_,WorkEgressPolicy:$v,WorkExecutableBindingV1:$S,WorkExecutableCapabilityV1:$k,WorkExecutableReference:$w,WorkExecutionLimits:$V,WorkExpertiseCategoryV1:$q,WorkExpertiseConsentV1:$I,WorkFallbackTopology:$x,WorkFilesystemPolicy:$C,WorkOrdinalBandV1:$G,WorkProviderRouteId:Sl,WorkProviderRouteV1:Sp,WorkRouteCandidateV1:Sv,WorkRouteExecutionProfileV1:S$,WorkSandboxPolicy:SV,WorkTopologyPolicyV1:SM,WorktreeCleanlinessRequirementV1:SK,WorktreePlacementModeV1:SX,WorktreeRetentionPolicyV1:SY,WorktreeRootPolicyV1:S1},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{expected_revision:{$ref:"#/$defs/ConfigurationRevisionId"},idempotency_key:{$ref:"#/$defs/ConfigurationIdempotencyKey"},mutations:{items:{$ref:"#/$defs/ConfigurationDirectMutationRequestV1"},type:"array"}},required:["mutations","expected_revision","idempotency_key"],title:"ConfigurationBatchRequestV1",type:"object"},{$defs:{AccessPolicyDigest:fv,ConfigurationReceiptId:hM,ConfigurationRevisionId:hN,ConfigurationSettlementAuthorityV1:{additionalProperties:!1,description:"Original authorization evidence pinned to a durable configuration effect.\nA retry reauthorizes access separately without replacing these fields.",properties:{policy_digest:{$ref:"#/$defs/AccessPolicyDigest"},policy_epoch:{format:"uint64",minimum:0,type:"integer"},revalidated_at:{$ref:"#/$defs/UtcMicros"}},required:["policy_epoch","policy_digest","revalidated_at"],type:"object"},ConfigurationSnapshotId:hz,ManifestDigest:_p,UtcMicros:bX},$schema:"https://json-schema.org/draft/2020-12/schema",properties:{base_revision_id:{$ref:"#/$defs/ConfigurationRevisionId"},created_at:{$ref:"#/$defs/UtcMicros"},effective_deadline_at:{$ref:"#/$defs/UtcMicros"},operation_digest:{$ref:"#/$defs/ManifestDigest"},receipt_id:{$ref:"#/$defs/ConfigurationReceiptId"},result_revision_id:{$ref:"#/$defs/ConfigurationRevisionId"},settlement_authority:{$ref:"#/$defs/ConfigurationSettlementAuthorityV1"},snapshot_id:{$ref:"#/$defs/ConfigurationSnapshotId"}},required:["receipt_id","base_revision_id","result_revision_id","snapshot_id","operation_digest","settlement_authority","created_at","effective_deadline_at"],title:"ConfigurationMutationReceipt",type:"object"},{$defs:{SettingKey:bd},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{key:{$ref:"#/$defs/SettingKey"}},required:["key"],title:"ConfigurationGetRequestV1",type:"object"},{$defs:{AccessRuleId:fb,ActorId:f$,AnalyzerEnvironmentVariable:fR,AnalyzerExecutableId:fq,AnalyzerExecutableReferenceV1:fI,AnalyzerLanguageId:fx,AnalyzerLanguageSelectionV1:fj,AnalyzerPrivacyClassV1:fC,AnalyzerResourceLimitsV1:fT,AnalyzerRestartPolicyV1:fO,AnalyzerSettingsV1:fE,AnalyzerStructuredValueV1:fA,AuthorityRef:fN,AutomaticWorktreeGcV1:fL,AutomationBackendV1:fU,AutomationHostModeV1:fH,AutomationSettingsV1:fQ,AutomationTaskSetV1:fX,AutomationTaskSettingsV1:fY,BranchCollisionPolicyV1:f2,BranchNameComponentV1:f4,BranchNameSeparatorV1:f6,BranchNamingPolicyV1:f3,BranchTopologyKindV1:hr,BranchTopologyPolicyV1:hi,CandidateDispositionV1:{enum:["winning","overridden","rejected","defaulted"],type:"string"},CanonicalGitRefNameV1:hc,CanonicalGitRefPrefix:hl,CapabilityId:hp,CodeIndexWorkerSelectionV1:hP,ConfigurationCandidateV1:{additionalProperties:!1,description:"Resolution provenance is intentionally distinct from behavior. Moving the\nsame winner between layers can change this material without changing the\neffective behavior digest.",properties:{disposition:{$ref:"#/$defs/CandidateDispositionV1"},layer:{$ref:"#/$defs/ConfigurationLayerIdV1"},revision_id:{$ref:"#/$defs/ConfigurationRevisionId"},safe_reason:{type:["string","null"]}},required:["layer","revision_id","disposition"],type:"object"},ConfigurationLayerIdV1:hW,ConfigurationRevisionId:hN,ConfigurationSnapshotId:hz,ConfigurationValueV1:hD,ContextScoutConfigurationLimitsV1:hK,ContextScoutConfigurationModeV1:hJ,ContextScoutConfigurationStateV1:hZ,ContextScoutConfiguredModelPathV1:hQ,ContextScoutIntentKindV1:h3,ContextScoutIntentSettingsV1:h9,ContextScoutSettingsV1:ya,CredentialReferenceId:yy,CrossMergeModeV1:yg,CrossMergePolicyV1:y_,DecisionEngineSettingsV1:y$,GitHubStackedPullRequestPolicyV1:gP,HistoryRewritePolicyV1:gL,IntentQuestionSettingsV1:gK,IntentWindowSettingsV1:gJ,LcmSummarizerExecutableV1:g5,LcmSummarizerExecutablesV1:g8,LocatorDigest:_i,ManifestDigest:_p,ProjectId:_6,ProtectedRefDispositionV1:ve,ProtectedRefRuleV1:vt,ProtectedRefSelectorV1:vr,ProviderId:vn,QueryCollectionId:vc,RepositoryId:v$,RepositoryPlacementScopeV1:vS,RequiredCheckExpectationV1:vk,RequiredCheckV1:vw,ReviewRequirementV1:vA,ReviewTopologyKindV1:vW,ReviewTopologyPolicyV1:vM,RuleEffect:vF,ScopeAccessRule:vK,ScopeAccessSubjectV1:vJ,ScopeControlOperationV1:vZ,ScopeSourceBinding:v2,SensitiveFilesystemLocatorV1:v3,SettingKey:bd,SourceBindingId:bg,SourceKindV1:bb,TopologyConcurrencyPolicyV1:bH,TopologyEscalationPolicyV1:bG,TopologyGatePolicyV1:bB,TopologyNotificationLevelV1:bK,UserProfileId:bQ,UtcMicros:bX,WorkApprovalPolicy:b2,WorkContentLocationClassV1:$f,WorkEffortClassV1:$_,WorkEgressPolicy:$v,WorkExecutableBindingV1:$S,WorkExecutableCapabilityV1:$k,WorkExecutableReference:$w,WorkExecutionLimits:$V,WorkExpertiseCategoryV1:$q,WorkExpertiseConsentV1:$I,WorkFallbackTopology:$x,WorkFilesystemPolicy:$C,WorkOrdinalBandV1:$G,WorkProviderRouteId:Sl,WorkProviderRouteV1:Sp,WorkRouteCandidateV1:Sv,WorkRouteExecutionProfileV1:S$,WorkSandboxPolicy:SV,WorkTopologyPolicyV1:SM,WorktreeCleanlinessRequirementV1:SK,WorktreePlacementModeV1:SX,WorktreeRetentionPolicyV1:SY,WorktreeRootPolicyV1:S1},$schema:"https://json-schema.org/draft/2020-12/schema",properties:{candidates:{items:{$ref:"#/$defs/ConfigurationCandidateV1"},type:"array"},effective_behavior_digest:{$ref:"#/$defs/ManifestDigest"},effective_value:{$ref:"#/$defs/ConfigurationValueV1"},key:{$ref:"#/$defs/SettingKey"},resolution_provenance_digest:{$ref:"#/$defs/ManifestDigest"},revision_id:{$ref:"#/$defs/ConfigurationRevisionId",description:"Current configuration revision accepted by mutation `expected_revision` CAS."},snapshot_id:{$ref:"#/$defs/ConfigurationSnapshotId",description:"Content identity of the fully resolved configuration snapshot."}},required:["key","effective_value","revision_id","snapshot_id","effective_behavior_digest","resolution_provenance_digest","candidates"],title:"ResolvedSetting",type:"object"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"Typed input for the configuration list read through the daemon\ninvocation boundary.",title:"ConfigurationListRequestV1",type:"object"},{$defs:{RestartRequirementV1:{enum:["none","analyzer_restart","daemon_restart"],type:"string"},SettingKey:bd,SettingSensitivityV1:{enum:["public","sensitive"],type:"string"},SettingSummary:{properties:{key:{$ref:"#/$defs/SettingKey"},restart_requirement:{$ref:"#/$defs/RestartRequirementV1"},sensitivity:{$ref:"#/$defs/SettingSensitivityV1"}},required:["key","sensitivity","restart_requirement"],type:"object"}},$schema:"https://json-schema.org/draft/2020-12/schema",items:{$ref:"#/$defs/SettingSummary"},title:"Array_of_SettingSummary",type:"array"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,title:"ConfigurationObservedStateRequestV1",type:"object"},{$defs:{ActivationDriftV1:{enum:["current","never_activated","pending_restart","activation_failed"],type:"string"},ComponentConfigurationState:{properties:{activation_error_code:{type:["string","null"]},component:{type:"string"},desired_revision_id:{$ref:"#/$defs/ConfigurationRevisionId"},drift:{$ref:"#/$defs/ActivationDriftV1"},last_working_revision_id:{anyOf:[{$ref:"#/$defs/ConfigurationRevisionId"},{type:"null"}]},observed_revision_id:{anyOf:[{$ref:"#/$defs/ConfigurationRevisionId"},{type:"null"}]},restart_required:{type:"boolean"}},required:["component","desired_revision_id","restart_required","drift"],type:"object"},ConfigurationRevisionId:hN},$schema:"https://json-schema.org/draft/2020-12/schema",items:{$ref:"#/$defs/ComponentConfigurationState"},title:"Array_of_ComponentConfigurationState",type:"array"},{$defs:{ChangePlanId:hm,ConfigurationIdempotencyKey:hA,ConfigurationRevisionId:hN,ManifestDigest:_p},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{expected_base_revision_id:{$ref:"#/$defs/ConfigurationRevisionId"},idempotency_key:{$ref:"#/$defs/ConfigurationIdempotencyKey"},operation_digest:{$ref:"#/$defs/ManifestDigest"},plan_id:{$ref:"#/$defs/ChangePlanId"}},required:["plan_id","expected_base_revision_id","operation_digest","idempotency_key"],title:"ConfigurationProtectedApplyRequestV1",type:"object"},{$defs:{AccessRuleId:fb,ActorId:f$,AuthorityRef:fN,AutomaticWorktreeGcV1:fL,BranchCollisionPolicyV1:f2,BranchNameComponentV1:f4,BranchNameSeparatorV1:f6,BranchNamingPolicyV1:f3,BranchTopologyKindV1:hr,BranchTopologyPolicyV1:hi,CanonicalGitRefNameV1:hc,CanonicalGitRefPrefix:hl,CapabilityId:hp,ConfigurationRevisionId:hN,CrossMergeModeV1:yg,CrossMergePolicyV1:y_,GitHubStackedPullRequestPolicyV1:gP,HistoryRewritePolicyV1:gL,LocatorDigest:_i,ManifestDigest:_p,ProjectId:_6,ProtectedChange:{description:"The protected configuration operation set. Ordinary scalar mutations are\nintentionally absent; they activate directly after validation.",oneOf:[{properties:{kind:{const:"bind_source",type:"string"},value:{$ref:"#/$defs/ScopeSourceBinding"}},required:["kind","value"],type:"object"},{properties:{kind:{const:"rebind_source",type:"string"},value:{$ref:"#/$defs/ScopeSourceBinding"}},required:["kind","value"],type:"object"},{properties:{kind:{const:"unbind_source",type:"string"},value:{properties:{binding_id:{$ref:"#/$defs/SourceBindingId"}},required:["binding_id"],type:"object"}},required:["kind","value"],type:"object"},{properties:{kind:{const:"upsert_access_rule",type:"string"},value:{$ref:"#/$defs/ScopeAccessRule"}},required:["kind","value"],type:"object"},{properties:{kind:{const:"remove_access_rule",type:"string"},value:{properties:{rule_id:{$ref:"#/$defs/AccessRuleId"}},required:["rule_id"],type:"object"}},required:["kind","value"],type:"object"},{properties:{kind:{const:"replace_work_topology_policy",type:"string"},value:{$ref:"#/$defs/WorkTopologyPolicyV1"}},required:["kind","value"],type:"object"}]},ProtectedRefDispositionV1:ve,ProtectedRefRuleV1:vt,ProtectedRefSelectorV1:vr,RepositoryId:v$,RepositoryPlacementScopeV1:vS,RequiredCheckExpectationV1:vk,RequiredCheckV1:vw,ReviewRequirementV1:vA,ReviewTopologyKindV1:vW,ReviewTopologyPolicyV1:vM,RuleEffect:vF,ScopeAccessRule:vK,ScopeAccessSubjectV1:vJ,ScopeControlOperationV1:vZ,ScopeSourceBinding:v2,SensitiveFilesystemLocatorV1:v3,SourceBindingId:bg,SourceKindV1:bb,TopologyConcurrencyPolicyV1:bH,TopologyEscalationPolicyV1:bG,TopologyGatePolicyV1:bB,TopologyNotificationLevelV1:bK,UserProfileId:bQ,UtcMicros:bX,WorkTopologyPolicyV1:SM,WorktreeCleanlinessRequirementV1:SK,WorktreePlacementModeV1:SX,WorktreeRetentionPolicyV1:SY,WorktreeRootPolicyV1:S1},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{change:{$ref:"#/$defs/ProtectedChange"},expected_revision:{$ref:"#/$defs/ConfigurationRevisionId"}},required:["change","expected_revision"],title:"ConfigurationProtectedPreviewRequestV1",type:"object"},{$defs:{AccessPolicyDigest:fv,ActorId:f$,ChangePlanId:hm,ConfigurationRevisionId:hN,ManifestDigest:_p,RedactedConfigurationChangeV1:{additionalProperties:!1,properties:{after_digest:{anyOf:[{$ref:"#/$defs/ManifestDigest"},{type:"null"}]},before_digest:{anyOf:[{$ref:"#/$defs/ManifestDigest"},{type:"null"}]},operation:{$ref:"#/$defs/ScopeControlOperationV1"},setting_key:{$ref:"#/$defs/SettingKey"}},required:["setting_key","operation"],type:"object"},ScopeControlOperationV1:vZ,SettingKey:bd,UtcMicros:bX},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"Immutable dry-run result. It contains no raw locator, secret, target\nidentity, or plaintext configuration value.",properties:{actor_id:{$ref:"#/$defs/ActorId"},authorization_policy_digest:{$ref:"#/$defs/AccessPolicyDigest"},base_revision_id:{$ref:"#/$defs/ConfigurationRevisionId"},created_at:{$ref:"#/$defs/UtcMicros"},expires_at:{$ref:"#/$defs/UtcMicros"},membership_digest:{anyOf:[{$ref:"#/$defs/ManifestDigest"},{type:"null"}]},operation_digest:{$ref:"#/$defs/ManifestDigest"},plan_id:{$ref:"#/$defs/ChangePlanId"},policy_epoch:{format:"uint64",minimum:0,type:"integer"},redacted_changes:{items:{$ref:"#/$defs/RedactedConfigurationChangeV1"},type:"array"},resolved_scope_digest:{$ref:"#/$defs/ManifestDigest"}},required:["plan_id","actor_id","base_revision_id","operation_digest","resolved_scope_digest","authorization_policy_digest","policy_epoch","expires_at","created_at","redacted_changes"],title:"ProtectedChangePlan",type:"object"},{$defs:{ConfigurationRevisionId:hN,RollbackModeV1:{enum:["all_or_nothing","partial"],type:"string"}},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{mode:{$ref:"#/$defs/RollbackModeV1"},target_revision_id:{$ref:"#/$defs/ConfigurationRevisionId"}},required:["target_revision_id","mode"],title:"ConfigurationRollbackPreviewRequestV1",type:"object"},{$defs:{AccessRuleId:fb,ActorId:f$,AnalyzerEnvironmentVariable:fR,AnalyzerExecutableId:fq,AnalyzerExecutableReferenceV1:fI,AnalyzerLanguageId:fx,AnalyzerLanguageSelectionV1:fj,AnalyzerPrivacyClassV1:fC,AnalyzerResourceLimitsV1:fT,AnalyzerRestartPolicyV1:fO,AnalyzerSettingsV1:fE,AnalyzerStructuredValueV1:fA,AuthorityRef:fN,AutomaticWorktreeGcV1:fL,AutomationBackendV1:fU,AutomationHostModeV1:fH,AutomationSettingsV1:fQ,AutomationTaskSetV1:fX,AutomationTaskSettingsV1:fY,BranchCollisionPolicyV1:f2,BranchNameComponentV1:f4,BranchNameSeparatorV1:f6,BranchNamingPolicyV1:f3,BranchTopologyKindV1:hr,BranchTopologyPolicyV1:hi,CanonicalGitRefNameV1:hc,CanonicalGitRefPrefix:hl,CapabilityId:hp,CodeIndexWorkerSelectionV1:hP,ConfigurationIdempotencyKey:hA,ConfigurationLayerIdV1:hW,ConfigurationRevisionId:hN,ConfigurationValueV1:hD,ContextScoutConfigurationLimitsV1:hK,ContextScoutConfigurationModeV1:hJ,ContextScoutConfigurationStateV1:hZ,ContextScoutConfiguredModelPathV1:hQ,ContextScoutIntentKindV1:h3,ContextScoutIntentSettingsV1:h9,ContextScoutSettingsV1:ya,CredentialReferenceId:yy,CrossMergeModeV1:yg,CrossMergePolicyV1:y_,DecisionEngineSettingsV1:y$,GitHubStackedPullRequestPolicyV1:gP,HistoryRewritePolicyV1:gL,IntentQuestionSettingsV1:gK,IntentWindowSettingsV1:gJ,LcmSummarizerExecutableV1:g5,LcmSummarizerExecutablesV1:g8,LocatorDigest:_i,ManifestDigest:_p,ProjectId:_6,ProtectedRefDispositionV1:ve,ProtectedRefRuleV1:vt,ProtectedRefSelectorV1:vr,ProviderId:vn,QueryCollectionId:vc,RepositoryId:v$,RepositoryPlacementScopeV1:vS,RequiredCheckExpectationV1:vk,RequiredCheckV1:vw,ReviewRequirementV1:vA,ReviewTopologyKindV1:vW,ReviewTopologyPolicyV1:vM,RuleEffect:vF,ScopeAccessRule:vK,ScopeAccessSubjectV1:vJ,ScopeControlOperationV1:vZ,ScopeSourceBinding:v2,SensitiveFilesystemLocatorV1:v3,SettingKey:bd,SourceBindingId:bg,SourceKindV1:bb,TopologyConcurrencyPolicyV1:bH,TopologyEscalationPolicyV1:bG,TopologyGatePolicyV1:bB,TopologyNotificationLevelV1:bK,UserProfileId:bQ,UtcMicros:bX,WorkApprovalPolicy:b2,WorkContentLocationClassV1:$f,WorkEffortClassV1:$_,WorkEgressPolicy:$v,WorkExecutableBindingV1:$S,WorkExecutableCapabilityV1:$k,WorkExecutableReference:$w,WorkExecutionLimits:$V,WorkExpertiseCategoryV1:$q,WorkExpertiseConsentV1:$I,WorkFallbackTopology:$x,WorkFilesystemPolicy:$C,WorkOrdinalBandV1:$G,WorkProviderRouteId:Sl,WorkProviderRouteV1:Sp,WorkRouteCandidateV1:Sv,WorkRouteExecutionProfileV1:S$,WorkSandboxPolicy:SV,WorkTopologyPolicyV1:SM,WorktreeCleanlinessRequirementV1:SK,WorktreePlacementModeV1:SX,WorktreeRetentionPolicyV1:SY,WorktreeRootPolicyV1:S1},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"Typed revision-CAS input for a configuration write through the daemon\ninvocation boundary.",properties:{expected_revision:{$ref:"#/$defs/ConfigurationRevisionId"},idempotency_key:{$ref:"#/$defs/ConfigurationIdempotencyKey"},key:{$ref:"#/$defs/SettingKey"},layer:{$ref:"#/$defs/ConfigurationLayerIdV1"},value:{$ref:"#/$defs/ConfigurationValueV1"}},required:["layer","key","value","expected_revision","idempotency_key"],title:"ConfigurationSetRequestV1",type:"object"},{$defs:{ConfigurationIdempotencyKey:hA,ConfigurationLayerIdV1:hW,ConfigurationRevisionId:hN,ProjectId:_6,QueryCollectionId:vc,SettingKey:bd,UserProfileId:bQ},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{expected_revision:{$ref:"#/$defs/ConfigurationRevisionId"},idempotency_key:{$ref:"#/$defs/ConfigurationIdempotencyKey"},key:{$ref:"#/$defs/SettingKey"},layer:{$ref:"#/$defs/ConfigurationLayerIdV1"}},required:["layer","key","expected_revision","idempotency_key"],title:"ConfigurationUnsetRequestV1",type:"object"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{limit:{description:"Maximum number of literal sites to return (default: 100, max: 1000).",format:"uint32",minimum:0,type:["integer","null"]},struct:{description:"Struct name to search literal sites of (e.g. 'GraphStats', 'Config').",type:"string"}},required:["struct"],title:"ConstructorsSurfaceRequestV1",type:"object"},{$defs:{CodeIndexBuildBlockedReasonV1:hv,CodeIndexConvergenceParkedV1:hb,CodeIndexStalenessStateV1:hw,ConstructorFieldCoverageV1:{description:"Whether a literal site's field lists are complete relative to the\nstruct's graph definition.",enum:["complete","unknown"],type:"string"},ConstructorResolutionReasonV1:{enum:["ambiguous_simple_name","syntax_only_simple_name"],type:"string"},ConstructorResolutionStatusV1:{description:"Syntax alone cannot link same-name types across modules, so every\nresolution is unverified.",enum:["unverified"],type:"string"},ConstructorSiteV1:{additionalProperties:!1,properties:{field_coverage:{$ref:"#/$defs/ConstructorFieldCoverageV1"},fields:{items:{type:"string"},type:"array"},file:{type:"string"},line:{format:"uint32",minimum:0,type:"integer"},missing_fields:{items:{type:"string"},type:"array"},update_fields:{items:{type:"string"},type:"array"}},required:["file","line","fields","update_fields","missing_fields","field_coverage"],type:"object"},ConstructorsNotFoundV1:{additionalProperties:!1,properties:{found:{description:"Always `false`: no struct, class, or case class has the name.",type:"boolean"},freshness:{anyOf:[{$ref:"#/$defs/PrimitiveSearchFreshnessV1"},{type:"null"}],description:"The worktree verdict a served graph read opens with."},match_count:{format:"uint64",minimum:0,type:"integer"},message:{type:"string"},sites:{items:{$ref:"#/$defs/ConstructorSiteV1"},type:"array"},struct:{type:"string"}},required:["found","struct","message","match_count","sites"],type:"object"},ConstructorsReportV1:{additionalProperties:!1,properties:{candidate_count:{format:"uint64",minimum:0,type:"integer"},expected_fields:{description:"`None` when the name resolves to more than one definition.",items:{type:"string"},type:["array","null"]},freshness:{anyOf:[{$ref:"#/$defs/PrimitiveSearchFreshnessV1"},{type:"null"}],description:"The worktree verdict a served graph read opens with."},match_count:{format:"uint64",minimum:0,type:"integer"},resolution_reason:{$ref:"#/$defs/ConstructorResolutionReasonV1"},resolution_status:{$ref:"#/$defs/ConstructorResolutionStatusV1"},sites:{items:{$ref:"#/$defs/ConstructorSiteV1"},type:"array"},struct:{type:"string"}},required:["struct","candidate_count","resolution_status","resolution_reason","match_count","sites"],type:"object"},PrimitiveFreshnessStateV1:_K,PrimitiveIndexingStateV1:_J,PrimitiveSearchFreshnessV1:_Y},$schema:"https://json-schema.org/draft/2020-12/schema",anyOf:[{$ref:"#/$defs/ConstructorsNotFoundV1"},{$ref:"#/$defs/ConstructorsReportV1"}],title:"ConstructorsResultV1"},{$defs:{ContextModeV1:hU},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{budget_tokens:{description:"Cap the ranked sections of the answer at about this many tokens.\nQuotas are fixed shares of the budget. The cut is reported on the result.",format:"uint32",minimum:0,type:["integer","null"]},include_code:{type:["boolean","null"]},include_memory:{type:["boolean","null"]},lexical_anchors:{description:"Exact identifiers or technical terms the answer must be about. Each\nruns as its own lexical route: hits carrying an anchor outrank hits\ncarrying none, exact hits included, every anchor with matches keeps at\nleast its best sites through the lane cap, and `lexical_anchors` in the\nresult reports each anchor's outcome: the sites this result returns\nand, by reason, the admitted sites it could not carry. Bounded and\nvalidated by the retrieval kernel; a\nviolation is a typed request rejection. Identifiers the task names\n(`snake_case`, `camelCase`, `a::b`) are anchored after these.",items:{type:"string"},type:["array","null"]},max_code_blocks:{format:"uint32",minimum:0,type:["integer","null"]},max_nodes:{format:"uint32",minimum:0,type:["integer","null"]},memory_limit:{format:"uint32",minimum:0,type:["integer","null"]},memory_min_trust:{format:"double",type:["number","null"]},mode:{anyOf:[{$ref:"#/$defs/ContextModeV1"},{type:"null"}]},prefer_symbol:{description:"Add a symbol-name lexical route for the identifier-shaped words of the\ntask text.",type:["boolean","null"]},task:{type:"string"}},required:["task"],title:"ContextSurfaceRequestV1",type:"object"},{$defs:{CodeIndexBuildBlockedReasonV1:hv,CodeIndexConvergenceParkedV1:hb,CodeIndexStalenessStateV1:hw,ContextCodeBlockV1:{additionalProperties:!1,properties:{code:{type:"string"},end_line:{format:"uint32",minimum:0,type:"integer"},file:{type:"string"},node_id:{type:"string"},start_line:{format:"uint32",minimum:0,type:"integer"}},required:["node_id","file","start_line","end_line","code"],type:"object"},ContextExtensionPointV1:{additionalProperties:!1,description:"A public trait or interface among the context's selected symbols.",properties:{file:{type:"string"},implementor_count:{format:"uint",minimum:0,type:"integer"},kind:{type:"string"},line:{format:"uint32",minimum:0,type:"integer"},name:{type:"string"}},required:["name","kind","file","line","implementor_count"],type:"object"},ContextLexicalAnchorV1:hL,ContextModeV1:hU,ContextPlanV1:{additionalProperties:!1,description:"Plan-mode enrichment: where the selected code can be extended and which\ntest files reach it.",properties:{extension_points:{items:{$ref:"#/$defs/ContextExtensionPointV1"},type:"array"},test_files:{description:"Test files calling the selected symbols within two hops; absent when\nno symbol was selected to trace from.",items:{type:"string"},type:["array","null"]}},required:["extension_points"],type:"object"},ContextRelatedOmissionV1:{additionalProperties:!1,description:"Related symbols `context` ranked but did not return.",properties:{omitted:{description:"Ranked related symbols the `max_nodes` cut dropped.",format:"uint",minimum:0,type:"integer"},total:{description:"Distinct related symbols the walk found and ranked.",format:"uint",minimum:0,type:"integer"},total_is_lower_bound:{description:"The neighbor walk stopped at its row limit, so `total` is a lower\nbound.",type:"boolean"}},required:["total","omitted","total_is_lower_bound"],type:"object"},ContextRetrievalPlanV1:{additionalProperties:!1,description:"The retrieval plan `context` executed: which stages ran, what each\nadmitted, and where a budget bounded the answer. Lane-level serving state\nstays in `coverage`.",properties:{code:{$ref:"#/$defs/ContextStageV1",description:"Source bodies for selected symbols, bounded by `max_code_blocks`."},graph:{$ref:"#/$defs/ContextStageV1",description:"Candidates resolved to verified graph symbols."},memory:{$ref:"#/$defs/ContextStageV1",description:"Project memory facts, bounded by `memory_limit`."},related:{$ref:"#/$defs/ContextStageV1",description:"Ranked neighbors of the selected symbols, bounded by `max_nodes`."},search:{$ref:"#/$defs/ContextStageV1",description:"Ranked code-index candidates, bounded by `max_nodes`."}},required:["search","graph","related","code","memory"],type:"object"},ContextRetrievalRouteV1:{description:"Which retrieval route `context` ran.\n\n`name` is the preferred-symbol route. `prose` is the ordinary task\nroute. A caller that omits `prefer_symbol` gets `name` only when the\ntask is one identifier or one `Type.method` / `path::name` token.",enum:["name","prose"],type:"string"},ContextSearchMatchV1:{additionalProperties:!1,properties:{anchor_id:{type:"string"},anchors:{description:"Lexical anchors, the caller's and then the task's identifiers, whose\nroute ranked this match; the anchor receipt counts it as returned.",items:{type:"string"},type:"array"},exact_class:{type:"string"},file:{type:"string"},kind:{type:"string"},name:{type:"string"},qualified_name:{type:"string"},rank:{format:"uint32",minimum:0,type:"integer"},utility_micros:{format:"uint64",minimum:0,type:"integer"}},required:["anchor_id","name","qualified_name","kind","file","exact_class","rank","utility_micros"],type:"object"},ContextStageV1:{description:"What one `context` stage ran with and kept.",oneOf:[{description:"The request did not ask for this stage.",properties:{state:{const:"not_requested",type:"string"}},required:["state"],type:"object"},{description:"A stage this one reads from produced nothing to work on.",properties:{state:{const:"skipped",type:"string"}},required:["state"],type:"object"},{description:"The stage's authority could not answer.",properties:{state:{const:"unavailable",type:"string"}},required:["state"],type:"object"},{description:"The stage admitted `admitted` entries under `budget`. `truncated` is\ntrue when it stopped at that budget, so more entries may exist.",properties:{admitted:{format:"uint32",minimum:0,type:"integer"},budget:{format:"uint32",minimum:0,type:"integer"},state:{const:"ran",type:"string"},truncated:{type:"boolean"}},required:["state","budget","admitted","truncated"],type:"object"}]},FactAssertionId:yA,FactCategoryV1:yW,FactCommitOwnerV1:yN,FactEventId:yD,FactId:yL,FactIdentitySourceResultV1:yU,FactSearchGraphCoverageV1:yB,FactSearchGraphDegradationV1:yK,FactSearchHitV1:yJ,FactSearchScoresV1:yZ,FactTelemetryV1:yX,FactV1:yY,LexicalAnchorDropReasonV1:_t,LexicalAnchorDropV1:_r,LocatorDigest:_i,PrimitiveFreshnessStateV1:_K,PrimitiveIndexingStateV1:_J,PrimitiveLaneCompleteV1:_Z,PrimitiveLaneStateV1:{enum:["stale","partial","unavailable"],type:"string"},PrimitiveLaneStatusV1:{anyOf:[{$ref:"#/$defs/PrimitiveLaneCompleteV1"},{properties:{generation:{type:["string","null"]},reason:{type:["string","null"]},status:{$ref:"#/$defs/PrimitiveLaneStateV1"}},required:["status"],type:"object"}]},PrimitiveRecallV1:_X,PrimitiveSearchCoverageV1:{additionalProperties:!1,properties:{exact:{$ref:"#/$defs/PrimitiveLaneStatusV1"},graph:{$ref:"#/$defs/PrimitiveLaneStatusV1"},lexical:{$ref:"#/$defs/PrimitiveLaneStatusV1"},recall:{$ref:"#/$defs/PrimitiveRecallV1"}},required:["exact","lexical","graph","recall"],type:"object"},PrimitiveSearchFreshnessV1:_Y,PrimitiveSymbolLocationV1:_0,PrimitiveUnavailableEvidenceV1:_2,PrimitiveUnavailableStatusV1:_4,ProjectId:_6,ProvenanceId:vi,RetrievalAnchorId:vx,TokenBudgetCutV1:bL,TokenBudgetSectionV1:bU,UtcMicros:bX},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{code:{items:{$ref:"#/$defs/ContextCodeBlockV1"},type:"array"},code_generation:{type:["string","null"]},coverage:{$ref:"#/$defs/PrimitiveSearchCoverageV1"},freshness:{$ref:"#/$defs/PrimitiveSearchFreshnessV1",description:"Freshness of the served code generation, derived from the typed lane\ncoverage and the daemon scheduler's worktree state."},lexical_anchors:{description:"Outcome of every caller `lexical_anchors` entry, then of each\nidentifier the task names; empty when there are neither.",items:{$ref:"#/$defs/ContextLexicalAnchorV1"},type:"array"},memory_graph_coverage:{anyOf:[{$ref:"#/$defs/FactSearchGraphCoverageV1"},{type:"null"}]},memory_matches:{items:{$ref:"#/$defs/FactSearchHitV1"},type:"array"},memory_matches_error:{type:["string","null"]},mode:{$ref:"#/$defs/ContextModeV1"},oversized_symbols:{description:"Matched symbols whose declaration is larger than one code block.\nTheir code is withheld rather than served as a partial window.",items:{$ref:"#/$defs/PrimitiveSymbolLocationV1"},type:"array"},plan:{anyOf:[{$ref:"#/$defs/ContextPlanV1"},{type:"null"}],description:"Present in plan mode when the verified graph answered."},related_omission:{anyOf:[{$ref:"#/$defs/ContextRelatedOmissionV1"},{type:"null"}],description:"Present when related symbols were left out: by the `max_nodes` cut,\nor because the neighbor walk stopped at its row limit."},related_symbols:{description:"Neighbors of `symbols`, ranked before the `max_nodes` cut: best edge\nkind to a selected symbol (calls, implements, extends, `type_of`,\nreturns, receives, uses, annotates, contains), then total degree\ndescending, then qualified name.",items:{$ref:"#/$defs/PrimitiveSymbolLocationV1"},type:"array"},retrieval:{$ref:"#/$defs/ContextRetrievalPlanV1"},route:{$ref:"#/$defs/ContextRetrievalRouteV1"},search_matches:{items:{$ref:"#/$defs/ContextSearchMatchV1"},type:"array"},symbols:{items:{$ref:"#/$defs/PrimitiveSymbolLocationV1"},type:"array"},task:{type:"string"},token_budget:{anyOf:[{$ref:"#/$defs/TokenBudgetCutV1"},{type:"null"}],description:"Budget accounting when the request supplies `budget_tokens`."},verified_graph_evidence:{anyOf:[{$ref:"#/$defs/PrimitiveUnavailableEvidenceV1"},{type:"null"}]}},required:["task","route","mode","freshness","symbols","related_symbols","code","coverage","memory_matches","retrieval"],title:"ContextResultV1",type:"object"},{$defs:{ContextScoutAddressV1:hH},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{address:{$ref:"#/$defs/ContextScoutAddressV1"}},required:["address"],title:"ContextScoutExactAddressRequestV1",type:"object"},{$defs:{ContextScoutLimitsV1:h5,ContextScoutModelOutcomeV1:h7},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{exhausted:{type:"boolean"},last_estimated_cost_microusd:{format:"uint64",minimum:0,type:["integer","null"]},last_input_tokens:{format:"uint64",minimum:0,type:["integer","null"]},last_model_outcome:{anyOf:[{$ref:"#/$defs/ContextScoutModelOutcomeV1"},{type:"null"}]},last_output_tokens:{format:"uint64",minimum:0,type:["integer","null"]},limits:{$ref:"#/$defs/ContextScoutLimitsV1"}},required:["limits","exhausted"],title:"ContextScoutBudgetResultV1",type:"object"},{$defs:{ContextScoutAddressV1:hH,ContextScoutWorkV1:yl},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{address:{$ref:"#/$defs/ContextScoutAddressV1"},idempotency_key:{type:"string"},work:{$ref:"#/$defs/ContextScoutWorkV1"}},required:["address","work","idempotency_key"],title:"ContextScoutCancelRequestV1",type:"object"},{$defs:{ContextScoutStoreOutcomeV1:ys},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{outcome:{$ref:"#/$defs/ContextScoutStoreOutcomeV1"}},required:["outcome"],title:"ContextScoutMutationResultV1",type:"object"},{$defs:{ContextScoutModelBackendV1:h8,ContextScoutModelOutcomeV1:h7,ContextScoutRuntimeModeV1:yi,ContextScoutServiceStateV1:yo},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{configured_model:{anyOf:[{$ref:"#/$defs/ContextScoutModelBackendV1"},{type:"null"}]},configured_model_available:{type:"boolean"},deterministic_available:{type:"boolean"},last_model_outcome:{anyOf:[{$ref:"#/$defs/ContextScoutModelOutcomeV1"},{type:"null"}]},mode:{$ref:"#/$defs/ContextScoutRuntimeModeV1"},state:{$ref:"#/$defs/ContextScoutServiceStateV1"}},required:["state","mode","deterministic_available","configured_model_available"],title:"ContextScoutCapabilityResultV1",type:"object"},{$defs:{ContextScoutAddressV1:hH,ContextScoutClaimWindowV1:{enum:["idle_window","on_request"],type:"string"}},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{address:{$ref:"#/$defs/ContextScoutAddressV1"},idempotency_key:{type:"string"},window:{$ref:"#/$defs/ContextScoutClaimWindowV1"}},required:["address","window","idempotency_key"],title:"ContextScoutClaimRequestV1",type:"object"},{$defs:{CodeGenerationId:hg,ContextScoutAddressV1:hH,ContextScoutCategoryV1:hG,ContextScoutClaimHandleV1:hB,ContextScoutDeliveryWindowV1:h1,ContextScoutEvidenceAvailabilityV1:h0,ContextScoutEvidenceProjectionV1:h2,ContextScoutModelBackendV1:h8,ContextScoutModelOutcomeV1:h7,ContextScoutModelReceiptV1:ye,ContextScoutRouteV1:yr,ContextScoutSessionWindowV1:yn,ContextScoutSuggestionProjectionV1:yd,ContextScoutWorkV1:yl,ManifestDigest:_p,RetrievalAnchorId:vx,UtcMicros:bX},$schema:"https://json-schema.org/draft/2020-12/schema",oneOf:[{properties:{claim:{$ref:"#/$defs/ContextScoutClaimHandleV1"},outcome:{const:"claimed",type:"string"},suggestion:{$ref:"#/$defs/ContextScoutSuggestionProjectionV1"}},required:["outcome","claim","suggestion"],type:"object"},{properties:{outcome:{const:"empty",type:"string"}},required:["outcome"],type:"object"}],title:"ContextScoutClaimResultV1"},{$defs:{ContextScoutAddressV1:hH,ContextScoutClaimHandleV1:hB,ContextScoutDeliveryOutcomeV1:hX,ContextScoutWorkV1:yl,UtcMicros:bX},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{address:{$ref:"#/$defs/ContextScoutAddressV1"},claim:{$ref:"#/$defs/ContextScoutClaimHandleV1"},delivered_at:{$ref:"#/$defs/UtcMicros"},idempotency_key:{type:"string"},outcome:{$ref:"#/$defs/ContextScoutDeliveryOutcomeV1"}},required:["address","claim","delivered_at","outcome","idempotency_key"],title:"ContextScoutDeliveryRequestV1",type:"object"},{$defs:{ContextScoutDeliveryOutcomeV1:hX,ContextScoutDeliveryReceiptV1:hY,ContextScoutStoreOutcomeV1:ys,UtcMicros:bX},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{outcome:{$ref:"#/$defs/ContextScoutStoreOutcomeV1"},receipt:{$ref:"#/$defs/ContextScoutDeliveryReceiptV1"}},required:["outcome","receipt"],title:"ContextScoutDeliveryResultV1",type:"object"},{$defs:{ContextScoutAddressV1:hH},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{address:{$ref:"#/$defs/ContextScoutAddressV1"},limit:{default:8,format:"uint",minimum:0,type:"integer"}},required:["address"],title:"ContextScoutRecentRequestV1",type:"object"},{$defs:{CodeGenerationId:hg,ContextScoutAddressV1:hH,ContextScoutCategoryV1:hG,ContextScoutDeliveryOutcomeV1:hX,ContextScoutDeliveryReceiptV1:hY,ContextScoutDeliveryWindowV1:h1,ContextScoutEvidenceAvailabilityV1:h0,ContextScoutEvidenceProjectionV1:h2,ContextScoutFeedbackKindV1:h4,ContextScoutFeedbackV1:h6,ContextScoutLimitsV1:h5,ContextScoutModelBackendV1:h8,ContextScoutModelOutcomeV1:h7,ContextScoutModelReceiptV1:ye,ContextScoutRecentDeliveryV1:yt,ContextScoutRecentResultV1:{additionalProperties:!1,properties:{configuration_revision:{items:{format:"uint8",maximum:255,minimum:0,type:"integer"},maxItems:32,minItems:32,type:"array"},deliveries:{items:{$ref:"#/$defs/ContextScoutRecentDeliveryV1"},type:"array"},observed_at:{$ref:"#/$defs/UtcMicros"},omitted:{format:"uint",minimum:0,type:"integer"},pending:{items:{$ref:"#/$defs/ContextScoutSuggestionProjectionV1"},type:"array"}},required:["configuration_revision","observed_at","pending","deliveries","omitted"],type:"object"},ContextScoutRouteV1:yr,ContextScoutRuntimeModeV1:yi,ContextScoutServiceStateV1:yo,ContextScoutSessionWindowV1:yn,ContextScoutStatusResultV1:{additionalProperties:!1,properties:{active_suggestions:{format:"uint",minimum:0,type:"integer"},configuration_revision:{items:{format:"uint8",maximum:255,minimum:0,type:"integer"},maxItems:32,minItems:32,type:"array"},last_delivery_outcome:{anyOf:[{$ref:"#/$defs/ContextScoutDeliveryOutcomeV1"},{type:"null"}]},last_feedback:{anyOf:[{$ref:"#/$defs/ContextScoutFeedbackKindV1"},{type:"null"}]},last_model_outcome:{anyOf:[{$ref:"#/$defs/ContextScoutModelOutcomeV1"},{type:"null"}]},last_model_receipt:{anyOf:[{$ref:"#/$defs/ContextScoutModelReceiptV1"},{type:"null"}]},last_route:{anyOf:[{$ref:"#/$defs/ContextScoutRouteV1"},{type:"null"}]},last_suppression:{anyOf:[{$ref:"#/$defs/ContextScoutSuppressionV1"},{type:"null"}]},limits:{$ref:"#/$defs/ContextScoutLimitsV1"},mode:{$ref:"#/$defs/ContextScoutRuntimeModeV1"},model_path:{anyOf:[{$ref:"#/$defs/ContextScoutModelBackendV1"},{type:"null"}]},state:{$ref:"#/$defs/ContextScoutServiceStateV1"}},required:["configuration_revision","state","mode","limits","active_suggestions"],type:"object"},ContextScoutSuggestionProjectionV1:yd,ContextScoutSuppressionV1:yc,ContextScoutWorkV1:yl,ManifestDigest:_p,RetrievalAnchorId:vx,UtcMicros:bX},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{recent:{$ref:"#/$defs/ContextScoutRecentResultV1"},status:{$ref:"#/$defs/ContextScoutStatusResultV1"}},required:["status","recent"],title:"ContextScoutExplanationResultV1",type:"object"},{$defs:{ContextScoutAddressV1:hH,ContextScoutDeliveryOutcomeV1:hX,ContextScoutDeliveryReceiptV1:hY,ContextScoutFeedbackKindV1:h4,ContextScoutFeedbackV1:h6,UtcMicros:bX},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{address:{$ref:"#/$defs/ContextScoutAddressV1"},feedback:{$ref:"#/$defs/ContextScoutFeedbackV1"},idempotency_key:{type:"string"},receipt:{$ref:"#/$defs/ContextScoutDeliveryReceiptV1"}},required:["address","receipt","feedback","idempotency_key"],title:"ContextScoutFeedbackRequestV1",type:"object"},{$defs:{ConfigurationIdempotencyKey:hA,ConfigurationRevisionId:hN,ContextScoutAddressV1:hH},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{address:{$ref:"#/$defs/ContextScoutAddressV1"},expected_revision:{$ref:"#/$defs/ConfigurationRevisionId"},idempotency_key:{$ref:"#/$defs/ConfigurationIdempotencyKey"}},required:["address","expected_revision","idempotency_key"],title:"ContextScoutControlRequestV1",type:"object"},{$defs:{CodeGenerationId:hg,ContextScoutAddressV1:hH,ContextScoutCategoryV1:hG,ContextScoutDeliveryOutcomeV1:hX,ContextScoutDeliveryReceiptV1:hY,ContextScoutDeliveryWindowV1:h1,ContextScoutEvidenceAvailabilityV1:h0,ContextScoutEvidenceProjectionV1:h2,ContextScoutFeedbackKindV1:h4,ContextScoutFeedbackV1:h6,ContextScoutModelBackendV1:h8,ContextScoutModelOutcomeV1:h7,ContextScoutModelReceiptV1:ye,ContextScoutRecentDeliveryV1:yt,ContextScoutRouteV1:yr,ContextScoutSessionWindowV1:yn,ContextScoutSuggestionProjectionV1:yd,ContextScoutWorkV1:yl,ManifestDigest:_p,RetrievalAnchorId:vx,UtcMicros:bX},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{configuration_revision:{items:{format:"uint8",maximum:255,minimum:0,type:"integer"},maxItems:32,minItems:32,type:"array"},deliveries:{items:{$ref:"#/$defs/ContextScoutRecentDeliveryV1"},type:"array"},observed_at:{$ref:"#/$defs/UtcMicros"},omitted:{format:"uint",minimum:0,type:"integer"},pending:{items:{$ref:"#/$defs/ContextScoutSuggestionProjectionV1"},type:"array"}},required:["configuration_revision","observed_at","pending","deliveries","omitted"],title:"ContextScoutRecentResultV1",type:"object"},{$defs:{ContextScoutDeliveryOutcomeV1:hX,ContextScoutFeedbackKindV1:h4,ContextScoutLimitsV1:h5,ContextScoutModelBackendV1:h8,ContextScoutModelOutcomeV1:h7,ContextScoutModelReceiptV1:ye,ContextScoutRouteV1:yr,ContextScoutRuntimeModeV1:yi,ContextScoutServiceStateV1:yo,ContextScoutSuppressionV1:yc},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{active_suggestions:{format:"uint",minimum:0,type:"integer"},configuration_revision:{items:{format:"uint8",maximum:255,minimum:0,type:"integer"},maxItems:32,minItems:32,type:"array"},last_delivery_outcome:{anyOf:[{$ref:"#/$defs/ContextScoutDeliveryOutcomeV1"},{type:"null"}]},last_feedback:{anyOf:[{$ref:"#/$defs/ContextScoutFeedbackKindV1"},{type:"null"}]},last_model_outcome:{anyOf:[{$ref:"#/$defs/ContextScoutModelOutcomeV1"},{type:"null"}]},last_model_receipt:{anyOf:[{$ref:"#/$defs/ContextScoutModelReceiptV1"},{type:"null"}]},last_route:{anyOf:[{$ref:"#/$defs/ContextScoutRouteV1"},{type:"null"}]},last_suppression:{anyOf:[{$ref:"#/$defs/ContextScoutSuppressionV1"},{type:"null"}]},limits:{$ref:"#/$defs/ContextScoutLimitsV1"},mode:{$ref:"#/$defs/ContextScoutRuntimeModeV1"},model_path:{anyOf:[{$ref:"#/$defs/ContextScoutModelBackendV1"},{type:"null"}]},state:{$ref:"#/$defs/ContextScoutServiceStateV1"}},required:["configuration_revision","state","mode","limits","active_suggestions"],title:"ContextScoutStatusResultV1",type:"object"},{$defs:{CouplingDirectionV1:yu},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{direction:{anyOf:[{$ref:"#/$defs/CouplingDirectionV1"},{type:"null"}],description:"fan_in: files depended on by the most others. fan_out: files that\ndepend on the most others (default: fan_in)."},limit:{description:"Maximum number of results to return (default: 10, at most 100).",format:"uint32",minimum:0,type:["integer","null"]},path:{description:"Filter to files under this directory path (e.g. 'src/main/java').",type:["string","null"]}},title:"CouplingSurfaceRequestV1",type:"object"},{$defs:{CodeIndexBuildBlockedReasonV1:hv,CodeIndexConvergenceParkedV1:hb,CodeIndexStalenessStateV1:hw,CouplingDirectionV1:yu,CouplingEntryV1:{additionalProperties:!1,properties:{coupled_files:{format:"uint64",minimum:0,type:"integer"},file:{type:"string"}},required:["file","coupled_files"],type:"object"},PrimitiveFreshnessStateV1:_K,PrimitiveIndexingStateV1:_J,PrimitiveSearchFreshnessV1:_Y},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{direction:{$ref:"#/$defs/CouplingDirectionV1"},freshness:{anyOf:[{$ref:"#/$defs/PrimitiveSearchFreshnessV1"},{type:"null"}],description:"The worktree verdict a served graph read opens with."},ranking:{items:{$ref:"#/$defs/CouplingEntryV1"},type:"array"},result_count:{format:"uint64",minimum:0,type:"integer"}},required:["direction","result_count","ranking"],title:"CouplingResultV1",type:"object"},{$defs:{DashboardActionV1:{description:"What `tracedecay_dashboard` does.",enum:["start","stop"],type:"string"}},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{action:{anyOf:[{$ref:"#/$defs/DashboardActionV1"},{type:"null"}],description:'Action to perform (default: "start"). "stop" shuts down a previously\nstarted dashboard if any.'},host:{description:'Loopback host address to bind: 127.0.0.1, localhost, or ::1\n(default: "127.0.0.1"). Wildcard, LAN, public IPs, and other\nhostnames are rejected.',type:["string","null"]},port:{description:"Port to listen on; 0 picks an ephemeral port (default: 7341).",format:"uint16",maximum:65535,minimum:0,type:["integer","null"]}},title:"DashboardSurfaceRequestV1",type:"object"},{$schema:"https://json-schema.org/draft/2020-12/schema",oneOf:[{additionalProperties:!1,properties:{host:{type:"string"},port:{format:"uint16",maximum:65535,minimum:0,type:"integer"},status:{const:"started",type:"string"},url:{type:"string"}},required:["status","url","host","port"],type:"object"},{additionalProperties:!1,description:"A dashboard that was already bound when `start` was asked again.",properties:{host:{type:"string"},port:{format:"uint16",maximum:65535,minimum:0,type:"integer"},requested_host:{type:"string"},requested_port:{format:"uint16",maximum:65535,minimum:0,type:"integer"},requested_port_honored:{description:"Whether the bound port is the one asked for (always true for 0).",type:"boolean"},status:{const:"already_running",type:"string"},url:{type:"string"}},required:["status","url","host","port","requested_host","requested_port","requested_port_honored"],type:"object"},{additionalProperties:!1,description:"The bound server is shutting down.",properties:{host:{type:"string"},port:{format:"uint16",maximum:65535,minimum:0,type:"integer"},requested_host:{type:"string"},requested_port:{format:"uint16",maximum:65535,minimum:0,type:"integer"},requested_port_honored:{description:"Whether the bound port is the one asked for (always true for 0).",type:"boolean"},status:{const:"stopping",type:"string"},url:{type:"string"}},required:["status","url","host","port","requested_host","requested_port","requested_port_honored"],type:"object"},{additionalProperties:!1,properties:{previous_url:{type:"string"},status:{const:"stopped",type:"string"}},required:["status","previous_url"],type:"object"},{additionalProperties:!1,properties:{status:{const:"not_running",type:"string"}},required:["status"],type:"object"}],title:"DashboardResultV1"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{include_public:{description:"When true, do NOT exclude pub items. Default false.",type:["boolean","null"]},kinds:{description:'Node kinds to check (default: ["function", "method"]).',items:{type:"string"},type:["array","null"]},limit:{description:"Maximum symbols to return (default: 100, max: 1000).",format:"uint32",minimum:0,type:["integer","null"]},path:{description:"Filter reported symbols to files under this directory path (e.g.\n'crates/tracedecay-mcp'). Omit for the entire codebase.",type:["string","null"]}},title:"DeadCodeSurfaceRequestV1",type:"object"},{$defs:{CodeIndexBuildBlockedReasonV1:hv,CodeIndexConvergenceParkedV1:hb,CodeIndexStalenessStateV1:hw,DeadCodeSymbolV1:{additionalProperties:!1,properties:{file:{type:"string"},id:{type:"string"},kind:{type:"string"},line:{format:"uint32",minimum:0,type:"integer"},name:{type:"string"},signature:{type:["string","null"]}},required:["id","name","kind","file","line"],type:"object"},PrimitiveFreshnessStateV1:_K,PrimitiveIndexingStateV1:_J,PrimitiveSearchFreshnessV1:_Y},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{dead_code_count:{format:"uint64",minimum:0,type:"integer"},freshness:{anyOf:[{$ref:"#/$defs/PrimitiveSearchFreshnessV1"},{type:"null"}],description:"The worktree verdict a served graph read opens with."},symbols:{items:{$ref:"#/$defs/DeadCodeSymbolV1"},type:"array"}},required:["dead_code_count","symbols"],title:"DeadCodeResultV1",type:"object"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{limit:{description:"Maximum number of chains to return (default: 10, at most 100).",format:"uint32",minimum:0,type:["integer","null"]},path:{description:"Filter to files under this directory path.",type:["string","null"]}},title:"DependencyDepthSurfaceRequestV1",type:"object"},{$defs:{CodeIndexBuildBlockedReasonV1:hv,CodeIndexConvergenceParkedV1:hb,CodeIndexStalenessStateV1:hw,DependencyDepthChainV1:{additionalProperties:!1,properties:{chain:{items:{type:"string"},type:"array"},depth:{format:"uint64",minimum:0,type:"integer"},file:{type:"string"}},required:["file","depth","chain"],type:"object"},PrimitiveFreshnessStateV1:_K,PrimitiveIndexingStateV1:_J,PrimitiveSearchFreshnessV1:_Y},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"`ideal_depth` is `ceil(log2(file_count))`.",properties:{chains:{items:{$ref:"#/$defs/DependencyDepthChainV1"},type:"array"},depth_score:{format:"double",type:"number"},freshness:{anyOf:[{$ref:"#/$defs/PrimitiveSearchFreshnessV1"},{type:"null"}],description:"The worktree verdict a served graph read opens with."},ideal_depth:{format:"uint64",minimum:0,type:"integer"},max_depth:{format:"uint64",minimum:0,type:"integer"}},required:["max_depth","ideal_depth","depth_score","chains"],title:"DependencyDepthResultV1",type:"object"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"Addresses indexed symbols by node id or by qualified name; the node id\nwins when both are present.",properties:{node_id:{description:"Look up a single node by its ID instead of qualified_name.",type:["string","null"]},qualified_name:{description:"The exact, case-sensitive qualified name to look up. A bare short name\ndoes not match; resolve it with find_exact_symbol first.",type:["string","null"]}},title:"SymbolSelectorSurfaceRequestV1",type:"object"},{$defs:{DeriveAnnotationV1:{additionalProperties:!1,properties:{evidence_class:{$ref:"#/$defs/DeriveEvidenceClassV1"},name:{type:"string"},unavailable_fields:{items:{type:"string"},type:"array"}},required:["name","evidence_class","unavailable_fields"],type:"object"},DeriveEvidenceClassV1:{description:"How a derive name is known: read from the declaration's attributes, not\nfrom macro expansion.",enum:["syntax_exact"],type:"string"},DerivesSymbolV1:{additionalProperties:!1,properties:{derives:{items:{$ref:"#/$defs/DeriveAnnotationV1"},type:"array"},file:{type:"string"},kind:{type:"string"},line:{format:"uint32",minimum:0,type:"integer"},name:{type:"string"},node_id:{type:"string"},qualified_name:{type:"string"}},required:["node_id","name","qualified_name","kind","file","line","derives"],type:"object"}},$schema:"https://json-schema.org/draft/2020-12/schema",description:"Derive annotations of every addressed symbol; empty when no symbol matched.",items:{$ref:"#/$defs/DerivesSymbolV1"},title:"DerivesResultV1",type:"array"},{$defs:{DiagnoseSeverityFilterV1:{description:"Compiler severity the diagnose report keeps.",enum:["error","warning","all"],type:"string"}},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{cargo_output:{description:"Raw stderr text from `cargo check` / `cargo clippy` / `rustc`.",type:"string"},include_callers:{description:"Attach up to 5 callers per diagnostic (default: true).",type:["boolean","null"]},max_diagnostics:{description:"Cap on diagnostics in the response (default: 50, at most 500).",format:"uint32",minimum:0,type:["integer","null"]},severity:{anyOf:[{$ref:"#/$defs/DiagnoseSeverityFilterV1"},{type:"null"}],description:"Filter by severity (default: all)."}},required:["cargo_output"],title:"DiagnoseSurfaceRequestV1",type:"object"},{$defs:{CodeIndexBuildBlockedReasonV1:hv,CodeIndexConvergenceParkedV1:hb,CodeIndexStalenessStateV1:hw,DiagnoseItemV1:{additionalProperties:!1,properties:{callers:{description:"Absent when the request turned caller attachment off.",items:{$ref:"#/$defs/DiagnoseSymbolV1"},type:["array","null"]},code:{type:["string","null"]},column:{format:"uint32",minimum:0,type:"integer"},file:{type:"string"},line:{format:"uint32",minimum:0,type:"integer"},message:{type:"string"},node:{anyOf:[{$ref:"#/$defs/DiagnoseSymbolV1"},{type:"null"}]},severity:{$ref:"#/$defs/DiagnoseSeverityV1"}},required:["severity","message","file","line","column"],type:"object"},DiagnosePublicationV1:{description:"Outcome of publishing the parsed diagnostics into the managed store.",oneOf:[{additionalProperties:!1,properties:{reason:{type:"string"},status:{const:"skipped",type:"string"},unresolved:{items:{type:"string"},type:["array","null"]}},required:["status","reason"],type:"object"},{additionalProperties:!1,properties:{cleared:{format:"uint64",minimum:0,type:"integer"},generation:{type:"string"},inserted:{format:"uint64",minimum:0,type:"integer"},publication_revision:{format:"uint64",minimum:0,type:"integer"},rejected:{items:{type:"string"},type:"array"},status:{const:"published",type:"string"},unresolved:{items:{type:"string"},type:"array"}},required:["status","generation","publication_revision","inserted","cleared","unresolved","rejected"],type:"object"},{additionalProperties:!1,properties:{reason:{type:"string"},status:{const:"failed",type:"string"}},required:["status","reason"],type:"object"}]},DiagnoseSeverityV1:{description:"Severity of one parsed compiler diagnostic.",enum:["error","warning","note","help"],type:"string"},DiagnoseSymbolV1:{additionalProperties:!1,description:"The graph symbol a diagnostic line falls in, or one of its callers.",properties:{end_line:{format:"uint32",minimum:0,type:"integer"},file:{type:"string"},kind:{type:"string"},line:{description:"One-based display line.",format:"uint32",minimum:0,type:"integer"},name:{type:"string"},node_id:{type:"string"},qualified_name:{type:"string"},start_line:{format:"uint32",minimum:0,type:"integer"}},required:["node_id","name","kind","qualified_name","file","line","start_line","end_line"],type:"object"},PrimitiveFreshnessStateV1:_K,PrimitiveIndexingStateV1:_J,PrimitiveSearchFreshnessV1:_Y},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{diagnostics:{items:{$ref:"#/$defs/DiagnoseItemV1"},type:"array"},diagnostics_parsed:{format:"uint64",minimum:0,type:"integer"},diagnostics_returned:{format:"uint64",minimum:0,type:"integer"},freshness:{anyOf:[{$ref:"#/$defs/PrimitiveSearchFreshnessV1"},{type:"null"}],description:"The worktree verdict a served graph read opens with."},mapped_to_node:{format:"uint64",minimum:0,type:"integer"},published:{$ref:"#/$defs/DiagnosePublicationV1"},truncated:{type:"boolean"},unmapped:{format:"uint64",minimum:0,type:"integer"}},required:["diagnostics_parsed","diagnostics_returned","mapped_to_node","unmapped","truncated","published","diagnostics"],title:"DiagnoseResultV1",type:"object"},{$defs:{DiagnosticsPrimitiveScope:{oneOf:[{enum:["workspace"],type:"string"},{additionalProperties:!1,properties:{package:{type:"string"}},required:["package"],type:"object"},{additionalProperties:!1,properties:{file:{type:"string"}},required:["file"],type:"object"}]}},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{cursor:{default:null,type:["string","null"]},maximum_diagnostics:{format:"uint32",minimum:0,type:"integer"},scope:{$ref:"#/$defs/DiagnosticsPrimitiveScope"}},required:["scope","maximum_diagnostics"],title:"DiagnosticsPrimitiveRequest",type:"object"},{$defs:{CodeGenerationId:hg,CommitId:hI,ComponentVersion:hT,ContentDigest:hF,DiagnosticEvidenceClassV1:{description:"Evidence class for one diagnostic record. Evidence class is part of\ncanonical diagnostic identity.",oneOf:[{const:"observed_current",description:"Directly observed against the exact clean generation it names.",type:"string"},{const:"producer_reported",description:"Reported by the cataloged producer for the exact clean generation.",type:"string"},{const:"derived_structural",description:"Derived from TraceDecay structural/graph analysis of the generation.",type:"string"},{const:"unknown_unsupported",description:"The evidence class cannot be established; the record is retained for\naudit but must not be treated as current truth.",type:"string"}]},DiagnosticPrimitiveRecord:{additionalProperties:!1,properties:{diagnostic:{$ref:"#/$defs/GenerationDiagnosticV1"},logical_path:{type:"string"}},required:["logical_path","diagnostic"],type:"object"},DiagnosticProducerKindV1:{description:"The cataloged producer kinds that may publish durable diagnostics.\nRuntime, storage, migration,\nconfiguration, session, or daemon-health findings without a truthful\nsource range are Doctor or application findings and never become\n`GenerationDiagnosticV1` records.",enum:["upstream_compiler","language_server","tracedecay_structural","tracedecay_graph_integrity","tracedecay_policy","tracedecay_code_health","generation_consistency","authorized_external_analyzer"],type:"string"},DiagnosticProvenanceV1:{additionalProperties:!1,description:"Producer provenance for one diagnostic. Diagnostic identity includes\nproducer provenance: identical findings from the same logical producer and\nrevision collapse; findings from distinct producers remain distinct.",properties:{analyzer_revision:{$ref:"#/$defs/ComponentVersion"},configuration_revision:{$ref:"#/$defs/ComponentVersion"},producer:{$ref:"#/$defs/ProviderId"},producer_kind:{$ref:"#/$defs/DiagnosticProducerKindV1"},sanitization_receipt:{anyOf:[{$ref:"#/$defs/SanitizationReceiptId"},{type:"null"}]}},required:["producer_kind","producer","analyzer_revision","configuration_revision"],type:"object"},DiagnosticRecordStateV1:{description:"Current-vs-stale typing for a durable diagnostic record. Publication is\nversion-monotone: a newer clean generation clears the prior publication\ndeterministically, and stale findings cannot cross snapshots.\nStale and historical records remain queryable through\napplication APIs but are excluded from active publication.",oneOf:[{description:"Current for exactly the clean generation named by the record.",properties:{kind:{const:"current",type:"string"}},required:["kind"],type:"object"},{description:"A clean generation completed and deterministically removed this\nfinding (resolution, deletion, source-revision drift, or content or\ngeneration change).",properties:{cleared_in_generation:{$ref:"#/$defs/CodeGenerationId"},kind:{const:"cleared",type:"string"}},required:["kind","cleared_in_generation"],type:"object"}]},DiagnosticSeverityV1:yS,FileOccurrenceId:gd,GenerationDiagnosticV1:{additionalProperties:!1,description:"One durable, generation-bound diagnostic record. Its diagnostic payload,\nscope, and producer provenance form observation identity; the display\nmessage remains sanitized product data.",properties:{code:{description:"Stable producer diagnostic code (for example `E0308`).",type:"string"},collected_at:{$ref:"#/$defs/UtcMicros",description:"Time the server first accepted this evidence observation. Compiler\noutput does not carry a trustworthy producer capture time, and an exact\nsemantic replay retains the first accepted value."},content_digest:{$ref:"#/$defs/ContentDigest",description:"Content digest of the attached file inside the generation."},diagnostic_anchor:{$ref:"#/$defs/RetrievalAnchorId",description:"Retrieval anchor addressing this record. The code index's\n`GenerationDiagnosticAttachmentV1::diagnostic_anchor` points here."},evidence_class:{$ref:"#/$defs/DiagnosticEvidenceClassV1"},file_occurrence_id:{$ref:"#/$defs/FileOccurrenceId",description:"Canonical file identity the diagnostic attaches to."},generation_id:{$ref:"#/$defs/CodeGenerationId",description:"The immutable clean code-intelligence generation this record is bound\nto. Findings never cross generations."},message:{description:"Sanitized display message; bounded by [`MAX_DIAGNOSTIC_MESSAGE_BYTES`].",type:"string"},message_digest:{$ref:"#/$defs/ManifestDigest",description:"Integrity digest over the sanitized message."},provenance:{$ref:"#/$defs/DiagnosticProvenanceV1"},reference:{anyOf:[{$ref:"#/$defs/RefId"},{type:"null"}]},repository:{$ref:"#/$defs/RepositoryId"},severity:{$ref:"#/$defs/DiagnosticSeverityV1"},source_revision:{anyOf:[{$ref:"#/$defs/CommitId"},{type:"null"}]},span:{$ref:"#/$defs/SourceSpan",description:"Range encoding inside the sanitized file (byte range; mutable line\nnumbers are never identity)."},state:{$ref:"#/$defs/DiagnosticRecordStateV1",description:"Current-vs-stale typing; publication is version-monotone."},symbol_occurrence_id:{anyOf:[{$ref:"#/$defs/SymbolOccurrenceId"},{type:"null"}],description:"Enclosing symbol occurrence, when exact attachment is possible."},worktree:{anyOf:[{$ref:"#/$defs/WorktreeId"},{type:"null"}]}},required:["diagnostic_anchor","generation_id","repository","file_occurrence_id","content_digest","span","code","severity","message","message_digest","provenance","evidence_class","collected_at","state"],type:"object"},ManifestDigest:_p,ProviderId:vn,RefId:vf,RepositoryId:v$,RetrievalAnchorId:vx,SanitizationReceiptId:{description:"Strongly typed canonical identity: `SanitizationReceiptId`.",type:"string"},SourceSpan:bk,SymbolOccurrenceId:bx,UtcMicros:bX,WorktreeId:SJ},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{clean_generation:{type:"boolean"},diagnostics:{items:{$ref:"#/$defs/DiagnosticPrimitiveRecord"},type:"array"},findings_cleared:{type:"boolean"},generation_id:{$ref:"#/$defs/CodeGenerationId"},next_cursor:{type:["string","null"]}},required:["generation_id","clean_generation","findings_cleared","diagnostics"],title:"DiagnosticsPrimitiveResult",type:"object"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{budget_tokens:{description:"Cap the symbol, test, and co-change sections at about this many tokens.",format:"uint32",minimum:0,type:["integer","null"]},depth:{description:"Maximum impact traversal depth (default: 2, at most 10).",format:"uint32",minimum:0,type:["integer","null"]},files:{description:"Files to inspect prospectively. All indexed declarations in these files\nare candidates; this does not select exact Git-changed declarations.",items:{type:"string"},type:"array"}},required:["files"],title:"DiffContextSurfaceRequestV1",type:"object"},{$defs:{CoChangeUnavailableV1:hh,CodeIndexBuildBlockedReasonV1:hv,CodeIndexConvergenceParkedV1:hb,CodeIndexStalenessStateV1:hw,GitContextComparisonV1:g_,GitContextSymbolV1:gv,GitOidV1:gI,IncompatibleCallSiteV1:{additionalProperties:!1,description:"A call site whose argument count cannot invoke the new parameter list.",properties:{arguments:{format:"uint32",minimum:0,type:"integer"},file:{type:"string"},line:{format:"uint32",minimum:0,type:"integer"},name:{type:"string"}},required:["name","file","line","arguments"],type:"object"},MissingCoChangePartnerV1:_P,PrimitiveFreshnessStateV1:_K,PrimitiveIndexingStateV1:_J,PrimitiveSearchFreshnessV1:_Y,SignatureEditStatusV1:{description:"How a modified function's parameter list compares with HEAD.",enum:["contract_change"],type:"string"},SignatureEditV1:{additionalProperties:!1,description:"A Rust free function whose parameter count differs from HEAD.",properties:{file:{type:"string"},incompatible:{items:{$ref:"#/$defs/IncompatibleCallSiteV1"},type:"array"},new_parameters:{format:"uint32",minimum:0,type:["integer","null"]},old_parameters:{format:"uint32",minimum:0,type:["integer","null"]},status:{$ref:"#/$defs/SignatureEditStatusV1"},symbol:{type:"string"}},required:["symbol","file","status","incompatible"],type:"object"},TestGateV1:{additionalProperties:!1,description:"Whether tests reach the symbols in a diff's blast radius.\n\n`pass` and exit 0 when every counted symbol is reached. `fail` and exit 4\nname the ones that are not. `incomplete` and exit 0 mean the caller walk\nstopped before that absence is known.",properties:{exit_code:{format:"uint8",maximum:255,minimum:0,type:"integer"},untested:{items:{type:"string"},type:"array"},verdict:{type:"string"}},required:["verdict","exit_code","untested"],type:"object"},TokenBudgetCutV1:bL,TokenBudgetSectionV1:bU},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{affected_tests:{items:{type:"string"},type:"array"},changed_files:{items:{type:"string"},type:"array"},co_change_unavailable:{anyOf:[{$ref:"#/$defs/CoChangeUnavailableV1"},{type:"null"}],description:"Present when Git history could not be mined for co-change partners."},comparison:{anyOf:[{$ref:"#/$defs/GitContextComparisonV1"},{type:"null"}]},freshness:{anyOf:[{$ref:"#/$defs/PrimitiveSearchFreshnessV1"},{type:"null"}],description:"The worktree verdict a served graph read opens with."},impact_complete:{description:"False when the impact walk stopped at its depth or budget with callers\nstill unexplored.",type:"boolean"},impacted_symbols:{items:{$ref:"#/$defs/GitContextSymbolV1"},type:"array"},impacted_symbols_count:{format:"uint",minimum:0,type:"integer"},missing_co_change_partners:{description:"Files that usually change with a changed file, per bounded Git\nhistory, but are absent from this change set.",items:{$ref:"#/$defs/MissingCoChangePartnerV1"},type:"array"},modified_symbols:{items:{$ref:"#/$defs/GitContextSymbolV1"},type:"array"},signature_edits:{description:"Rust free functions whose parameter count changed since HEAD, with the\ncall sites that list cannot accept. Omitted when nothing changed.",items:{$ref:"#/$defs/SignatureEditV1"},type:"array"},test_gate:{$ref:"#/$defs/TestGateV1",description:"Symbols in this diff that no test reaches, and the verdict a CLI exits on."},token_budget:{anyOf:[{$ref:"#/$defs/TokenBudgetCutV1"},{type:"null"}],description:"Budget accounting when the request supplies `budget_tokens`."}},required:["changed_files","modified_symbols","impacted_symbols_count","impacted_symbols","impact_complete","affected_tests","missing_co_change_partners","test_gate"],title:"DiffContextResultV1",type:"object"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{limit:{description:"Maximum number of files in the per-file breakdown, highest node count\nfirst (default: 100, max: 1000). Ignored when summary is true; the\nresponse states total_file_count and omitted_file_count.",format:"uint32",minimum:0,type:["integer","null"]},path:{description:"Directory or file path prefix to filter (e.g.\n'src/main/java/com/example'). Omit for entire codebase.",type:["string","null"]},summary:{description:"If true, aggregate counts across all matching files instead of\nper-file breakdown (default: false).",type:["boolean","null"]}},title:"DistributionSurfaceRequestV1",type:"object"},{$defs:{CodeIndexBuildBlockedReasonV1:hv,CodeIndexConvergenceParkedV1:hb,CodeIndexStalenessStateV1:hw,DistributionFileV1:{additionalProperties:!1,properties:{file:{type:"string"},kinds:{items:{$ref:"#/$defs/DistributionKindCountV1"},type:"array"}},required:["file","kinds"],type:"object"},DistributionKindCountV1:{additionalProperties:!1,properties:{count:{format:"uint64",minimum:0,type:"integer"},kind:{type:"string"}},required:["kind","count"],type:"object"},PrimitiveFreshnessStateV1:_K,PrimitiveIndexingStateV1:_J,PrimitiveSearchFreshnessV1:_Y},$schema:"https://json-schema.org/draft/2020-12/schema",description:"Flattening the tagged view keeps `path_filter` ahead of `mode` on the\nwire; serde cannot deny unknown fields through a flattened member.",oneOf:[{properties:{distribution:{items:{$ref:"#/$defs/DistributionKindCountV1"},type:"array"},mode:{const:"summary",type:"string"},total_kinds:{format:"uint64",minimum:0,type:"integer"}},required:["mode","total_kinds","distribution"],type:"object"},{properties:{file_count:{format:"uint64",minimum:0,type:"integer"},files:{items:{$ref:"#/$defs/DistributionFileV1"},type:"array"},mode:{const:"per_file",type:"string"},omitted_file_count:{format:"uint64",minimum:0,type:"integer"},total_file_count:{format:"uint64",minimum:0,type:"integer"}},required:["mode","file_count","total_file_count","omitted_file_count","files"],type:"object"}],properties:{freshness:{anyOf:[{$ref:"#/$defs/PrimitiveSearchFreshnessV1"},{type:"null"}],description:"The worktree verdict a served graph read opens with."},path_filter:{type:["string","null"]}},title:"DistributionResultV1",type:"object"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{limit:{description:"Maximum number of results to return (default: 50, at most 500).",format:"uint32",minimum:0,type:["integer","null"]},path:{description:"Directory or file path prefix to filter (e.g. 'src/main'). Omit for\nentire codebase.",type:["string","null"]}},title:"DocCoverageSurfaceRequestV1",type:"object"},{$defs:{CodeIndexBuildBlockedReasonV1:hv,CodeIndexConvergenceParkedV1:hb,CodeIndexStalenessStateV1:hw,DocCoverageFileV1:{additionalProperties:!1,properties:{count:{format:"uint64",minimum:0,type:"integer"},file:{type:"string"},symbols:{items:{$ref:"#/$defs/DocCoverageSymbolV1"},type:"array"}},required:["file","count","symbols"],type:"object"},DocCoverageSymbolV1:{additionalProperties:!1,properties:{id:{type:"string"},kind:{type:"string"},line:{format:"uint32",minimum:0,type:"integer"},name:{type:"string"},signature:{type:["string","null"]}},required:["id","name","kind","line"],type:"object"},PrimitiveFreshnessStateV1:_K,PrimitiveIndexingStateV1:_J,PrimitiveSearchFreshnessV1:_Y},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{complete:{type:"boolean"},file_count:{format:"uint64",minimum:0,type:"integer"},files:{items:{$ref:"#/$defs/DocCoverageFileV1"},type:"array"},freshness:{anyOf:[{$ref:"#/$defs/PrimitiveSearchFreshnessV1"},{type:"null"}],description:"The worktree verdict a served graph read opens with."},limit:{format:"uint64",minimum:0,type:"integer"},omitted_count:{format:"uint64",minimum:0,type:"integer"},path_filter:{type:["string","null"]},returned_count:{format:"uint64",minimum:0,type:"integer"},total_undocumented:{format:"uint64",minimum:0,type:"integer"}},required:["total_undocumented","returned_count","omitted_count","complete","limit","file_count","files"],title:"DocCoverageResultV1",type:"object"},{$defs:{DsmShapeV1:yP},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{max_files:{description:"Maximum files in matrix format (default: 30, at most 200).",format:"uint32",minimum:0,type:["integer","null"]},path:{description:"Filter to files under this directory path.",type:["string","null"]},shape:{anyOf:[{$ref:"#/$defs/DsmShapeV1"},{type:"null"}],description:"DSM data shape: stats, clusters, or matrix (default: stats)."}},title:"DsmSurfaceRequestV1",type:"object"},{$defs:{CodeIndexBuildBlockedReasonV1:hv,CodeIndexConvergenceParkedV1:hb,CodeIndexStalenessStateV1:hw,DsmClusterV1:{additionalProperties:!1,properties:{boundary_edges:{format:"uint64",minimum:0,type:"integer"},directory:{type:"string"},file_count:{format:"uint64",minimum:0,type:"integer"},incoming_edges:{format:"uint64",minimum:0,type:"integer"},internal_edges:{format:"uint64",minimum:0,type:"integer"},outgoing_edges:{format:"uint64",minimum:0,type:"integer"}},required:["directory","file_count","internal_edges","outgoing_edges","incoming_edges","boundary_edges"],type:"object"},DsmMatrixV1:{additionalProperties:!1,properties:{files:{items:{type:"string"},type:"array"},matrix:{items:{items:{format:"uint8",maximum:255,minimum:0,type:"integer"},type:"array"},type:"array"},note:{type:"string"}},required:["files","matrix","note"],type:"object"},DsmShapeV1:yP,DsmStatsV1:{additionalProperties:!1,properties:{clusters:{format:"uint64",minimum:0,type:"integer"},density:{format:"double",type:"number"},edges:{format:"uint64",minimum:0,type:"integer"},files:{format:"uint64",minimum:0,type:"integer"},largest_cluster:{format:"uint64",minimum:0,type:"integer"}},required:["files","edges","density","clusters","largest_cluster"],type:"object"},PrimitiveFreshnessStateV1:_K,PrimitiveIndexingStateV1:_J,PrimitiveSearchFreshnessV1:_Y},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{clusters:{items:{$ref:"#/$defs/DsmClusterV1"},type:"array"},freshness:{anyOf:[{$ref:"#/$defs/PrimitiveSearchFreshnessV1"},{type:"null"}],description:"The worktree verdict a served graph read opens with."},matrix:{anyOf:[{$ref:"#/$defs/DsmMatrixV1"},{type:"null"}]},shape:{$ref:"#/$defs/DsmShapeV1"},stats:{$ref:"#/$defs/DsmStatsV1"}},required:["shape","stats","clusters"],title:"DsmResultV1",type:"object"},{$defs:{FactEventId:yD,FactFeedbackActionV1:yF,FactId:yL,MemoryScopeV1:_m,ProjectId:_6},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{action:{$ref:"#/$defs/FactFeedbackActionV1"},expected_last_event_id:{anyOf:[{$ref:"#/$defs/FactEventId"},{type:"null"}]},fact_id:{$ref:"#/$defs/FactId"},memory_scope:{anyOf:[{$ref:"#/$defs/MemoryScopeV1"},{type:"null"}]},project_selector:{additionalProperties:!1,description:'Exact registered-project selector. Reads and fact effects run against the\nselected project.\n\nInlined so every request schema advertises the closed selector contract\n(`required: ["project_id"]`, no additional properties) directly on its\n`project_selector` property instead of behind a `$defs` reference, matching\nthe selector shape the MCP dispatch policy promises for selector-accepting\ntools.',properties:{project_id:{$ref:"#/$defs/ProjectId"}},required:["project_id"],type:["object","null"]},reason:{type:["string","null"]},source_label:{type:["string","null"]}},required:["fact_id","action"],title:"FactFeedbackRequestV1",type:"object"},{$defs:{FactAssertionId:yA,FactCategoryV1:yW,FactCommitDispositionV1:yM,FactCommitOwnerV1:yN,FactCommitReceiptV1:yz,FactEventId:yD,FactFeedbackActionV1:yF,FactFeedbackV1:{additionalProperties:!1,properties:{action:{$ref:"#/$defs/FactFeedbackActionV1"},event_id:{$ref:"#/$defs/FactEventId"},fact_id:{$ref:"#/$defs/FactId"},helpful_count:{format:"uint64",minimum:0,type:"integer"},new_trust_millionths:{format:"uint32",minimum:0,type:"integer"},old_trust_millionths:{format:"uint32",minimum:0,type:"integer"},trust_delta_millionths:{format:"int32",type:"integer"},unhelpful_count:{format:"uint64",minimum:0,type:"integer"}},required:["event_id","fact_id","action","old_trust_millionths","new_trust_millionths","trust_delta_millionths","helpful_count","unhelpful_count"],type:"object"},FactId:yL,FactIdentitySourceResultV1:yU,FactPayloadAccessV1:yH,FactProjectionV1:yG,FactStatusV1:yQ,FactTelemetryV1:yX,FactV1:yY,LocatorDigest:_i,ProjectId:_6,ProvenanceId:vi,RetrievalAnchorId:vx,UtcMicros:bX},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{commit:{$ref:"#/$defs/FactCommitReceiptV1"},fact:{$ref:"#/$defs/FactProjectionV1"},feedback:{$ref:"#/$defs/FactFeedbackV1"}},required:["fact","feedback","commit"],title:"FactFeedbackResultV1",type:"object"},{$defs:{FactCategoryV1:yW,MemoryScopeV1:_m,ProjectId:_6},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{category:{anyOf:[{$ref:"#/$defs/FactCategoryV1"},{type:"null"}]},content:{type:"string"},entities:{default:[],items:{type:"string"},type:"array"},memory_scope:{anyOf:[{$ref:"#/$defs/MemoryScopeV1"},{type:"null"}]},metadata:{additionalProperties:!0,type:["object","null"]},project_selector:{additionalProperties:!1,description:'Exact registered-project selector. Reads and fact effects run against the\nselected project.\n\nInlined so every request schema advertises the closed selector contract\n(`required: ["project_id"]`, no additional properties) directly on its\n`project_selector` property instead of behind a `$defs` reference, matching\nthe selector shape the MCP dispatch policy promises for selector-accepting\ntools.',properties:{project_id:{$ref:"#/$defs/ProjectId"}},required:["project_id"],type:["object","null"]},source_label:{type:["string","null"]},tags:{default:[],items:{type:"string"},type:"array"},trust:{format:"double",type:["number","null"]}},required:["content"],title:"FactStoreAddRequestV1",type:"object"},{$defs:{FactAssertionId:yA,FactCategoryV1:yW,FactCommitDispositionV1:yM,FactCommitOwnerV1:yN,FactCommitReceiptV1:yz,FactEventId:yD,FactId:yL,FactIdentitySourceResultV1:yU,FactPayloadAccessV1:yH,FactProjectionV1:yG,FactStatusV1:yQ,FactStoreAddCommitV1:{oneOf:[{additionalProperties:!1,properties:{commit:{$ref:"#/$defs/FactCommitReceiptV1"},disposition:{const:"added",type:"string"},fact:{$ref:"#/$defs/FactProjectionV1"}},required:["disposition","fact","commit"],type:"object"},{additionalProperties:!1,properties:{closest_fact_id:{$ref:"#/$defs/FactId"},commit:{$ref:"#/$defs/FactCommitReceiptV1"},disposition:{const:"near_duplicate",type:"string"},fact:{$ref:"#/$defs/FactProjectionV1"},similarity_millionths:{format:"uint32",minimum:0,type:"integer"}},required:["disposition","fact","closest_fact_id","similarity_millionths","commit"],type:"object"},{additionalProperties:!1,properties:{closest_fact_id:{$ref:"#/$defs/FactId"},commit:{$ref:"#/$defs/FactCommitReceiptV1"},disposition:{const:"possible_conflict",type:"string"},fact:{$ref:"#/$defs/FactProjectionV1"},similarity_millionths:{format:"uint32",minimum:0,type:"integer"}},required:["disposition","fact","closest_fact_id","similarity_millionths","commit"],type:"object"}]},FactTelemetryV1:yX,FactV1:yY,LocatorDigest:_i,ProjectId:_6,ProvenanceId:vi,RetrievalAnchorId:vx,UtcMicros:bX},$schema:"https://json-schema.org/draft/2020-12/schema",oneOf:[{additionalProperties:!1,properties:{outcome:{const:"secret_rejected",type:"string"}},required:["outcome"],type:"object"},{additionalProperties:!1,properties:{closest_fact_id:{$ref:"#/$defs/FactId"},fact:{$ref:"#/$defs/FactProjectionV1"},outcome:{const:"normalized_duplicate",type:"string"}},required:["outcome","fact","closest_fact_id"],type:"object"},{additionalProperties:!1,properties:{outcome:{const:"committed",type:"string"},result:{$ref:"#/$defs/FactStoreAddCommitV1"}},required:["outcome","result"],type:"object"}],title:"FactStoreAddResultV1"},{$defs:{FactCategoryV1:yW,MemoryScopeV1:_m,ProjectId:_6},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{category:{anyOf:[{$ref:"#/$defs/FactCategoryV1"},{type:"null"}]},limit:{format:"uint64",minimum:0,type:["integer","null"]},memory_scope:{anyOf:[{$ref:"#/$defs/MemoryScopeV1"},{type:"null"}]},project_selector:{additionalProperties:!1,description:'Exact registered-project selector. Reads and fact effects run against the\nselected project.\n\nInlined so every request schema advertises the closed selector contract\n(`required: ["project_id"]`, no additional properties) directly on its\n`project_selector` property instead of behind a `$defs` reference, matching\nthe selector shape the MCP dispatch policy promises for selector-accepting\ntools.',properties:{project_id:{$ref:"#/$defs/ProjectId"}},required:["project_id"],type:["object","null"]},threshold_millionths:{format:"uint32",minimum:0,type:["integer","null"]}},title:"FactStoreContradictRequestV1",type:"object"},{$defs:{FactAssertionId:yA,FactCategoryV1:yW,FactCommitOwnerV1:yN,FactContradictionV1:{additionalProperties:!1,properties:{existing_fact:{$ref:"#/$defs/FactV1"},new_content:{type:"string"},score_millionths:{format:"uint32",minimum:0,type:"integer"},why:{type:["string","null"]}},required:["existing_fact","new_content","score_millionths"],type:"object"},FactEventId:yD,FactId:yL,FactIdentitySourceResultV1:yU,FactTelemetryV1:yX,FactV1:yY,LocatorDigest:_i,ProjectId:_6,ProvenanceId:vi,RetrievalAnchorId:vx,UtcMicros:bX},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{contradictions:{items:{$ref:"#/$defs/FactContradictionV1"},type:"array"},owner:{$ref:"#/$defs/FactCommitOwnerV1"}},required:["owner","contradictions"],title:"FactStoreContradictResultV1",type:"object"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"Closed public launcher for the automatic Memory Curator.\n\nRun identity, task selection, operations, proposals, approval, and apply\nauthority are deliberately absent and rejected by `deny_unknown_fields`.",properties:{fact_review_limit:{default:24,format:"uint32",maximum:1e3,minimum:1,type:"integer"},min_confidence_millionths:{default:72e4,format:"uint32",maximum:1e6,minimum:0,type:"integer"}},title:"FactStoreCurateRequestV1",type:"object"},{$defs:{AutomationTaskV1:{description:"Automation capability selected after one registered application admission.",enum:["memory_curator","session_reflector","skill_writer","combined_review","user_job"],type:"string"},FactStoreCurateStateV1:{description:"Lifecycle state a `fact_store_curate` receipt reports.",oneOf:[{const:"started",description:"The run was admitted and continues on the daemon.",type:"string"}]},ManifestDigest:_p,RunId:vL},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"Receipt of one admitted automatic curation.\n\nThe curator runs on the daemon after this receipt is returned. Its terminal\nis the automation run ledger record for `run_id`, read with\n`automation_run_view`.",properties:{request_digest:{$ref:"#/$defs/ManifestDigest"},run_id:{$ref:"#/$defs/RunId"},state:{$ref:"#/$defs/FactStoreCurateStateV1"},task:{$ref:"#/$defs/AutomationTaskV1"}},required:["run_id","task","request_digest","state"],title:"FactStoreCurateResultV1",type:"object"},{$defs:{FactId:yL,MemoryScopeV1:_m,ProjectId:_6},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{fact_id:{$ref:"#/$defs/FactId"},memory_scope:{anyOf:[{$ref:"#/$defs/MemoryScopeV1"},{type:"null"}]},project_selector:{additionalProperties:!1,description:'Exact registered-project selector. Reads and fact effects run against the\nselected project.\n\nInlined so every request schema advertises the closed selector contract\n(`required: ["project_id"]`, no additional properties) directly on its\n`project_selector` property instead of behind a `$defs` reference, matching\nthe selector shape the MCP dispatch policy promises for selector-accepting\ntools.',properties:{project_id:{$ref:"#/$defs/ProjectId"}},required:["project_id"],type:["object","null"]}},required:["fact_id"],title:"FactStoreGetRequestV1",type:"object"},{$defs:{FactAssertionId:yA,FactCategoryV1:yW,FactCommitOwnerV1:yN,FactEventId:yD,FactFeedbackActionV1:yF,FactFeedbackDetailsAvailabilityV1:{enum:["available","redacted","unknown"],type:"string"},FactId:yL,FactIdentitySourceResultV1:yU,FactPayloadAccessV1:yH,FactProjectionV1:yG,FactStatusV1:yQ,FactTelemetryV1:yX,FactV1:yY,LocatorDigest:_i,ProjectId:_6,ProvenanceId:vi,RetrievalAnchorId:vx,TrustHistoryEntryV1:{additionalProperties:!1,properties:{action:{$ref:"#/$defs/FactFeedbackActionV1"},details_availability:{$ref:"#/$defs/FactFeedbackDetailsAvailabilityV1"},event_id:{$ref:"#/$defs/FactEventId"},new_trust_millionths:{format:"uint32",minimum:0,type:"integer"},occurred_at:{$ref:"#/$defs/UtcMicros"},old_trust_millionths:{format:"uint32",minimum:0,type:"integer"},reason:{type:["string","null"]},source_label:{type:["string","null"]}},required:["event_id","occurred_at","action","old_trust_millionths","new_trust_millionths","details_availability"],type:"object"},UtcMicros:bX},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{fact:{$ref:"#/$defs/FactProjectionV1"},trust_history:{items:{$ref:"#/$defs/TrustHistoryEntryV1"},type:"array"}},required:["fact","trust_history"],title:"FactStoreGetResultV1",type:"object"},{$defs:{FactCategoryV1:yW,MemoryScopeV1:_m,ProjectId:_6},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{after:{description:"The previous page's `next_after`, valid only with the same parameters.",type:["string","null"]},category:{anyOf:[{$ref:"#/$defs/FactCategoryV1"},{type:"null"}]},limit:{format:"uint64",minimum:0,type:["integer","null"]},memory_scope:{anyOf:[{$ref:"#/$defs/MemoryScopeV1"},{type:"null"}]},min_trust:{format:"double",type:["number","null"]},project_selector:{additionalProperties:!1,description:'Exact registered-project selector. Reads and fact effects run against the\nselected project.\n\nInlined so every request schema advertises the closed selector contract\n(`required: ["project_id"]`, no additional properties) directly on its\n`project_selector` property instead of behind a `$defs` reference, matching\nthe selector shape the MCP dispatch policy promises for selector-accepting\ntools.',properties:{project_id:{$ref:"#/$defs/ProjectId"}},required:["project_id"],type:["object","null"]}},title:"FactStoreListRequestV1",type:"object"},{$defs:{FactAssertionId:yA,FactCategoryV1:yW,FactCommitOwnerV1:yN,FactEventId:yD,FactId:yL,FactIdentitySourceResultV1:yU,FactPayloadAccessV1:yH,FactProjectionV1:yG,FactStatusV1:yQ,FactTelemetryV1:yX,FactV1:yY,LocatorDigest:_i,ProjectId:_6,ProvenanceId:vi,RetrievalAnchorId:vx,UtcMicros:bX},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{facts:{items:{$ref:"#/$defs/FactProjectionV1"},type:"array"},next_after:{description:"Opaque continuation, bound to this operation and request.",type:["string","null"]},owner:{$ref:"#/$defs/FactCommitOwnerV1"}},required:["owner","facts"],title:"FactStoreListResultV1",type:"object"},{$defs:{FactCategoryV1:yW,MemoryScopeV1:_m,ProjectId:_6},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{after:{description:"The previous page's `next_after`, valid only with the same parameters.",type:["string","null"]},category:{anyOf:[{$ref:"#/$defs/FactCategoryV1"},{type:"null"}]},entity:{type:"string"},limit:{format:"uint64",minimum:0,type:["integer","null"]},memory_scope:{anyOf:[{$ref:"#/$defs/MemoryScopeV1"},{type:"null"}]},min_trust:{format:"double",type:["number","null"]},project_selector:{additionalProperties:!1,description:'Exact registered-project selector. Reads and fact effects run against the\nselected project.\n\nInlined so every request schema advertises the closed selector contract\n(`required: ["project_id"]`, no additional properties) directly on its\n`project_selector` property instead of behind a `$defs` reference, matching\nthe selector shape the MCP dispatch policy promises for selector-accepting\ntools.',properties:{project_id:{$ref:"#/$defs/ProjectId"}},required:["project_id"],type:["object","null"]}},required:["entity"],title:"FactStoreProbeRequestV1",type:"object"},{$defs:{FactAssertionId:yA,FactCategoryV1:yW,FactCommitOwnerV1:yN,FactEventId:yD,FactId:yL,FactIdentitySourceResultV1:yU,FactSearchGraphCoverageV1:yB,FactSearchGraphDegradationV1:yK,FactSearchHitV1:yJ,FactSearchScoresV1:yZ,FactTelemetryV1:yX,FactV1:yY,LocatorDigest:_i,ProjectId:_6,ProvenanceId:vi,RetrievalAnchorId:vx,UtcMicros:bX},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{graph_coverage:{$ref:"#/$defs/FactSearchGraphCoverageV1"},hits:{items:{$ref:"#/$defs/FactSearchHitV1"},type:"array"},next_after:{description:"Opaque continuation, bound to this operation and request.",type:["string","null"]},owner:{$ref:"#/$defs/FactCommitOwnerV1"}},required:["owner","hits","graph_coverage"],title:"FactStoreProbeResultV1",type:"object"},{$defs:{FactCategoryV1:yW,MemoryScopeV1:_m,ProjectId:_6},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{after:{description:"The previous page's `next_after`, valid only with the same parameters.",type:["string","null"]},category:{anyOf:[{$ref:"#/$defs/FactCategoryV1"},{type:"null"}]},entities:{items:{type:"string"},minItems:1,type:"array"},limit:{format:"uint64",minimum:0,type:["integer","null"]},memory_scope:{anyOf:[{$ref:"#/$defs/MemoryScopeV1"},{type:"null"}]},min_trust:{format:"double",type:["number","null"]},project_selector:{additionalProperties:!1,description:'Exact registered-project selector. Reads and fact effects run against the\nselected project.\n\nInlined so every request schema advertises the closed selector contract\n(`required: ["project_id"]`, no additional properties) directly on its\n`project_selector` property instead of behind a `$defs` reference, matching\nthe selector shape the MCP dispatch policy promises for selector-accepting\ntools.',properties:{project_id:{$ref:"#/$defs/ProjectId"}},required:["project_id"],type:["object","null"]}},required:["entities"],title:"FactStoreReasonRequestV1",type:"object"},{$defs:{FactAssertionId:yA,FactCategoryV1:yW,FactCommitOwnerV1:yN,FactEventId:yD,FactId:yL,FactIdentitySourceResultV1:yU,FactSearchGraphCoverageV1:yB,FactSearchGraphDegradationV1:yK,FactSearchHitV1:yJ,FactSearchScoresV1:yZ,FactTelemetryV1:yX,FactV1:yY,LocatorDigest:_i,ProjectId:_6,ProvenanceId:vi,RetrievalAnchorId:vx,UtcMicros:bX},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{graph_coverage:{$ref:"#/$defs/FactSearchGraphCoverageV1"},hits:{items:{$ref:"#/$defs/FactSearchHitV1"},type:"array"},next_after:{description:"Opaque continuation, bound to this operation and request.",type:["string","null"]},owner:{$ref:"#/$defs/FactCommitOwnerV1"}},required:["owner","hits","graph_coverage"],title:"FactStoreReasonResultV1",type:"object"},{$defs:{FactCategoryV1:yW,MemoryScopeV1:_m,ProjectId:_6},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{after:{description:"The previous page's `next_after`, valid only with the same parameters.",type:["string","null"]},category:{anyOf:[{$ref:"#/$defs/FactCategoryV1"},{type:"null"}]},entity:{type:"string"},limit:{format:"uint64",minimum:0,type:["integer","null"]},memory_scope:{anyOf:[{$ref:"#/$defs/MemoryScopeV1"},{type:"null"}]},min_trust:{format:"double",type:["number","null"]},project_selector:{additionalProperties:!1,description:'Exact registered-project selector. Reads and fact effects run against the\nselected project.\n\nInlined so every request schema advertises the closed selector contract\n(`required: ["project_id"]`, no additional properties) directly on its\n`project_selector` property instead of behind a `$defs` reference, matching\nthe selector shape the MCP dispatch policy promises for selector-accepting\ntools.',properties:{project_id:{$ref:"#/$defs/ProjectId"}},required:["project_id"],type:["object","null"]}},required:["entity"],title:"FactStoreRelatedRequestV1",type:"object"},{$defs:{FactAssertionId:yA,FactCategoryV1:yW,FactCommitOwnerV1:yN,FactEventId:yD,FactId:yL,FactIdentitySourceResultV1:yU,FactSearchGraphCoverageV1:yB,FactSearchGraphDegradationV1:yK,FactSearchHitV1:yJ,FactSearchScoresV1:yZ,FactTelemetryV1:yX,FactV1:yY,LocatorDigest:_i,ProjectId:_6,ProvenanceId:vi,RetrievalAnchorId:vx,UtcMicros:bX},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{graph_coverage:{$ref:"#/$defs/FactSearchGraphCoverageV1"},hits:{items:{$ref:"#/$defs/FactSearchHitV1"},type:"array"},next_after:{description:"Opaque continuation, bound to this operation and request.",type:["string","null"]},owner:{$ref:"#/$defs/FactCommitOwnerV1"}},required:["owner","hits","graph_coverage"],title:"FactStoreRelatedResultV1",type:"object"},{$defs:{FactEventId:yD,FactId:yL,MemoryScopeV1:_m,ProjectId:_6},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{expected_last_event_id:{anyOf:[{$ref:"#/$defs/FactEventId"},{type:"null"}]},fact_id:{$ref:"#/$defs/FactId"},memory_scope:{anyOf:[{$ref:"#/$defs/MemoryScopeV1"},{type:"null"}]},project_selector:{additionalProperties:!1,description:'Exact registered-project selector. Reads and fact effects run against the\nselected project.\n\nInlined so every request schema advertises the closed selector contract\n(`required: ["project_id"]`, no additional properties) directly on its\n`project_selector` property instead of behind a `$defs` reference, matching\nthe selector shape the MCP dispatch policy promises for selector-accepting\ntools.',properties:{project_id:{$ref:"#/$defs/ProjectId"}},required:["project_id"],type:["object","null"]}},required:["fact_id"],title:"FactStoreRemoveRequestV1",type:"object"},{$defs:{FactAssertionId:yA,FactCategoryV1:yW,FactCommitDispositionV1:yM,FactCommitOwnerV1:yN,FactCommitReceiptV1:yz,FactEventId:yD,FactId:yL,FactIdentitySourceResultV1:yU,FactPayloadAccessV1:yH,FactProjectionV1:yG,FactStatusV1:yQ,FactTelemetryV1:yX,FactV1:yY,LocatorDigest:_i,ProjectId:_6,ProvenanceId:vi,RetrievalAnchorId:vx,UtcMicros:bX},$schema:"https://json-schema.org/draft/2020-12/schema",oneOf:[{additionalProperties:!1,properties:{commit:{$ref:"#/$defs/FactCommitReceiptV1"},fact:{$ref:"#/$defs/FactProjectionV1"},outcome:{const:"removed",type:"string"},remaining_fact_count:{format:"uint64",minimum:0,type:"integer"}},required:["outcome","fact","remaining_fact_count","commit"],type:"object"},{additionalProperties:!1,properties:{fact:{$ref:"#/$defs/FactProjectionV1"},outcome:{const:"already_removed",type:"string"},remaining_fact_count:{format:"uint64",minimum:0,type:"integer"}},required:["outcome","fact","remaining_fact_count"],type:"object"}],title:"FactStoreRemoveResultV1"},{$defs:{FactCategoryV1:yW,MemoryScopeV1:_m,ProjectId:_6},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{after:{description:"The previous page's `next_after`, valid only with the same parameters.",type:["string","null"]},category:{anyOf:[{$ref:"#/$defs/FactCategoryV1"},{type:"null"}]},limit:{format:"uint64",minimum:0,type:["integer","null"]},memory_scope:{anyOf:[{$ref:"#/$defs/MemoryScopeV1"},{type:"null"}]},min_trust:{format:"double",type:["number","null"]},project_selector:{additionalProperties:!1,description:'Exact registered-project selector. Reads and fact effects run against the\nselected project.\n\nInlined so every request schema advertises the closed selector contract\n(`required: ["project_id"]`, no additional properties) directly on its\n`project_selector` property instead of behind a `$defs` reference, matching\nthe selector shape the MCP dispatch policy promises for selector-accepting\ntools.',properties:{project_id:{$ref:"#/$defs/ProjectId"}},required:["project_id"],type:["object","null"]},query:{type:"string"}},required:["query"],title:"FactStoreSearchRequestV1",type:"object"},{$defs:{FactAssertionId:yA,FactCategoryV1:yW,FactCommitOwnerV1:yN,FactEventId:yD,FactId:yL,FactIdentitySourceResultV1:yU,FactRetrievalTelemetryDegradationV1:{enum:["unavailable","saturated"],type:"string"},FactRetrievalTelemetryV1:{description:"Whether an explicit search recorded retrieval telemetry for its hits.\n\nThe telemetry write is recall bookkeeping, not part of the returned\nevidence: when only that lane is unavailable the search still delivers its\nresult and reports the degradation here instead of refusing the read.",oneOf:[{additionalProperties:!1,description:"The result had no hits, so there was nothing to record.",properties:{kind:{const:"not_applicable",type:"string"}},required:["kind"],type:"object"},{additionalProperties:!1,description:"The selected store is mounted read-only; recording is never attempted.",properties:{kind:{const:"read_only",type:"string"}},required:["kind"],type:"object"},{additionalProperties:!1,properties:{fact_count:{format:"uint",minimum:0,type:"integer"},kind:{const:"recorded",type:"string"}},required:["kind","fact_count"],type:"object"},{additionalProperties:!1,properties:{kind:{const:"degraded",type:"string"},reason:{$ref:"#/$defs/FactRetrievalTelemetryDegradationV1"}},required:["kind","reason"],type:"object"}]},FactSearchGraphCoverageV1:yB,FactSearchGraphDegradationV1:yK,FactSearchHitV1:yJ,FactSearchScoresV1:yZ,FactTelemetryV1:yX,FactV1:yY,LocatorDigest:_i,ProjectId:_6,ProvenanceId:vi,RetrievalAnchorId:vx,UtcMicros:bX},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"Explicit search additionally records retrieval telemetry for its returned\nhits; `retrieval_telemetry` reports whether that recall bookkeeping\nhappened, so a served result can truthfully carry a degraded write lane.",properties:{graph_coverage:{$ref:"#/$defs/FactSearchGraphCoverageV1"},hits:{items:{$ref:"#/$defs/FactSearchHitV1"},type:"array"},next_after:{description:"Opaque continuation, bound to this operation and request.",type:["string","null"]},owner:{$ref:"#/$defs/FactCommitOwnerV1"},retrieval_telemetry:{$ref:"#/$defs/FactRetrievalTelemetryV1"}},required:["owner","hits","graph_coverage","retrieval_telemetry"],title:"FactStoreSearchResultV1",type:"object"},{$defs:{FactEventId:yD,FactId:yL,MemoryScopeV1:_m,ProjectId:_6},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"Mark `fact_id` as superseded by `superseded_by`. The old fact leaves the\ndefault retrieval surfaces but stays readable by id through its history;\npayload and trust are never rewritten.",properties:{expected_last_event_id:{anyOf:[{$ref:"#/$defs/FactEventId"},{type:"null"}]},fact_id:{$ref:"#/$defs/FactId"},memory_scope:{anyOf:[{$ref:"#/$defs/MemoryScopeV1"},{type:"null"}]},project_selector:{additionalProperties:!1,description:'Exact registered-project selector. Reads and fact effects run against the\nselected project.\n\nInlined so every request schema advertises the closed selector contract\n(`required: ["project_id"]`, no additional properties) directly on its\n`project_selector` property instead of behind a `$defs` reference, matching\nthe selector shape the MCP dispatch policy promises for selector-accepting\ntools.',properties:{project_id:{$ref:"#/$defs/ProjectId"}},required:["project_id"],type:["object","null"]},superseded_by:{$ref:"#/$defs/FactId"}},required:["fact_id","superseded_by"],title:"FactStoreSupersedeRequestV1",type:"object"},{$defs:{FactAssertionId:yA,FactCommitDispositionV1:yM,FactCommitOwnerV1:yN,FactCommitReceiptV1:yz,FactEventId:yD,FactId:yL,ProjectId:_6},$schema:"https://json-schema.org/draft/2020-12/schema",description:"Outcome of an explicit supersession. `superseded` carries the durable\ncommit receipt of the `Curated { SupersededBy }` lineage event;\n`already_superseded` reports the successor already recorded for the fact.",oneOf:[{additionalProperties:!1,properties:{commit:{$ref:"#/$defs/FactCommitReceiptV1"},fact_id:{$ref:"#/$defs/FactId"},outcome:{const:"superseded",type:"string"},superseded_by:{$ref:"#/$defs/FactId"}},required:["outcome","fact_id","superseded_by","commit"],type:"object"},{additionalProperties:!1,properties:{fact_id:{$ref:"#/$defs/FactId"},outcome:{const:"already_superseded",type:"string"},superseded_by:{$ref:"#/$defs/FactId"}},required:["outcome","fact_id","superseded_by"],type:"object"}],title:"FactStoreSupersedeResultV1"},{$defs:{FactCategoryV1:yW,FactEventId:yD,FactId:yL,FactSourceLabelPatchV1:{oneOf:[{additionalProperties:!1,properties:{kind:{const:"set",type:"string"},value:{type:"string"}},required:["kind","value"],type:"object"},{additionalProperties:!1,properties:{kind:{const:"clear",type:"string"}},required:["kind"],type:"object"}]},MemoryScopeV1:_m,ProjectId:_6},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{category:{anyOf:[{$ref:"#/$defs/FactCategoryV1"},{type:"null"}]},content:{type:["string","null"]},entities:{items:{type:"string"},type:["array","null"]},expected_last_event_id:{anyOf:[{$ref:"#/$defs/FactEventId"},{type:"null"}]},fact_id:{$ref:"#/$defs/FactId"},memory_scope:{anyOf:[{$ref:"#/$defs/MemoryScopeV1"},{type:"null"}]},metadata:{additionalProperties:!0,type:["object","null"]},project_selector:{additionalProperties:!1,description:'Exact registered-project selector. Reads and fact effects run against the\nselected project.\n\nInlined so every request schema advertises the closed selector contract\n(`required: ["project_id"]`, no additional properties) directly on its\n`project_selector` property instead of behind a `$defs` reference, matching\nthe selector shape the MCP dispatch policy promises for selector-accepting\ntools.',properties:{project_id:{$ref:"#/$defs/ProjectId"}},required:["project_id"],type:["object","null"]},source_label:{anyOf:[{$ref:"#/$defs/FactSourceLabelPatchV1"},{type:"null"}]},tags:{items:{type:"string"},type:["array","null"]},trust:{format:"double",type:["number","null"]}},required:["fact_id"],title:"FactStoreUpdateRequestV1",type:"object"},{$defs:{FactAssertionId:yA,FactCategoryV1:yW,FactCommitDispositionV1:yM,FactCommitOwnerV1:yN,FactCommitReceiptV1:yz,FactEventId:yD,FactId:yL,FactIdentitySourceResultV1:yU,FactPayloadAccessV1:yH,FactProjectionV1:yG,FactStatusV1:yQ,FactTelemetryV1:yX,FactV1:yY,LocatorDigest:_i,ProjectId:_6,ProvenanceId:vi,RetrievalAnchorId:vx,UtcMicros:bX},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{commit:{$ref:"#/$defs/FactCommitReceiptV1"},fact:{$ref:"#/$defs/FactProjectionV1"},trust_delta_millionths:{format:"int32",type:"integer"}},required:["fact","trust_delta_millionths","commit"],title:"FactStoreUpdateResultV1",type:"object"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"Explicit advisory-cycle trigger for one document in the admitted project.",properties:{document_uri:{type:"string"}},required:["document_uri"],title:"FeedbackAdvisoryCycleSurfaceRequestV1",type:"object"},{$defs:{AgentInstanceId:fS,CodeGenerationId:hg,CommitId:hI,DiagnosticSeverityV1:yS,FeedbackAdvisoryCycleWireV1:{additionalProperties:!1,description:"One canonical cycle result plus whether its durable publication committed.\n\n`published` intentionally remains adjacent to the cycle fields on the\nwire: publication is a property of this exact cycle, not of a page or a\nlater lookup.",properties:{advisory_only:{type:"boolean"},advisory_provider_states:{items:{$ref:"#/$defs/FeedbackAdvisoryProviderStateV1"},type:"array"},affected_tests_state:{anyOf:[{$ref:"#/$defs/FeedbackImpactStateV1"},{type:"null"}]},baseline_states:{items:{$ref:"#/$defs/FeedbackBaselineStateV1"},type:"array"},configuration_digest:{$ref:"#/$defs/ManifestDigest"},content_identity:{anyOf:[{$ref:"#/$defs/FeedbackContentIdentityV1"},{type:"null"}]},cycle_id:{$ref:"#/$defs/FeedbackCycleId"},durability:{$ref:"#/$defs/FeedbackDurabilityV1"},findings:{items:{$ref:"#/$defs/FeedbackFindingV1"},type:"array"},impact:{anyOf:[{$ref:"#/$defs/FeedbackImpactV1"},{type:"null"}]},impact_state:{anyOf:[{$ref:"#/$defs/FeedbackImpactStateV1"},{type:"null"}]},omitted_findings:{format:"uint64",minimum:0,type:"integer"},policy_digest:{$ref:"#/$defs/ManifestDigest"},provider_states:{items:{$ref:"#/$defs/ProviderEvaluationStateV1"},type:"array"},published:{type:"boolean"},result_id:{$ref:"#/$defs/FeedbackResultId"},returned_findings:{format:"uint64",minimum:0,type:"integer"},scope:{$ref:"#/$defs/FeedbackScopeV1"},termination:{$ref:"#/$defs/FeedbackCycleTerminationV1"},total_findings:{format:"uint64",minimum:0,type:"integer"}},required:["result_id","cycle_id","scope","durability","policy_digest","configuration_digest","termination","provider_states","baseline_states","findings","total_findings","returned_findings","omitted_findings","advisory_only","published"],type:"object"},FeedbackAdvisoryFindingHandleV1:{additionalProperties:!1,description:"One daemon-minted read-handle pair for a finding in the published cycle.",properties:{expansion_handle:{type:["string","null"]},finding_id:{$ref:"#/$defs/FeedbackFindingId"},get_handle:{type:"string"},retrieval_anchor_id:{anyOf:[{$ref:"#/$defs/RetrievalAnchorId"},{type:"null"}]}},required:["finding_id","get_handle"],type:"object"},FeedbackAdvisoryProviderStateV1:y1,FeedbackAdvisoryReadHandlesV1:{additionalProperties:!1,description:"Daemon-minted handles for reads over this exact publication.",properties:{affected_tests_handle:{type:"string"},diagnostics_handle:{type:"string"},impact_handle:{type:"string"},list_handle:{type:"string"}},required:["diagnostics_handle","impact_handle","affected_tests_handle","list_handle"],type:"object"},FeedbackBaselineStateV1:y0,FeedbackContentIdentityV1:y2,FeedbackCycleId:y4,FeedbackCycleTerminationV1:y6,FeedbackDiagnosticClassificationV1:y3,FeedbackDiagnosticProducerV1:y9,FeedbackDiagnosticProjectionV1:y5,FeedbackDurabilityV1:y8,FeedbackFindingId:y7,FeedbackFindingLifecycleV1:ge,FeedbackFindingV1:gr,FeedbackImpactStateV1:gi,FeedbackImpactV1:go,FeedbackResultId:gn,FeedbackScopeV1:ga,FeedbackTargetV1:gs,FileOccurrenceId:gd,HostInstanceId:gU,ManifestDigest:_p,ProjectId:_6,ProviderEvaluationStateV1:vo,RepositoryId:v$,RetrievalAnchorId:vx,SessionId:be,SourceSpan:bk,SymbolOccurrenceId:bx,WorktreeId:SJ},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"Exact advisory-cycle payload serialized by the mounted daemon route.",properties:{cycle:{$ref:"#/$defs/FeedbackAdvisoryCycleWireV1"},finding_handles:{items:{$ref:"#/$defs/FeedbackAdvisoryFindingHandleV1"},type:"array"},read_handles:{anyOf:[{$ref:"#/$defs/FeedbackAdvisoryReadHandlesV1"},{type:"null"}]}},required:["cycle","finding_handles"],title:"FeedbackAdvisoryCycleSurfaceResultV1",type:"object"},{$defs:{AgentInstanceId:fS,CodeGenerationId:hg,CommitId:hI,DiagnosticSeverityV1:yS,FeedbackAdvisoryProviderStateV1:y1,FeedbackBaselineStateV1:y0,FeedbackContentIdentityV1:y2,FeedbackCycleId:y4,FeedbackCycleResultV1:{additionalProperties:!1,description:"One deterministic result for one trigger. The result represents a\nterminal advisory evaluation and contains no next-action execution hook.",properties:{advisory_only:{type:"boolean"},advisory_provider_states:{items:{$ref:"#/$defs/FeedbackAdvisoryProviderStateV1"},type:"array"},affected_tests_state:{anyOf:[{$ref:"#/$defs/FeedbackImpactStateV1"},{type:"null"}]},baseline_states:{items:{$ref:"#/$defs/FeedbackBaselineStateV1"},type:"array"},configuration_digest:{$ref:"#/$defs/ManifestDigest"},content_identity:{anyOf:[{$ref:"#/$defs/FeedbackContentIdentityV1"},{type:"null"}]},cycle_id:{$ref:"#/$defs/FeedbackCycleId"},durability:{$ref:"#/$defs/FeedbackDurabilityV1"},findings:{items:{$ref:"#/$defs/FeedbackFindingV1"},type:"array"},impact:{anyOf:[{$ref:"#/$defs/FeedbackImpactV1"},{type:"null"}]},impact_state:{anyOf:[{$ref:"#/$defs/FeedbackImpactStateV1"},{type:"null"}]},omitted_findings:{format:"uint64",minimum:0,type:"integer"},policy_digest:{$ref:"#/$defs/ManifestDigest"},provider_states:{items:{$ref:"#/$defs/ProviderEvaluationStateV1"},type:"array"},result_id:{$ref:"#/$defs/FeedbackResultId"},returned_findings:{format:"uint64",minimum:0,type:"integer"},scope:{$ref:"#/$defs/FeedbackScopeV1"},termination:{$ref:"#/$defs/FeedbackCycleTerminationV1"},total_findings:{format:"uint64",minimum:0,type:"integer"}},required:["result_id","cycle_id","scope","durability","policy_digest","configuration_digest","termination","provider_states","baseline_states","findings","total_findings","returned_findings","omitted_findings","advisory_only"],type:"object"},FeedbackCycleTerminationV1:y6,FeedbackDiagnosticClassificationV1:y3,FeedbackDiagnosticProducerV1:y9,FeedbackDiagnosticProjectionV1:y5,FeedbackDurabilityV1:y8,FeedbackFindingId:y7,FeedbackFindingLifecycleV1:ge,FeedbackFindingV1:gr,FeedbackImpactStateV1:gi,FeedbackImpactV1:go,FeedbackResultId:gn,FeedbackScopeV1:ga,FeedbackTargetV1:gs,FileOccurrenceId:gd,HostInstanceId:gU,ManifestDigest:_p,ProjectId:_6,ProviderEvaluationStateV1:vo,RepositoryId:v$,RetrievalAnchorId:vx,SessionId:be,SourceSpan:bk,SymbolOccurrenceId:bx,WorktreeId:SJ},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{cycle:{$ref:"#/$defs/FeedbackCycleResultV1"}},required:["cycle"],title:"FeedbackDiagnosticsReadResultV1",type:"object"},{$defs:{AnchorExpandResult:{additionalProperties:!1,properties:{anchors:{items:{$ref:"#/$defs/RetrievalAnchorId"},type:"array"}},required:["anchors"],type:"object"},CommitId:hI,DiagnosticSeverityV1:yS,FeedbackCycleId:y4,FeedbackDiagnosticClassificationV1:y3,FeedbackDiagnosticProducerV1:y9,FeedbackDiagnosticProjectionV1:y5,FeedbackFindingId:y7,FeedbackFindingLifecycleV1:ge,FeedbackFindingReadV1:gt,FeedbackFindingV1:gr,FeedbackResultId:gn,FeedbackScopeV1:ga,FileOccurrenceId:gd,ProjectId:_6,ProviderEvaluationStateV1:vo,RepositoryId:v$,RetrievalAnchorId:vx,SourceSpan:bk,SymbolOccurrenceId:bx,WorktreeId:SJ},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{expansion:{$ref:"#/$defs/AnchorExpandResult"},finding:{$ref:"#/$defs/FeedbackFindingReadV1"}},required:["finding","expansion"],title:"FeedbackExpandResultV1",type:"object"},{$defs:{CommitId:hI,DiagnosticSeverityV1:yS,FeedbackCycleId:y4,FeedbackDiagnosticClassificationV1:y3,FeedbackDiagnosticProducerV1:y9,FeedbackDiagnosticProjectionV1:y5,FeedbackFindingId:y7,FeedbackFindingLifecycleV1:ge,FeedbackFindingReadV1:gt,FeedbackFindingV1:gr,FeedbackResultId:gn,FeedbackScopeV1:ga,FileOccurrenceId:gd,ProjectId:_6,ProviderEvaluationStateV1:vo,RepositoryId:v$,RetrievalAnchorId:vx,SourceSpan:bk,SymbolOccurrenceId:bx,WorktreeId:SJ},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{finding:{$ref:"#/$defs/FeedbackFindingReadV1"}},required:["finding"],title:"FeedbackGetResultV1",type:"object"},{$defs:{AgentInstanceId:fS,CodeGenerationId:hg,CommitId:hI,FeedbackContentIdentityV1:y2,FeedbackCycleId:y4,FeedbackImpactStateV1:gi,FeedbackImpactV1:go,FeedbackResultId:gn,FeedbackScopeV1:ga,FeedbackTargetV1:gs,FileOccurrenceId:gd,HostInstanceId:gU,ManifestDigest:_p,ProjectId:_6,RepositoryId:v$,RetrievalAnchorId:vx,SessionId:be,SourceSpan:bk,SymbolOccurrenceId:bx,WorktreeId:SJ},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"Canonical impact projection returned by `feedback_impact`.\n\nThe daemon-side projection owner (usecases) re-exports this type; it lives\nhere so the catalog contribution can register its schema body as the single\nRust-owned wire authority. Results project from an authorized completed\ncycle, and the canonical response wire remains consumable by typed SDKs.",properties:{content_identity:{anyOf:[{$ref:"#/$defs/FeedbackContentIdentityV1"},{type:"null"}]},cycle_id:{$ref:"#/$defs/FeedbackCycleId"},impact:{anyOf:[{$ref:"#/$defs/FeedbackImpactV1"},{type:"null"}]},result_id:{$ref:"#/$defs/FeedbackResultId"},scope:{$ref:"#/$defs/FeedbackScopeV1"},state:{anyOf:[{$ref:"#/$defs/FeedbackImpactStateV1"},{type:"null"}]}},required:["result_id","cycle_id","scope"],title:"CanonicalFeedbackImpactProjectionV1",type:"object"},{$defs:{CommitId:hI,DiagnosticSeverityV1:yS,FeedbackCycleId:y4,FeedbackDiagnosticClassificationV1:y3,FeedbackDiagnosticProducerV1:y9,FeedbackDiagnosticProjectionV1:y5,FeedbackFindingId:y7,FeedbackFindingLifecycleV1:ge,FeedbackFindingReadV1:gt,FeedbackFindingV1:gr,FeedbackResultId:gn,FeedbackScopeV1:ga,FileOccurrenceId:gd,ProjectId:_6,ProviderEvaluationStateV1:vo,RepositoryId:v$,RetrievalAnchorId:vx,SourceSpan:bk,SymbolOccurrenceId:bx,WorktreeId:SJ},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{findings:{items:{$ref:"#/$defs/FeedbackFindingReadV1"},type:"array"}},required:["findings"],title:"FeedbackListResultV1",type:"object"},{$defs:{UtcMicros:bX},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{observed_at:{$ref:"#/$defs/UtcMicros"}},required:["observed_at"],title:"FeedbackProximityReadRequestV1",type:"object"},{$defs:{AgentInstanceId:fS,CodeGenerationId:hg,CommitId:hI,FeedbackProximityAccessKindV1:{enum:["read","write"],type:"string"},FeedbackProximityCloneHandleV1:{additionalProperties:!1,properties:{retrieval_anchor_ids:{items:{$ref:"#/$defs/RetrievalAnchorId"},type:"array"},source_generation:{$ref:"#/$defs/CodeGenerationId"},source_symbol:{$ref:"#/$defs/SymbolOccurrenceId"}},required:["source_generation","source_symbol","retrieval_anchor_ids"],type:"object"},FeedbackProximityConflictDifferenceV1:{additionalProperties:!1,properties:{difference_digest:{$ref:"#/$defs/ManifestDigest"},file:{$ref:"#/$defs/FileOccurrenceId"},span:{$ref:"#/$defs/SourceSpan"}},required:["file","span","difference_digest"],type:"object"},FeedbackProximityConflictHandleV1:{additionalProperties:!1,properties:{common_base_revision:{$ref:"#/$defs/CommitId"},differences:{items:{$ref:"#/$defs/FeedbackProximityConflictDifferenceV1"},type:"array"},evidence_digest:{$ref:"#/$defs/ManifestDigest"},left_head_revision:{$ref:"#/$defs/CommitId"},right_head_revision:{$ref:"#/$defs/CommitId"}},required:["common_base_revision","left_head_revision","right_head_revision","evidence_digest","differences"],type:"object"},FeedbackProximityEncounterV1:{additionalProperties:!1,properties:{coverage:{$ref:"#/$defs/ProximityCoverageV1"},encounter_id:{$ref:"#/$defs/ManifestDigest"},expires_at:{$ref:"#/$defs/UtcMicros"},interval:{$ref:"#/$defs/FeedbackProximityIntervalV1"},observed_at:{$ref:"#/$defs/UtcMicros"},participants:{items:{$ref:"#/$defs/FeedbackProximityParticipantV1"},type:"array"},relation:{$ref:"#/$defs/FeedbackProximityRelationV1"},scope:{$ref:"#/$defs/FeedbackScopeV1"}},required:["encounter_id","scope","interval","participants","relation","observed_at","expires_at","coverage"],type:"object"},FeedbackProximityIntervalV1:{additionalProperties:!1,properties:{end:{$ref:"#/$defs/UtcMicros"},start:{$ref:"#/$defs/UtcMicros"}},required:["start","end"],type:"object"},FeedbackProximityOmissionV1:{enum:["active_session_limit","session_activity_limit","recent_observation_limit","edited_path_limit","encounter_limit","missing_participant_observation","missing_participant_worktree","missing_participant_revision","missing_code_address","clone_coverage_partial","conflict_evidence_unavailable","code_index_revision_mismatch"],type:"string"},FeedbackProximityParticipantV1:{additionalProperties:!1,properties:{access:{$ref:"#/$defs/FeedbackProximityAccessKindV1"},activity:{$ref:"#/$defs/FeedbackProximityIntervalV1"},address:{$ref:"#/$defs/ProximityAddressV1"},agent_id:{$ref:"#/$defs/AgentInstanceId"},branch_ref:{anyOf:[{$ref:"#/$defs/RefId"},{type:"null"}]},head_revision:{anyOf:[{$ref:"#/$defs/CommitId"},{type:"null"}]},source:{$ref:"#/$defs/ObservationSourceIdentityV1"},worktree_id:{anyOf:[{$ref:"#/$defs/WorktreeId"},{type:"null"}]},worktree_root:{type:"string"}},required:["source","agent_id","worktree_root","access","activity","address"],type:"object"},FeedbackProximityReadPageV1:{additionalProperties:!1,properties:{encounters:{items:{$ref:"#/$defs/FeedbackProximityEncounterV1"},type:"array"},expires_at:{$ref:"#/$defs/UtcMicros"},observed_at:{$ref:"#/$defs/UtcMicros"},scope:{$ref:"#/$defs/FeedbackScopeV1"},source_generation:{$ref:"#/$defs/CodeGenerationId"}},required:["scope","source_generation","observed_at","expires_at","encounters"],type:"object"},FeedbackProximityRelationV1:{oneOf:[{additionalProperties:!1,properties:{relation_kind:{const:"code_neighborhood_candidate",type:"string"},warning_class:{$ref:"#/$defs/ProximityWarningClassV1"}},required:["relation_kind","warning_class"],type:"object"},{additionalProperties:!1,properties:{clone_handle:{$ref:"#/$defs/FeedbackProximityCloneHandleV1"},relation_kind:{const:"shared_code_candidate",type:"string"},warning_class:{$ref:"#/$defs/ProximityWarningClassV1"}},required:["relation_kind","warning_class","clone_handle"],type:"object"},{additionalProperties:!1,properties:{relation_kind:{const:"overlapping_edit",type:"string"},warning_class:{$ref:"#/$defs/ProximityWarningClassV1"}},required:["relation_kind","warning_class"],type:"object"},{additionalProperties:!1,properties:{conflict_handle:{$ref:"#/$defs/FeedbackProximityConflictHandleV1"},relation_kind:{const:"confirmed_conflict",type:"string"}},required:["relation_kind","conflict_handle"],type:"object"}]},FeedbackScopeV1:ga,FileOccurrenceId:gd,ManifestDigest:_p,ObservationSourceIdentityV1:_N,ProjectId:_6,ProviderId:vn,ProximityAddressV1:{additionalProperties:!1,description:"A privacy-scoped code address. It identifies the coarse changed-code shape\nbut carries no other actor, session, or private-source content.",properties:{file:{$ref:"#/$defs/FileOccurrenceId"},scope:{$ref:"#/$defs/FeedbackScopeV1"},span:{anyOf:[{$ref:"#/$defs/SourceSpan"},{type:"null"}]},symbol:{anyOf:[{$ref:"#/$defs/SymbolOccurrenceId"},{type:"null"}]}},required:["scope","file"],type:"object"},ProximityCoverageV1:{enum:["complete","partial","stale","unavailable","denied","private"],type:"string"},ProximityWarningClassV1:{enum:["same_file","overlapping_range","same_symbol","same_package","same_crate","neighborhood","shared_caller","shared_dependency","shared_test"],type:"string"},RefId:vf,RepositoryId:v$,RetrievalAnchorId:vx,SessionId:be,SourceSpan:bk,SymbolOccurrenceId:bx,UtcMicros:bX,WorktreeId:SJ},$schema:"https://json-schema.org/draft/2020-12/schema",oneOf:[{additionalProperties:!1,properties:{page:{$ref:"#/$defs/FeedbackProximityReadPageV1"},state:{const:"complete",type:"string"}},required:["state","page"],type:"object"},{additionalProperties:!1,properties:{page:{$ref:"#/$defs/FeedbackProximityReadPageV1"},state:{const:"complete_zero",type:"string"}},required:["state","page"],type:"object"},{additionalProperties:!1,properties:{omissions:{items:{$ref:"#/$defs/FeedbackProximityOmissionV1"},type:"array"},page:{$ref:"#/$defs/FeedbackProximityReadPageV1"},state:{const:"partial",type:"string"}},required:["state","page","omissions"],type:"object"},{additionalProperties:!1,properties:{omissions:{items:{$ref:"#/$defs/FeedbackProximityOmissionV1"},type:"array"},page:{$ref:"#/$defs/FeedbackProximityReadPageV1"},state:{const:"stale",type:"string"}},required:["state","page","omissions"],type:"object"},{additionalProperties:!1,properties:{observed_at:{$ref:"#/$defs/UtcMicros"},state:{const:"denied",type:"string"}},required:["state","observed_at"],type:"object"},{additionalProperties:!1,properties:{observed_at:{$ref:"#/$defs/UtcMicros"},state:{const:"unavailable",type:"string"}},required:["state","observed_at"],type:"object"}],title:"FeedbackProximityReadResultV1"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{field:{description:"Field name. Bare name ('last_sync_at') matches across structs;\nqualified form ('GraphStats::last_sync_at') narrows to one struct's\nfield.",type:"string"},limit:{description:"Maximum sites per kind (default: 200, max: 2000).",format:"uint32",minimum:0,type:["integer","null"]},writes_only:{description:"When true, returns only write_sites and omits reads. Default false.",type:["boolean","null"]}},required:["field"],title:"FieldSitesSurfaceRequestV1",type:"object"},{$defs:{CodeIndexBuildBlockedReasonV1:hv,CodeIndexConvergenceParkedV1:hb,CodeIndexStalenessStateV1:hw,FieldSiteV1:{additionalProperties:!1,properties:{enclosing:{type:["string","null"]},file:{type:"string"},line:{format:"uint32",minimum:0,type:"integer"},snippet:{type:"string"}},required:["file","line","snippet"],type:"object"},PrimitiveFreshnessStateV1:_K,PrimitiveIndexingStateV1:_J,PrimitiveSearchFreshnessV1:_Y},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"`read_count` and `read_sites` are absent when the request asked for\nwrites only.",properties:{field:{type:"string"},freshness:{anyOf:[{$ref:"#/$defs/PrimitiveSearchFreshnessV1"},{type:"null"}],description:"The worktree verdict a served graph read opens with."},qualifier:{type:["string","null"]},qualifier_applied:{type:"boolean"},read_count:{format:"uint64",minimum:0,type:["integer","null"]},read_sites:{items:{$ref:"#/$defs/FieldSiteV1"},type:["array","null"]},write_count:{format:"uint64",minimum:0,type:"integer"},write_sites:{items:{$ref:"#/$defs/FieldSiteV1"},type:"array"}},required:["field","qualifier_applied","write_count","write_sites"],title:"FieldSitesResultV1",type:"object"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{file:{type:"string"}},required:["file"],title:"FileDependentsPrimitiveRequest",type:"object"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{dependent_files:{items:{type:"string"},type:"array"},file:{type:"string"}},required:["file","dependent_files"],title:"FileDependentsPrimitiveResult",type:"object"},{$defs:{FilesLayoutV1:gc},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{layout:{anyOf:[{$ref:"#/$defs/FilesLayoutV1"},{type:"null"}],description:"File listing layout: flat (one per line) or grouped by directory\n(default: grouped)."},path:{description:"Filter to files under this directory path.",type:["string","null"]},pattern:{description:"Filter files matching this glob pattern (e.g. '**/*.rs').",type:["string","null"]}},title:"FilesSurfaceRequestV1",type:"object"},{$defs:{CodeIndexBuildBlockedReasonV1:hv,CodeIndexConvergenceParkedV1:hb,CodeIndexOmittedSourceV1:h$,CodeIndexOmittedSourcesV1:hS,CodeIndexSourceOmissionReasonV1:hk,CodeIndexStalenessStateV1:hw,FilesLayoutV1:gc,IndexedFileV1:{additionalProperties:!1,properties:{bytes:{format:"uint64",minimum:0,type:"integer"},path:{type:"string"},symbols:{format:"uint64",minimum:0,type:"integer"}},required:["path","symbols","bytes"],type:"object"},PrimitiveFreshnessStateV1:_K,PrimitiveIndexingStateV1:_J,PrimitiveSearchFreshnessV1:_Y},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{count:{format:"uint",minimum:0,type:"integer"},files:{items:{$ref:"#/$defs/IndexedFileV1"},type:"array"},freshness:{anyOf:[{$ref:"#/$defs/PrimitiveSearchFreshnessV1"},{type:"null"}],description:"The worktree verdict a served graph read opens with."},layout:{$ref:"#/$defs/FilesLayoutV1"},worktree_omitted_sources:{anyOf:[{$ref:"#/$defs/CodeIndexOmittedSourcesV1"},{type:"null"}],description:"Sources the serving snapshot captured for the whole worktree but does\nnot index, unfiltered by `path` or `pattern`."}},required:["count","layout","files"],title:"FilesResultV1",type:"object"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{lazy_index_ignored_dependencies:{description:"Opt in to bounded indexing of ignored dependency entry files when an\nimport hint matches (default: false).",type:["boolean","null"]},limit:{description:"Maximum matches to return (default: 20, max: 200).",format:"uint32",minimum:0,type:["integer","null"]},name:{description:"Exact bare symbol name (no `::`, no glob).",type:"string"}},required:["name"],title:"FindExactSymbolSurfaceRequestV1",type:"object"},{$defs:{CodeIndexBuildBlockedReasonV1:hv,CodeIndexConvergenceParkedV1:hb,CodeIndexStalenessStateV1:hw,FindExactSymbolMatchV1:{additionalProperties:!1,properties:{file:{type:"string"},id:{type:"string"},kind:{type:"string"},line:{format:"uint32",minimum:0,type:"integer"},name:{type:"string"},qualified_name:{type:"string"},signature:{type:["string","null"]}},required:["id","name","qualified_name","kind","file","line"],type:"object"},PrimitiveFreshnessStateV1:_K,PrimitiveIndexingStateV1:_J,PrimitiveSearchFreshnessV1:_Y},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{count:{format:"uint64",minimum:0,type:"integer"},freshness:{anyOf:[{$ref:"#/$defs/PrimitiveSearchFreshnessV1"},{type:"null"}],description:"The worktree verdict a served graph read opens with."},matches:{items:{$ref:"#/$defs/FindExactSymbolMatchV1"},type:"array"},name:{type:"string"},suggestions:{description:"Nearest indexed bare names when `count` is 0. Empty when the query\nmatched, or when it is not itself a bare identifier.",items:{type:"string"},type:"array"}},required:["name","count","matches"],title:"FindExactSymbolResultV1",type:"object"},{$defs:{GiniMetricV1:gm,GiniScopeV1:gf},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{limit:{description:"Number of top outliers to return (default: 10, at most 100).",format:"uint32",minimum:0,type:["integer","null"]},metric:{anyOf:[{$ref:"#/$defs/GiniMetricV1"},{type:"null"}],description:"Metric to measure inequality for (default: complexity)."},path:{description:"Filter to files under this directory path.",type:["string","null"]},scope:{anyOf:[{$ref:"#/$defs/GiniScopeV1"},{type:"null"}],description:"Aggregate per file or per symbol (default: file)."}},title:"GiniSurfaceRequestV1",type:"object"},{$defs:{CodeIndexBuildBlockedReasonV1:hv,CodeIndexConvergenceParkedV1:hb,CodeIndexStalenessStateV1:hw,GiniMetricV1:gm,GiniOutlierV1:{additionalProperties:!1,properties:{name:{type:"string"},pct_of_max:{format:"double",type:"number"},value:{format:"double",type:"number"}},required:["name","value","pct_of_max"],type:"object"},GiniScopeV1:gf,PrimitiveFreshnessStateV1:_K,PrimitiveIndexingStateV1:_J,PrimitiveSearchFreshnessV1:_Y},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{freshness:{anyOf:[{$ref:"#/$defs/PrimitiveSearchFreshnessV1"},{type:"null"}],description:"The worktree verdict a served graph read opens with."},gini:{format:"double",type:"number"},incomplete_complexity_symbols:{description:"Symbols left out because their bounded complexity walk did not cover\nthe body; their counters are lower bounds and measure nothing here.",format:"uint64",minimum:0,type:"integer"},interpretation:{type:"string"},metric:{$ref:"#/$defs/GiniMetricV1"},outliers:{items:{$ref:"#/$defs/GiniOutlierV1"},type:"array"},scope:{$ref:"#/$defs/GiniScopeV1"},total_items:{format:"uint64",minimum:0,type:"integer"}},required:["gini","interpretation","total_items","metric","scope","incomplete_complexity_symbols","outliers"],title:"GiniResultV1",type:"object"},{$defs:{GitIndexPreviewId:gR,ManifestDigest:_p},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"Public MCP/CLI request to apply one immutable Git index preview.",properties:{idempotency_key:{type:"string"},preview_digest:{$ref:"#/$defs/ManifestDigest"},preview_id:{$ref:"#/$defs/GitIndexPreviewId"}},required:["preview_id","preview_digest","idempotency_key"],title:"GitApplySurfaceRequest",type:"object"},{$defs:{GitIndexPreviewId:gR,GitIndexReceiptId:{description:"Strongly typed canonical identity: `GitIndexReceiptId`.",type:"string"},GitIndexReceiptOutcomeV1:{description:"Terminal outcome a recovery record can prove without re-running a native\nmutation.",enum:["committed","aborted_no_change","needs_inspection"],type:"string"},GitIndexTransactionId:{description:"Strongly typed canonical identity: `GitIndexTransactionId`.",type:"string"},GitIndexTransactionOperationV1:gq,GitOidV1:gI,ManifestDigest:_p,UtcMicros:bX},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"Durable, integrity-protected receipt for one Git index transaction.",properties:{committed_at:{$ref:"#/$defs/UtcMicros"},final_snapshot_captured:{description:"Whether `final_snapshot_digest`, `new_index_tree`, and `new_head` came\nfrom a post-outcome native observation. An unavailable observation is\nvalid only for a terminal outcome that does not claim a commit.",type:"boolean"},final_snapshot_digest:{$ref:"#/$defs/ManifestDigest",description:"Digest of a snapshot that was actually captured after the terminal\nobservation. When `final_snapshot_captured` is false this retains the\nexpected snapshot digest only as a stable schema placeholder; callers\nmust not treat it as an observation."},new_head:{anyOf:[{$ref:"#/$defs/GitOidV1"},{type:"null"}]},new_index_tree:{anyOf:[{$ref:"#/$defs/GitOidV1"},{type:"null"}]},old_head:{anyOf:[{$ref:"#/$defs/GitOidV1"},{type:"null"}]},old_index_tree:{anyOf:[{$ref:"#/$defs/GitOidV1"},{type:"null"}]},old_snapshot_digest:{$ref:"#/$defs/ManifestDigest"},operation:{$ref:"#/$defs/GitIndexTransactionOperationV1"},outcome:{$ref:"#/$defs/GitIndexReceiptOutcomeV1"},preview_id:{$ref:"#/$defs/GitIndexPreviewId"},receipt_digest:{$ref:"#/$defs/ManifestDigest"},receipt_id:{$ref:"#/$defs/GitIndexReceiptId"},selected_hunk_digests:{items:{$ref:"#/$defs/ManifestDigest"},type:"array"},transaction_id:{$ref:"#/$defs/GitIndexTransactionId"}},required:["receipt_id","transaction_id","preview_id","operation","old_snapshot_digest","final_snapshot_digest","final_snapshot_captured","selected_hunk_digests","outcome","committed_at","receipt_digest"],title:"GitIndexTransactionReceiptV1",type:"object"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"Request shape for the public `git_blame` surface.",properties:{follow_renames:{default:!1,type:"boolean"},max_bytes:{format:"uint64",minimum:0,type:["integer","null"]},max_entries:{format:"uint32",minimum:0,type:["integer","null"]},path:{type:"string"}},required:["path"],title:"GitBlameSurfaceRequest",type:"object"},{$defs:{GitBlameAvailabilityV1:{description:"Why blame/line provenance is unavailable for a path.",enum:["available","path_not_tracked","unborn_branch","binary_file"],type:"string"},GitBlameLineV1:{additionalProperties:!1,description:"Line provenance for one final (current) line.",properties:{author:{$ref:"#/$defs/GitCommitIdentityV1"},boundary:{description:"True when the origin commit is a history boundary (e.g. shallow root).",type:"boolean"},commit:{$ref:"#/$defs/GitOidV1"},final_line:{description:"1-based line number in the blamed revision.",format:"uint32",minimum:0,type:"integer"},origin_line:{description:"1-based line number in the origin commit.",format:"uint32",minimum:0,type:"integer"},previous:{anyOf:[{$ref:"#/$defs/GitBlamePreviousV1"},{type:"null"}]}},required:["final_line","origin_line","commit","author","boundary"],type:"object"},GitBlamePreviousV1:{additionalProperties:!1,description:"Rename-following evidence for one blamed line (`previous` record).",properties:{commit:{$ref:"#/$defs/GitOidV1"},path:{type:"string"}},required:["commit","path"],type:"object"},GitBlameV1:{additionalProperties:!1,description:"Typed blame result: per-line provenance plus boundary, rename-following,\nand unavailable states.",properties:{availability:{$ref:"#/$defs/GitBlameAvailabilityV1"},coverage:{$ref:"#/$defs/GitCoverageV1"},lines:{items:{$ref:"#/$defs/GitBlameLineV1"},type:"array"},path:{type:"string"},repository:{$ref:"#/$defs/RepositoryId"}},required:["repository","path","lines","availability","coverage"],type:"object"},GitBlobExpectationV1:gh,GitChangeKindV1:gy,GitCommitIdentityV1:{additionalProperties:!1,description:"Author/committer identity and timestamp evidence for one commit.",properties:{at:{$ref:"#/$defs/UtcMicros"},email:{type:"string"},name:{type:"string"}},required:["name","email","at"],type:"object"},GitCommitMetadataV1:{additionalProperties:!1,description:"Bounded commit metadata. The full message is not retained;\n`message_digest` is its canonical digest evidence.",properties:{author:{$ref:"#/$defs/GitCommitIdentityV1"},commit:{$ref:"#/$defs/GitOidV1"},committer:{$ref:"#/$defs/GitCommitIdentityV1"},message_digest:{$ref:"#/$defs/ManifestDigest"},parents:{items:{$ref:"#/$defs/GitOidV1"},type:"array"},subject:{description:"First line of the commit message, bounded at capture.",type:"string"},tree:{$ref:"#/$defs/GitOidV1"}},required:["commit","tree","parents","author","committer","subject","message_digest"],type:"object"},GitCoverageV1:gb,GitDegradationV1:g$,GitDiffScopeV1:{description:"Diff scope: unstaged worktree changes, staged index changes, or an exact\ncommit range. Range diffs are read-only evidence and carry no index\nrelationship, so they cannot mint an applicable `HunkRefV1`.",oneOf:[{properties:{scope:{const:"working_tree",type:"string"}},required:["scope"],type:"object"},{properties:{scope:{const:"staged",type:"string"}},required:["scope"],type:"object"},{properties:{base:{$ref:"#/$defs/GitOidV1"},head:{$ref:"#/$defs/GitOidV1"},scope:{const:"commit_range",type:"string"}},required:["scope","base","head"],type:"object"}]},GitDiffV1:{additionalProperties:!1,description:"Typed diff result for one scope with explicit coverage.",properties:{coverage:{$ref:"#/$defs/GitCoverageV1"},files:{items:{$ref:"#/$defs/GitFileDiffV1"},type:"array"},repository:{$ref:"#/$defs/RepositoryId"},scope:{$ref:"#/$defs/GitDiffScopeV1"}},required:["repository","scope","files","coverage"],type:"object"},GitFileDiffV1:{additionalProperties:!1,description:"One file's structured diff record: change kind, modes, blob identities,\nbinary/submodule classification, bounded line totals, and hunks.",properties:{binary:{type:"boolean"},change:{$ref:"#/$defs/GitChangeKindV1"},deletions:{format:"uint32",minimum:0,type:["integer","null"]},hunks:{items:{$ref:"#/$defs/GitHunkV1"},type:"array"},insertions:{description:"Inserted/deleted line totals; absent for binary and submodule records.",format:"uint32",minimum:0,type:["integer","null"]},new_blob:{anyOf:[{$ref:"#/$defs/GitOidV1"},{type:"null"}]},new_mode:{anyOf:[{$ref:"#/$defs/GitFileModeV1"},{type:"null"}]},old_blob:{anyOf:[{$ref:"#/$defs/GitOidV1"},{type:"null"}]},old_mode:{anyOf:[{$ref:"#/$defs/GitFileModeV1"},{type:"null"}]},original_path:{description:"Source path for a rename or copy.",type:["string","null"]},path:{type:"string"},submodule:{description:"True when the entry is a gitlink (submodule) change.",type:"boolean"}},required:["path","change","binary","submodule","hunks"],type:"object"},GitFileModeV1:gS,GitHeadStateV1:gw,GitHistoryV1:{additionalProperties:!1,description:"Bounded commit history in native traversal order. `truncated` is true\nwhen the capture bound cut the walk; shallow/partial-clone boundaries are\ncoverage degradations, never silently clean.",properties:{commits:{items:{$ref:"#/$defs/GitCommitMetadataV1"},type:"array"},coverage:{$ref:"#/$defs/GitCoverageV1"},repository:{$ref:"#/$defs/RepositoryId"},truncated:{type:"boolean"}},required:["repository","commits","truncated","coverage"],type:"object"},GitHunkPreviewEntryV1:{additionalProperties:!1,description:"One minted hunk selection: the canonical selection digest plus the\n`HunkRef` identity evidence it selects.",properties:{digest:{$ref:"#/$defs/ManifestDigest"},hunk:{$ref:"#/$defs/HunkRefV1"}},required:["digest","hunk"],type:"object"},GitHunkPreviewInputV1:{additionalProperties:!1,description:"Bounded, expiring preview input minted by `git_hunks` from one exact\ndaemon-captured repository snapshot.",properties:{expires_at:{$ref:"#/$defs/UtcMicros"},hunks:{items:{$ref:"#/$defs/GitHunkPreviewEntryV1"},type:"array"},preview_input_id:{$ref:"#/$defs/GitIndexPreviewId"},repository_snapshot_digest:{$ref:"#/$defs/ManifestDigest"}},required:["preview_input_id","repository_snapshot_digest","expires_at","hunks"],type:"object"},GitHunkV1:{additionalProperties:!1,description:"One structured diff hunk. The hunk body is not retained; `patch_digest`\nis the canonical digest of the normalized header plus body lines, which\nis the stable hunk identity evidence.",properties:{new_lines:{format:"uint32",minimum:0,type:"integer"},new_start:{format:"uint32",minimum:0,type:"integer"},old_lines:{format:"uint32",minimum:0,type:"integer"},old_start:{format:"uint32",minimum:0,type:"integer"},patch_digest:{$ref:"#/$defs/ManifestDigest"},section:{description:"Function/section heading from the hunk header when Git emitted one.",type:["string","null"]}},required:["old_start","old_lines","new_start","new_lines","patch_digest"],type:"object"},GitIndexEntryExpectationV1:gV,GitIndexPreviewId:gR,GitOidV1:gI,GitOperationStateV1:gx,GitQueryEnvelopeV1:{additionalProperties:!1,description:"One typed query result with its merged coverage. `coverage` is the\nadapter-reported coverage plus any query-level degradation (entry-bound\ntruncation); `truncated_by_bound` distinguishes query-level truncation\nfrom adapter-level capture bounds.",properties:{coverage:{$ref:"#/$defs/GitCoverageV1"},truncated_by_bound:{type:"boolean"},value:{$ref:"#/$defs/GitStatusSummaryV1"}},required:["value","coverage","truncated_by_bound"],type:"object"},GitQueryEnvelopeV12:{additionalProperties:!1,description:"One typed query result with its merged coverage. `coverage` is the\nadapter-reported coverage plus any query-level degradation (entry-bound\ntruncation); `truncated_by_bound` distinguishes query-level truncation\nfrom adapter-level capture bounds.",properties:{coverage:{$ref:"#/$defs/GitCoverageV1"},truncated_by_bound:{type:"boolean"},value:{$ref:"#/$defs/GitDiffV1"}},required:["value","coverage","truncated_by_bound"],type:"object"},GitQueryEnvelopeV13:{additionalProperties:!1,description:"One typed query result with its merged coverage. `coverage` is the\nadapter-reported coverage plus any query-level degradation (entry-bound\ntruncation); `truncated_by_bound` distinguishes query-level truncation\nfrom adapter-level capture bounds.",properties:{coverage:{$ref:"#/$defs/GitCoverageV1"},truncated_by_bound:{type:"boolean"},value:{$ref:"#/$defs/GitHistoryV1"}},required:["value","coverage","truncated_by_bound"],type:"object"},GitQueryEnvelopeV14:{additionalProperties:!1,description:"One typed query result with its merged coverage. `coverage` is the\nadapter-reported coverage plus any query-level degradation (entry-bound\ntruncation); `truncated_by_bound` distinguishes query-level truncation\nfrom adapter-level capture bounds.",properties:{coverage:{$ref:"#/$defs/GitCoverageV1"},truncated_by_bound:{type:"boolean"},value:{$ref:"#/$defs/GitBlameV1"}},required:["value","coverage","truncated_by_bound"],type:"object"},GitQueryEnvelopeV15:{additionalProperties:!1,description:"One typed query result with its merged coverage. `coverage` is the\nadapter-reported coverage plus any query-level degradation (entry-bound\ntruncation); `truncated_by_bound` distinguishes query-level truncation\nfrom adapter-level capture bounds.",properties:{coverage:{$ref:"#/$defs/GitCoverageV1"},truncated_by_bound:{type:"boolean"},value:{$ref:"#/$defs/GitHunkPreviewInputV1"}},required:["value","coverage","truncated_by_bound"],type:"object"},GitStatusSummaryV1:{additionalProperties:!1,description:"Bounded status summary derived from the typed\n[`tracedecay_domain::git::GitStatusV1`]: HEAD and operation state,\nper-class counts, and a bounded sorted sample of changed paths.",properties:{changed_paths:{description:"Sorted, de-duplicated changed paths, truncated at the query entry bound.",items:{type:"string"},type:"array"},conflicted:{format:"uint32",minimum:0,type:"integer"},head:{$ref:"#/$defs/GitHeadStateV1"},ignored:{format:"uint32",minimum:0,type:"integer"},operation:{$ref:"#/$defs/GitOperationStateV1"},repository:{$ref:"#/$defs/RepositoryId"},schema_version:{type:"string"},staged:{format:"uint32",minimum:0,type:"integer"},unstaged:{format:"uint32",minimum:0,type:"integer"},untracked:{format:"uint32",minimum:0,type:"integer"}},required:["repository","head","operation","staged","unstaged","conflicted","untracked","ignored","changed_paths","schema_version"],type:"object"},HunkDirectionV1:gH,HunkRefV1:gG,ManifestDigest:_p,RepositoryId:v$,UtcMicros:bX,WorktreeId:SJ},$schema:"https://json-schema.org/draft/2020-12/schema",description:"Actual payload emitted by each public Git read operation.",oneOf:[{properties:{query:{const:"status",type:"string"},result:{$ref:"#/$defs/GitQueryEnvelopeV1"}},required:["query","result"],type:"object"},{properties:{query:{const:"diff",type:"string"},result:{$ref:"#/$defs/GitQueryEnvelopeV12"}},required:["query","result"],type:"object"},{properties:{query:{const:"history",type:"string"},result:{$ref:"#/$defs/GitQueryEnvelopeV13"}},required:["query","result"],type:"object"},{properties:{query:{const:"blame",type:"string"},result:{$ref:"#/$defs/GitQueryEnvelopeV14"}},required:["query","result"],type:"object"},{properties:{query:{const:"hunks",type:"string"},result:{$ref:"#/$defs/GitQueryEnvelopeV15"}},required:["query","result"],type:"object"}],title:"GitReadResultV1"},{$defs:{GitOidV1:gI,GitSurfaceDiffScopeV1:gW},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"Request shape for the public `git_diff` surface.",properties:{base:{anyOf:[{$ref:"#/$defs/GitOidV1"},{type:"null"}]},head:{anyOf:[{$ref:"#/$defs/GitOidV1"},{type:"null"}]},max_bytes:{format:"uint64",minimum:0,type:["integer","null"]},max_entries:{format:"uint32",minimum:0,type:["integer","null"]},scope:{$ref:"#/$defs/GitSurfaceDiffScopeV1",default:"working_tree"}},title:"GitDiffSurfaceRequest",type:"object"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"Request shape for the public `git_history` surface.",properties:{count:{format:"uint32",minimum:0,type:["integer","null"]},first_parent:{default:!1,type:"boolean"},follow:{default:!1,type:"boolean"},max_bytes:{format:"uint64",minimum:0,type:["integer","null"]},max_entries:{format:"uint32",minimum:0,type:["integer","null"]},path:{type:["string","null"]}},title:"GitHistorySurfaceRequest",type:"object"},{$defs:{GitSurfaceDiffScopeV1:gW},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"Request shape for the public `git_hunks` surface.\n\nThe daemon captures exact repository state itself and injects the private\npreview binding after capture, so the public wire carries only the diff\nscope (commit ranges cannot mint applicable hunks).",properties:{max_bytes:{format:"uint64",minimum:0,type:["integer","null"]},max_entries:{format:"uint32",minimum:0,type:["integer","null"]},scope:{$ref:"#/$defs/GitSurfaceDiffScopeV1",default:"working_tree"}},title:"GitHunksSurfaceRequest",type:"object"},{$defs:{GitIndexPreviewId:gR,GitIndexTransactionOperationV1:gq,ManifestDigest:_p},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"Public MCP/CLI request for one daemon-owned Git index preview.",properties:{operation:{$ref:"#/$defs/GitIndexTransactionOperationV1"},preview_input_id:{anyOf:[{$ref:"#/$defs/GitIndexPreviewId"},{type:"null"}],default:null,description:"Hunk preview input minted by `git_hunks`; required for stage/unstage."},selected_hunk_digests:{default:[],description:"Selection digests drawn from the referenced preview input.",items:{$ref:"#/$defs/ManifestDigest"},type:"array"}},required:["operation"],title:"GitPreviewSurfaceRequest",type:"object"},{$defs:{GitBlobExpectationV1:gh,GitCoverageV1:gb,GitDegradationV1:g$,GitFileModeV1:gS,GitHeadStateV1:gw,GitIndexEntryExpectationV1:gV,GitIndexPreviewDispositionV1:{description:"Whether a captured preview may reach the daemon's native apply path.",oneOf:[{properties:{state:{const:"applicable",type:"string"}},required:["state"],type:"object"},{properties:{reason:{$ref:"#/$defs/GitIndexUnsupportedStateV1"},state:{const:"unsupported",type:"string"}},required:["state","reason"],type:"object"}]},GitIndexPreviewId:gR,GitIndexTransactionOperationV1:gq,GitIndexUnsupportedStateV1:{description:"Why a preview is intentionally read-only. A caller must re-preview after\nresolving the condition; no variant grants a relaxed or partial apply.",enum:["bare_repository","detached_head","unborn_branch","index_lock_present","external_git_driver","unmerged_index","intent_to_add","split_index","sparse_index","unreadable_index","conflicted_working_tree","unreadable_working_tree","in_progress_operation","unsupported_object_format","binary_hunk","submodule","symlink","file_mode_only","rename_or_copy","filters_or_end_of_line","partial_hunk_selection"],type:"string"},GitObjectFormatV1:{description:"Repository object format, derived from object-id length.",enum:["sha1","sha256"],type:"string"},GitOidV1:gI,GitOperationStateV1:gx,HunkDirectionV1:gH,HunkRefV1:gG,ManifestDigest:_p,ProjectId:_6,RepositoryId:v$,RepositoryIndexSnapshotV1:{additionalProperties:!1,properties:{checksum:{$ref:"#/$defs/ManifestDigest"},state:{$ref:"#/$defs/RepositoryIndexStateV1"},tree_id:{anyOf:[{$ref:"#/$defs/GitOidV1"},{type:"null"}]},unmerged_stage_digest:{anyOf:[{$ref:"#/$defs/ManifestDigest"},{type:"null"}]}},required:["checksum","state"],type:"object"},RepositoryIndexStateV1:{enum:["clean","staged","unmerged","intent_to_add","split","sparse","unreadable"],type:"string"},RepositoryStateSnapshotV1:{additionalProperties:!1,description:"Immutable content-addressed native repository state. Missing/partial\nevidence remains typed by fields and coverage instead of being upgraded to\na guessed clean snapshot.",properties:{adapter_revision:{description:"Revision of the fixed native adapter that interpreted this state.",type:["string","null"]},attributes_digest:{anyOf:[{$ref:"#/$defs/ManifestDigest"},{type:"null"}]},captured_at:{$ref:"#/$defs/UtcMicros"},configuration_digest:{anyOf:[{$ref:"#/$defs/ManifestDigest"},{type:"null"}]},coverage:{$ref:"#/$defs/GitCoverageV1"},filesystem_capabilities_digest:{anyOf:[{$ref:"#/$defs/ManifestDigest"},{type:"null"}]},git_version:{description:"Exact native Git implementation observed by the fixed adapter. A\nread-only partial snapshot may omit this, but omitted native evidence\nis never mutation eligible.",type:["string","null"]},head:{$ref:"#/$defs/GitHeadStateV1"},index:{$ref:"#/$defs/RepositoryIndexSnapshotV1"},object_format:{$ref:"#/$defs/GitObjectFormatV1"},observation_epoch:{format:"uint64",minimum:0,type:"integer"},operation_state:{$ref:"#/$defs/GitOperationStateV1"},project_id:{$ref:"#/$defs/ProjectId"},refs_digest:{anyOf:[{$ref:"#/$defs/ManifestDigest"},{type:"null"}],description:"Digest of the complete native ref namespace at capture time."},repository_id:{$ref:"#/$defs/RepositoryId"},snapshot_id:{type:"string"},sparse_digest:{anyOf:[{$ref:"#/$defs/ManifestDigest"},{type:"null"}]},submodule_digest:{anyOf:[{$ref:"#/$defs/ManifestDigest"},{type:"null"}]},working_tree:{$ref:"#/$defs/RepositoryWorkingTreeSnapshotV1"},worktree_id:{anyOf:[{$ref:"#/$defs/WorktreeId"},{type:"null"}]}},required:["snapshot_id","project_id","repository_id","observation_epoch","object_format","head","index","working_tree","operation_state","captured_at","coverage"],type:"object"},RepositoryWorkingTreeSnapshotV1:{additionalProperties:!1,properties:{ignored_collision_digest:{anyOf:[{$ref:"#/$defs/ManifestDigest"},{type:"null"}]},state:{$ref:"#/$defs/RepositoryWorkingTreeStateV1"},tracked_digest:{$ref:"#/$defs/ManifestDigest"},untracked_name_digest:{anyOf:[{$ref:"#/$defs/ManifestDigest"},{type:"null"}]}},required:["state","tracked_digest"],type:"object"},RepositoryWorkingTreeStateV1:{enum:["clean","tracked_dirty","untracked_only","mixed","conflicted","unreadable"],type:"string"},UtcMicros:bX,WorktreeId:SJ},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"Immutable, content-bound preview for one daemon-serialized index\ntransaction. Applicability is only a precondition: the daemon must capture\nand compare the entire snapshot and every contained `HunkRefV1` again\nimmediately before a native mutation.",properties:{candidate_index_tree:{anyOf:[{$ref:"#/$defs/GitOidV1"},{type:"null"}]},created_at:{$ref:"#/$defs/UtcMicros"},disposition:{$ref:"#/$defs/GitIndexPreviewDispositionV1"},expires_at:{$ref:"#/$defs/UtcMicros"},operation:{$ref:"#/$defs/GitIndexTransactionOperationV1"},preview_digest:{$ref:"#/$defs/ManifestDigest"},preview_id:{$ref:"#/$defs/GitIndexPreviewId"},repository_snapshot:{$ref:"#/$defs/RepositoryStateSnapshotV1"},repository_snapshot_digest:{$ref:"#/$defs/ManifestDigest"},selected_hunks:{items:{$ref:"#/$defs/HunkRefV1"},type:"array"}},required:["preview_id","operation","repository_snapshot","repository_snapshot_digest","selected_hunks","disposition","created_at","expires_at","preview_digest"],title:"GitIndexPreviewV1",type:"object"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"Request shape for the public `git_status` surface.",properties:{max_bytes:{format:"uint64",minimum:0,type:["integer","null"]},max_entries:{format:"uint32",minimum:0,type:["integer","null"]}},title:"GitStatusSurfaceRequest",type:"object"},{$defs:{StackDeliveryWatermarkId:bP,StackSignalId:bR},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"The public, transport-neutral request for one durable stack signal.",properties:{expected_watermark_id:{anyOf:[{$ref:"#/$defs/StackDeliveryWatermarkId"},{type:"null"}]},signal_id:{anyOf:[{$ref:"#/$defs/StackSignalId"},{type:"null"}]}},title:"GitHubStackSignalExpandSurfaceRequest",type:"object"},{$defs:{BranchStackRevisionId:f7,GitHubStackSignalEvidenceRefV1:{additionalProperties:!1,description:"Bounded evidence for the exact signal the coordinator authorized.\n\nProvider payloads, paths, commit bodies, and delivery recipients remain\nbehind the durable signal evidence rather than copied to this result.",properties:{github_stack_digest:{anyOf:[{$ref:"#/$defs/ManifestDigest"},{type:"null"}]},kind:{$ref:"#/$defs/StackSignalKindV1"},native_source:{$ref:"#/$defs/GitHubStackSignalNativeSourceV1"},observed_at:{$ref:"#/$defs/UtcMicros"},signal_id:{$ref:"#/$defs/StackSignalId"},stack_revision_digest:{$ref:"#/$defs/ManifestDigest"},stack_revision_id:{$ref:"#/$defs/BranchStackRevisionId"},state_digest:{$ref:"#/$defs/ManifestDigest"},watermark_id:{$ref:"#/$defs/StackDeliveryWatermarkId"}},required:["signal_id","watermark_id","kind","stack_revision_id","stack_revision_digest","state_digest","observed_at","native_source"],type:"object"},GitHubStackSignalExpandUnavailableV1:{description:"Truthful non-success outcomes for signal expansion.\n\n`Concealed` intentionally combines absent and unauthorized signal handles;\nexposing that distinction would turn this operation into a signal probe.",enum:["concealed","stale","native_evidence_unavailable","authority_unmounted","cancelled"],type:"string"},GitHubStackSignalNativePreviewV1:{additionalProperties:!1,description:"Exact branch pair and native preflight that produced the selected signal.",properties:{destination_ref:{$ref:"#/$defs/RefId"},destination_tip:{$ref:"#/$defs/GitOidV1"},direction:{$ref:"#/$defs/NativeIntegrationDirectionV1"},disposition:{$ref:"#/$defs/NativeIntegrationPreviewDispositionV1"},preview_digest:{$ref:"#/$defs/ManifestDigest"},preview_id:{$ref:"#/$defs/NativeIntegrationPreviewId"},source_ref:{$ref:"#/$defs/RefId"},source_tip:{$ref:"#/$defs/GitOidV1"}},required:["preview_id","preview_digest","direction","source_ref","destination_ref","source_tip","destination_tip","disposition"],type:"object"},GitHubStackSignalNativeSourceV1:{oneOf:[{properties:{preview:{$ref:"#/$defs/GitHubStackSignalNativePreviewV1"},source:{const:"preflight",type:"string"}},required:["source","preview"],type:"object"},{properties:{preview:{$ref:"#/$defs/GitHubStackSignalNativePreviewV1"},source:{const:"terminal",type:"string"},terminal:{$ref:"#/$defs/GitHubStackSignalNativeTerminalV1"}},required:["source","preview","terminal"],type:"object"}]},GitHubStackSignalNativeTerminalV1:{additionalProperties:!1,properties:{completed_at:{$ref:"#/$defs/UtcMicros"},final_ref_tip:{$ref:"#/$defs/GitOidV1"},outcome:{$ref:"#/$defs/NativeIntegrationTerminalOutcomeV1"},receipt_digest:{$ref:"#/$defs/ManifestDigest"},transaction_id:{$ref:"#/$defs/NativeIntegrationTransactionId"}},required:["transaction_id","receipt_digest","outcome","final_ref_tip","completed_at"],type:"object"},GitOidV1:gI,ManifestDigest:_p,MechanicalIntegrationModeV1:_u,NativeIntegrationDirectionV1:_q,NativeIntegrationPreviewDispositionV1:_I,NativeIntegrationPreviewId:_x,NativeIntegrationTerminalOutcomeV1:_T,NativeIntegrationTransactionId:_O,NativeIntegrationUnavailabilityV1:_E,RefId:vf,StackDeliveryWatermarkId:bP,StackSignalId:bR,StackSignalKindV1:{description:"Durable classification of one GitHub stack transition.",enum:["dependency_ready","actual_conflict","stack_tip_drift","pull_request_drift","ci_evaluated_commit_drift","integration_committed","integration_needs_inspection"],type:"string"},UtcMicros:bX},$schema:"https://json-schema.org/draft/2020-12/schema",oneOf:[{properties:{evidence:{$ref:"#/$defs/GitHubStackSignalEvidenceRefV1"},outcome:{const:"expanded",type:"string"}},required:["outcome","evidence"],type:"object"},{properties:{outcome:{const:"unavailable",type:"string"},reason:{$ref:"#/$defs/GitHubStackSignalExpandUnavailableV1"}},required:["outcome","reason"],type:"object"}],title:"GitHubStackSignalExpandSurfaceResultV1"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{limit:{description:"Maximum number of results to return (default: 10, at most 100).",format:"uint32",minimum:0,type:["integer","null"]},path:{description:"Filter to files under this directory path (e.g. 'src/main/java').",type:["string","null"]}},title:"GodClassSurfaceRequestV1",type:"object"},{$defs:{CodeIndexBuildBlockedReasonV1:hv,CodeIndexConvergenceParkedV1:hb,CodeIndexStalenessStateV1:hw,GodClassEntryV1:{additionalProperties:!1,properties:{fields:{format:"uint64",minimum:0,type:"integer"},file:{type:"string"},id:{type:"string"},kind:{type:"string"},line:{format:"uint32",minimum:0,type:"integer"},methods:{format:"uint64",minimum:0,type:"integer"},name:{type:"string"},total_members:{format:"uint64",minimum:0,type:"integer"}},required:["id","name","kind","file","line","methods","fields","total_members"],type:"object"},PrimitiveFreshnessStateV1:_K,PrimitiveIndexingStateV1:_J,PrimitiveSearchFreshnessV1:_Y},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{freshness:{anyOf:[{$ref:"#/$defs/PrimitiveSearchFreshnessV1"},{type:"null"}],description:"The worktree verdict a served graph read opens with."},ranking:{items:{$ref:"#/$defs/GodClassEntryV1"},type:"array"},result_count:{format:"uint64",minimum:0,type:"integer"}},required:["result_count","ranking"],title:"GodClassResultV1",type:"object"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{case_sensitive:{description:"Match case-sensitively (default: false = case-insensitive).",type:["boolean","null"]},context_lines:{description:"Lines of surrounding context to include per hit (default: 0, max: 3).",format:"uint32",minimum:0,type:["integer","null"]},fixed_strings:{description:"Treat pattern as a literal string instead of a regex (default: false).",type:["boolean","null"]},max_results:{description:"Maximum number of matching lines to return (default: 50, max: 200).",format:"uint32",minimum:0,type:["integer","null"]},path_glob:{description:"Optional glob restricting which files are searched, matched against\nproject-relative paths (e.g. 'src/**/*.rs').",type:["string","null"]},pattern:{description:"Content to search for. Treated as a regular expression unless\nfixed_strings is true.",type:"string"}},required:["pattern"],title:"GrepSurfaceRequestV1",type:"object"},{$defs:{CodeIndexBuildBlockedReasonV1:hv,CodeIndexConvergenceParkedV1:hb,CodeIndexStalenessStateV1:hw,CoverageCompleteness:ym,CoverageDomainState:yf,EvidenceCoverage:yj,EvidenceDomain:yC,GrepGraphEnrichmentV1:{description:"Whether the verified graph resolved each hit's enclosing symbol. Hits are\nthe lexical answer either way.",oneOf:[{additionalProperties:!1,properties:{enriched:{format:"uint64",minimum:0,type:"integer"},returned:{format:"uint64",minimum:0,type:"integer"},status:{const:"complete",type:"string"}},required:["status","enriched","returned"],type:"object"},{additionalProperties:!1,properties:{detail:{type:"string"},reason_code:{type:"string"},retryable:{type:"boolean"},status:{const:"unavailable",type:"string"}},required:["status","reason_code","retryable","detail"],type:"object"}]},GrepMatchV1:{additionalProperties:!1,properties:{after:{items:{type:"string"},type:"array"},before:{items:{type:"string"},type:"array"},file:{type:"string"},line:{format:"uint32",minimum:0,type:"integer"},node_id:{type:["string","null"]},symbol:{description:"The smallest verified graph symbol enclosing the hit.",type:["string","null"]},text:{type:"string"}},required:["file","line","text"],type:"object"},GrepScanOmissionsV1:{additionalProperties:!1,description:"What the bounded scan skipped, by cause; absent when it skipped nothing.",properties:{oversized_files:{description:"Files larger than the interactive scan byte limit.",format:"uint64",minimum:0,type:"integer"},oversized_lines:{description:"Lines longer than the scan line byte limit.",format:"uint64",minimum:0,type:"integer"},unavailable_sources:{description:"Source candidates that could not be read during the scan.",format:"uint64",minimum:0,type:"integer"}},required:["oversized_files","oversized_lines","unavailable_sources"],type:"object"},Omission:{additionalProperties:!1,properties:{count:{format:"uint64",minimum:0,type:"integer"},domain:{$ref:"#/$defs/EvidenceDomain"},reason:{$ref:"#/$defs/OmissionReason"}},required:["domain","count","reason"],type:"object"},OmissionReason:{description:"Safe reason why authorized requested evidence was omitted.",oneOf:[{enum:["budget","redacted","unavailable","unsupported","stale","failed","cancelled","timed_out","conflict"],type:"string"},{const:"macro_body_unparsed",description:"Evidence came from a macro body that was not expanded, so what the\nexpansion defines or calls is not covered.",type:"string"},{const:"import_unmodeled",description:"A caller sits under a `use` whose binding the index could not model\n(a glob in a block or inline module), so whether it calls the target\nis not covered.",type:"string"},{const:"cursor_expired",description:"The continuation cursor can no longer be redeemed (its lifetime ended\nor the snapshot it pages is gone); restart the request without it.",type:"string"},{const:"cursor_foreign",description:"The continuation cursor was issued for another project, worktree, or\nref; redeem it where it was issued.",type:"string"}]},PrimitiveFreshnessStateV1:_K,PrimitiveIndexingStateV1:_J,PrimitiveSearchFreshnessV1:_Y},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{coverage:{$ref:"#/$defs/EvidenceCoverage"},files_scanned:{format:"uint64",minimum:0,type:"integer"},freshness:{anyOf:[{$ref:"#/$defs/PrimitiveSearchFreshnessV1"},{type:"null"}],description:"The worktree verdict a served graph read opens with."},graph_enrichment:{$ref:"#/$defs/GrepGraphEnrichmentV1"},match_count:{format:"uint64",minimum:0,type:"integer"},omissions:{items:{$ref:"#/$defs/Omission"},type:"array"},results:{items:{$ref:"#/$defs/GrepMatchV1"},type:"array"},scan_omissions:{$ref:"#/$defs/GrepScanOmissionsV1"},truncated:{type:"boolean"}},required:["results","match_count","files_scanned","truncated","coverage","omissions","graph_enrichment"],title:"GrepSearchResultV1",type:"object"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{details:{description:"If true, include full dimension breakdown (default: false).",type:["boolean","null"]},path:{description:"Filter to files under this directory path.",type:["string","null"]}},title:"HealthSurfaceRequestV1",type:"object"},{$defs:{CodeIndexBuildBlockedReasonV1:hv,CodeIndexConvergenceParkedV1:hb,CodeIndexStalenessStateV1:hw,HealthAcyclicityV1:{additionalProperties:!1,properties:{edges_in_cycles:{format:"uint64",minimum:0,type:"integer"},score:{format:"double",type:"number"},source:{type:"string"}},required:["score","edges_in_cycles","source"],type:"object"},HealthCoverageDisciplineV1:{additionalProperties:!1,properties:{score:{format:"double",type:"number"},skip_test_coverage_count:{format:"uint64",minimum:0,type:"integer"},source:{type:"string"},total_fns:{format:"uint64",minimum:0,type:"integer"}},required:["score","skip_test_coverage_count","total_fns","source"],type:"object"},HealthDepthV1:{additionalProperties:!1,properties:{ideal_chain:{format:"uint64",minimum:0,type:"integer"},max_chain:{format:"uint64",minimum:0,type:"integer"},score:{format:"double",type:"number"},source:{type:"string"}},required:["score","max_chain","ideal_chain","source"],type:"object"},HealthDimensionsV1:{additionalProperties:!1,properties:{acyclicity:{$ref:"#/$defs/HealthAcyclicityV1"},coverage_discipline:{$ref:"#/$defs/HealthCoverageDisciplineV1"},depth:{$ref:"#/$defs/HealthDepthV1"},equality:{$ref:"#/$defs/HealthEqualityV1"},modularity:{$ref:"#/$defs/HealthModularityV1"},redundancy:{$ref:"#/$defs/HealthRedundancyV1"}},required:["acyclicity","depth","equality","redundancy","modularity","coverage_discipline"],type:"object"},HealthEqualityV1:{additionalProperties:!1,properties:{gini:{format:"double",type:"number"},incomplete_complexity_symbols:{format:"uint64",minimum:0,type:"integer"},interpretation:{type:"string"},score:{format:"double",type:"number"},source:{type:"string"}},required:["score","gini","interpretation","incomplete_complexity_symbols","source"],type:"object"},HealthModularityV1:{additionalProperties:!1,properties:{components_after_hub_removal:{format:"uint64",minimum:0,type:"integer"},interpretation:{type:"string"},score:{format:"double",type:"number"},source:{type:"string"}},required:["score","interpretation","components_after_hub_removal","source"],type:"object"},HealthRedundancyV1:{additionalProperties:!1,properties:{dead_count:{format:"uint64",minimum:0,type:"integer"},score:{format:"double",type:"number"},source:{type:"string"},total_fns:{format:"uint64",minimum:0,type:"integer"}},required:["score","dead_count","total_fns","source"],type:"object"},HealthWeightsV1:{additionalProperties:!1,properties:{note:{type:"string"}},required:["note"],type:"object"},PrimitiveFreshnessStateV1:_K,PrimitiveIndexingStateV1:_J,PrimitiveSearchFreshnessV1:_Y},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"`dimensions` and `weights` are present exactly when the request asked for\n`details`.",properties:{dimensions:{anyOf:[{$ref:"#/$defs/HealthDimensionsV1"},{type:"null"}]},files_analyzed:{format:"uint64",minimum:0,type:"integer"},freshness:{anyOf:[{$ref:"#/$defs/PrimitiveSearchFreshnessV1"},{type:"null"}],description:"The worktree verdict a served graph read opens with."},panel:{description:"Measured dimension names, worst score first, then\n`no evidence: name (reason), ...` for the dimensions the scope gave\nnothing to measure. An empty scope reads\n`no evidence: 0 files in scope`.",type:"string"},quality_signal:{description:"Geometric mean of the dimensions, scaled to 0-10000. A breakdown of\n`panel`, not a number to maximize. Dimensions that `panel` lists under\n`no evidence:` enter it at their formula value for an empty\nmeasurement, so it does not summarize such a scope: an empty scope\nreads 10000 and one file reads 0.",format:"uint32",minimum:0,type:"integer"},weights:{anyOf:[{$ref:"#/$defs/HealthWeightsV1"},{type:"null"}]}},required:["quality_signal","files_analyzed"],title:"HealthResultV1",type:"object"},{$defs:{PageRequest:_H,ResultProjection:vV,RetrievalOrder:vj,RetrievalRequestMeta:vC,TemporalModeV1:bN,UtcMicros:bX},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{before_cursor:{description:"A prior result's after_cursor. A cursor recorded under another health\ndefinition, or before definitions were recorded, is refused with\n`application.health-delta.definition-mismatch` or\n`application.health-delta.definition-unrecorded`; omit it to record a\nnew baseline.",type:["string","null"]},meta:{$ref:"#/$defs/RetrievalRequestMeta"},path_prefix:{type:["string","null"]}},required:["meta"],title:"HealthDeltaRequest",type:"object"},{$defs:{HealthDeltaCoverageV1:{additionalProperties:!1,properties:{completeness:{description:"`complete` when both points analyzed files, otherwise `unknown`.",type:"string"},denominator:{format:"uint64",minimum:0,type:["integer","null"]},eligible:{description:"Files the `after` point analyzed.",format:"uint64",minimum:0,type:["integer","null"]},visited:{format:"uint64",minimum:0,type:["integer","null"]}},required:["completeness"],type:"object"},HealthDeltaCurrentnessV1:{additionalProperties:!1,properties:{observed_at:{$ref:"#/$defs/UtcMicros"},state:{type:"string"}},required:["state","observed_at"],type:"object"},HealthDeltaPointV1:{additionalProperties:!1,properties:{dimensions:{additionalProperties:{$ref:"#/$defs/HealthDimensionPointV1"},type:"object"},files_analyzed:{format:"uint64",minimum:0,type:"integer"},function_denominator:{format:"uint64",minimum:0,type:"integer"},observed_at:{$ref:"#/$defs/UtcMicros"},quality_signal:{format:"uint32",minimum:0,type:"integer"},watermark:{$ref:"#/$defs/ManifestDigest"}},required:["watermark","observed_at","quality_signal","files_analyzed","function_denominator","dimensions"],type:"object"},HealthDeltaScopeV1:{additionalProperties:!1,properties:{path_prefix:{type:["string","null"]},project_id:{type:["string","null"]},scope_digest:{$ref:"#/$defs/ManifestDigest"}},required:["scope_digest"],type:"object"},HealthDimensionDeltaV1:{additionalProperties:!1,properties:{after_denominator:{format:"uint64",minimum:0,type:["integer","null"]},after_ppm:{format:"uint64",minimum:0,type:"integer"},before_denominator:{format:"uint64",minimum:0,type:["integer","null"]},before_ppm:{format:"uint64",minimum:0,type:"integer"},delta_ppm:{format:"int64",type:"integer"},status:{description:"`improved` or `degraded` when the score moved more than 1000 ppm,\notherwise `unchanged`. `no_evidence` when either point's scope gave\nthe dimension nothing to measure, so its scores are formula values.",type:"string"}},required:["before_ppm","after_ppm","delta_ppm","status"],type:"object"},HealthDimensionPointV1:{additionalProperties:!1,properties:{denominator:{format:"uint64",minimum:0,type:["integer","null"]},score_ppm:{format:"uint64",minimum:0,type:"integer"}},required:["score_ppm"],type:"object"},ManifestDigest:_p,UtcMicros:bX},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{after:{$ref:"#/$defs/HealthDeltaPointV1"},after_cursor:{type:"string"},before:{$ref:"#/$defs/HealthDeltaPointV1"},before_cursor:{type:"string"},coverage:{$ref:"#/$defs/HealthDeltaCoverageV1"},currentness:{$ref:"#/$defs/HealthDeltaCurrentnessV1"},delta:{format:"int64",type:"integer"},dimensions:{additionalProperties:{$ref:"#/$defs/HealthDimensionDeltaV1"},type:"object"},pass:{description:"True when both points analyzed files and quality_signal did not drop.",type:"boolean"},schema_version:{format:"uint32",minimum:0,type:"integer"},scope:{$ref:"#/$defs/HealthDeltaScopeV1"}},required:["schema_version","scope","before","after","before_cursor","after_cursor","pass","delta","dimensions","coverage","currentness"],title:"HealthDeltaResult",type:"object"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"The health read takes no parameters: it reports one serving status, with no\npage, projection, or temporal selection to make. The page and deadline\ncontrols every surface supplies travel in the dispatch envelope, not here.",title:"HealthReadRequest",type:"object"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{status:{type:"string"}},required:["status"],title:"HealthReadResult",type:"object"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{include_pending_payloads:{default:!1,description:"Include staged Hermes skill-write payloads (default: false).",type:"boolean"},include_skill_bodies:{default:!1,description:"Include bounded SKILL.md contents (default: false).",type:"boolean"}},title:"HermesSkillBridgeSurfaceRequestV1",type:"object"},{$defs:{AutomationReadStatusV1:fG,HermesPendingSkillWrite:{properties:{action:{type:["string","null"]},created_at:!0,id:{type:"string"},name:{type:["string","null"]},origin:{type:["string","null"]},payload:!0,source_path:{type:"string"},summary:{type:["string","null"]}},required:["id","source_path"],type:"object"},HermesSkillBridgeContracts:{properties:{discovery_policy:{type:"string"},lifecycle_owner:{type:"string"},mutation_policy:{type:"string"}},required:["lifecycle_owner","mutation_policy","discovery_policy"],type:"object"},HermesSkillBridgeSnapshot:{properties:{agent_home:{type:"string"},archive_count:{format:"uint",minimum:0,type:"integer"},contracts:{$ref:"#/$defs/HermesSkillBridgeContracts"},pending_skill_corrupt_count:{format:"uint",minimum:0,type:"integer"},pending_skill_count:{format:"uint",minimum:0,type:"integer"},pending_skills:{items:{$ref:"#/$defs/HermesPendingSkillWrite"},type:"array"},skill_count:{format:"uint",minimum:0,type:"integer"},skills:{items:{$ref:"#/$defs/HermesSkillSummary"},type:"array"},skills_dir:{type:"string"},usage_record_count:{format:"uint",minimum:0,type:"integer"},usage_records:{additionalProperties:!0,description:"Hermes-owned usage telemetry keyed by skill name, as Hermes wrote it.",type:"object"}},required:["agent_home","skills_dir","skill_count","pending_skill_count","pending_skill_corrupt_count","usage_record_count","archive_count","skills","pending_skills","usage_records","contracts"],type:"object"},HermesSkillSummary:{properties:{body_markdown:{type:["string","null"]},category:{type:["string","null"]},description:{type:["string","null"]},name:{type:"string"},path:{type:"string"},pending_write_ids:{items:{type:"string"},type:"array"},usage:!0},required:["name","path","pending_write_ids"],type:"object"}},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{bridge:{$ref:"#/$defs/HermesSkillBridgeSnapshot"},status:{$ref:"#/$defs/AutomationReadStatusV1"}},required:["status","bridge"],title:"HermesSkillBridgeResultV1",type:"object"},{$schema:"https://json-schema.org/draft/2020-12/schema",oneOf:[{additionalProperties:!1,description:"Reset the project's local token counter.",properties:{action:{const:"reset_counter",type:"string"}},required:["action"],type:"object"},{additionalProperties:!1,description:"Admit one Hook V2 envelope for the bound project.",properties:{action:{const:"hook_v2_admit",type:"string"},envelope:!0,native_lifecycle:!0,native_session_id:{description:"The host's native session id; it binds only when it hashes to the\nenvelope's protected session.",type:["string","null"]}},required:["action","envelope"],type:"object"},{additionalProperties:!1,description:"Commit a Context Scout delivery receipt for guidance the last\nadmission handed out.",properties:{action:{const:"hook_v2_delivery_receipt",type:"string"},receipt:!0},required:["action","receipt"],type:"object"},{additionalProperties:!1,description:"Acknowledge delivery of an advisory feedback notice.",properties:{action:{const:"hook_v2_feedback_notice_delivery",type:"string"},envelope:!0,feedback_notice:!0},required:["action","envelope","feedback_notice"],type:"object"},{additionalProperties:!1,description:"Land a host transcript in the owning session store.",properties:{action:{const:"ingest_transcript",type:"string"},event_json:{description:"The host's raw hook event, for providers that locate the transcript\nfrom it.",type:["string","null"]},max_new_bytes:{description:"Byte budget for this pass across every scanned source.",format:"uint64",minimum:0,type:["integer","null"]},messages:{description:"One turn the host inlined instead of a source to scan.",items:!0,type:["array","null"]},provider:{type:"string"},session_id:{type:["string","null"]},user_scope:{description:"Land the transcript in the profile's user store instead of the\nproject's.",type:"boolean"}},required:["action","provider","user_scope"],type:"object"},{additionalProperties:!1,description:"Codex `PostCompact` pressure evidence.",properties:{action:{const:"codex_compact",type:"string"},event_json:{type:"string"}},required:["action","event_json"],type:"object"},{additionalProperties:!1,description:"Claude `PostCompact` pressure evidence; `user_scope` routes it to the\nprofile.",properties:{action:{const:"claude_compact",type:"string"},event_json:{type:"string"},user_scope:{type:"boolean"}},required:["action","event_json","user_scope"],type:"object"},{additionalProperties:!1,description:"Cursor `preCompact` pressure evidence.",properties:{action:{const:"cursor_compact",type:"string"},event_json:{type:"string"}},required:["action","event_json"],type:"object"},{additionalProperties:!1,description:"Record a Hermes terminal receipt without a project route.",properties:{action:{const:"hermes_receipt",type:"string"},event:!0},required:["action","event"],type:"object"},{additionalProperties:!1,description:"Admit a native event without a project route into the profile's\nHook V2 ledger.",properties:{action:{const:"hook_v2_profile_admit",type:"string"},admission:!0},required:["action","admission"],type:"object"}],title:"HookRuntimeSurfaceRequestV1"},{$defs:{ContextScoutAddressV1:hH,ContextScoutStoreStatusV1:{enum:["stored","duplicate","superseded","unavailable"],type:"string"},HermesReceiptStatusV1:{oneOf:[{const:"recorded",description:"A terminal receipt was recorded.",type:"string"},{const:"ingested",description:"The turn was marked ingested and no receipt awaits review.",type:"string"},{const:"awaiting_transcript",description:"A receipt awaits a transcript that has not landed yet.",type:"string"}]},HookIngestAdmissionV1:{additionalProperties:!1,description:"The admission authority's verdict on one transcript ingest.",properties:{reason_code:{type:["string","null"]},retryable:{type:"boolean"},status:{description:"The session host-admission status, in its wire spelling.",type:"string"}},required:["status","retryable"],type:"object"},HookOrchestrationAdmissionV1:{description:"Outcome of admitting one hook envelope into the registered orchestrator.",enum:["enqueued","backpressured","unsupported_trigger","unavailable"],type:"string"},HookRuntimeDispositionV1:{description:"How the hook transport should treat a Hook V2 envelope.",oneOf:[{enum:["accepted"],type:"string"},{const:"catchup_required",description:"The published binding no longer authorizes the envelope; the host\nmust catch up before sending again.",type:"string"}]},HookV2RejectionReasonV1:{oneOf:[{const:"admission_identity_conflict",description:"The same event identity previously carried different bytes.",type:"string"}]}},$schema:"https://json-schema.org/draft/2020-12/schema",oneOf:[{additionalProperties:!1,properties:{action:{const:"reset_counter",type:"string"},reset:{type:"boolean"}},required:["action","reset"],type:"object"},{oneOf:[{properties:{context_scout_address:{anyOf:[{$ref:"#/$defs/ContextScoutAddressV1"},{type:"null"}]},disposition:{$ref:"#/$defs/HookRuntimeDispositionV1"},feedback_notice:{description:"The advisory `AdvisoryHookLookupNoticeV1` waiting for this\nworktree."},github_stack_signal_available:{type:"boolean"},orchestration:{$ref:"#/$defs/HookOrchestrationAdmissionV1"},ready_guidance:{description:"The hook's `HookReadyGuidanceV1`, when admission claimed one."},status:{const:"accepted",type:"string"}},required:["status","disposition","orchestration","github_stack_signal_available"],type:"object"},{description:"This exact envelope was already admitted; a retry may still receive\nguidance retained before a lost host response.",properties:{context_scout_address:{anyOf:[{$ref:"#/$defs/ContextScoutAddressV1"},{type:"null"}]},disposition:{$ref:"#/$defs/HookRuntimeDispositionV1"},ready_guidance:!0,status:{const:"exact_duplicate",type:"string"}},required:["status","disposition"],type:"object"},{properties:{disposition:{$ref:"#/$defs/HookRuntimeDispositionV1"},reason:{anyOf:[{$ref:"#/$defs/HookV2RejectionReasonV1"},{type:"null"}]},status:{const:"rejected",type:"string"}},required:["status","disposition"],type:"object"},{description:"Idempotency could not be recorded, so nothing was admitted.",properties:{status:{const:"backpressured",type:"string"}},required:["status"],type:"object"},{properties:{status:{const:"unavailable",type:"string"}},required:["status"],type:"object"}],properties:{action:{const:"hook_v2_admit",type:"string"}},required:["action"],type:"object"},{additionalProperties:!1,properties:{action:{const:"hook_v2_delivery_receipt",type:"string"},status:{$ref:"#/$defs/ContextScoutStoreStatusV1"}},required:["action","status"],type:"object"},{oneOf:[{properties:{status:{const:"stored",type:"string"}},required:["status"],type:"object"},{properties:{status:{const:"unavailable",type:"string"}},required:["status"],type:"object"},{properties:{disposition:{$ref:"#/$defs/HookRuntimeDispositionV1"},status:{const:"rejected",type:"string"}},required:["status","disposition"],type:"object"}],properties:{action:{const:"hook_v2_feedback_notice_delivery",type:"string"}},required:["action"],type:"object"},{additionalProperties:!1,properties:{action:{const:"ingest_transcript",type:"string"},admission:{$ref:"#/$defs/HookIngestAdmissionV1"},bytes_consumed:{format:"uint64",minimum:0,type:["integer","null"]},completed:{description:"False when the byte budget left work for a later pass.",type:"boolean"},cursor_advances:{format:"uint64",minimum:0,type:["integer","null"]},cursor_duplicates:{format:"uint64",minimum:0,type:["integer","null"]},deferred_by_byte_cap:{type:["boolean","null"]},deferred_sources:{format:"uint64",minimum:0,type:["integer","null"]},hint_outcomes:{description:"How emitted hook hints settled against the new project activity."},messages_upserted:{format:"uint64",minimum:0,type:"integer"},observation_duplicates:{format:"uint64",minimum:0,type:["integer","null"]},observations_committed:{format:"uint64",minimum:0,type:["integer","null"]},projection_duplicates:{format:"uint64",minimum:0,type:["integer","null"]},projections_completed:{format:"uint64",minimum:0,type:["integer","null"]},projections_skipped:{format:"uint64",minimum:0,type:["integer","null"]},provider:{type:"string"},records_quarantined:{format:"uint64",minimum:0,type:["integer","null"]},records_rejected:{format:"uint64",minimum:0,type:["integer","null"]},source_bytes_scanned:{format:"uint64",minimum:0,type:["integer","null"]},status:{type:"string"},user_scope:{type:"boolean"}},required:["action","provider","user_scope","completed","status","admission","messages_upserted"],type:"object"},{anyOf:[{description:"The LCM authority settled the compaction.",properties:{authority_outcome:!0,committed_state:!0,messages_upserted:{format:"uint64",minimum:0,type:"integer"},reason:{type:"string"},relation_projection_status:!0,retry_status:{type:["string","null"]},status:{type:"string"},summary_node_ids:{items:{type:"string"},type:"array"},summary_nodes_created:{format:"uint64",minimum:0,type:"integer"}},required:["status","reason","summary_nodes_created","summary_node_ids","relation_projection_status","authority_outcome","committed_state","messages_upserted"],type:"object"},{description:"The LCM authority answered without a compaction.",properties:{authority_outcome:!0,committed_state:!0,messages_upserted:{format:"uint64",minimum:0,type:"integer"},reason:{type:"string"},status:{type:"string"},summary_node_ids:{items:{type:"string"},type:"array"},summary_nodes_created:{format:"uint64",minimum:0,type:"integer"}},required:["status","reason","authority_outcome","committed_state","summary_nodes_created","summary_node_ids","messages_upserted"],type:"object"},{description:"No compaction ran: the authority is absent, the host supplied nothing\nto compact, or its summaries have no provenance.",properties:{reason:{type:"string"},relation_projection_status:!0,status:{type:"string"},summary_node_ids:{items:{type:"string"},type:"array"},summary_nodes_created:{format:"uint64",minimum:0,type:"integer"}},required:["status","reason","summary_nodes_created","summary_node_ids"],type:"object"},{description:"The host event named no session to compact.",properties:{messages_upserted:{format:"uint64",minimum:0,type:"integer"},reason:{type:"string"},status:{type:"string"}},required:["status","reason","messages_upserted"],type:"object"}],description:"A compaction hook's outcome. Variants are distinguished by the fields\nthey carry.",properties:{action:{const:"codex_compact",type:"string"}},required:["action"],type:"object"},{anyOf:[{description:"The LCM authority settled the compaction.",properties:{authority_outcome:!0,committed_state:!0,messages_upserted:{format:"uint64",minimum:0,type:"integer"},reason:{type:"string"},relation_projection_status:!0,retry_status:{type:["string","null"]},status:{type:"string"},summary_node_ids:{items:{type:"string"},type:"array"},summary_nodes_created:{format:"uint64",minimum:0,type:"integer"}},required:["status","reason","summary_nodes_created","summary_node_ids","relation_projection_status","authority_outcome","committed_state","messages_upserted"],type:"object"},{description:"The LCM authority answered without a compaction.",properties:{authority_outcome:!0,committed_state:!0,messages_upserted:{format:"uint64",minimum:0,type:"integer"},reason:{type:"string"},status:{type:"string"},summary_node_ids:{items:{type:"string"},type:"array"},summary_nodes_created:{format:"uint64",minimum:0,type:"integer"}},required:["status","reason","authority_outcome","committed_state","summary_nodes_created","summary_node_ids","messages_upserted"],type:"object"},{description:"No compaction ran: the authority is absent, the host supplied nothing\nto compact, or its summaries have no provenance.",properties:{reason:{type:"string"},relation_projection_status:!0,status:{type:"string"},summary_node_ids:{items:{type:"string"},type:"array"},summary_nodes_created:{format:"uint64",minimum:0,type:"integer"}},required:["status","reason","summary_nodes_created","summary_node_ids"],type:"object"},{description:"The host event named no session to compact.",properties:{messages_upserted:{format:"uint64",minimum:0,type:"integer"},reason:{type:"string"},status:{type:"string"}},required:["status","reason","messages_upserted"],type:"object"}],description:"A compaction hook's outcome. Variants are distinguished by the fields\nthey carry.",properties:{action:{const:"claude_compact",type:"string"}},required:["action"],type:"object"},{anyOf:[{description:"The LCM authority settled the compaction.",properties:{authority_outcome:!0,committed_state:!0,messages_upserted:{format:"uint64",minimum:0,type:"integer"},reason:{type:"string"},relation_projection_status:!0,retry_status:{type:["string","null"]},status:{type:"string"},summary_node_ids:{items:{type:"string"},type:"array"},summary_nodes_created:{format:"uint64",minimum:0,type:"integer"}},required:["status","reason","summary_nodes_created","summary_node_ids","relation_projection_status","authority_outcome","committed_state","messages_upserted"],type:"object"},{description:"The LCM authority answered without a compaction.",properties:{authority_outcome:!0,committed_state:!0,messages_upserted:{format:"uint64",minimum:0,type:"integer"},reason:{type:"string"},status:{type:"string"},summary_node_ids:{items:{type:"string"},type:"array"},summary_nodes_created:{format:"uint64",minimum:0,type:"integer"}},required:["status","reason","authority_outcome","committed_state","summary_nodes_created","summary_node_ids","messages_upserted"],type:"object"},{description:"No compaction ran: the authority is absent, the host supplied nothing\nto compact, or its summaries have no provenance.",properties:{reason:{type:"string"},relation_projection_status:!0,status:{type:"string"},summary_node_ids:{items:{type:"string"},type:"array"},summary_nodes_created:{format:"uint64",minimum:0,type:"integer"}},required:["status","reason","summary_nodes_created","summary_node_ids"],type:"object"},{description:"The host event named no session to compact.",properties:{messages_upserted:{format:"uint64",minimum:0,type:"integer"},reason:{type:"string"},status:{type:"string"}},required:["status","reason","messages_upserted"],type:"object"}],description:"A compaction hook's outcome. Variants are distinguished by the fields\nthey carry.",properties:{action:{const:"cursor_compact",type:"string"}},required:["action"],type:"object"},{additionalProperties:!1,properties:{action:{const:"hermes_receipt",type:"string"},status:{$ref:"#/$defs/HermesReceiptStatusV1"}},required:["action","status"],type:"object"},{oneOf:[{properties:{disposition:{$ref:"#/$defs/HookRuntimeDispositionV1"},status:{const:"accepted",type:"string"}},required:["status","disposition"],type:"object"},{properties:{disposition:{$ref:"#/$defs/HookRuntimeDispositionV1"},status:{const:"exact_duplicate",type:"string"}},required:["status","disposition"],type:"object"},{properties:{disposition:{$ref:"#/$defs/HookRuntimeDispositionV1"},status:{const:"rejected",type:"string"}},required:["status","disposition"],type:"object"},{properties:{status:{const:"unavailable",type:"string"}},required:["status"],type:"object"}],properties:{action:{const:"hook_v2_profile_admit",type:"string"}},required:["action"],type:"object"}],title:"HookRuntimeResultV1"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{limit:{description:"Maximum number of hotspots to return (default: 10, at most 100).",format:"uint32",minimum:0,type:["integer","null"]}},title:"HotspotsSurfaceRequestV1",type:"object"},{$defs:{CodeIndexBuildBlockedReasonV1:hv,CodeIndexConvergenceParkedV1:hb,CodeIndexStalenessStateV1:hw,HotspotV1:{additionalProperties:!1,properties:{churn:{description:"Commits touching `file` in the last 90 days. Absent when git history\ncould not be read; `0` means the file had no commits in that window.",format:"uint64",minimum:0,type:["integer","null"]},file:{type:"string"},id:{type:"string"},incoming:{format:"uint64",minimum:0,type:"integer"},kind:{type:"string"},line:{format:"uint32",minimum:0,type:"integer"},name:{type:"string"},outgoing:{format:"uint64",minimum:0,type:"integer"},total:{format:"uint64",minimum:0,type:"integer"}},required:["id","name","kind","file","line","incoming","outgoing","total"],type:"object"},PrimitiveFreshnessStateV1:_K,PrimitiveIndexingStateV1:_J,PrimitiveSearchFreshnessV1:_Y},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{freshness:{anyOf:[{$ref:"#/$defs/PrimitiveSearchFreshnessV1"},{type:"null"}],description:"The worktree verdict a served graph read opens with."},hotspot_count:{format:"uint64",minimum:0,type:"integer"},hotspots:{items:{$ref:"#/$defs/HotspotV1"},type:"array"},unavailable_fields:{description:"Names a measurement this result could not make. `churn` means the\nranking is connectivity alone.",items:{type:"string"},type:"array"}},required:["hotspot_count","hotspots"],title:"HotspotsResultV1",type:"object"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{max_depth:{format:"uint32",minimum:0,type:["integer","null"]},node_id:{type:"string"}},required:["node_id"],title:"NodeDepthSurfaceRequestV1",type:"object"},{$defs:{CodeIndexBuildBlockedReasonV1:hv,CodeIndexConvergenceParkedV1:hb,CodeIndexStalenessStateV1:hw,ImpactNodeV1:{additionalProperties:!1,properties:{depth:{format:"uint32",minimum:0,type:"integer"},file:{type:"string"},id:{type:"string"},kind:{type:"string"},line:{format:"uint32",minimum:0,type:"integer"},name:{type:"string"}},required:["id","name","kind","file","line","depth"],type:"object"},ImpactRadiusV1:{additionalProperties:!1,properties:{complete:{type:"boolean"},freshness:{anyOf:[{$ref:"#/$defs/PrimitiveSearchFreshnessV1"},{type:"null"}],description:"The worktree verdict a served graph read opens with."},node_count:{format:"uint",minimum:0,type:"integer"},nodes:{items:{$ref:"#/$defs/ImpactNodeV1"},type:"array"},unavailable_fields:{items:{type:"string"},type:"array"}},required:["node_count","complete","unavailable_fields","nodes"],type:"object"},PrimitiveFreshnessStateV1:_K,PrimitiveIndexingStateV1:_J,PrimitiveNotFoundV1:_Q,PrimitiveSearchFreshnessV1:_Y,PrimitiveSymbolLocationV1:_0},$schema:"https://json-schema.org/draft/2020-12/schema",anyOf:[{$ref:"#/$defs/ImpactRadiusV1"},{$ref:"#/$defs/PrimitiveNotFoundV1"}],title:"ImpactResultV1"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{limit:{description:"Maximum number of results to return (default: 10, at most 100).",format:"uint32",minimum:0,type:["integer","null"]},path:{description:"Filter to files under this directory path (e.g. 'src/main/java').",type:["string","null"]}},title:"InheritanceDepthSurfaceRequestV1",type:"object"},{$defs:{CodeIndexBuildBlockedReasonV1:hv,CodeIndexConvergenceParkedV1:hb,CodeIndexStalenessStateV1:hw,InheritanceDepthEntryV1:{additionalProperties:!1,properties:{depth:{format:"uint64",minimum:0,type:"integer"},file:{type:"string"},id:{type:"string"},kind:{type:"string"},line:{format:"uint32",minimum:0,type:"integer"},name:{type:"string"}},required:["id","name","kind","file","line","depth"],type:"object"},PrimitiveFreshnessStateV1:_K,PrimitiveIndexingStateV1:_J,PrimitiveSearchFreshnessV1:_Y},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{freshness:{anyOf:[{$ref:"#/$defs/PrimitiveSearchFreshnessV1"},{type:"null"}],description:"The worktree verdict a served graph read opens with."},ranking:{items:{$ref:"#/$defs/InheritanceDepthEntryV1"},type:"array"},result_count:{format:"uint64",minimum:0,type:"integer"}},required:["result_count","ranking"],title:"InheritanceDepthResultV1",type:"object"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"Exact public input accepted by `tracedecay_insert_at`.",properties:{anchor:{type:"string"},before:{default:!1,type:"boolean"},content:{type:"string"},dry_run:{default:!1,type:"boolean"},expected_state:{description:"Exact `preview_digest`/`expected_state` returned by the dry run. Apply\nre-resolves the typed plan and rejects any candidate-state drift.",type:["string","null"]},idempotency_key:{type:["string","null"]},path:{type:"string"},verify:{default:!1,type:"boolean"}},required:["path","anchor","content"],title:"InsertAtSurfaceRequestV1",type:"object"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"Exact public input accepted by `tracedecay_insert_at_symbol`.",properties:{content:{type:"string"},dry_run:{default:!1,type:"boolean"},expected_state:{description:"Exact `preview_digest`/`expected_state` returned by the dry run. Apply\nre-resolves the typed plan and rejects any candidate-state drift.",type:["string","null"]},idempotency_key:{type:["string","null"]},position:{default:"after",type:"string"},symbol:{type:"string"},verify:{default:!1,type:"boolean"}},required:["symbol","content"],title:"InsertAtSymbolSurfaceRequestV1",type:"object"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{limit:{description:"Maximum number of results to return (default: 10, at most 100).",format:"uint32",minimum:0,type:["integer","null"]},node_kind:{description:"Filter by node kind (e.g. 'class', 'method', 'function', 'interface',\n'enum', 'struct').",type:["string","null"]},path:{description:"Filter to files under this directory path (e.g. 'src/main/java').",type:["string","null"]}},title:"LargestSurfaceRequestV1",type:"object"},{$defs:{CodeIndexBuildBlockedReasonV1:hv,CodeIndexConvergenceParkedV1:hb,CodeIndexStalenessStateV1:hw,LargestEntryV1:{additionalProperties:!1,properties:{end_line:{format:"uint32",minimum:0,type:"integer"},file:{type:"string"},id:{type:"string"},kind:{type:"string"},lines:{format:"uint32",minimum:0,type:"integer"},name:{type:"string"},start_line:{format:"uint32",minimum:0,type:"integer"}},required:["id","name","kind","file","start_line","end_line","lines"],type:"object"},PrimitiveFreshnessStateV1:_K,PrimitiveIndexingStateV1:_J,PrimitiveSearchFreshnessV1:_Y},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{freshness:{anyOf:[{$ref:"#/$defs/PrimitiveSearchFreshnessV1"},{type:"null"}],description:"The worktree verdict a served graph read opens with."},node_kind_filter:{type:["string","null"]},ranking:{items:{$ref:"#/$defs/LargestEntryV1"},type:"array"},result_count:{format:"uint64",minimum:0,type:"integer"}},required:["result_count","ranking"],title:"LargestResultV1",type:"object"},{$defs:{LcmDescribeTargetV1:{oneOf:[{properties:{kind:{const:"session",type:"string"}},required:["kind"],type:"object"},{properties:{kind:{const:"summary_node",type:"string"},node_id:{type:"string"}},required:["kind","node_id"],type:"object"},{properties:{kind:{const:"external_payload",type:"string"},payload_ref:{type:"string"}},required:["kind","payload_ref"],type:"object"}]}},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{provider:{type:"string"},session_id:{type:"string"},target:{anyOf:[{$ref:"#/$defs/LcmDescribeTargetV1"},{type:"null"}]}},required:["provider","session_id"],title:"LcmDescribeRequestV1",type:"object"},{$defs:{ClosedUtcIntervalV1:hf,CompactLineageEdgeV1:{additionalProperties:!1,properties:{authority:{type:"string"},authorized:{type:"boolean"},kind:{type:"string"},knowledge_at:{format:"int64",type:"integer"},object_anchor_id:{type:"string"},subject_anchor_id:{type:"string"},supporting_anchor_ids:{items:{type:"string"},type:"array"}},required:["kind","subject_anchor_id","object_anchor_id","knowledge_at","authority","authorized","supporting_anchor_ids"],type:"object"},HydrationStateResultV1:gB,LcmContentRangeV1:gX,LcmDescribeExternalPayloadV1:{additionalProperties:!1,properties:{byte_count:{format:"uint64",minimum:0,type:"integer"},char_count:{format:"uint64",minimum:0,type:"integer"},content_hash:{type:"string"},content_preview:{type:"string"},created_at:{format:"int64",type:"integer"},kind:{type:"string"},message_id:{type:"string"},metadata_json:{type:["string","null"]},payload_ref:{type:"string"},provider:{type:"string"},session_id:{type:"string"}},required:["payload_ref","provider","session_id","message_id","kind","content_hash","byte_count","char_count","created_at","content_preview"],type:"object"},LcmDescribeSourceOverviewV1:{additionalProperties:!1,properties:{expand_hint:{type:["string","null"]},node_id:{type:["string","null"]},role:{type:["string","null"]},source_kind:{type:"string"},source_ref:{$ref:"#/$defs/LcmSourceRefV1"},source_token_count:{format:"int64",type:["integer","null"]},storage_kind:{anyOf:[{$ref:"#/$defs/LcmStorageKindV1"},{type:"null"}]},store_id:{format:"int64",type:["integer","null"]},summary_token_count:{format:"int64",type:["integer","null"]}},required:["source_kind","source_ref"],type:"object"},LcmDescribeSummaryNodeV1:{additionalProperties:!1,properties:{children:{items:{$ref:"#/$defs/LcmDescribeSourceOverviewV1"},type:"array"},conversation_id:{type:"string"},created_at:{format:"int64",type:"integer"},depth:{format:"int64",type:"integer"},expand_hint:{type:["string","null"]},metadata_json:{type:["string","null"]},node_id:{type:"string"},source_count:{format:"uint",minimum:0,type:"integer"},source_time_end:{format:"int64",type:["integer","null"]},source_time_start:{format:"int64",type:["integer","null"]},source_token_count:{format:"int64",type:"integer"},summary_token_count:{format:"int64",type:"integer"}},required:["node_id","conversation_id","depth","summary_token_count","source_token_count","created_at","source_count","children"],type:"object"},LcmDescriptionV1:{additionalProperties:!1,properties:{external_payload:{anyOf:[{$ref:"#/$defs/LcmDescribeExternalPayloadV1"},{type:"null"}]},external_payload_count:{format:"int64",type:"integer"},first_store_id:{format:"int64",type:["integer","null"]},last_store_id:{format:"int64",type:["integer","null"]},provider:{type:"string"},raw_message_count:{format:"int64",type:"integer"},raw_messages:{items:{$ref:"#/$defs/LcmRawMessageOverviewV1"},type:"array"},session_id:{type:"string"},session_token_estimate:{format:"int64",type:["integer","null"]},summary_node:{anyOf:[{$ref:"#/$defs/LcmDescribeSummaryNodeV1"},{type:"null"}]},summary_node_count:{format:"int64",type:"integer"},summary_nodes:{items:{$ref:"#/$defs/LcmSummaryNodeOverviewV1"},type:"array"},target:{type:"string"},unpublished_message_count:{description:"Raw messages the session's active temporal generation has not\npublished; transcript reads cannot page them yet.",format:"int64",type:"integer"}},required:["target","provider","session_id","raw_message_count","unpublished_message_count","summary_node_count","external_payload_count","raw_messages","summary_nodes"],type:"object"},LcmRawMessageOverviewV1:{additionalProperties:!1,properties:{content_preview:{type:"string"},content_range:{$ref:"#/$defs/LcmContentRangeV1"},message_id:{type:"string"},payload_ref:{type:["string","null"]},role:{type:"string"},storage_kind:{$ref:"#/$defs/LcmStorageKindV1"},store_id:{format:"int64",type:"integer"}},required:["message_id","store_id","role","storage_kind","content_preview","content_range"],type:"object"},LcmRetrievalOutcomeV1:g6,LcmSourceRefV1:g3,LcmStorageKindV1:g9,LcmSummaryNodeOverviewV1:{additionalProperties:!1,properties:{conversation_id:{type:"string"},created_at:{format:"int64",type:"integer"},depth:{format:"int64",type:"integer"},node_id:{type:"string"},source_count:{format:"uint",minimum:0,type:"integer"},summary_preview:{type:"string"}},required:["node_id","conversation_id","depth","summary_preview","source_count","created_at"],type:"object"},LcmTemporalFieldsV1:_e,RetainedErrorV1:vR,RetainedOutcomeStatusV1:vq,RetrievalWorkerStatusV1:vO,SessionCoverageIntervalV1:v9,SessionCoverageReasonV1:v5,SessionCoverageRequestV1:v8,SessionCoverageStateV1:v7,SessionSourceCoverageV1:bs,TemporalCoverageV1:bA,TemporalExplanationV1:bW,TemporalFreshnessV1:bM,TemporalModeV1:bN,TemporalOmissionV1:bz,TemporalWatermarksV1:bD,UtcMicros:bX,ValidCoverageIntervalV1:bY},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{capped_sessions:{additionalProperties:{format:"uint",minimum:0,type:"integer"},type:["object","null"]},description:{anyOf:[{$ref:"#/$defs/LcmDescriptionV1"},{type:"null"}]},error:{anyOf:[{$ref:"#/$defs/RetainedErrorV1"},{type:"null"}]},grain:{type:["string","null"]},lineage:{items:{$ref:"#/$defs/CompactLineageEdgeV1"},type:["array","null"]},omitted:{format:"uint64",minimum:0,type:["integer","null"]},provider:{type:["string","null"]},retrieval:{anyOf:[{$ref:"#/$defs/LcmRetrievalOutcomeV1"},{type:"null"}]},service_status:{anyOf:[{$ref:"#/$defs/RetrievalWorkerStatusV1"},{type:"null"}]},session_id:{type:["string","null"]},state:{anyOf:[{$ref:"#/$defs/HydrationStateResultV1"},{type:"null"}]},status:{$ref:"#/$defs/RetainedOutcomeStatusV1"},temporal:{anyOf:[{$ref:"#/$defs/LcmTemporalFieldsV1"},{type:"null"}]}},required:["status"],title:"LcmDescribeResultV1",type:"object"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,title:"LcmDoctorRequestV1",type:"object"},{$defs:{LcmAuthorityOutcomeV1:gQ,LcmConvergenceStateV1:gY,LcmConvergenceV1:g1,LcmDoctorFindingKindV1:{enum:["trigger_audit_drift","occurrence_fts_corruption","summary_fts_corruption","missing_anchor","missing_receipt","invalid_generation","multi_active_generation","cursor_chain_absent","cursor_key_absent","ownership_drift","stuck_refresh","stuck_binding","stuck_progress","stuck_receipt","migration_gap","compatibility_drift","relation_graph_unavailable","relation_graph_corruption","relation_graph_cycle","stale_summary_closure"],type:"string"},LcmDoctorFindingV1:{additionalProperties:!1,properties:{count:{format:"uint64",minimum:0,type:"integer"},kind:{$ref:"#/$defs/LcmDoctorFindingKindV1"}},required:["kind","count"],type:"object"},LcmDoctorHealthStatusV1:{enum:["complete","partial","unavailable","locked"],type:"string"},LcmDoctorHealthV1:{additionalProperties:!1,properties:{findings:{items:{$ref:"#/$defs/LcmDoctorFindingV1"},type:"array"},reason:{type:["string","null"]},status:{$ref:"#/$defs/LcmDoctorHealthStatusV1"}},required:["status","findings"],type:"object"},LcmDoctorProjectionStateV1:g0,LcmDoctorProjectionV1:g2,RetainedOutcomeStatusV1:vq,RetrievalWorkerStatusV1:vO},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{authority_outcome:{$ref:"#/$defs/LcmAuthorityOutcomeV1"},health:{anyOf:[{$ref:"#/$defs/LcmDoctorHealthV1"},{type:"null"}]},projection:{anyOf:[{$ref:"#/$defs/LcmDoctorProjectionV1"},{type:"null"}],description:"Absent when the diagnosed store has no refresh worker (profile mounts)."},reason:{type:["string","null"]},status:{$ref:"#/$defs/RetainedOutcomeStatusV1"}},required:["status","authority_outcome"],title:"LcmDoctorResultV1",type:"object"},{$defs:{LcmExpandTargetV1:{oneOf:[{properties:{kind:{const:"canonical_occurrence",type:"string"},message_id:{type:"string"}},required:["kind","message_id"],type:"object"},{properties:{kind:{const:"raw_message",type:"string"},store_id:{format:"uint64",minimum:0,type:"integer"}},required:["kind","store_id"],type:"object"},{properties:{kind:{const:"summary_node",type:"string"},node_id:{type:"string"}},required:["kind","node_id"],type:"object"},{properties:{kind:{const:"external_payload",type:"string"},payload_ref:{type:"string"}},required:["kind","payload_ref"],type:"object"}]}},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{content_limit:{format:"uint64",minimum:0,type:["integer","null"]},content_offset:{format:"uint64",minimum:0,type:["integer","null"]},cursor:{type:["string","null"]},provider:{type:"string"},session_id:{type:"string"},source_limit:{format:"uint64",minimum:0,type:["integer","null"]},target:{$ref:"#/$defs/LcmExpandTargetV1"}},required:["provider","session_id","target"],title:"LcmExpandRequestV1",type:"object"},{$defs:{ClosedUtcIntervalV1:hf,HydrationStateResultV1:gB,LcmContentRangeV1:gX,LcmExpandedSourceV1:{additionalProperties:!1,properties:{content:{type:"string"},content_range:{anyOf:[{$ref:"#/$defs/LcmContentRangeV1"},{type:"null"}]},content_truncated:{type:"boolean"},raw_message:{anyOf:[{$ref:"#/$defs/LcmRawMessageV1"},{type:"null"}]},raw_message_metadata:{anyOf:[{$ref:"#/$defs/LcmRawMessageMetadataV1"},{type:"null"}]},source_ref:{$ref:"#/$defs/LcmSourceRefV1"},state:{$ref:"#/$defs/HydrationStateResultV1"},summary_node:{anyOf:[{$ref:"#/$defs/LcmSummaryNodeV1"},{type:"null"}]}},required:["source_ref","state","content","content_truncated"],type:"object"},LcmExpansionV1:{additionalProperties:!1,properties:{content:{type:"string"},content_range:{$ref:"#/$defs/LcmContentRangeV1"},from_current_session:{type:["boolean","null"]},kind:{type:"string"},payload_ref:{type:["string","null"]},raw_message:{anyOf:[{$ref:"#/$defs/LcmRawMessageV1"},{type:"null"}]},raw_message_metadata:{anyOf:[{$ref:"#/$defs/LcmRawMessageMetadataV1"},{type:"null"}]},source_pagination:{anyOf:[{$ref:"#/$defs/LcmSourcePaginationV1"},{type:"null"}]},summary_node:{anyOf:[{$ref:"#/$defs/LcmSummaryNodeV1"},{type:"null"}]},summary_sources:{items:{$ref:"#/$defs/LcmExpandedSourceV1"},type:"array"}},required:["kind","content","content_range","summary_sources"],type:"object"},LcmRawMessageMetadataV1:{additionalProperties:!1,properties:{content_hash:{type:"string"},message_id:{type:"string"},metadata_json:{type:["string","null"]},ordinal:{format:"int64",type:"integer"},payload_ref:{type:["string","null"]},provider:{type:"string"},role:{type:"string"},session_id:{type:"string"},storage_kind:{$ref:"#/$defs/LcmStorageKindV1"},store_id:{format:"int64",type:"integer"},timestamp:{format:"int64",type:["integer","null"]}},required:["provider","message_id","session_id","store_id","role","ordinal","content_hash","storage_kind"],type:"object"},LcmRawMessageV1:g4,LcmRetrievalOutcomeV1:g6,LcmSourcePaginationV1:{additionalProperties:!1,properties:{has_more:{type:"boolean"},remaining_sources:{format:"uint",minimum:0,type:"integer"},returned_sources:{format:"uint",minimum:0,type:"integer"},source_limit:{format:"uint",minimum:0,type:"integer"},total_sources:{format:"uint",minimum:0,type:"integer"}},required:["source_limit","returned_sources","total_sources","has_more","remaining_sources"],type:"object"},LcmSourceRefV1:g3,LcmStorageKindV1:g9,LcmSummaryNodeV1:g7,LcmTemporalFieldsV1:_e,RetainedErrorV1:vR,RetainedOutcomeStatusV1:vq,RetrievalWorkerStatusV1:vO,SessionCoverageIntervalV1:v9,SessionCoverageReasonV1:v5,SessionCoverageRequestV1:v8,SessionCoverageStateV1:v7,SessionSourceCoverageV1:bs,TemporalCoverageV1:bA,TemporalExplanationV1:bW,TemporalFreshnessV1:bM,TemporalModeV1:bN,TemporalOmissionV1:bz,TemporalWatermarksV1:bD,UtcMicros:bX,ValidCoverageIntervalV1:bY},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{capped_sessions:{additionalProperties:{format:"uint",minimum:0,type:"integer"},type:["object","null"]},error:{anyOf:[{$ref:"#/$defs/RetainedErrorV1"},{type:"null"}]},expansion:{anyOf:[{$ref:"#/$defs/LcmExpansionV1"},{type:"null"}]},grain:{type:["string","null"]},omitted:{format:"uint64",minimum:0,type:["integer","null"]},provider:{type:["string","null"]},retrieval:{anyOf:[{$ref:"#/$defs/LcmRetrievalOutcomeV1"},{type:"null"}]},service_status:{anyOf:[{$ref:"#/$defs/RetrievalWorkerStatusV1"},{type:"null"}]},session_id:{type:["string","null"]},state:{anyOf:[{$ref:"#/$defs/HydrationStateResultV1"},{type:"null"}]},status:{$ref:"#/$defs/RetainedOutcomeStatusV1"},temporal:{anyOf:[{$ref:"#/$defs/LcmTemporalFieldsV1"},{type:"null"}]}},required:["status"],title:"LcmExpandResultV1",type:"object"},{$defs:{LcmNodeIdV1:{anyOf:[{type:"string"},{format:"uint64",minimum:0,type:"integer"}]}},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{context_max_tokens:{format:"uint64",minimum:0,type:["integer","null"]},cursor:{type:["string","null"]},max_results:{format:"uint64",minimum:0,type:["integer","null"]},max_tokens:{format:"uint64",minimum:0,type:["integer","null"]},node_ids:{items:{$ref:"#/$defs/LcmNodeIdV1"},type:["array","null"]},prompt:{type:"string"},provider:{type:"string"},query:{type:["string","null"]},session_id:{type:"string"}},required:["provider","session_id","prompt"],title:"LcmExpandQueryRequestV1",type:"object"},{$defs:{ClosedUtcIntervalV1:hf,HydrationStateResultV1:gB,LcmContentRangeV1:gX,LcmExpandQueryBudgetV1:{additionalProperties:!1,properties:{requested_max_chars:{format:"uint",minimum:0,type:"integer"},used_chars:{format:"uint",minimum:0,type:"integer"}},required:["requested_max_chars","used_chars"],type:"object"},LcmExpandQueryContextBlockV1:{additionalProperties:!1,properties:{content:{type:"string"},content_range:{$ref:"#/$defs/LcmContentRangeV1"},kind:{type:"string"},node_id:{type:["string","null"]},raw_message:{anyOf:[{$ref:"#/$defs/LcmRawMessageV1"},{type:"null"}]},source_ref:{anyOf:[{$ref:"#/$defs/LcmSourceRefV1"},{type:"null"}]},summary_node:{anyOf:[{$ref:"#/$defs/LcmSummaryNodeV1"},{type:"null"}]}},required:["kind","content","content_range"],type:"object"},LcmExpandQueryMatchV1:{additionalProperties:!1,properties:{kind:{type:"string"},node_id:{type:["string","null"]},snippet:{type:"string"},store_id:{format:"int64",type:["integer","null"]}},required:["kind","snippet"],type:"object"},LcmExpandQueryPaginationV1:{additionalProperties:!1,properties:{has_more:{type:"boolean"},kind:{type:"string"},next_content_offset:{format:"uint64",minimum:0,type:["integer","null"]},node_id:{type:["string","null"]},source_ref:{anyOf:[{$ref:"#/$defs/LcmSourceRefV1"},{type:"null"}]},state:{anyOf:[{$ref:"#/$defs/HydrationStateResultV1"},{type:"null"}]}},required:["kind","has_more"],type:"object"},LcmExpandQuerySynthesisPromptV1:{additionalProperties:!1,properties:{system:{type:"string"},user:{type:"string"},user_prompt_truncated_for_mcp:{type:["boolean","null"]}},required:["system","user"],type:"object"},LcmRawMessageV1:g4,LcmSourceRefV1:g3,LcmStorageKindV1:g9,LcmSummaryNodeV1:g7,LcmTemporalFieldsV1:_e,RetainedErrorV1:vR,RetainedOutcomeStatusV1:vq,RetrievalWorkerStatusV1:vO,SessionCoverageIntervalV1:v9,SessionCoverageReasonV1:v5,SessionCoverageRequestV1:v8,SessionCoverageStateV1:v7,SessionSourceCoverageV1:bs,TemporalCoverageV1:bA,TemporalExplanationV1:bW,TemporalModeV1:bN,TemporalOmissionV1:bz,TemporalWatermarksV1:bD,UtcMicros:bX,ValidCoverageIntervalV1:bY},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{answer:{type:["string","null"]},capped_sessions:{additionalProperties:{format:"uint",minimum:0,type:"integer"},type:["object","null"]},context_blocks:{items:{$ref:"#/$defs/LcmExpandQueryContextBlockV1"},type:"array"},context_budget:{anyOf:[{$ref:"#/$defs/LcmExpandQueryBudgetV1"},{type:"null"}]},context_max_tokens:{format:"uint",minimum:0,type:["integer","null"]},context_pagination:{items:{$ref:"#/$defs/LcmExpandQueryPaginationV1"},type:["array","null"]},context_truncated:{type:["boolean","null"]},contract_truncated:{type:["boolean","null"]},error:{anyOf:[{$ref:"#/$defs/RetainedErrorV1"},{type:"null"}]},matches:{items:{$ref:"#/$defs/LcmExpandQueryMatchV1"},type:["array","null"]},max_tokens:{format:"uint",minimum:0,type:["integer","null"]},mcp_response_truncated:{type:["boolean","null"]},mcp_truncation_reason:{type:["string","null"]},needs_synthesis:{type:["boolean","null"]},node_ids:{items:{type:"string"},type:["array","null"]},omitted:{format:"uint64",minimum:0,type:["integer","null"]},prompt:{type:["string","null"]},prompt_truncated_for_mcp:{type:["boolean","null"]},provider:{type:["string","null"]},query:{type:["string","null"]},query_truncated_for_mcp:{type:["boolean","null"]},service_status:{anyOf:[{$ref:"#/$defs/RetrievalWorkerStatusV1"},{type:"null"}]},session_id:{type:["string","null"]},status:{$ref:"#/$defs/RetainedOutcomeStatusV1"},synthesis_prompt:{anyOf:[{$ref:"#/$defs/LcmExpandQuerySynthesisPromptV1"},{type:"null"}]},temporal:{anyOf:[{$ref:"#/$defs/LcmTemporalFieldsV1"},{type:"null"}]}},required:["status","context_blocks"],title:"LcmExpandQueryResultV1",type:"object"},{$defs:{LcmGrepSortV1:{enum:["recency","relevance","hybrid"],type:"string"},LcmRoleV1:{enum:["system","user","assistant","tool","unknown"],type:"string"},LcmSearchScopeV1:{enum:["current","session","all"],type:"string"},MessageRelationshipScopeV1:_f,MessageTypeFilterV1:_h,RetainedTimeFilterV1:vI,TemporalModeV1:bN,UtcMicros:bX},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{branch:{type:["string","null"]},commit:{type:["string","null"]},cursor:{type:["string","null"]},end_time:{anyOf:[{$ref:"#/$defs/RetainedTimeFilterV1"},{type:"null"}]},include_summaries:{type:["boolean","null"]},limit:{format:"uint64",minimum:0,type:["integer","null"]},message_type:{anyOf:[{$ref:"#/$defs/MessageTypeFilterV1"},{type:"null"}]},provider:{type:["string","null"]},query:{type:"string"},relationship_scope:{anyOf:[{$ref:"#/$defs/MessageRelationshipScopeV1"},{type:"null"}]},role:{anyOf:[{$ref:"#/$defs/LcmRoleV1"},{type:"null"}]},scope:{anyOf:[{$ref:"#/$defs/LcmSearchScopeV1"},{type:"null"}]},session_id:{type:["string","null"]},since:{anyOf:[{$ref:"#/$defs/RetainedTimeFilterV1"},{type:"null"}]},sort:{anyOf:[{$ref:"#/$defs/LcmGrepSortV1"},{type:"null"}]},source:{type:["string","null"]},start_time:{anyOf:[{$ref:"#/$defs/RetainedTimeFilterV1"},{type:"null"}]},temporal_mode:{anyOf:[{$ref:"#/$defs/TemporalModeV1"},{type:"null"}]},until:{anyOf:[{$ref:"#/$defs/RetainedTimeFilterV1"},{type:"null"}]},worktree:{type:["string","null"]}},required:["query"],title:"LcmGrepRequestV1",type:"object"},{$defs:{ClosedUtcIntervalV1:hf,HydrationStateResultV1:gB,LcmGrepHitV1:{additionalProperties:!1,properties:{kind:{type:"string"},message_id:{type:["string","null"]},node_id:{type:["string","null"]},provider:{type:"string"},role:{type:["string","null"]},score:{format:"double",type:"number"},session_id:{type:"string"},snippet:{type:"string"},store_id:{format:"int64",type:["integer","null"]}},required:["kind","provider","session_id","snippet","score"],type:"object"},LcmTemporalFieldsV1:_e,RetainedErrorV1:vR,RetainedOutcomeStatusV1:vq,RetrievalWorkerStatusV1:vO,SessionCoverageIntervalV1:v9,SessionCoverageReasonV1:v5,SessionCoverageRequestV1:v8,SessionCoverageStateV1:v7,SessionSourceCoverageV1:bs,TemporalCoverageV1:bA,TemporalExplanationV1:bW,TemporalModeV1:bN,TemporalOmissionV1:bz,TemporalWatermarksV1:bD,UtcMicros:bX,ValidCoverageIntervalV1:bY},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{capped_sessions:{additionalProperties:{format:"uint",minimum:0,type:"integer"},type:["object","null"]},count:{format:"uint",minimum:0,type:["integer","null"]},error:{anyOf:[{$ref:"#/$defs/RetainedErrorV1"},{type:"null"}]},hits:{items:{$ref:"#/$defs/LcmGrepHitV1"},type:"array"},message_type:{type:["string","null"]},omitted:{format:"uint64",minimum:0,type:["integer","null"]},provider:{type:["string","null"]},query:{type:["string","null"]},relationship_scope:{type:["string","null"]},service_status:{anyOf:[{$ref:"#/$defs/RetrievalWorkerStatusV1"},{type:"null"}]},sort:{type:["string","null"]},status:{$ref:"#/$defs/RetainedOutcomeStatusV1"},temporal:{anyOf:[{$ref:"#/$defs/LcmTemporalFieldsV1"},{type:"null"}]}},required:["status","hits"],title:"LcmGrepResultV1",type:"object"},{$defs:{TemporalModeV1:bN,UtcMicros:bX},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{content_limit:{format:"uint64",minimum:0,type:["integer","null"]},content_offset:{format:"uint64",minimum:0,type:["integer","null"]},cursor:{type:["string","null"]},end_time:{format:"uint64",minimum:0,type:["integer","null"]},limit:{format:"uint64",minimum:0,type:["integer","null"]},provider:{type:["string","null"]},role:{type:["string","null"]},roles:{items:{type:"string"},type:["array","null"]},session_id:{type:"string"},start_time:{format:"uint64",minimum:0,type:["integer","null"]},temporal_mode:{anyOf:[{$ref:"#/$defs/TemporalModeV1"},{type:"null"}]}},required:["session_id"],title:"LcmLoadSessionRequestV1",type:"object"},{$defs:{ClosedUtcIntervalV1:hf,HydrationStateResultV1:gB,LcmContentRangeV1:gX,LcmMessageV1:{additionalProperties:!1,properties:{content:{type:"string"},content_hash:{type:["string","null"]},content_range:{$ref:"#/$defs/LcmContentRangeV1"},message_id:{type:"string"},metadata_json:{type:["string","null"]},ordinal:{format:"int64",type:"integer"},payload_ref:{type:["string","null"]},provider:{type:"string"},role:{type:"string"},session_id:{type:"string"},storage_kind:{$ref:"#/$defs/LcmStorageKindV1"},store_id:{format:"int64",type:["integer","null"]},timestamp:{format:"int64",type:["integer","null"]}},required:["provider","message_id","session_id","role","ordinal","content","content_range","storage_kind"],type:"object"},LcmStorageKindV1:g9,LcmTemporalFieldsV1:_e,RetainedErrorV1:vR,RetainedOutcomeStatusV1:vq,RetrievalWorkerStatusV1:vO,SessionCoverageIntervalV1:v9,SessionCoverageReasonV1:v5,SessionCoverageRequestV1:v8,SessionCoverageStateV1:v7,SessionSourceCoverageV1:bs,TemporalCoverageV1:bA,TemporalExplanationV1:bW,TemporalModeV1:bN,TemporalOmissionV1:bz,TemporalWatermarksV1:bD,UtcMicros:bX,ValidCoverageIntervalV1:bY},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{capped_sessions:{additionalProperties:{format:"uint",minimum:0,type:"integer"},type:["object","null"]},content_limit:{format:"uint",minimum:0,type:["integer","null"]},content_limit_clamped_from:{format:"uint",minimum:0,type:["integer","null"]},error:{anyOf:[{$ref:"#/$defs/RetainedErrorV1"},{type:"null"}]},messages:{items:{$ref:"#/$defs/LcmMessageV1"},type:"array"},omitted:{format:"uint64",minimum:0,type:["integer","null"]},provider:{type:["string","null"]},service_status:{anyOf:[{$ref:"#/$defs/RetrievalWorkerStatusV1"},{type:"null"}]},session_id:{type:["string","null"]},status:{$ref:"#/$defs/RetainedOutcomeStatusV1"},temporal:{anyOf:[{$ref:"#/$defs/LcmTemporalFieldsV1"},{type:"null"}]}},required:["status","messages"],title:"LcmLoadSessionResultV1",type:"object"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{deep:{type:["boolean","null"]},provider:{type:["string","null"]},session_id:{type:["string","null"]}},title:"LcmStatusRequestV1",type:"object"},{$defs:{LcmAuthorityOutcomeV1:gQ,LcmConfigStatusV1:{additionalProperties:!1,properties:{compression_boundary_cooldown_seconds:{format:"int64",type:"integer"},fresh_tail_count:{format:"uint",minimum:0,type:"integer"},summary_fan_in:{format:"uint",minimum:0,type:"integer"}},required:["fresh_tail_count","summary_fan_in","compression_boundary_cooldown_seconds"],type:"object"},LcmConvergenceStateV1:gY,LcmConvergenceV1:g1,LcmDagDepthStatusV1:{additionalProperties:!1,properties:{count:{format:"int64",type:"integer"},source_tokens:{format:"int64",type:"integer"},tokens:{format:"int64",type:"integer"}},required:["count","tokens","source_tokens"],type:"object"},LcmDagStatusV1:{additionalProperties:!1,properties:{compression_ratio:{type:"string"},depths:{additionalProperties:{$ref:"#/$defs/LcmDagDepthStatusV1"},type:"object"},total_nodes:{format:"int64",type:"integer"},total_source_tokens:{format:"int64",type:"integer"},total_tokens:{format:"int64",type:"integer"}},required:["total_nodes","total_tokens","total_source_tokens","compression_ratio","depths"],type:"object"},LcmDoctorProjectionStateV1:g0,LcmDoctorProjectionV1:g2,LcmLifecycleStatusV1:{additionalProperties:!1,properties:{current_frontier_store_id:{format:"int64",type:["integer","null"]},current_session_id:{type:["string","null"]},frontier_count:{format:"int64",type:"integer"},last_finalized_frontier_store_id:{format:"int64",type:["integer","null"]},last_finalized_session_id:{type:["string","null"]},lifecycle_state_count:{format:"int64",type:"integer"},maintenance_debt_count:{format:"int64",type:"integer"}},required:["lifecycle_state_count","frontier_count","maintenance_debt_count"],type:"object"},LcmPayloadCoverageStateV1:{enum:["complete","partial"],type:"string"},LcmPayloadCoverageV1:{additionalProperties:!1,properties:{reason:{type:["string","null"]},scanned_files:{format:"int64",type:"integer"},scanned_metadata_refs:{format:"int64",type:"integer"},state:{$ref:"#/$defs/LcmPayloadCoverageStateV1"}},required:["state","scanned_metadata_refs","scanned_files"],type:"object"},LcmPayloadGcStatusV1:{additionalProperties:!1,properties:{grace_seconds:{format:"int64",type:"integer"},last_gc_at:{format:"int64",type:["integer","null"]},last_gc_duration_ms:{format:"uint64",minimum:0,type:["integer","null"]},last_gc_error:{type:["string","null"]},last_gc_status:{type:["string","null"]},last_reaped_bytes:{format:"uint64",minimum:0,type:["integer","null"]},last_reaped_refs:{format:"int64",type:["integer","null"]},next_run_eligible_at:{format:"int64",type:["integer","null"]},reap_missing_metadata_after_seconds:{format:"int64",type:"integer"}},required:["grace_seconds","reap_missing_metadata_after_seconds"],type:"object"},LcmPayloadStatusV1:{additionalProperties:!1,properties:{coverage:{$ref:"#/$defs/LcmPayloadCoverageV1"},externalized_count:{format:"int64",type:"integer"},gc_candidate_count:{format:"int64",type:"integer"},integrity_mismatch_count:{format:"int64",type:["integer","null"]},missing_count:{format:"int64",type:"integer"},missing_placeholder_file_count:{format:"int64",type:"integer"},missing_placeholder_metadata_count:{format:"int64",type:"integer"},orphan_file_bytes:{format:"uint64",minimum:0,type:"integer"},orphan_file_count:{format:"int64",type:"integer"},placeholder_ref_count:{format:"int64",type:"integer"},reclaimable_bytes:{format:"uint64",minimum:0,type:"integer"},reclaimable_bytes_after_grace:{format:"uint64",minimum:0,type:"integer"},referenced_bytes:{format:"uint64",minimum:0,type:"integer"},referenced_count:{format:"int64",type:"integer"},root_contained:{type:"boolean"},tombstoned_count:{format:"int64",type:"integer"},total_bytes:{format:"uint64",minimum:0,type:"integer"},unreferenced_count:{format:"int64",type:"integer"}},required:["coverage","externalized_count","missing_count","unreferenced_count","placeholder_ref_count","missing_placeholder_metadata_count","missing_placeholder_file_count","gc_candidate_count","root_contained","orphan_file_count","tombstoned_count","referenced_count","total_bytes","referenced_bytes","orphan_file_bytes","reclaimable_bytes","reclaimable_bytes_after_grace"],type:"object"},LcmRedactionStatusV1:{additionalProperties:!1,properties:{enabled:{type:"boolean"},lossy_records:{format:"int64",type:"integer"}},required:["enabled","lossy_records"],type:"object"},LcmStatusV1:{additionalProperties:!1,properties:{config:{$ref:"#/$defs/LcmConfigStatusV1"},dag:{$ref:"#/$defs/LcmDagStatusV1"},external_payload_count:{format:"int64",type:"integer"},lifecycle:{$ref:"#/$defs/LcmLifecycleStatusV1"},maintenance_debt_count:{format:"int64",type:"integer"},missing_payload_count:{format:"int64",type:"integer"},payload:{$ref:"#/$defs/LcmPayloadStatusV1"},payload_gc:{$ref:"#/$defs/LcmPayloadGcStatusV1"},raw_message_count:{format:"int64",type:"integer"},redaction:{$ref:"#/$defs/LcmRedactionStatusV1"},schema_version:{format:"int64",type:"integer"},store:{$ref:"#/$defs/LcmStoreStatusV1"},summary_convergence:{$ref:"#/$defs/LcmSummaryConvergenceStatusV1"},summary_node_count:{format:"int64",type:"integer"},unreferenced_payload_count:{format:"int64",type:"integer"}},required:["schema_version","raw_message_count","summary_node_count","external_payload_count","missing_payload_count","unreferenced_payload_count","maintenance_debt_count","store","dag","config","payload","payload_gc","lifecycle","summary_convergence","redaction"],type:"object"},LcmStoreStatusV1:{additionalProperties:!1,properties:{estimated_tokens:{format:"int64",type:"integer"},messages:{format:"int64",type:"integer"},token_estimate:{$ref:"#/$defs/LcmStoreTokenCoverageV1"}},required:["messages","estimated_tokens","token_estimate"],type:"object"},LcmStoreTokenCoverageV1:{additionalProperties:!1,properties:{complete:{type:"boolean"},next_after_store_id:{format:"int64",type:["integer","null"]},scanned_messages:{format:"int64",type:"integer"}},required:["complete","scanned_messages"],type:"object"},LcmSummaryConvergenceReasonV1:{additionalProperties:!1,properties:{reason:{type:"string"},session_count:{format:"int64",type:"integer"},state:{$ref:"#/$defs/LcmSummaryConvergenceStateV1"}},required:["state","reason","session_count"],type:"object"},LcmSummaryConvergenceStateV1:{enum:["pending","retryable","current","unavailable","permanent"],type:"string"},LcmSummaryConvergenceStatusV1:{additionalProperties:!1,description:"Retained-session summary convergence queue: disjoint per-state session\ncounts and the reasons parked or failed sessions record.",properties:{current_session_count:{format:"int64",type:"integer"},pending_session_count:{format:"int64",type:"integer"},permanent_session_count:{format:"int64",type:"integer"},reasons:{items:{$ref:"#/$defs/LcmSummaryConvergenceReasonV1"},type:"array"},retryable_session_count:{format:"int64",type:"integer"},unavailable_session_count:{format:"int64",type:"integer"}},required:["pending_session_count","retryable_session_count","current_session_count","unavailable_session_count","permanent_session_count","reasons"],type:"object"},RetainedOutcomeStatusV1:vq,RetrievalWorkerStatusV1:vO},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{authority_outcome:{anyOf:[{$ref:"#/$defs/LcmAuthorityOutcomeV1"},{type:"null"}]},deep:{type:["boolean","null"]},lcm:{anyOf:[{$ref:"#/$defs/LcmStatusV1"},{type:"null"}]},message:{type:["string","null"]},projection:{anyOf:[{$ref:"#/$defs/LcmDoctorProjectionV1"},{type:"null"}],description:"The store's refresh-worker serving and convergence state. Absent when\nno refresh worker serves the store."},provider:{type:["string","null"]},reason:{type:["string","null"]},session_id:{type:["string","null"]},status:{$ref:"#/$defs/RetainedOutcomeStatusV1"}},required:["status"],title:"LcmStatusResultV1",type:"object"},{$defs:{MemoryScopeV1:_m,ProjectId:_6},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{memory_scope:{anyOf:[{$ref:"#/$defs/MemoryScopeV1"},{type:"null"}]},project_selector:{additionalProperties:!1,description:'Exact registered-project selector. Reads and fact effects run against the\nselected project.\n\nInlined so every request schema advertises the closed selector contract\n(`required: ["project_id"]`, no additional properties) directly on its\n`project_selector` property instead of behind a `$defs` reference, matching\nthe selector shape the MCP dispatch policy promises for selector-accepting\ntools.',properties:{project_id:{$ref:"#/$defs/ProjectId"}},required:["project_id"],type:["object","null"]}},title:"MemoryStatusRequestV1",type:"object"},{$defs:{FactCommitOwnerV1:yN,MemoryAlgebraV1:{additionalProperties:!1,properties:{estimated_capacity:{description:"Heuristic D / ln(D) count of bound items one vector can superpose\nbefore cosine similarity degrades. Each fact has its own vector, so\nthis is neither a limit on stored facts nor a recall guarantee.",format:"uint64",minimum:0,type:"integer"},hrr_dim:{description:"Width of each encoded vector.",format:"uint64",minimum:0,type:"integer"},name:{description:"Vector algebra the fact encodings use. Current daemons report `map_c`;\nearlier releases reported `amari_fhrr` for the same encoding.",type:"string"}},required:["name","hrr_dim","estimated_capacity"],type:"object"},MemoryFeedbackFunnelV1:{additionalProperties:!1,properties:{access_count_total:{format:"uint64",minimum:0,type:"integer"},feedback_total:{format:"uint64",minimum:0,type:"integer"},rated_fact_count:{format:"uint64",minimum:0,type:"integer"},retrieval_count_total:{format:"uint64",minimum:0,type:"integer"},retrieved_fact_count:{format:"uint64",minimum:0,type:"integer"},seen_to_feedback_ratio:{format:"uint64",minimum:0,type:["integer","null"]}},required:["retrieval_count_total","access_count_total","retrieved_fact_count","rated_fact_count","feedback_total"],type:"object"},MemoryStatusV1:{additionalProperties:!1,properties:{algebra:{$ref:"#/$defs/MemoryAlgebraV1"},below_default_recall_threshold_count:{format:"uint64",minimum:0,type:"integer"},entity_count:{format:"uint64",minimum:0,type:"integer"},fact_count:{format:"uint64",minimum:0,type:"integer"},feedback_funnel:{$ref:"#/$defs/MemoryFeedbackFunnelV1"},helpful_count:{format:"uint64",minimum:0,type:"integer"},owner:{$ref:"#/$defs/FactCommitOwnerV1"},trust_025_050_count:{format:"uint64",minimum:0,type:"integer"},trust_050_075_count:{format:"uint64",minimum:0,type:"integer"},trust_075_100_count:{format:"uint64",minimum:0,type:"integer"},trust_0_025_count:{format:"uint64",minimum:0,type:"integer"},unhelpful_count:{format:"uint64",minimum:0,type:"integer"}},required:["owner","fact_count","entity_count","algebra","trust_0_025_count","trust_025_050_count","trust_050_075_count","trust_075_100_count","below_default_recall_threshold_count","helpful_count","unhelpful_count","feedback_funnel"],type:"object"},ProjectId:_6},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{memory:{$ref:"#/$defs/MemoryStatusV1"}},required:["memory"],title:"MemoryStatusResultV1",type:"object"},{$defs:{MessageRelationshipScopeV1:_f,MessageTypeFilterV1:_h,ProjectId:_6,RetainedTimeFilterV1:vI},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"Exact public input accepted by `tracedecay_message_search`.",properties:{branch:{type:["string","null"]},commit:{type:["string","null"]},cursor:{type:["string","null"]},goals:{default:!1,type:"boolean"},include_subagents:{type:["boolean","null"]},limit:{format:"uint64",minimum:0,type:["integer","null"]},message_type:{anyOf:[{$ref:"#/$defs/MessageTypeFilterV1"},{type:"null"}]},parent_session_id:{type:["string","null"]},project_key:{type:["string","null"]},project_selector:{additionalProperties:!1,description:'Exact registered-project selector. Reads and fact effects run against the\nselected project.\n\nInlined so every request schema advertises the closed selector contract\n(`required: ["project_id"]`, no additional properties) directly on its\n`project_selector` property instead of behind a `$defs` reference, matching\nthe selector shape the MCP dispatch policy promises for selector-accepting\ntools.',properties:{project_id:{$ref:"#/$defs/ProjectId"}},required:["project_id"],type:["object","null"]},provider:{type:["string","null"]},query:{type:["string","null"]},require_fresh:{description:"Freshness precondition: stale or partial coverage returns\n`refresh_required` instead of stored evidence. The read never refreshes.",type:["boolean","null"]},scope:{anyOf:[{$ref:"#/$defs/MessageRelationshipScopeV1"},{type:"null"}]},since:{anyOf:[{$ref:"#/$defs/RetainedTimeFilterV1"},{type:"null"}]},until:{anyOf:[{$ref:"#/$defs/RetainedTimeFilterV1"},{type:"null"}]},workflow_agent:{type:["string","null"]},workflow_run:{type:["string","null"]},worktree:{type:["string","null"]}},title:"MessageSearchRequestV1",type:"object"},{$defs:{ClosedUtcIntervalV1:hf,GitScopeV1:gA,HydrationStateResultV1:gB,MessageSearchHitV1:{additionalProperties:!1,properties:{message:{$ref:"#/$defs/SessionMessageV1"},project_id:{type:["string","null"]},root:{type:["string","null"]},score:{format:"double",type:"number"},session:{$ref:"#/$defs/SessionRecordV1"}},required:["session","message","score"],type:"object"},RetainedErrorV1:vR,RetainedNextActionV1:{additionalProperties:!1,properties:{action:{type:"string"},kind:{type:"string"},reason:{type:"string"},tool:{type:"string"}},required:["kind","tool","action","reason"],type:"object"},RetainedOutcomeStatusV1:vq,RetrievalWorkerStatusV1:vO,SessionCoverageIntervalV1:v9,SessionCoverageReasonV1:v5,SessionCoverageRequestV1:v8,SessionCoverageStateV1:v7,SessionMessageV1:{additionalProperties:!1,properties:{kind:{type:["string","null"]},message_id:{type:"string"},metadata_json:{type:["string","null"]},model:{type:["string","null"]},ordinal:{format:"int64",type:"integer"},provider:{type:"string"},role:{type:"string"},session_id:{type:"string"},source_offset:{format:"int64",type:["integer","null"]},source_path:{type:["string","null"]},text:{type:"string"},timestamp:{format:"int64",type:["integer","null"]},tool_names:{type:["string","null"]}},required:["provider","message_id","session_id","role","ordinal","text"],type:"object"},SessionRecordV1:{additionalProperties:!1,properties:{agent_id:{type:["string","null"]},ended_at:{format:"int64",type:["integer","null"]},is_subagent:{type:"boolean"},metadata_json:{type:["string","null"]},parent_session_id:{type:["string","null"]},parent_tool_use_id:{type:["string","null"]},project_key:{type:"string"},project_path:{type:"string"},provider:{type:"string"},session_id:{type:"string"},started_at:{format:"int64",type:["integer","null"]},title:{type:["string","null"]},transcript_path:{type:["string","null"]}},required:["provider","session_id","project_key","project_path","is_subagent"],type:"object"},SessionSourceCoverageV1:bs,TemporalCoverageOmissionV1:{oneOf:[{properties:{detail:{type:"string"},kind:{const:"root_continuation_unavailable",type:"string"},strict_population:{$ref:"#/$defs/TemporalPopulationCountV1"}},required:["kind","strict_population","detail"],type:"object"}]},TemporalCoverageV1:bA,TemporalExplanationV1:bW,TemporalFreshnessV1:bM,TemporalMetadataV1:{additionalProperties:!1,properties:{anchors:{items:{type:"string"},type:"array"},coverage:{$ref:"#/$defs/TemporalCoverageV1"},coverage_omissions:{items:{$ref:"#/$defs/TemporalCoverageOmissionV1"},type:"array"},explanations:{items:{$ref:"#/$defs/TemporalExplanationV1"},type:"array"},freshness:{anyOf:[{$ref:"#/$defs/TemporalFreshnessV1"},{type:"null"}]},next_cursor:{type:["string","null"]},omissions:{items:{$ref:"#/$defs/TemporalOmissionV1"},type:"array"},source_coverage:{items:{$ref:"#/$defs/SessionSourceCoverageV1"},type:"array"},watermarks:{$ref:"#/$defs/TemporalWatermarksV1"}},required:["anchors","watermarks","coverage","explanations"],type:"object"},TemporalModeV1:bN,TemporalOmissionV1:bz,TemporalPopulationCountV1:{oneOf:[{properties:{count:{format:"uint64",minimum:0,type:"integer"},kind:{const:"exact",type:"string"}},required:["kind","count"],type:"object"},{properties:{count:{format:"uint64",minimum:0,type:"integer"},kind:{const:"at_least",type:"string"}},required:["kind","count"],type:"object"}]},TemporalWatermarksV1:bD,UtcMicros:bX,ValidCoverageIntervalV1:bY},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{count:{format:"uint",minimum:0,type:["integer","null"]},error:{anyOf:[{$ref:"#/$defs/RetainedErrorV1"},{type:"null"}]},git_filter:{anyOf:[{$ref:"#/$defs/GitScopeV1"},{type:"null"}]},git_filter_applied:{type:["boolean","null"]},goals:{type:"boolean"},include_subagents:{type:"boolean"},message:{type:["string","null"]},message_type:{type:"string"},next_action:{anyOf:[{$ref:"#/$defs/RetainedNextActionV1"},{type:"null"}]},omitted:{format:"uint64",minimum:0,type:["integer","null"]},outcome:{$ref:"#/$defs/RetainedOutcomeStatusV1"},parent_session_id:{type:["string","null"]},project_key:{type:["string","null"]},provider:{type:"string"},query:{type:["string","null"]},refresh_required:{type:"boolean"},requested_provider:{type:["string","null"]},require_fresh:{type:"boolean"},results:{items:{$ref:"#/$defs/MessageSearchHitV1"},type:["array","null"]},scope:{type:"string"},service_status:{anyOf:[{$ref:"#/$defs/RetrievalWorkerStatusV1"},{type:"null"}]},since:{format:"int64",type:["integer","null"]},status:{$ref:"#/$defs/RetainedOutcomeStatusV1"},store_scope:{type:["string","null"]},temporal:{anyOf:[{$ref:"#/$defs/TemporalMetadataV1"},{type:"null"}]},until:{format:"int64",type:["integer","null"]},workflow_agent:{type:["string","null"]},workflow_filter_applied:{type:["boolean","null"]},workflow_run:{type:["string","null"]},workflow_run_parent_session:{type:["string","null"]}},required:["require_fresh","goals","include_subagents","message_type","outcome","provider","refresh_required","scope","status"],title:"MessageSearchResultV1",type:"object"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{path:{type:"string"}},required:["path"],title:"ModuleApiPrimitiveRequest",type:"object"},{$defs:{SymbolPrimitiveRecord:bj},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{path:{type:"string"},symbols:{items:{$ref:"#/$defs/SymbolPrimitiveRecord"},type:"array"}},required:["path","symbols"],title:"ModuleApiPrimitiveResult",type:"object"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"Exact public input accepted by `tracedecay_move_symbol`.",properties:{dest_file:{type:"string"},dry_run:{default:!0,type:"boolean"},expected_state:{description:"Exact `preview_digest`/`expected_state` returned by the dry run. Apply\nre-resolves the typed plan and rejects any candidate-state drift.",type:["string","null"]},idempotency_key:{type:["string","null"]},symbol:{type:"string"}},required:["symbol","dest_file"],title:"MoveSymbolSurfaceRequestV1",type:"object"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"Exact public input accepted by `tracedecay_multi_str_replace`.",properties:{dry_run:{default:!1,type:"boolean"},expected_state:{description:"Exact `preview_digest`/`expected_state` returned by the dry run. Apply\nre-resolves the typed plan and rejects any candidate-state drift.",type:["string","null"]},idempotency_key:{type:["string","null"]},path:{type:"string"},replacements:{description:"Ordered `[old, new]` pairs, matching the existing MCP tool wire form.",items:{maxItems:2,minItems:2,prefixItems:[{type:"string"},{type:"string"}],type:"array"},type:"array"},verify:{default:!1,type:"boolean"}},required:["path","replacements"],title:"MultiStrReplaceSurfaceRequestV1",type:"object"},{$defs:{NativeIntegrationTransactionId:_O},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{transaction_id:{$ref:"#/$defs/NativeIntegrationTransactionId"}},required:["transaction_id"],title:"NativeIntegrationStatusSurfaceRequest",type:"object"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{node_id:{type:"string"}},required:["node_id"],title:"NodeSurfaceRequestV1",type:"object"},{$defs:{CodeIndexBuildBlockedReasonV1:hv,CodeIndexConvergenceParkedV1:hb,CodeIndexStalenessStateV1:hw,ComplexityAnalysisV1:hj,NodeDetailsV1:{additionalProperties:!1,properties:{branches:{description:"Exact counters; `None`, and listed in `unavailable_fields`, when\n`complexity_analysis` reports the bounded walk did not cover the body.",format:"uint32",minimum:0,type:["integer","null"]},complexity_analysis:{$ref:"#/$defs/ComplexityAnalysisV1"},cost_to_expand:{$ref:"#/$defs/NodeExpansionCostV1"},cyclomatic_complexity:{format:"uint32",minimum:0,type:["integer","null"]},derives:{items:{type:"string"},type:"array"},docstring:{type:["string","null"]},end_line:{format:"uint32",minimum:0,type:"integer"},file:{type:"string"},freshness:{anyOf:[{$ref:"#/$defs/PrimitiveSearchFreshnessV1"},{type:"null"}],description:"The worktree verdict a served graph read opens with."},id:{type:"string"},is_async:{type:"boolean"},kind:{type:"string"},loops:{format:"uint32",minimum:0,type:["integer","null"]},max_nesting:{format:"uint32",minimum:0,type:["integer","null"]},name:{type:"string"},qualified_name:{type:"string"},signature:{type:["string","null"]},start_line:{format:"uint32",minimum:0,type:"integer"},unavailable_fields:{items:{type:"string"},type:"array"},visibility:{type:"string"}},required:["id","name","kind","qualified_name","file","start_line","end_line","is_async","derives","visibility","complexity_analysis","cost_to_expand","unavailable_fields"],type:"object"},NodeExpansionCostV1:_W,PrimitiveFreshnessStateV1:_K,PrimitiveIndexingStateV1:_J,PrimitiveNotFoundV1:_Q,PrimitiveSearchFreshnessV1:_Y,PrimitiveSymbolLocationV1:_0},$schema:"https://json-schema.org/draft/2020-12/schema",anyOf:[{$ref:"#/$defs/NodeDetailsV1"},{$ref:"#/$defs/PrimitiveNotFoundV1"}],title:"NodeResultV1"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"One project-scoped horizon for the canonical Observatory and Costs models.",properties:{window_days:{default:14,format:"uint16",maximum:365,minimum:1,type:"integer"}},title:"ObservatoryReadRequestV1",type:"object"},{$defs:{AnalyticsModeReadModelV1:fw,AnalyticsModeV1:fP,ComparisonDispositionV1:hx,CostsReadModelV1:yp,CoverageStateV1:yh,LatencyDistributionReadModelV1:gZ,MetricCalibrationV1:_y,MetricCohortV1:_g,MetricCoverageV1:__,MetricEvidenceClassV1:_v,MetricProvenanceV1:_b,MetricSourceV1:_$,MetricTemporalV1:_S,MetricUncertaintyV1:_k,MetricValueV1:_w,ObservabilityHorizonV1:_M,ObservatoryReadModelV1:_z,PerformanceComparisonReadModelV1:_G,ProviderLatencyReadModelV1:va,RejectedArgumentAnalyticsV1:vy,RejectedArgumentErrorClassV1:vg,RejectedArgumentGroupV1:v_,RejectedArgumentNameV1:vv,RejectedArgumentSurfaceV1:vb},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"Canonical project-scoped observability and costs read models.",properties:{costs:{$ref:"#/$defs/CostsReadModelV1"},observatory:{$ref:"#/$defs/ObservatoryReadModelV1"}},required:["observatory","costs"],title:"ObservatoryReadResultV1",type:"object"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{kinds:{items:{type:"string"},type:["array","null"]},limit:{format:"uint32",minimum:0,type:["integer","null"]},source_dir:{type:"string"}},required:["source_dir"],title:"PortOrderSurfaceRequestV1",type:"object"},{$defs:{CodeIndexBuildBlockedReasonV1:hv,CodeIndexConvergenceParkedV1:hb,CodeIndexStalenessStateV1:hw,PortCycleAnchorV1:{additionalProperties:!1,properties:{file:{type:"string"},line:{format:"uint32",minimum:0,type:"integer"},name:{type:"string"},rationale:{type:["string","null"]}},required:["name","file","line"],type:"object"},PortCycleFileV1:{additionalProperties:!1,properties:{file:{type:"string"},members_in_cycle:{format:"uint",minimum:0,type:"integer"}},required:["file","members_in_cycle"],type:"object"},PortCycleSymbolV1:{additionalProperties:!1,properties:{file:{type:"string"},in_cycle_in_degree:{format:"uint",minimum:0,type:"integer"},in_cycle_out_degree:{format:"uint",minimum:0,type:"integer"},kind:{type:"string"},line:{format:"uint32",minimum:0,type:"integer"},name:{type:"string"}},required:["name","kind","file","line","in_cycle_out_degree","in_cycle_in_degree"],type:"object"},PortCycleV1:{additionalProperties:!1,properties:{break_point_candidate:{anyOf:[{$ref:"#/$defs/PortCycleAnchorV1"},{type:"null"}]},entry_point:{anyOf:[{$ref:"#/$defs/PortCycleAnchorV1"},{type:"null"}]},files:{items:{$ref:"#/$defs/PortCycleFileV1"},type:"array"},note:{type:"string"},size:{format:"uint",minimum:0,type:"integer"},symbols:{items:{$ref:"#/$defs/PortCycleSymbolV1"},type:"array"}},required:["size","files","symbols","note"],type:"object"},PortOrderLevelV1:{additionalProperties:!1,properties:{description:{type:"string"},level:{format:"uint",minimum:0,type:"integer"},symbols:{items:{$ref:"#/$defs/PortOrderSymbolV1"},type:"array"}},required:["level","description","symbols"],type:"object"},PortOrderSymbolV1:{additionalProperties:!1,properties:{depends_on:{items:{type:"string"},type:["array","null"]},file:{type:"string"},kind:{type:"string"},line:{format:"uint32",minimum:0,type:"integer"},name:{type:"string"}},required:["name","kind","file","line"],type:"object"},PrimitiveFreshnessStateV1:_K,PrimitiveIndexingStateV1:_J,PrimitiveSearchFreshnessV1:_Y},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{cycles:{items:{$ref:"#/$defs/PortCycleV1"},type:"array"},freshness:{anyOf:[{$ref:"#/$defs/PrimitiveSearchFreshnessV1"},{type:"null"}],description:"The worktree verdict a served graph read opens with."},levels:{items:{$ref:"#/$defs/PortOrderLevelV1"},type:"array"},returned:{format:"uint",minimum:0,type:"integer"},source_dir:{type:"string"},total_symbols:{format:"uint",minimum:0,type:"integer"}},required:["source_dir","total_symbols","returned","levels","cycles"],title:"PortOrderResultV1",type:"object"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{kinds:{items:{type:"string"},type:["array","null"]},source_dir:{type:"string"},target_dir:{type:"string"}},required:["source_dir","target_dir"],title:"PortStatusSurfaceRequestV1",type:"object"},{$defs:{CodeIndexBuildBlockedReasonV1:hv,CodeIndexConvergenceParkedV1:hb,CodeIndexStalenessStateV1:hw,PortMatchedSymbolV1:{additionalProperties:!1,properties:{name:{type:"string"},source_file:{type:"string"},source_kind:{type:"string"},target_file:{type:"string"},target_kind:{type:"string"}},required:["name","source_kind","target_kind","source_file","target_file"],type:"object"},PortTargetOnlySymbolV1:{additionalProperties:!1,properties:{file:{type:"string"},kind:{type:"string"},line:{format:"uint32",minimum:0,type:"integer"},name:{type:"string"}},required:["name","kind","file","line"],type:"object"},PortUnmatchedSymbolV1:{additionalProperties:!1,properties:{kind:{type:"string"},line:{format:"uint32",minimum:0,type:"integer"},name:{type:"string"}},required:["name","kind","line"],type:"object"},PrimitiveFreshnessStateV1:_K,PrimitiveIndexingStateV1:_J,PrimitiveSearchFreshnessV1:_Y},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{coverage_percent:{format:"double",type:"number"},freshness:{anyOf:[{$ref:"#/$defs/PrimitiveSearchFreshnessV1"},{type:"null"}],description:"The worktree verdict a served graph read opens with."},matched:{format:"uint",minimum:0,type:"integer"},matched_symbols:{items:{$ref:"#/$defs/PortMatchedSymbolV1"},type:"array"},source_count:{format:"uint",minimum:0,type:"integer"},source_dir:{type:"string"},target_count:{format:"uint",minimum:0,type:"integer"},target_dir:{type:"string"},target_only:{format:"uint",minimum:0,type:"integer"},target_only_symbols:{items:{$ref:"#/$defs/PortTargetOnlySymbolV1"},type:"array"},unmatched:{format:"uint",minimum:0,type:"integer"},unmatched_by_file:{additionalProperties:{items:{$ref:"#/$defs/PortUnmatchedSymbolV1"},type:"array"},type:"object"}},required:["source_dir","target_dir","source_count","target_count","matched","unmatched","target_only","coverage_percent","unmatched_by_file","matched_symbols","target_only_symbols"],title:"PortStatusResultV1",type:"object"},{$defs:{PrContextViewV1:_B},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{base_ref:{description:"Base branch or ref (default: the matching retained PR base, otherwise\nthe detected repository default branch). A short branch name selects the descendant of its\nlocal and origin tracking tips; use an explicit ref when they diverge.",type:["string","null"]},budget_tokens:{description:"Approximate whole-result JSON token budget for the brief (default: 4000).\nIn symbols view, budgets the existing symbol, test, and module sections.",format:"uint32",minimum:0,type:["integer","null"]},cursor:{description:"Authenticated continuation cursor; accepted only with view `symbols`.",type:["string","null"]},head_ref:{description:"Head branch or ref (default: 'HEAD'). Accepts local branches,\nremote-tracking refs such as origin/topic, full refs, and Git revision\nexpressions.",type:["string","null"]},maximum_symbols:{description:"Maximum symbols returned on a symbols-view page (default: 200, clamped to 1-500).",format:"uint32",minimum:0,type:["integer","null"]},pull_request:{description:"Select a retained PR number for this checkout when several are known.",format:"uint64",minimum:0,type:["integer","null"]},refresh_github:{default:!1,description:"Explicitly refresh the configured matching GitHub PR within the caller\ndeadline. By default, read retained authorized evidence. CI stays retained.",type:"boolean"},view:{$ref:"#/$defs/PrContextViewV1",default:"brief",description:"Compact PR briefing by default; `symbols` requests exact symbol pages."}},title:"PrContextSurfaceRequestV1",type:"object"},{$defs:{CoChangeUnavailableV1:hh,CodeIndexBuildBlockedReasonV1:hv,CodeIndexConvergenceParkedV1:hb,CodeIndexStalenessStateV1:hw,ConfigSummaryKindV1:hO,ConfigSummaryV1:hE,GitCommitSubjectV1:{additionalProperties:!1,properties:{hash:{type:"string"},subject:{type:"string"}},required:["hash","subject"],type:"object"},GitComparedSymbolV1:gg,GitContextSymbolV1:gv,GitFileChangeStatusV1:{enum:["added","deleted","modified"],type:"string"},GitFileChangeV1:{additionalProperties:!1,properties:{path:{type:"string"},status:{$ref:"#/$defs/GitFileChangeStatusV1"}},required:["path","status"],type:"object"},GitFileRoleV1:gk,GitReadCompleteV1:gC,GitReadPartialV1:gT,GitReadUnavailableV1:gO,GitToolErrorKindV1:gM,GitToolErrorV1:gN,GitToolFailureV1:gz,GitToolOperationV1:gD,MissingCoChangePartnerV1:_P,PrAnalysisCoverageV1:{additionalProperties:!1,properties:{complete:{type:"boolean"},direct_call_edges_admitted:{format:"uint",minimum:0,type:"integer"},impact_bytes_admitted:{format:"uint",minimum:0,type:"integer"},impact_nodes_admitted:{format:"uint",minimum:0,type:"integer"},impact_nodes_returned:{format:"uint",minimum:0,type:"integer"},impact_partial:{type:"boolean"},seed_symbols_analyzed:{format:"uint",minimum:0,type:"integer"},symbols_complete:{type:"boolean"},symbols_returned:{format:"uint",minimum:0,type:"integer"}},required:["seed_symbols_analyzed","symbols_returned","symbols_complete","impact_nodes_admitted","impact_nodes_returned","direct_call_edges_admitted","impact_bytes_admitted","impact_partial","complete"],type:"object"},PrContextAreaV1:{additionalProperties:!1,properties:{additions:{format:"uint64",minimum:0,type:"integer"},area:{type:"string"},deletions:{format:"uint64",minimum:0,type:"integer"},files:{format:"uint",minimum:0,type:"integer"}},required:["area","files","additions","deletions"],type:"object"},PrContextBriefBudgetV1:{additionalProperties:!1,properties:{areas_omitted:{format:"uint",minimum:0,type:"integer"},checks_omitted:{format:"uint",minimum:0,type:"integer"},commits_omitted:{format:"uint",minimum:0,type:"integer"},discussions_omitted:{format:"uint",minimum:0,type:"integer"},entry_points_omitted:{format:"uint",minimum:0,type:"integer"},estimated_tokens:{description:"Whole-result JSON byte estimate, divided by four; not a tokenizer count.",format:"uint32",minimum:0,type:"integer"},files_omitted:{format:"uint",minimum:0,type:"integer"},impact_omitted:{format:"uint",minimum:0,type:"integer"},over_budget:{type:"boolean"},quality_omitted:{format:"uint",minimum:0,type:"integer"},requested_tokens:{format:"uint32",minimum:0,type:"integer"}},required:["requested_tokens","estimated_tokens","over_budget","files_omitted","entry_points_omitted","discussions_omitted","checks_omitted","impact_omitted","commits_omitted","areas_omitted","quality_omitted"],type:"object"},PrContextBriefV1:{additionalProperties:!1,properties:{additions:{format:"uint64",minimum:0,type:"integer"},areas:{items:{$ref:"#/$defs/PrContextAreaV1"},type:"array"},base:{type:"string"},base_oid:{type:"string"},budget:{$ref:"#/$defs/PrContextBriefBudgetV1"},changes:{items:{$ref:"#/$defs/PrContextFileV1"},type:"array"},commits:{items:{$ref:"#/$defs/GitCommitSubjectV1"},type:"array"},deletions:{format:"uint64",minimum:0,type:"integer"},entry_points:{description:"Prioritized places to begin reading the change, with exact revisions.",items:{$ref:"#/$defs/PrContextEntryPointV1"},type:"array"},files_changed:{format:"uint",minimum:0,type:"integer"},freshness:{anyOf:[{$ref:"#/$defs/PrimitiveSearchFreshnessV1"},{type:"null"}]},graph_analysis:{$ref:"#/$defs/PrContextSourceV1"},head:{type:"string"},head_oid:{type:"string"},hosted:{$ref:"#/$defs/PrContextHostedV1"},impact:{items:{$ref:"#/$defs/PrContextImpactV1"},type:"array"},merge_base:{type:"string"},next_steps:{items:{type:"string"},type:"array"},quality:{items:{$ref:"#/$defs/PrContextQualityV1"},type:"array"},source_analysis:{$ref:"#/$defs/PrContextSourceV1"},view:{$ref:"#/$defs/PrContextViewV1"}},required:["view","base","head","base_oid","head_oid","merge_base","files_changed","additions","deletions","commits","hosted","areas","changes","entry_points","impact","quality","source_analysis","graph_analysis","next_steps","budget"],type:"object"},PrContextCheckV1:{additionalProperties:!1,properties:{conclusion:{type:["string","null"]},evidence_anchor:{type:"string"},failed_step:{type:["string","null"]},head:{type:"string"},locations:{items:{$ref:"#/$defs/PrContextLocationV1"},type:"array"},matches_head:{type:"boolean"},name:{type:"string"},observed_at:{format:"int64",type:"integer"},status:{type:"string"},workflow:{type:"string"}},required:["name","workflow","status","head","matches_head","observed_at","evidence_anchor","locations"],type:"object"},PrContextCompleteV1:{additionalProperties:!1,properties:{added:{items:{$ref:"#/$defs/PrSymbolEntryV1"},type:"array"},affected_tests:{items:{type:"string"},type:"array"},affected_tests_coverage:{$ref:"#/$defs/PrSelectionCoverageV1"},analysis_coverage:{$ref:"#/$defs/PrAnalysisCoverageV1"},base:{type:"string"},base_oid:{type:"string"},changes:{items:{$ref:"#/$defs/GitFileChangeV1"},type:"array"},co_change_unavailable:{anyOf:[{$ref:"#/$defs/CoChangeUnavailableV1"},{type:"null"}],description:"Present when Git history could not be mined for co-change partners."},commits:{items:{$ref:"#/$defs/GitCommitSubjectV1"},type:"array"},files_changed:{format:"uint",minimum:0,type:"integer"},freshness:{anyOf:[{$ref:"#/$defs/PrimitiveSearchFreshnessV1"},{type:"null"}],description:"The worktree verdict a served graph read opens with."},graph_generation:{type:"string"},head:{type:"string"},head_oid:{type:"string"},impacted_modules:{items:{type:"string"},type:"array"},impacted_modules_coverage:{$ref:"#/$defs/PrSelectionCoverageV1"},merge_base:{type:"string"},missing_co_change_partners:{description:"Files that usually change with a changed file, per bounded Git\nhistory, but are absent from this change set.",items:{$ref:"#/$defs/MissingCoChangePartnerV1"},type:"array"},modified:{items:{$ref:"#/$defs/PrSymbolEntryV1"},type:"array"},next_cursor:{type:["string","null"]},removed:{items:{$ref:"#/$defs/GitComparedSymbolV1"},type:"array"},status:{$ref:"#/$defs/GitReadCompleteV1"},symbol_changes_coverage:{$ref:"#/$defs/PrSymbolChangesCompleteV1"},symbol_page:{$ref:"#/$defs/PrSymbolPageV1"},symbols_added:{format:"uint",minimum:0,type:"integer"},symbols_modified:{format:"uint",minimum:0,type:"integer"},symbols_removed:{format:"uint",minimum:0,type:"integer"},test_files_changed:{items:{type:"string"},type:"array"},token_budget:{anyOf:[{$ref:"#/$defs/TokenBudgetCutV1"},{type:"null"}],description:"Budget accounting when the request supplies `budget_tokens`."}},required:["status","base","head","base_oid","head_oid","merge_base","graph_generation","commits","files_changed","changes","missing_co_change_partners","symbols_added","symbols_removed","symbols_modified","added","removed","modified","symbol_changes_coverage","symbol_page","analysis_coverage","test_files_changed","affected_tests","affected_tests_coverage","impacted_modules","impacted_modules_coverage"],type:"object"},PrContextDiscussionV1:{additionalProperties:!1,properties:{author:{description:"Provider login when retained; an opaque author anchor is not a login.",type:["string","null"]},body_anchor:{type:["string","null"]},event_at:{description:"Provider activity time in UTC microseconds: comment update/creation or\nreview submission. Absent when not retained or not parseable.",format:"int64",type:["integer","null"]},file:{type:["string","null"]},id:{type:"string"},kind:{type:"string"},lifecycle:{type:"string"},line:{format:"uint64",minimum:0,type:["integer","null"]},matches_head:{type:"boolean"},observed_at:{format:"int64",type:"integer"},review_state:{type:"string"},text:{type:["string","null"]},text_truncated:{type:"boolean"},thread_id:{type:["string","null"]},url:{type:["string","null"]}},required:["id","kind","lifecycle","review_state","text_truncated","observed_at","matches_head"],type:"object"},PrContextEntryPointV1:{additionalProperties:!1,properties:{after_excerpt:{anyOf:[{$ref:"#/$defs/PrContextExcerptV1"},{type:"null"}]},after_signature:{type:["string","null"]},after_signature_truncated:{default:!1,type:"boolean"},before_excerpt:{anyOf:[{$ref:"#/$defs/PrContextExcerptV1"},{type:"null"}]},before_signature:{type:["string","null"]},before_signature_truncated:{default:!1,type:"boolean"},change:{type:"string"},location:{$ref:"#/$defs/PrContextLocationV1"},node_id:{description:"Exact-head graph occurrence accepted by source_body and impact.\nAbsent when graph provenance or declaration matching is unavailable.",type:["string","null"]},reason:{type:"string"},revision:{type:"string"},symbol:{type:"string"}},required:["location","revision","symbol","change","reason"],type:"object"},PrContextExcerptV1:{additionalProperties:!1,properties:{location:{$ref:"#/$defs/PrContextLocationV1"},revision:{type:"string"},text:{type:"string"},truncated:{description:"True when this is only an excerpt of the declaration.",type:"boolean"}},required:["revision","location","text","truncated"],type:"object"},PrContextFileV1:{additionalProperties:!1,properties:{additions:{format:"uint32",minimum:0,type:["integer","null"]},change:{type:"string"},deletions:{format:"uint32",minimum:0,type:["integer","null"]},file:{type:"string"},previous_file:{type:["string","null"]},role:{$ref:"#/$defs/GitFileRoleV1"}},required:["file","change","role"],type:"object"},PrContextGraphPendingV1:{additionalProperties:!1,description:"The git comparison while the verified graph generation is still warming.",properties:{added:{items:{$ref:"#/$defs/PrSymbolEntryV1"},type:"array"},affected_tests:{items:{type:"string"},type:"array"},affected_tests_coverage:{$ref:"#/$defs/PrSelectionCoverageV1"},analysis_coverage:{$ref:"#/$defs/PrAnalysisCoverageV1"},base:{type:"string"},base_oid:{type:"string"},changes:{items:{$ref:"#/$defs/GitFileChangeV1"},type:"array"},co_change_unavailable:{anyOf:[{$ref:"#/$defs/CoChangeUnavailableV1"},{type:"null"}],description:"Present when Git history could not be mined for co-change partners."},commits:{items:{$ref:"#/$defs/GitCommitSubjectV1"},type:"array"},files_changed:{format:"uint",minimum:0,type:"integer"},freshness:{anyOf:[{$ref:"#/$defs/PrimitiveSearchFreshnessV1"},{type:"null"}],description:"The worktree verdict a served graph read opens with."},graph_generation:{description:"No verified generation was admitted.",type:["string","null"]},head:{type:"string"},head_oid:{type:"string"},impacted_modules:{items:{type:"string"},type:"array"},impacted_modules_coverage:{$ref:"#/$defs/PrSelectionCoverageV1"},merge_base:{type:"string"},message:{type:"string"},missing_co_change_partners:{description:"Files that usually change with a changed file, per bounded Git\nhistory, but are absent from this change set.",items:{$ref:"#/$defs/MissingCoChangePartnerV1"},type:"array"},modified:{items:{$ref:"#/$defs/PrSymbolEntryV1"},type:"array"},next_cursor:{type:["string","null"]},status:{$ref:"#/$defs/GitReadPartialV1"},symbol_page:{$ref:"#/$defs/PrSymbolPageV1"},symbols_added:{format:"uint",minimum:0,type:"integer"},symbols_modified:{format:"uint",minimum:0,type:"integer"},test_files_changed:{items:{type:"string"},type:"array"},token_budget:{anyOf:[{$ref:"#/$defs/TokenBudgetCutV1"},{type:"null"}],description:"Budget accounting when the request supplies `budget_tokens`."},verified_graph_evidence:{$ref:"#/$defs/PrimitiveUnavailableEvidenceV1"}},required:["status","message","base","head","base_oid","head_oid","merge_base","commits","files_changed","changes","missing_co_change_partners","symbols_added","symbols_modified","added","modified","symbol_page","analysis_coverage","test_files_changed","affected_tests","affected_tests_coverage","impacted_modules","impacted_modules_coverage","verified_graph_evidence"],type:"object"},PrContextHostedV1:{additionalProperties:!1,properties:{checks:{items:{$ref:"#/$defs/PrContextCheckV1"},type:"array"},checks_total:{format:"uint",minimum:0,type:"integer"},ci_source:{$ref:"#/$defs/PrContextSourceV1"},discussions:{items:{$ref:"#/$defs/PrContextDiscussionV1"},type:"array"},discussions_total:{format:"uint",minimum:0,type:"integer"},pull_request:{anyOf:[{$ref:"#/$defs/PrContextPullRequestV1"},{type:"null"}]},required_checks_known:{description:"A retained CI inventory is not an enumeration of required checks.",type:"boolean"},source:{$ref:"#/$defs/PrContextSourceV1"}},required:["source","ci_source","discussions","checks","discussions_total","checks_total","required_checks_known"],type:"object"},PrContextImpactV1:{additionalProperties:!1,properties:{changed_symbol:{type:"string"},consumer:{type:"string"},consumer_changed:{description:"Whether the consumer's file is in the PR diff; this does not imply\nthat the consumer declaration itself changed.",type:"boolean"},location:{$ref:"#/$defs/PrContextLocationV1"},node_id:{description:"Exact-head consumer occurrence accepted by source_body and impact.",type:["string","null"]},relation:{type:"string"}},required:["changed_symbol","consumer","location","relation","consumer_changed"],type:"object"},PrContextLocationV1:{additionalProperties:!1,properties:{end_line:{format:"uint32",minimum:0,type:"integer"},file:{type:"string"},line:{format:"uint32",minimum:0,type:"integer"}},required:["file","line","end_line"],type:"object"},PrContextPullRequestV1:{additionalProperties:!1,properties:{description:{description:"Sanitized retained description, when the provider supplied it.",type:["string","null"]},description_truncated:{type:"boolean"},draft:{type:"boolean"},matches_head:{type:"boolean"},number:{format:"uint64",minimum:0,type:"integer"},observed_at:{format:"int64",type:"integer"},observed_head:{type:"string"},state:{type:"string"},title:{type:"string"}},required:["number","title","state","draft","description_truncated","observed_head","observed_at","matches_head"],type:"object"},PrContextQualityV1:{additionalProperties:!1,properties:{observation:{type:"string"},signal:{type:"string"}},required:["signal","observation"],type:"object"},PrContextSourceStateV1:{enum:["ready","partial","stale","unavailable","not_published","denied","not_mounted","ambiguous","not_found"],type:"string"},PrContextSourceV1:{additionalProperties:!1,properties:{detail:{type:"string"},state:{$ref:"#/$defs/PrContextSourceStateV1"}},required:["state","detail"],type:"object"},PrContextSymbolsUnavailableV1:{additionalProperties:!1,description:"The git comparison while exact base/head symbol comparison is unavailable\nor does not describe the verified graph's head generation.",properties:{added:{items:{$ref:"#/$defs/PrSymbolEntryV1"},type:"array"},base:{type:"string"},base_oid:{type:"string"},changes:{items:{$ref:"#/$defs/GitFileChangeV1"},type:"array"},co_change_unavailable:{anyOf:[{$ref:"#/$defs/CoChangeUnavailableV1"},{type:"null"}],description:"Present when Git history could not be mined for co-change partners."},commits:{items:{$ref:"#/$defs/GitCommitSubjectV1"},type:"array"},files_changed:{format:"uint",minimum:0,type:"integer"},freshness:{anyOf:[{$ref:"#/$defs/PrimitiveSearchFreshnessV1"},{type:"null"}],description:"The worktree verdict a served graph read opens with."},graph_generation:{type:"string"},head:{type:"string"},head_oid:{type:"string"},merge_base:{type:"string"},message:{type:"string"},missing_co_change_partners:{description:"Files that usually change with a changed file, per bounded Git\nhistory, but are absent from this change set.",items:{$ref:"#/$defs/MissingCoChangePartnerV1"},type:"array"},modified:{items:{$ref:"#/$defs/PrSymbolEntryV1"},type:"array"},next_cursor:{type:["string","null"]},removed:{items:{$ref:"#/$defs/GitComparedSymbolV1"},type:"array"},status:{$ref:"#/$defs/GitReadPartialV1"},symbol_changes_coverage:{$ref:"#/$defs/SymbolChangesUnavailableV1"},symbols_added:{format:"uint",minimum:0,type:"integer"},symbols_modified:{format:"uint",minimum:0,type:"integer"},symbols_removed:{format:"uint",minimum:0,type:"integer"},token_budget:{anyOf:[{$ref:"#/$defs/TokenBudgetCutV1"},{type:"null"}],description:"Budget accounting when the request supplies `budget_tokens`."}},required:["status","message","base","head","base_oid","head_oid","merge_base","graph_generation","commits","files_changed","changes","missing_co_change_partners","symbols_added","symbols_removed","symbols_modified","added","removed","modified","symbol_changes_coverage"],type:"object"},PrContextViewV1:_B,PrCoverageSelectionV1:{enum:["unavailable","deterministic_bounded_prefix"],type:"string"},PrSelectionCoverageV1:{additionalProperties:!1,properties:{complete:{type:"boolean"},selection:{$ref:"#/$defs/PrCoverageSelectionV1"}},required:["complete","selection"],type:"object"},PrSymbolChangesCompleteV1:{additionalProperties:!1,properties:{base_generation:{type:"string"},head_generation:{type:"string"},status:{$ref:"#/$defs/GitReadCompleteV1"}},required:["status","base_generation","head_generation"],type:"object"},PrSymbolEntryV1:{anyOf:[{$ref:"#/$defs/GitContextSymbolV1"},{$ref:"#/$defs/ConfigSummaryV1"}]},PrSymbolPageV1:{additionalProperties:!1,properties:{complete:{type:"boolean"},continuation_available:{type:"boolean"},has_more:{type:"boolean"},limit:{format:"uint",minimum:0,type:"integer"},returned:{format:"uint",minimum:0,type:"integer"},selection:{$ref:"#/$defs/PrSymbolSelectionV1"}},required:["limit","returned","has_more","complete","selection","continuation_available"],type:"object"},PrSymbolSelectionV1:{enum:["unavailable","stable_prefix"],type:"string"},PrimitiveFreshnessStateV1:_K,PrimitiveIndexingStateV1:_J,PrimitiveSearchFreshnessV1:_Y,PrimitiveUnavailableEvidenceV1:_2,PrimitiveUnavailableStatusV1:_4,SymbolChangesUnavailableV1:bq,TokenBudgetCutV1:bL,TokenBudgetSectionV1:bU},$schema:"https://json-schema.org/draft/2020-12/schema",anyOf:[{$ref:"#/$defs/PrContextBriefV1"},{$ref:"#/$defs/PrContextCompleteV1"},{$ref:"#/$defs/PrContextSymbolsUnavailableV1"},{$ref:"#/$defs/PrContextGraphPendingV1"},{$ref:"#/$defs/GitToolFailureV1"}],title:"PrContextResultV1"},{$defs:{BranchStackEdgeV1:f9,BranchStackId:f5,BranchStackNodeV1:f8,BranchStackRevisionId:f7,BranchStackRevisionV1:he,BranchStackSourceV1:ht,CommitId:hI,ManifestDigest:_p,MechanicalIntegrationModeV1:_u,NativeIntegrationDirectionV1:_q,NativeIntegrationSealedStackSnapshotV1:_j,NativeIntegrationSelectionBindingV1:_C,ProjectId:_6,RefId:vf,RepositoryId:v$,ResolvedScope:vP,ScopeSetId:v1,ScopeSetRevision:v0,StackNodeId:bV,WorktreeId:SJ,WorktreeInventoryEpoch:SZ,WorktreeInventorySnapshotId:SQ},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"Read-only preflight over one frozen snapshot identity.\n\n`preferred_mode` selects only one of the three fixed mechanical encodings.\nIt cannot change topology, commit order, or the commit set.",properties:{preferred_mode:{anyOf:[{$ref:"#/$defs/MechanicalIntegrationModeV1"},{type:"null"}],default:null},snapshot:{$ref:"#/$defs/NativeIntegrationSealedStackSnapshotV1"}},required:["snapshot"],title:"NativeIntegrationPreflightSurfaceRequest",type:"object"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{path:{description:"Project path or registered alias to resolve.",type:["string","null"]},project_selector:{additionalProperties:!1,default:null,description:"Registered project id to inspect. Omit to use path or the active\nproject.",properties:{project_id:{description:"Registered project id to query.",type:"string"}},required:["project_id"],type:"object"}},title:"ProjectContextSurfaceRequestV1",type:"object"},{$defs:{PublicCodeProject:vs},$schema:"https://json-schema.org/draft/2020-12/schema",description:"One registered project's context, or the registry's typed miss.",oneOf:[{additionalProperties:!1,properties:{aliases:{description:"Alias rows exactly as the registry serializes them.",items:!0,type:"array"},is_active:{type:"boolean"},project:{$ref:"#/$defs/PublicCodeProject"},registry_path:{type:"string"},status:{const:"ok",type:"string"},stores:{description:"Store rows exactly as the registry serializes them.",items:!0,type:"array"}},required:["status","is_active","registry_path","project","aliases","stores"],type:"object"},{additionalProperties:!1,description:"The registry answered and no registered project matches the selector.",properties:{aliases:{items:!0,type:"array"},project:{type:"null"},registry_path:{type:"string"},status:{const:"not_found",type:"string"},stores:{items:!0,type:"array"}},required:["status","registry_path","project","aliases","stores"],type:"object"}],title:"ProjectContextResultV1"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{limit:{description:"Maximum projects to return (default: 25, max: 100).",format:"uint",minimum:0,type:["integer","null"]}},title:"ProjectListSurfaceRequestV1",type:"object"},{$defs:{ProjectRegistryEntry:_3,ProjectRegistrySummary:_9,ProjectRepoGroup:_5,PublicCodeProject:vs},$schema:"https://json-schema.org/draft/2020-12/schema",description:"A bounded page of the profile's registered projects.",oneOf:[{additionalProperties:!1,properties:{limit:{format:"uint",minimum:0,type:"integer"},project_tree:{items:{$ref:"#/$defs/ProjectRepoGroup"},type:"array"},projects:{items:{$ref:"#/$defs/PublicCodeProject"},type:"array"},query:{type:["string","null"]},registry_path:{type:"string"},status:{const:"ok",type:"string"},summary:{$ref:"#/$defs/ProjectRegistrySummary"},title:{type:"string"},truncated:{type:"boolean"}},required:["status","title","registry_path","limit","truncated","summary","project_tree","projects"],type:"object"}],title:"ProjectRegistryListingResultV1"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{limit:{description:"Maximum projects to return (default: 10, max: 50).",format:"uint",minimum:0,type:["integer","null"]},query:{description:"Case-insensitive substring query over registry project metadata.",type:"string"}},required:["query"],title:"ProjectSearchSurfaceRequestV1",type:"object"},{$defs:{PageRequest:_H},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{page:{$ref:"#/$defs/PageRequest"},qualified_name:{type:"string"}},required:["qualified_name","page"],title:"QualifiedNamePrimitiveRequest",type:"object"},{$defs:{SymbolPrimitiveRecord:bj},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{next_cursor:{description:"Opaque resume token; its bounded string is the public wire form.",type:["string","null"]},symbols:{items:{$ref:"#/$defs/SymbolPrimitiveRecord"},type:"array"},total:{format:"uint64",minimum:0,type:["integer","null"]}},required:["symbols"],title:"QualifiedNamePrimitiveResult",type:"object"},{$defs:{RankDirectionV1:vl,RankEdgeKindV1:vp},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{direction:{anyOf:[{$ref:"#/$defs/RankDirectionV1"},{type:"null"}],description:"Edge direction: 'incoming' ranks targets (default, e.g.\nmost-implemented interface), 'outgoing' ranks sources (e.g. class that\nimplements the most interfaces)."},edge_kind:{$ref:"#/$defs/RankEdgeKindV1",description:"The relationship type to rank by (e.g. 'implements' to find\nmost-implemented interfaces)."},limit:{description:"Maximum number of results to return (default: 10, at most 100).",format:"uint32",minimum:0,type:["integer","null"]},node_kind:{description:"Optional filter for node kind (e.g. 'interface', 'class', 'trait',\n'function', 'method').",type:["string","null"]},path:{description:"Filter to files under this directory path (e.g. 'src/main/java').",type:["string","null"]}},required:["edge_kind"],title:"RankSurfaceRequestV1",type:"object"},{$defs:{CodeIndexBuildBlockedReasonV1:hv,CodeIndexConvergenceParkedV1:hb,CodeIndexStalenessStateV1:hw,PrimitiveFreshnessStateV1:_K,PrimitiveIndexingStateV1:_J,PrimitiveSearchFreshnessV1:_Y,RankDirectionV1:vl,RankEdgeKindV1:vp,RankEntryV1:{additionalProperties:!1,properties:{count:{format:"uint64",minimum:0,type:"integer"},file:{type:"string"},id:{type:"string"},kind:{type:"string"},line:{format:"uint32",minimum:0,type:"integer"},name:{type:"string"}},required:["id","name","kind","file","line","count"],type:"object"}},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{direction:{$ref:"#/$defs/RankDirectionV1"},edge_kind:{$ref:"#/$defs/RankEdgeKindV1"},freshness:{anyOf:[{$ref:"#/$defs/PrimitiveSearchFreshnessV1"},{type:"null"}],description:"The worktree verdict a served graph read opens with."},node_kind_filter:{type:["string","null"]},ranking:{items:{$ref:"#/$defs/RankEntryV1"},type:"array"},result_count:{format:"uint64",minimum:0,type:"integer"}},required:["edge_kind","direction","result_count","ranking"],title:"RankResultV1",type:"object"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{limit:{description:"Maximum number of cycles to return (default: 10, at most 100).",format:"uint32",minimum:0,type:["integer","null"]},path:{description:"Filter to files under this directory path (e.g. 'src/main/java').",type:["string","null"]}},title:"RecursionSurfaceRequestV1",type:"object"},{$defs:{CodeIndexBuildBlockedReasonV1:hv,CodeIndexConvergenceParkedV1:hb,CodeIndexStalenessStateV1:hw,PrimitiveFreshnessStateV1:_K,PrimitiveIndexingStateV1:_J,PrimitiveSearchFreshnessV1:_Y,RecursionCycleV1:{additionalProperties:!1,description:"One call cycle; `chain` repeats its first symbol at the end.",properties:{chain:{items:{$ref:"#/$defs/RecursionSymbolV1"},type:"array"},length:{format:"uint64",minimum:0,type:"integer"}},required:["length","chain"],type:"object"},RecursionSymbolV1:{additionalProperties:!1,properties:{file:{type:"string"},id:{type:"string"},kind:{type:"string"},line:{format:"uint32",minimum:0,type:"integer"},name:{type:"string"}},required:["id","name","kind","file","line"],type:"object"}},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{cycle_count:{format:"uint64",minimum:0,type:"integer"},cycles:{items:{$ref:"#/$defs/RecursionCycleV1"},type:"array"},freshness:{anyOf:[{$ref:"#/$defs/PrimitiveSearchFreshnessV1"},{type:"null"}],description:"The worktree verdict a served graph read opens with."}},required:["cycle_count","cycles"],title:"RecursionResultV1",type:"object"},{$defs:{CommitId:hI,ProjectId:_6,ProviderId:vn,RedundancyScopeV1:{oneOf:[{additionalProperties:!1,properties:{kind:{const:"repository",type:"string"}},required:["kind"],type:"object"},{additionalProperties:!1,properties:{kind:{const:"path",type:"string"},path:{type:"string"}},required:["kind","path"],type:"object"},{additionalProperties:!1,properties:{changed_paths:{items:{type:"string"},type:"array"},head_commit_id:{$ref:"#/$defs/CommitId"},kind:{const:"pull_request",type:"string"},provider:{$ref:"#/$defs/ProviderId"},pull_request_id:{type:"string"}},required:["kind","provider","pull_request_id","head_commit_id","changed_paths"],type:"object"}]},RepositoryId:v$,SimilarMatchClassV1:bp},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{cursor:{type:["string","null"]},family_limit:{description:"Preferred family page size, 1 through 100.",format:"uint32",maximum:100,minimum:1,type:"integer"},include_generated_paths:{type:"boolean"},match_classes:{items:{$ref:"#/$defs/SimilarMatchClassV1"},type:"array"},member_limit:{description:"Members listed per family, at least 2.",format:"uint32",minimum:2,type:"integer"},project_id:{$ref:"#/$defs/ProjectId"},repository_id:{$ref:"#/$defs/RepositoryId"},scope:{$ref:"#/$defs/RedundancyScopeV1"},work_limit:{description:"Clone-index work budget for this page, 3 through 10000. A page that\nexhausts it reports partial coverage.",format:"uint32",maximum:1e4,minimum:3,type:"integer"}},required:["project_id","repository_id","match_classes","scope","include_generated_paths","family_limit","member_limit","work_limit"],title:"RedundancySurfaceRequestV1",type:"object"},{$defs:{CodeGenerationId:hg,CodeIndexBuildBlockedReasonV1:hv,CodeIndexConvergenceParkedV1:hb,CodeIndexStalenessStateV1:hw,ManifestDigest:_p,PrimitiveFreshnessStateV1:_K,PrimitiveIndexingStateV1:_J,PrimitiveSearchFreshnessV1:_Y,ProjectId:_6,RedundancyCoverageV1:{oneOf:[{additionalProperties:!1,properties:{examined_families:{format:"uint",minimum:0,type:"integer"},examined_members:{format:"uint",minimum:0,type:"integer"},status:{const:"complete",type:"string"}},required:["status","examined_families","examined_members"],type:"object"},{additionalProperties:!1,properties:{examined_families:{format:"uint",minimum:0,type:"integer"},examined_members:{format:"uint",minimum:0,type:"integer"},reason:{$ref:"#/$defs/RedundancyPartialReasonV1"},status:{const:"partial",type:"string"}},required:["status","reason","examined_families","examined_members"],type:"object"}]},RedundancyFamilyV1:{additionalProperties:!1,properties:{family:{$ref:"#/$defs/SimilarFamilyV1"},generated_members:{items:{$ref:"#/$defs/SymbolOccurrenceId"},type:"array"},reviewable_source_bytes:{format:"uint64",minimum:0,type:"integer"},total_member_count:{format:"uint",minimum:0,type:"integer"}},required:["family","total_member_count","reviewable_source_bytes","generated_members"],type:"object"},RedundancyPartialReasonV1:{enum:["family_limit","work_limit"],type:"string"},RedundancyRankingV1:{enum:["reviewable_source_bytes"],type:"string"},RepositoryId:v$,SimilarFamilyV1:bl,SimilarMatchClassV1:bp,SimilarOccurrenceV1:bu,SourceSpan:bk,SymbolOccurrenceId:bx,WorktreeId:SJ},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{coverage:{$ref:"#/$defs/RedundancyCoverageV1"},families:{items:{$ref:"#/$defs/RedundancyFamilyV1"},type:"array"},freshness:{anyOf:[{$ref:"#/$defs/PrimitiveSearchFreshnessV1"},{type:"null"}],description:"The worktree verdict a served graph read opens with."},next_cursor:{type:["string","null"]},ranked_by:{$ref:"#/$defs/RedundancyRankingV1"},source_generation:{$ref:"#/$defs/CodeGenerationId"}},required:["source_generation","ranked_by","families","coverage"],title:"RedundancyResultV1",type:"object"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,title:"RemoteStatusSurfaceRequestV1",type:"object"},{$defs:{AuthorityEpoch:{description:"Monotonic epoch of the writer authority for a shard.",format:"uint64",minimum:0,type:"integer"},BrainId:f0,BrainNodeId:{description:"Strongly typed canonical identity: `BrainNodeId`.",type:"string"},CurrentRemoteAuthorityStateV1:{description:"Truthful authority lookup state. Missing evidence is never represented as\nan available authority or a successful empty response.",oneOf:[{properties:{state:{const:"available",type:"string"},value:{$ref:"#/$defs/CurrentRemoteAuthorityV1"}},required:["state","value"],type:"object"},{properties:{state:{const:"partial",type:"string"},value:{properties:{known_fence:{anyOf:[{$ref:"#/$defs/RemoteWriterFenceV1"},{type:"null"}]},missing:{items:{$ref:"#/$defs/RemoteAuthorityUnavailableReasonV1"},type:"array",uniqueItems:!0},observed_at:{$ref:"#/$defs/UtcMicros"}},required:["missing","observed_at"],type:"object"}},required:["state","value"],type:"object"},{properties:{state:{const:"unavailable",type:"string"},value:{properties:{observed_at:{$ref:"#/$defs/UtcMicros"},reason:{$ref:"#/$defs/RemoteAuthorityUnavailableReasonV1"}},required:["reason","observed_at"],type:"object"}},required:["state","value"],type:"object"}]},CurrentRemoteAuthorityV1:{additionalProperties:!1,description:"Authenticated current authority for a mutable shard.",properties:{credential_revision:{description:"Revision of the authority node's current enrollment credential.",format:"uint64",minimum:0,type:"integer"},fence:{$ref:"#/$defs/RemoteWriterFenceV1"},observed_at:{$ref:"#/$defs/UtcMicros"}},required:["fence","credential_revision","observed_at"],type:"object"},DoctorCoverageCompletenessV1:yw,ProjectionGenerationId:_8,RemoteAuthorityUnavailableReasonV1:{oneOf:[{enum:["registry_unavailable","placement_unknown","authority_unreachable","authority_authentication_failed","caller_authentication_failed","enrollment_expired","enrollment_revoked","insufficient_capability","scope_mismatch","fence_unverified","protocol_incompatible"],type:"string"},{const:"writer_authority_unpublished",description:"The RemoteNode store has never had a writer authority published for\nthis Brain, so no capture, replay, query, or failover can bind to one.",type:"string"}]},RemoteListenerReadV1:{enum:["serving","disabled","degraded"],type:"string"},RemoteOperationalReadinessV1:{enum:["unconfigured","partial","ready","recovery_required"],type:"string"},RemoteOperationalStatusV1:{additionalProperties:!1,properties:{authority:{$ref:"#/$defs/CurrentRemoteAuthorityStateV1"},enrollment_configured:{type:"boolean"},failover_in_progress:{type:"boolean"},observed_at:{$ref:"#/$defs/UtcMicros"},readiness:{$ref:"#/$defs/RemoteOperationalReadinessV1"},recovery_required:{type:"boolean"},replay_coverage_complete:{type:"boolean"},spool:{$ref:"#/$defs/RemoteSpoolOperationalStatusV1"}},required:["readiness","enrollment_configured","authority","spool","replay_coverage_complete","failover_in_progress","recovery_required","observed_at"],type:"object"},RemoteSpoolOperationalStatusV1:{additionalProperties:!1,properties:{has_sequence_gap:{type:"boolean"},pending_count:{format:"uint64",minimum:0,type:"integer"},quarantined_count:{format:"uint64",minimum:0,type:"integer"}},required:["pending_count","quarantined_count","has_sequence_gap"],type:"object"},RemoteWriterFenceV1:{additionalProperties:!1,description:"The complete single-writer identity for one mutable shard.",properties:{authority_epoch:{$ref:"#/$defs/AuthorityEpoch"},authority_node_id:{$ref:"#/$defs/BrainNodeId"},brain_id:{$ref:"#/$defs/BrainId"},generation_id:{$ref:"#/$defs/ProjectionGenerationId"},placement_revision:{format:"uint64",minimum:0,type:"integer"},shard_id:{$ref:"#/$defs/ShardId"}},required:["brain_id","shard_id","generation_id","placement_revision","authority_epoch","authority_node_id"],type:"object"},ShardId:{description:"Strongly typed canonical identity: `ShardId`.",type:"string"},UtcMicros:bX},$schema:"https://json-schema.org/draft/2020-12/schema",description:"Typed read of the Remote Brain operational plane as observed from the\nmounted daemon authorities. Every operator surface (Doctor, CLI, MCP,\ndashboard) reads this one shape; `Unavailable` is reserved for a genuinely\nunmounted or unreadable authority, never a rendering shortcut.",oneOf:[{properties:{coverage:{$ref:"#/$defs/DoctorCoverageCompletenessV1"},kind:{const:"observed",type:"string"},listener:{$ref:"#/$defs/RemoteListenerReadV1"},status:{$ref:"#/$defs/RemoteOperationalStatusV1"}},required:["kind","listener","status","coverage"],type:"object"},{properties:{kind:{const:"unconfigured",type:"string"}},required:["kind"],type:"object"},{properties:{kind:{const:"unavailable",type:"string"}},required:["kind"],type:"object"}],title:"RemoteOperationalStatusReadV1"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{new_name:{type:["string","null"]},node_id:{type:"string"}},required:["node_id"],title:"RenamePreviewPrimitiveRequestV1",type:"object"},{$defs:{CodeIndexBuildBlockedReasonV1:hv,CodeIndexConvergenceParkedV1:hb,CodeIndexStalenessStateV1:hw,PrimitiveFreshnessStateV1:_K,PrimitiveIndexingStateV1:_J,PrimitiveNotFoundV1:_Q,PrimitiveSearchFreshnessV1:_Y,PrimitiveSymbolLocationV1:_0,RenamePreviewNodeV1:{additionalProperties:!1,properties:{file:{type:"string"},id:{type:"string"},kind:{type:"string"},line:{format:"uint32",minimum:0,type:"integer"},name:{type:"string"},qualified_name:{type:"string"},snippet:{type:["string","null"]}},required:["id","name","qualified_name","kind","file","line"],type:"object"},RenamePreviewPrimitiveResultV1:{additionalProperties:!1,properties:{freshness:{anyOf:[{$ref:"#/$defs/PrimitiveSearchFreshnessV1"},{type:"null"}],description:"The worktree verdict a served graph read opens with."},new_name:{type:["string","null"]},node:{$ref:"#/$defs/RenamePreviewNodeV1"},note:{type:"string"},read_only:{type:"boolean"},reference_count:{format:"uint",minimum:0,type:"integer"},references:{items:{$ref:"#/$defs/RenamePreviewReferenceV1"},type:"array"},symbol:{type:"string"},text_only_matches:{items:{$ref:"#/$defs/RenamePreviewTextOnlyMatchV1"},type:"array"}},required:["read_only","note","symbol","node","reference_count","references","text_only_matches"],type:"object"},RenamePreviewReferenceV1:{additionalProperties:!1,properties:{edge_kind:{type:"string"},file:{type:"string"},from_kind:{type:"string"},from_name:{type:"string"},from_node_id:{type:"string"},line:{format:"uint32",minimum:0,type:"integer"},snippet:{type:["string","null"]}},required:["from_node_id","from_name","from_kind","edge_kind","file","line"],type:"object"},RenamePreviewTextOnlyMatchV1:{additionalProperties:!1,properties:{file:{type:"string"},note:{type:"string"},text_only_count:{format:"uint",minimum:0,type:"integer"}},required:["file","text_only_count","note"],type:"object"}},$schema:"https://json-schema.org/draft/2020-12/schema",anyOf:[{$ref:"#/$defs/RenamePreviewPrimitiveResultV1"},{$ref:"#/$defs/PrimitiveNotFoundV1"}],title:"RenamePreviewPrimitiveOutcomeV1"},{$defs:{ManifestDigest:_p,RenamePreviewAcceptanceV1:{additionalProperties:!1,description:"Exact preview material an apply must echo. Preview calls omit this value;\napply rejects any mismatch before publishing a file.",properties:{graph_revision:{$ref:"#/$defs/ManifestDigest"},plan_digest:{$ref:"#/$defs/ManifestDigest"},preview_digest:{$ref:"#/$defs/ManifestDigest"},preview_id:{$ref:"#/$defs/ManifestDigest"},repository_revision:{default:null,type:["string","null"]}},required:["preview_id","preview_digest","plan_digest","graph_revision"],type:"object"}},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"Exact public input accepted by `tracedecay_rename_symbol`.\n\nThe five identity fields consume the preview's exact symbol identity; the\nflattened control consumes its exact candidate-state digest.",properties:{accepted_preview:{anyOf:[{$ref:"#/$defs/RenamePreviewAcceptanceV1"},{type:"null"}],description:"Exact output identity from the accepted dry-run preview. Required when\n`dry_run=false` and omitted when computing a preview."},dry_run:{default:!0,type:"boolean"},expected_state:{description:"Exact `preview_digest`/`expected_state` returned by the dry run. Apply\nre-resolves the typed plan and rejects any candidate-state drift.",type:["string","null"]},file:{type:"string"},idempotency_key:{type:["string","null"]},kind:{type:"string"},new_name:{type:"string"},node_id:{description:"Canonical `SymbolOccurrenceId` returned by `tracedecay_rename_preview`.",type:"string"},old_name:{type:"string"},qualified_name:{type:"string"},verify:{default:!0,type:"boolean"}},required:["node_id","qualified_name","kind","file","old_name","new_name"],title:"RenameSymbolSurfaceRequestV1",type:"object"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"Exact public input accepted by `tracedecay_replace_symbol`.",properties:{dry_run:{default:!1,type:"boolean"},expected_state:{description:"Exact `preview_digest`/`expected_state` returned by the dry run. Apply\nre-resolves the typed plan and rejects any candidate-state drift.",type:["string","null"]},idempotency_key:{type:["string","null"]},new_source:{type:"string"},symbol:{type:"string"},verify:{default:!1,type:"boolean"}},required:["symbol","new_source"],title:"ReplaceSymbolSurfaceRequestV1",type:"object"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{handle:{description:"The required `handle` argument copied exactly from a truncated MCP\nresponse envelope.",type:"string"},max_chars:{description:"Maximum characters requested for this page. Values above the safe\nresponse-frame budget are clamped.",format:"uint64",minimum:1,type:["integer","null"]},offset:{default:0,description:"Character offset into the immutable stored response (default: 0). Use\nthe prior page's next_offset.",format:"uint64",minimum:0,type:["integer","null"]}},required:["handle"],title:"RetrieveSurfaceRequestV1",type:"object"},{$defs:{CodeIndexBuildBlockedReasonV1:hv,CodeIndexConvergenceParkedV1:hb,CodeIndexStalenessStateV1:hw,PrimitiveFreshnessStateV1:_K,PrimitiveIndexingStateV1:_J,PrimitiveSearchFreshnessV1:_Y,RetrieveHandleExpiredV1:{additionalProperties:!1,description:"The record expired and was removed.",properties:{content:{description:"Always null: the expired content was removed.",type:["string","null"]},created_at:{format:"int64",type:"integer"},expired:{description:"Always `true`.",type:"boolean"},expires_at:{format:"int64",type:"integer"},freshness:{anyOf:[{$ref:"#/$defs/PrimitiveSearchFreshnessV1"},{type:"null"}],description:"The worktree verdict a served graph read opens with."},handle:{type:"string"},message:{type:"string"},reason_code:{type:"string"},retry_instruction:{type:"string"},retryable:{type:"boolean"}},required:["handle","expired","reason_code","message","retryable","retry_instruction","created_at","expires_at"],type:"object"},RetrieveHandleMissingV1:{additionalProperties:!1,description:"No record exists under the handle in this project's store.",properties:{content:{description:"Always null: nothing is stored under the handle.",type:["string","null"]},expired:{description:"Always null: an absent record has no expiry to report.",type:["boolean","null"]},freshness:{anyOf:[{$ref:"#/$defs/PrimitiveSearchFreshnessV1"},{type:"null"}],description:"The worktree verdict a served graph read opens with."},handle:{type:"string"},message:{type:"string"},reason_code:{type:"string"},retry_instruction:{type:"string"},retryable:{type:"boolean"}},required:["handle","reason_code","message","retryable","retry_instruction"],type:"object"},RetrievedPageV1:{additionalProperties:!1,description:"One page of the stored response, sized so its response frame fits the\nresponse budget.",properties:{content:{type:"string"},created_at:{format:"int64",type:"integer"},expired:{description:"Always `false`: a page is only served from a live record.",type:"boolean"},expires_at:{format:"int64",type:"integer"},freshness:{anyOf:[{$ref:"#/$defs/PrimitiveSearchFreshnessV1"},{type:"null"}],description:"The worktree verdict a served graph read opens with."},handle:{type:"string"},has_more:{type:"boolean"},next_offset:{description:"Where the next page starts; absent on the last page.",format:"uint64",minimum:0,type:["integer","null"]},offset:{format:"uint64",minimum:0,type:"integer"},original_chars:{format:"uint64",minimum:0,type:"integer"},total_chars:{format:"uint64",minimum:0,type:"integer"}},required:["handle","expired","original_chars","total_chars","offset","has_more","created_at","expires_at","content"],type:"object"}},$schema:"https://json-schema.org/draft/2020-12/schema",anyOf:[{$ref:"#/$defs/RetrievedPageV1"},{$ref:"#/$defs/RetrieveHandleMissingV1"},{$ref:"#/$defs/RetrieveHandleExpiredV1"}],description:"What a retrieve found under the handle.",title:"RetrieveResultV1"},{$defs:{TestProfileV1:{description:"The cargo profile an affected-test run builds with.",enum:["debug","release"],type:"string"}},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{changed_paths:{description:"Explicit manifest of project-relative file paths used to compute\naffected tests.",items:{type:"string"},type:"array"},max_tests:{description:"Cap on tests dispatched in a single invocation, 1 through 500\n(default: 100).",format:"uint64",maximum:500,minimum:1,type:["integer","null"]},profile:{anyOf:[{$ref:"#/$defs/TestProfileV1"},{type:"null"}],description:"Cargo profile (default: debug)."},timeout_secs:{description:"Maximum wall time in seconds before the cargo subprocess is killed,\n1 through 300 (default: 300).",format:"uint64",maximum:300,minimum:1,type:["integer","null"]}},required:["changed_paths"],title:"RunAffectedTestsSurfaceRequestV1",type:"object"},{$defs:{AffectedTestErrorV1:{additionalProperties:!1,description:"Why a run failed or was refused.",properties:{kind:{type:"string"},message:{type:"string"},operation:{type:"string"}},required:["kind","operation","message"],type:"object"},AffectedTestOutcomeV1:{additionalProperties:!1,description:"One observed libtest outcome.",properties:{covers_source_ids:{description:"Graph symbols this test was selected to cover.",items:{type:"string"},type:"array"},passed:{type:"boolean"},test:{type:"string"}},required:["test","passed","covers_source_ids"],type:"object"},AffectedTestRunV1:{additionalProperties:!1,description:"A dispatched run, completed or failed, with what it observed.",properties:{dispatched_tests:{items:{type:"string"},type:"array"},error:{anyOf:[{$ref:"#/$defs/AffectedTestErrorV1"},{type:"null"}],description:"Present when the run did not complete."},exit_code:{format:"int32",type:["integer","null"]},failed:{format:"uint64",minimum:0,type:"integer"},ignored:{description:"Dispatched tests libtest reported as ignored.",format:"uint64",minimum:0,type:"integer"},passed:{format:"uint64",minimum:0,type:"integer"},results:{items:{$ref:"#/$defs/AffectedTestOutcomeV1"},type:"array"},stderr_tail:{type:"string"},stdout_tail:{type:"string"},terminal:{$ref:"#/$defs/ManagedTestTerminalV1"},total_observed:{format:"uint64",minimum:0,type:"integer"},truncated:{description:"More affected tests existed than `max_tests` admitted.",type:"boolean"}},required:["passed","failed","ignored","total_observed","dispatched_tests","truncated","results","stderr_tail","stdout_tail","terminal"],type:"object"},AffectedTestsNotRunV1:{additionalProperties:!1,description:"No test was dispatched: nothing covers the change, or the request was\nrefused before a run began.",properties:{error:{anyOf:[{$ref:"#/$defs/AffectedTestErrorV1"},{type:"null"}]},failed:{description:"Always 0.",format:"uint64",minimum:0,type:"integer"},note:{type:["string","null"]},passed:{description:"Always 0.",format:"uint64",minimum:0,type:"integer"},results:{description:"Always empty.",items:{$ref:"#/$defs/AffectedTestOutcomeV1"},type:"array"}},required:["passed","failed","results"],type:"object"},CancellationObservation:ha,CancellationStage:hs,Deadline:yb,ManagedTestTerminalV1:{additionalProperties:!1,description:"The managed test-run operation the run was recorded under.",properties:{operation_id:{type:"string"},receipt:{$ref:"#/$defs/OperationReceipt"},result_tool:{description:"The tool that reads the recorded results back.",type:"string"},session_id:{description:"The requesting session the run is recorded against; null when the\nrequest carried no session.",type:["string","null"]}},required:["operation_id","result_tool","receipt"],type:"object"},OperationBudgetUsage:_F,OperationReceipt:_L,OperationTermination:_U,UtcMicros:bX},$schema:"https://json-schema.org/draft/2020-12/schema",anyOf:[{$ref:"#/$defs/AffectedTestRunV1"},{$ref:"#/$defs/AffectedTestsNotRunV1"}],title:"RunAffectedTestsResultV1"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{authority_audit:{default:!1,description:"Run the exhaustive observation-authority audit and include\nauthority_audit_ok (true = audit ran and passed, false = audit ran and\nfailed, null = audit did not run or finish), authority_audit_reason\n(typed: authority_invariant_failed, authority_store_unavailable,\nauthority_store_missing, authority_audit_not_run,\nauthority_audit_budget_exceeded), and\nauthority_audit_error (observed detail) in database telemetry. Also\nincludes session-temporal health. Default false.",type:"boolean"},doctor_report:{default:!1,description:"Include the daemon-owned canonical Doctor report and typed per-table\ngrowth evidence. Default false.",type:"boolean"},session_ingest_health:{default:!1,description:"Include Cursor transcript-ingest health from the daemon-retained\nproject session authority. Default false.",type:"boolean"},session_temporal_health:{default:!1,description:"Include session-temporal health without the authority audit. Default\nfalse.",type:"boolean"},startup_health:{default:!1,description:"Ask a connection's first request for only the daemon-mounted database\nintegrity telemetry, for post-update startup validation; the daemon\ncore answers that probe before a project owner exists, and a project\nowner's snapshot already carries the same telemetry. Default false.",type:"boolean"}},title:"RuntimeSurfaceRequestV1",type:"object"},{$defs:{DoctorCoverageCompletenessV1:yw,DoctorCoverageStatementV1:{description:"A bounded, human-readable coverage statement plus its completeness.",properties:{completeness:{$ref:"#/$defs/DoctorCoverageCompletenessV1"},statement:{type:"string"}},required:["completeness","statement"],type:"object"},DoctorEvidenceRefV1:{description:"A typed reference to one piece of evidence Doctor composed into a finding.\n\nThe `family` records which audited input surface produced the evidence, so\na finding may cross-cite evidence from more than one family without losing\nprovenance.",properties:{family:{$ref:"#/$defs/DoctorFindingFamilyV1"},reference:{$ref:"#/$defs/DoctorEvidenceReferenceV1"}},required:["family","reference"],type:"object"},DoctorEvidenceReferenceV1:{description:"Durable, non-disclosing reference to one owning-authority evidence\nrecord (for example a `FeedbackFindingId`, configuration revision, or\nruntime read coverage anchor). Doctor stores the reference only; the\nowning authority remains the single source of the record.",type:"string"},DoctorEvidenceStateV1:{description:"Exact Doctor evidence states.\n\nMissing, partial, or unknown truth never becomes healthy or clean. Only\n[`DoctorEvidenceStateV1::HealthyCompleteCoverage`] asserts a healthy result,\nand only when its finding carries complete coverage (see\n[`DoctorFindingV1::new`]).",oneOf:[{const:"unsupported",description:"The owning authority does not support this evidence on this platform.",type:"string"},{const:"absent",description:"The evidence source is supported but produced nothing.",type:"string"},{const:"stale",description:"The evidence exists but is behind the current generation/watermark.",type:"string"},{const:"degraded",description:"The evidence proves a degraded but observed condition.",type:"string"},{const:"partial",description:"Only part of the evidence was observed.",type:"string"},{const:"unknown",description:"The evidence state could not be determined.",type:"string"},{const:"denied",description:"Authorization to read the evidence was denied.",type:"string"},{const:"healthy_complete_coverage",description:"The evidence proves a healthy condition with complete coverage.",type:"string"}]},DoctorFamilyConsultationV1:{description:"Whether a family was consulted from an observed source or is unavailable.",oneOf:[{description:"A source produced observed evidence for this family.",properties:{status:{const:"consulted",type:"string"}},required:["status"],type:"object"},{description:"Complete family coverage was unavailable. Storage may still carry\nfindings from resolved producers when an independent producer failed.",properties:{reason:{$ref:"#/$defs/DoctorFamilyUnavailableReasonV1"},status:{const:"unavailable",type:"string"}},required:["status","reason"],type:"object"}]},DoctorFamilyCoverageV1:{description:"The consultation status of one finding family within a report.",properties:{consultation:{$ref:"#/$defs/DoctorFamilyConsultationV1"},family:{$ref:"#/$defs/DoctorFindingFamilyV1"}},required:["family","consultation"],type:"object"},DoctorFamilyUnavailableReasonV1:{description:"Why complete coverage of a finding family was unavailable.",oneOf:[{const:"unwired",description:"No source port is wired for this family in this composition.",type:"string"},{const:"unsupported",description:"The source is unsupported on this build/platform.",type:"string"},{const:"absent",description:"The source is supported but produced nothing.",type:"string"},{const:"denied",description:"The source read was denied.",type:"string"},{const:"unknown",description:"The source state could not be determined.",type:"string"},{const:"unavailable",description:"The source could not be reached. Named separately from `Unknown`: the\nsource is identified and its unreachability is an observation, not an\nundetermined state.",type:"string"},{const:"reset_required",description:"The source must be rebuilt before it can be read again.",type:"string"},{const:"corrupt",description:"The source was read and found corrupt.",type:"string"}]},DoctorFindingFamilyV1:{description:"Stable Doctor finding families.\n\nThe initial list covers advisory findings from\nBrain, Explorer, Loom, Code, and Observatory, plus the daemon\ncore doctor checks (graph quick-check, temporal health, configuration\ndrift, code-index mount state, session ingest).\nEach family maps to one audited typed input surface. The set is kept small\nand honest; new families are added through a future versioned enum rather\nthan by widening the meaning of an existing variant.",oneOf:[{const:"advisory",description:"advisory/scout findings (GitHub review, CI localization,\nproximity, context scout): `crate::advisory` / domain feedback.",type:"string"},{const:"configuration",description:"Desired-versus-effective configuration and compatibility drift from\n`ProjectConfigurationRuntime` / `ConfigurationControlPlane`.",type:"string"},{const:"storage_runtime",description:"Store, graph, and temporal runtime health plus migration coverage\n(`RuntimeReadOperationV1` health family, `StoreRuntimeClientLease`).",type:"string"},{const:"storage",description:"Storage retention, size, and efficiency over canonical observability\nread models. Distinct from [`Self::StorageRuntime`] health: this\nfamily surfaces over-budget stores, identity-drift orphans, incident\ndebris, and retention backlog. The typed\nsubclass vocabulary is [`DoctorStorageFindingKindV1`].",type:"string"},{const:"language_server",description:"Language-server / analyzer engine status from the LSP gateway's\n`AnalyzerState`.",type:"string"},{const:"code_index",description:"Code index mount state (mounted, indexing, stale, unmounted,\nincompatible, parked).",type:"string"},{const:"observability",description:"Denominator-safe measurement and telemetry health from analytics,\naccounting read models, and session ingest.",type:"string"},{const:"memory",description:"Retained daemon memory as the resident-memory inventory reports it:\nRSS against the admission limit and pressure line, and each retained\nowner's bytes.",type:"string"}]},DoctorFindingV1:{description:"One canonical Doctor finding.\n\nA finding pins its diagnosis `family`, its evidence `state`, the typed\nevidence it composed, and a coverage statement. Construction enforces the\ninvariants that keep unknown/partial evidence from collapsing into a\nhealthy or clean result.",properties:{coverage:{$ref:"#/$defs/DoctorCoverageStatementV1"},evidence:{items:{$ref:"#/$defs/DoctorEvidenceRefV1"},type:"array"},family:{$ref:"#/$defs/DoctorFindingFamilyV1"},state:{$ref:"#/$defs/DoctorEvidenceStateV1"}},required:["family","state","evidence","coverage"],type:"object"},DoctorReportCoverageV1:{description:"The report-wide coverage statement: which families were consulted versus\nunavailable, plus an overall completeness and a bounded human statement.",properties:{completeness:{$ref:"#/$defs/DoctorCoverageCompletenessV1"},families:{items:{$ref:"#/$defs/DoctorFamilyCoverageV1"},type:"array"},statement:{$ref:"#/$defs/DoctorCoverageStatementV1"}},required:["families","completeness","statement"],type:"object"},DoctorReportEntryV1:{description:"One entry in a Doctor report: a canonical finding plus, for the storage\nfamily, its typed subclass. The subclass is present only for storage findings\n(a non-storage entry never carries one).",properties:{finding:{$ref:"#/$defs/DoctorFindingV1"},storage_kind:{anyOf:[{$ref:"#/$defs/DoctorStorageFindingKindV1"},{type:"null"}]}},required:["finding"],type:"object"},DoctorReportV1:{description:"One composed Doctor report.\n\nThe report carries one or more entries per family (findings are never merged\nby label) plus a coverage statement that enumerates every family consulted\nversus unavailable. Severity (the finding's evidence state) and evidence\nquality (coverage completeness) are kept as separate dimensions: a degraded\nfinding with complete coverage does not weaken report completeness, and only\ngenuinely complete coverage with every finding healthy makes the whole report\nassert health.",properties:{coverage:{$ref:"#/$defs/DoctorReportCoverageV1"},entries:{items:{$ref:"#/$defs/DoctorReportEntryV1"},type:"array"}},required:["entries","coverage"],type:"object"},DoctorStorageFindingKindV1:{description:"Typed subclasses of the [`DoctorFindingFamilyV1::Storage`] finding family.\n\nThe storage family never reports a silent overage: each subclass names one\nobservable retention/size condition Doctor surfaces over canonical size\nobservability read models. The set is closed and grows only through a future\nversioned enum, never by widening an existing subclass.",oneOf:[{const:"over_budget_store",description:"A store exceeds its owner-configured soft size budget.",type:"string"},{const:"orphan_store",description:"A store whose project identity no longer resolves to a live repository\nroot (identity-drift orphan), reported with age and size.",type:"string"},{const:"incident_debris_present",description:"Recovery/corruption artifacts are present beside a store and awaiting\ndeletion.",type:"string"},{const:"retention_backlog",description:"Retention-eligible rows or stores are past their window and awaiting\noffload/collection.",type:"string"},{const:"table_growth",description:"Per-table SQLite payload growth observed between two retained\nwatermarks, including baseline and unavailable measurement states.",type:"string"},{const:"pending_schema_migration",description:"A store whose historical schema convergence has not completed: the\nmigrations whose cost scales with store size are still pending, still\nrunning, or stopped on a failure. The daemon serves while they run, so\nthis is the surface that says which store is still migrating and why.",type:"string"},{const:"wal_checkpoint_pinned",description:"A store whose WAL checkpoint cannot restart the log because a reader\nstill holds a read slot past the checkpoint fence: a wedged reader of\nthis daemon or another process, named in the evidence. Writes run\nuntil the WAL reaches its ceiling, then wait.",type:"string"}]},LanguageServerAnalyzerStateV1:{description:"State of one analyzer as the daemon owner holds it.\n\n`Inactive` is the one state the aggregate never takes: the language has no\nfiles in the project, so Doctor does not grade it, but `lsp servers` still\nlists it from this same read so both surfaces share one authority.",enum:["ready","available","refreshing","disabled","unavailable","crashed","inactive"],type:"string"},LanguageServerAnalyzerV1:{description:"Live state of one analyzer the daemon resolved for the current project.\n\n`LanguageServerStateV1` is the aggregate the finding is graded on; this is\nthe per-analyzer evidence behind it, so an operator learns *which*\nexecutable is missing and how to install it, resolved by the daemon\nprocess (the only PATH that matters, since the daemon spawns analyzers)\nrather than by whichever shell ran the CLI.",properties:{command:{description:"The configured executable, after any operator command override.",type:"string"},detail:{description:"The owner's last recorded error for this analyzer, when one exists.",type:["string","null"]},executable_found:{description:"Whether the daemon process finds `command` on its own PATH. For an\nactive analyzer `state` is the finer verdict (a rustup proxy whose\ntoolchain lacks the component is found yet `Unavailable`); for an\ninactive one this is the only availability evidence.",type:"boolean"},install:{description:"The first install command the adapter advertises, when one exists.",type:["string","null"]},language:{description:"Adapter language (`typescript`, `rust`, …).",type:"string"},state:{$ref:"#/$defs/LanguageServerAnalyzerStateV1"}},required:["language","command","state","executable_found"],type:"object"},LanguageServerReadV1:{description:"One live read from the daemon language-server/analyzer owner.",oneOf:[{description:"The owner observed all project-active analyzer states.",properties:{analyzers:{default:[],description:"Every analyzer the owner resolved, active or not; the aggregate\n`state` covers the active ones only.",items:{$ref:"#/$defs/LanguageServerAnalyzerV1"},type:"array"},coverage:{$ref:"#/$defs/DoctorCoverageCompletenessV1"},kind:{const:"observed",type:"string"},state:{$ref:"#/$defs/LanguageServerStateV1"}},required:["kind","state","coverage"],type:"object"},{description:"Language-server inspection is unsupported on this build/platform.",properties:{kind:{const:"unsupported",type:"string"}},required:["kind"],type:"object"},{description:"No project-active analyzer is configured. The owner's inactive\nanalyzers are still carried so `lsp servers` can list them.",properties:{analyzers:{default:[],items:{$ref:"#/$defs/LanguageServerAnalyzerV1"},type:"array"},kind:{const:"absent",type:"string"}},required:["kind"],type:"object"},{description:"Authorization to inspect analyzer state was denied.",properties:{kind:{const:"denied",type:"string"}},required:["kind"],type:"object"},{description:"Analyzer state could not be determined.",properties:{kind:{const:"unknown",type:"string"}},required:["kind"],type:"object"}]},LanguageServerStateV1:{description:"Aggregate state of the project-active language-server analyzers.",oneOf:[{const:"ready",description:"Every active analyzer is ready.",type:"string"},{const:"available",description:"At least one analyzer is installed but has not produced a ready snapshot.",type:"string"},{const:"refreshing",description:"At least one analyzer is currently refreshing/indexing.",type:"string"},{const:"disabled",description:"At least one project analyzer is disabled.",type:"string"},{const:"unavailable",description:"At least one project analyzer executable is unavailable.",type:"string"},{const:"crashed",description:"At least one analyzer process crashed.",type:"string"}]},RuntimeDoctorReportV1:{description:"The daemon's canonical Doctor report as this route could read it.",oneOf:[{additionalProperties:!1,properties:{kind:{const:"observed",type:"string"},language_servers:{$ref:"#/$defs/LanguageServerReadV1"},report:{$ref:"#/$defs/DoctorReportV1"},schema_convergences:{items:{$ref:"#/$defs/SchemaConvergenceFindingV1"},type:"array"},table_growth_evidence:{items:{$ref:"#/$defs/TableGrowthDoctorEvidenceV1"},type:"array"}},required:["kind","report","table_growth_evidence","schema_convergences","language_servers"],type:"object"},{additionalProperties:!1,description:"The reader is mounted and the read failed.",properties:{kind:{const:"unknown",type:"string"},language_servers:{$ref:"#/$defs/LanguageServerReadV1"},schema_convergences:{items:{$ref:"#/$defs/SchemaConvergenceFindingV1"},type:"array"},table_growth_evidence:{items:{$ref:"#/$defs/TableGrowthDoctorEvidenceV1"},type:"array"}},required:["kind","table_growth_evidence","schema_convergences","language_servers"],type:"object"},{additionalProperties:!1,description:"No Doctor reader is mounted on this route.",properties:{kind:{const:"unsupported",type:"string"},language_servers:{$ref:"#/$defs/LanguageServerReadV1"},schema_convergences:{items:{$ref:"#/$defs/SchemaConvergenceFindingV1"},type:"array"},table_growth_evidence:{items:{$ref:"#/$defs/TableGrowthDoctorEvidenceV1"},type:"array"}},required:["kind","table_growth_evidence","schema_convergences","language_servers"],type:"object"}]},SchemaConvergenceFindingV1:vU,SchemaConvergenceProgressV1:vH,SchemaConvergenceStageV1:vG,SchemaConvergenceStateV1:vB,StorageByteSizeV1:{description:"A byte size measurement. A newtype keeps sizes from being confused with\ncounts, ratios, or timestamps in the read models and producers.",format:"uint64",minimum:0,type:"integer"},StoreKeyV1:{description:"Logical name of one owner-profile store (for example `sessions.db`,\n`graph.db`, or `projects/proj_x`). Never an absolute on-disk path.",type:"string"},TableGrowthDoctorEvidenceV1:{description:"Contract-independent evidence ready to wrap in a future `TableGrowth`\nStorage finding once that generated-contract variant is available.",oneOf:[{properties:{current_bytes:{$ref:"#/$defs/StorageByteSizeV1"},current_observed_at:{$ref:"#/$defs/UtcMicros"},growth_bytes:{$ref:"#/$defs/StorageByteSizeV1"},kind:{const:"significant_growth",type:"string"},previous_bytes:{$ref:"#/$defs/StorageByteSizeV1"},previous_observed_at:{$ref:"#/$defs/UtcMicros"},store:{$ref:"#/$defs/StoreKeyV1"},table:{$ref:"#/$defs/TableNameV1"}},required:["kind","store","table","previous_bytes","current_bytes","growth_bytes","previous_observed_at","current_observed_at"],type:"object"},{properties:{kind:{const:"baseline_established",type:"string"},observed_at:{$ref:"#/$defs/UtcMicros"},store:{$ref:"#/$defs/StoreKeyV1"},tables_observed:{format:"uint64",minimum:0,type:"integer"}},required:["kind","store","observed_at","tables_observed"],type:"object"},{properties:{current_bytes:{$ref:"#/$defs/StorageByteSizeV1"},kind:{const:"table_baseline_pending",type:"string"},observed_at:{$ref:"#/$defs/UtcMicros"},store:{$ref:"#/$defs/StoreKeyV1"},table:{$ref:"#/$defs/TableNameV1"}},required:["kind","store","table","current_bytes","observed_at"],type:"object"},{properties:{kind:{const:"unsupported",type:"string"},store:{$ref:"#/$defs/StoreKeyV1"}},required:["kind","store"],type:"object"},{properties:{kind:{const:"denied",type:"string"},store:{$ref:"#/$defs/StoreKeyV1"}},required:["kind","store"],type:"object"},{properties:{kind:{const:"unknown",type:"string"},reason:{$ref:"#/$defs/TableGrowthUnavailableReasonV1"},store:{$ref:"#/$defs/StoreKeyV1"}},required:["kind","store","reason"],type:"object"}]},TableGrowthUnavailableReasonV1:{description:"Why a per-table payload-growth measurement is unavailable.",oneOf:[{const:"not_yet_measured",description:"No maintenance pass has measured this store yet.",type:"string"},{const:"reader_unavailable",description:"No reader could be leased within the measurement's wait.",type:"string"},{const:"deadline_exceeded",description:"The `dbstat` walk was interrupted by its deadline.",type:"string"},{const:"cancelled",description:"The `dbstat` walk was cancelled.",type:"string"},{const:"storage_corrupt",description:"The store reported corruption.",type:"string"},{const:"storage_infrastructure",description:"The store failed with an infrastructure error.",type:"string"},{const:"storage_other",description:"The store failed for another reason.",type:"string"},{const:"invalid_table_name",description:"`dbstat` named a table that is not a valid table identifier.",type:"string"},{const:"clock_regressed",description:"The previous watermark is later than the current measurement.",type:"string"},{const:"exceeds_measurement_budget",description:"The store is larger than the `dbstat` walk can cover within its\ndeadline.",type:"string"}]},TableNameV1:{description:"A physical table name inside a store, used for per-table growth telemetry.",type:"string"},UtcMicros:bX},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"Process, database, and session-observation telemetry for the running\ndaemon, with the sections the request opted into.",properties:{captured_at:{description:"Unix epoch seconds.",format:"uint64",minimum:0,type:"integer"},cursor_session_ingest:!0,cursor_session_placeholder_paths:{items:{type:"string"},type:["array","null"]},database:{description:"Store telemetry, with the authority-audit verdict when it ran."},doctor_report:{anyOf:[{$ref:"#/$defs/RuntimeDoctorReportV1"},{type:"null"}]},host_os:{type:"string"},process:{description:"Cached process sample."},session_temporal_health:!0,tracedecay_version:{type:"string"}},required:["captured_at","tracedecay_version","host_os","process","database"],title:"RuntimeResultV1",type:"object"},{$defs:{SearchLexicalAliasV1:{additionalProperties:!1,description:"One named query-time vocabulary alias.",properties:{alternative:{maxLength:128,type:"string"},strict_query:{maxLength:128,type:"string"}},required:["strict_query","alternative"],type:"object"},SearchLexicalFieldFilterV1:{additionalProperties:!1,properties:{field:{$ref:"#/$defs/SearchLexicalFieldV1"},include:{type:"boolean"}},required:["field","include"],type:"object"},SearchLexicalFieldV1:{description:"A lexical posting field a search may include or exclude.",enum:["symbol_name","qualified_name","path","signature","documentation","body_text","preamble_text","exact_term","subtoken"],type:"string"},SearchLexicalProximityV1:{additionalProperties:!1,description:"Ordered terms that must occur in one field within `maximum_gap`\nintervening tokens of each other.",properties:{maximum_gap:{format:"uint32",maximum:8,minimum:0,type:"integer"},terms:{items:{type:"string"},maxItems:8,minItems:2,type:"array"}},required:["terms","maximum_gap"],type:"object"}},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{cursor:{description:"Authenticated opaque continuation returned as next_cursor. Repeat the same query and lexical options with it.",type:["string","null"]},lazy_index_ignored_dependencies:{description:"Opt in to bounded indexing of ignored dependency entry files when an import hint matches (default: false).",type:["boolean","null"]},lexical_aliases:{description:"Named query-time vocabulary aliases. The strict query always ranks first. Alias-only hits follow it with the strict query, alternative, and configured-vocabulary reason disclosed.",items:{$ref:"#/$defs/SearchLexicalAliasV1"},maxItems:8,type:["array","null"]},lexical_anchors:{description:"Exact identifiers or technical terms (e.g. 'reserve_stock', 'Foo::bar', 'E0308') that the answer must be about. Each is ranked through the lexical lane as its own route: a hit carrying an anchor outranks every hit that carries none, exact hits included, every anchor with matches keeps at least its best sites through the lane cap, and `lexical_anchors` in the response reports each anchor's outcome (`matched` rows, `admitted` sites this response returns, `dropped` admitted sites it could not carry with the reason, `unmatched`, or `not_served`). Ranked retrieval, not exhaustive grep (use tracedecay_grep for that). Each result names the routes that ranked it. At most 8 anchors, each one whitespace-free term of at most 128 bytes, no repeats.",items:{type:"string"},maxItems:8,type:["array","null"]},lexical_field_filters:{description:"Include or exclude lexical symbol_name, qualified_name, path, signature, documentation, body_text, preamble_text, exact_term, or subtoken fields.",items:{$ref:"#/$defs/SearchLexicalFieldFilterV1"},maxItems:9,type:["array","null"]},lexical_phrases:{description:"Exact lexical phrases to rank through n-gram candidate pruning.",items:{type:"string"},maxItems:4,type:["array","null"]},lexical_proximities:{description:"Ordered lexical terms that must occur within the bounded intervening-token gap.",items:{$ref:"#/$defs/SearchLexicalProximityV1"},maxItems:4,type:["array","null"]},limit:{description:"Maximum number of results to return (default: 10)",format:"uint64",minimum:0,type:["integer","null"]},prefer_symbol:{description:"Add a lexical route restricted to symbol-name matches for the identifier-shaped words of the query. Omitted, it runs when the query is name-shaped (at least half its content words are identifiers such as 'getUserById' or 'Foo::bar'); true forces it, false suppresses it. `query_route` in the response reports the decision and its margin. Query words such as class/struct/function/find/explain are ignored; 'Foo::bar' and 'Foo.bar' contribute 'bar'.",type:["boolean","null"]},query:{description:"Search query string to match against symbol names",type:"string"}},required:["query"],title:"SearchSurfaceRequestV1",type:"object"},{$defs:{ApplicationProblemDetailV1:fW,CalibrationProfileId:ho,CandidateContribution:hd,CodeIndexBuildBlockedReasonV1:hv,CodeIndexConvergenceParkedV1:hb,CodeIndexStalenessStateV1:hw,ComponentRevision:hC,ContextLexicalAnchorV1:hL,DaemonServiceUnitObservationV1:yv,DiagnosticsSearchedTsconfigV1:yk,EvidenceRole:yT,ExactClass:yO,FileOccurrenceId:gd,FixedPointScore:gl,FreshnessCompatibilityV1:gp,FusedCandidate:gu,LexicalAnchorDropReasonV1:_t,LexicalAnchorDropV1:_r,LogicalCopyClusterId:_o,LogicalEvidenceId:_n,OccurrenceProvenance:_D,PrimitiveFreshnessStateV1:_K,PrimitiveIndexingStateV1:_J,PrimitiveLaneCompleteV1:_Z,PrimitiveRecallV1:_X,PrimitiveSearchFreshnessV1:_Y,PrimitiveUnavailableEvidenceV1:_2,PrimitiveUnavailableStatusV1:_4,RankingDecision:vu,RankingDecisionKind:vm,RepositoryId:v$,RetrievalAnchorId:vx,RetrievalSourceRoleV1:vT,RetrieverKind:vE,ScoreDomainId:v6,SearchCompleteV1:{additionalProperties:!1,properties:{code_generation:{type:"string"},coverage:{$ref:"#/$defs/SearchCoverageV1"},external_import_hint:{anyOf:[{$ref:"#/$defs/SearchExternalImportHintV1"},{type:"null"}]},freshness:{$ref:"#/$defs/PrimitiveSearchFreshnessV1",description:"Freshness of the served code generation, derived from the typed lane\ncoverage and the daemon scheduler's worktree state."},lexical_anchors:{description:"Outcome of every caller `lexical_anchors` entry, beside the routes.",items:{$ref:"#/$defs/ContextLexicalAnchorV1"},type:["array","null"]},lexical_routes:{description:"Every lexical route fused into this page; present only when a route\nbeyond the strict query ran or ranked a result.",items:{$ref:"#/$defs/SearchLexicalRouteV1"},type:["array","null"]},next_cursor:{description:"Authenticated continuation for the next page; null on the last page.",type:["string","null"]},query_fallback_digest:{type:"string"},query_route:{anyOf:[{$ref:"#/$defs/SearchQueryRouteV1"},{type:"null"}],description:"Which lane the query's shape selected, and its margin."},results:{items:{$ref:"#/$defs/SearchResultRowV1"},type:"array"},scope_prefix:{description:"The session's scope prefix. Ranked candidates carry no file path, so\nthe scope is reported and not applied.",type:["string","null"]},scope_prefix_applied:{type:["boolean","null"]},verified_graph_evidence:{anyOf:[{$ref:"#/$defs/PrimitiveUnavailableEvidenceV1"},{type:"null"}]}},required:["freshness","code_generation","query_fallback_digest","coverage","results"],type:"object"},SearchCoverageV1:{additionalProperties:!1,description:"Per-lane recall of one search, so a full-recall answer is told apart from\none produced while a lane was down.",properties:{exact:{$ref:"#/$defs/SearchLaneStatusV1"},graph:{$ref:"#/$defs/SearchLaneStatusV1"},lexical:{$ref:"#/$defs/SearchLaneStatusV1"},recall:{$ref:"#/$defs/PrimitiveRecallV1"}},required:["exact","lexical","graph","recall"],type:"object"},SearchDisplayUnavailableV1:{description:"Why a ranked candidate's display metadata was not hydrated: the answering\ngeneration no longer matches the request (`stale`), its record is\nincompatible or does not bind the candidate (`incompatible`, `invalid`),\nthe read failed (`internal`), the hydration budget was spent\n(`budget_exceeded`), or the request was cancelled (`cancelled`).",enum:["stale","incompatible","invalid","internal","budget_exceeded","cancelled"],type:"string"},SearchExternalImportCandidatesV1:{additionalProperties:!1,properties:{candidates:{items:{$ref:"#/$defs/SearchExternalImportV1"},type:"array"},evidence:{type:"string"},message:{type:"string"},resolution_status:{type:"string"},suggested_action:{type:"string"}},required:["message","evidence","resolution_status","candidates","suggested_action"],type:"object"},SearchExternalImportHintV1:{anyOf:[{$ref:"#/$defs/SearchExternalImportCandidatesV1"},{$ref:"#/$defs/PrimitiveUnavailableEvidenceV1"}],description:"Advisory evidence that a sparse search matched external-module imports,\nor why that evidence could not be read."},SearchExternalImportV1:{additionalProperties:!1,properties:{import_file:{type:"string"},line:{format:"uint32",minimum:0,type:"integer"},module:{type:"string"},symbol:{description:"The imported name; null for a whole-module import.",type:["string","null"]}},required:["module","import_file","line"],type:"object"},SearchLaneStateV1:{description:"A lane that did not serve the current complete generation. A partial\nlane names its generation and reason when it has them, null otherwise.",oneOf:[{additionalProperties:!1,properties:{generation:{type:"string"},status:{const:"stale",type:"string"}},required:["status","generation"],type:"object"},{additionalProperties:!1,properties:{generation:{type:["string","null"]},reason:{type:["string","null"]},status:{const:"partial",type:"string"}},required:["status"],type:"object"},{additionalProperties:!1,properties:{reason:{type:"string"},status:{const:"unavailable",type:"string"}},required:["status","reason"],type:"object"}]},SearchLaneStatusV1:{anyOf:[{$ref:"#/$defs/PrimitiveLaneCompleteV1"},{$ref:"#/$defs/SearchLaneStateV1"}]},SearchLexicalAlternativeReasonV1:{description:"Why the lexical lane tried a configured alternative.",enum:["configured_vocabulary_alias"],type:"string"},SearchLexicalRouteV1:{description:"One lexical route fused into the page, with its display label.",oneOf:[{additionalProperties:!1,description:"The caller's strict lexical query.",properties:{label:{type:"string"},route:{const:"query",type:"string"}},required:["route","label"],type:"object"},{additionalProperties:!1,description:"One caller-supplied exact identifier or term.",properties:{anchor:{type:"string"},label:{type:"string"},route:{const:"anchor",type:"string"}},required:["route","anchor","label"],type:"object"},{additionalProperties:!1,description:"Identifier-shaped tokens of the query, restricted to symbol names.",properties:{label:{type:"string"},route:{const:"preferred_symbol",type:"string"},tokens:{items:{type:"string"},type:"array"}},required:["route","tokens","label"],type:"object"},{additionalProperties:!1,description:"Identifier and path components recovered from the strict query.",properties:{label:{type:"string"},route:{const:"identifier_split",type:"string"},strict_query:{type:"string"},terms:{items:{type:"string"},type:"array"}},required:["route","strict_query","terms","label"],type:"object"},{additionalProperties:!1,description:"A configured query-time vocabulary alternative.",properties:{alternative:{type:"string"},label:{type:"string"},reason:{$ref:"#/$defs/SearchLexicalAlternativeReasonV1"},route:{const:"alias",type:"string"},strict_query:{type:"string"}},required:["route","strict_query","alternative","reason","label"],type:"object"}]},SearchQueryRouteDeciderV1:{description:"Who chose the query route: the query-shape gate or the caller's\n`prefer_symbol`.",enum:["query_shape","caller"],type:"string"},SearchQueryRouteKindV1:{description:"Which lexical lane the query's shape selected.",oneOf:[{const:"name",description:"The symbol-name route ran beside the strict query.",type:"string"},{const:"prose",description:"The strict query ran without the symbol-name route.",type:"string"}]},SearchQueryRouteV1:{additionalProperties:!1,description:"The query-shape routing decision behind a page.",properties:{decided_by:{$ref:"#/$defs/SearchQueryRouteDeciderV1"},margin:{description:"Distance from the name gate in [-0.5, 0.5]: the share of the query's\ncontent words that are identifier-shaped, minus one half. The gate\nselects `name` at or above 0. Reported when the caller decided too.\nIt describes query shape only and is not an answerability signal.",format:"double",type:"number"},route:{$ref:"#/$defs/SearchQueryRouteKindV1"}},required:["route","margin","decided_by"],type:"object"},SearchResultDisplayV1:{additionalProperties:!1,properties:{kind:{type:"string"},name:{type:"string"},path:{type:"string"},qualified_name:{type:"string"}},required:["name","qualified_name","kind","path"],type:"object"},SearchResultRowV1:{additionalProperties:!1,description:"One ranked candidate with its generation-bound display metadata.",properties:{candidate:{$ref:"#/$defs/FusedCandidate"},display:{anyOf:[{$ref:"#/$defs/SearchResultDisplayV1"},{type:"null"}]},display_unavailable:{anyOf:[{$ref:"#/$defs/SearchDisplayUnavailableV1"},{type:"null"}],description:"Why `display` is absent from this ranked candidate."},final_ordinal:{format:"uint32",minimum:0,type:"integer"},lexical_routes:{description:"The lexical routes that ranked this candidate.",items:{$ref:"#/$defs/SearchRouteMatchV1"},type:["array","null"]},node_id:{description:"The graph symbol to read with `tracedecay_source_body`.",type:["string","null"]}},required:["candidate","final_ordinal"],type:"object"},SearchRouteMatchV1:{additionalProperties:!1,description:"One route that ranked a candidate, named by its route label.",properties:{matched_terms:{items:{type:"string"},type:"array"},route:{type:"string"},score_micros:{format:"uint64",minimum:0,type:"integer"},spelling_variants:{items:{$ref:"#/$defs/SearchSpellingVariantV1"},type:"array"}},required:["route","score_micros","matched_terms"],type:"object"},SearchSpellingVariantV1:{additionalProperties:!1,properties:{alternative:{type:"string"},query:{type:"string"}},required:["query","alternative"],type:"object"},SearchUnavailableV1:{additionalProperties:!1,properties:{code_generation:{type:["string","null"]},coverage:{$ref:"#/$defs/SearchCoverageV1"},detail:{anyOf:[{$ref:"#/$defs/ApplicationProblemDetailV1"},{type:"null"}],description:"Present when indexing is parked: its cause, remedy, and wake retry."},freshness:{$ref:"#/$defs/PrimitiveSearchFreshnessV1"},query_fallback_digest:{description:"Always null: no fallback subpayload was produced.",type:["string","null"]},reason:{type:"string"},results:{description:"Always empty: no generation answered.",items:{$ref:"#/$defs/SearchResultRowV1"},type:"array"},status:{$ref:"#/$defs/PrimitiveUnavailableStatusV1"},verified_graph_evidence:{anyOf:[{$ref:"#/$defs/PrimitiveUnavailableEvidenceV1"},{type:"null"}]}},required:["freshness","results","status","reason","coverage"],type:"object"},SessionOrThreadId:bt,SourceFreshness:b_,SourceInstanceKey:bv,SourceNamespace:b$,SourceOccurrenceId:bS,UtcMicros:bX},$schema:"https://json-schema.org/draft/2020-12/schema",anyOf:[{$ref:"#/$defs/SearchCompleteV1"},{$ref:"#/$defs/SearchUnavailableV1"}],description:"What a search served: a ranked page, or the typed reason no generation\ncould answer.",title:"SearchResultV1"},{$defs:{PageRequest:_H,ResultProjection:vV,RetrievalOrder:vj,RetrievalRequestMeta:vC,SessionId:be,TemporalModeV1:bN,UtcMicros:bX},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{meta:{$ref:"#/$defs/RetrievalRequestMeta"},session_id:{$ref:"#/$defs/SessionId"}},required:["session_id","meta"],title:"SessionLookupRequest",type:"object"},{$defs:{RetrievalAnchorId:vx},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{anchors:{items:{$ref:"#/$defs/RetrievalAnchorId"},type:"array"}},required:["anchors"],title:"SessionLookupResult",type:"object"},{$defs:{SessionRefreshFrontierV1:{additionalProperties:!1,properties:{committed_through:{format:"uint64",minimum:0,type:"integer"},observed_through:{format:"uint64",minimum:0,type:"integer"}},required:["observed_through","committed_through"],type:"object"},SessionRefreshGrainV1:{enum:["occurrence","logical_message","turn","session","thread","agent","summary"],type:"string"},SessionRefreshScopeV1:{description:"Session-store owner one refresh is bound to.\n\nThe caller selects the already-mounted project or profile authority. Exact\nprofile, project, repository, worktree, branch, store, and root identities\nstay daemon-owned and are resolved from that authority during admission.",oneOf:[{additionalProperties:!1,properties:{kind:{const:"project",type:"string"}},required:["kind"],type:"object"},{additionalProperties:!1,properties:{kind:{const:"profile",type:"string"}},required:["kind"],type:"object"}]},SessionRefreshSessionV1:{additionalProperties:!1,properties:{id:{type:"string"}},required:["id"],type:"object"},SessionRefreshSourceV1:{additionalProperties:!1,properties:{scope:{type:"string"}},required:["scope"],type:"object"},SessionRefreshTargetV1:{additionalProperties:!1,properties:{frontier:{$ref:"#/$defs/SessionRefreshFrontierV1"},grain:{$ref:"#/$defs/SessionRefreshGrainV1"},temporal_mode:{$ref:"#/$defs/TemporalModeV1"}},required:["temporal_mode","grain","frontier"],type:"object"},TemporalModeV1:bN,UtcMicros:bX},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"Exact route-selected session-refresh request body.\n\nEach current route selects the action itself; `scope` selects the mounted\nsession-store owner. Project-scoped requests are served under project-open\nadmission, profile-scoped requests by the authenticated profile authority.",properties:{handle:{type:["string","null"]},scope:{$ref:"#/$defs/SessionRefreshScopeV1"},session:{$ref:"#/$defs/SessionRefreshSessionV1"},source:{$ref:"#/$defs/SessionRefreshSourceV1"},target:{$ref:"#/$defs/SessionRefreshTargetV1"}},required:["scope","session","source","target"],title:"SessionRefreshActionRequestV1",type:"object"},{$defs:{ClosedUtcIntervalV1:hf,RetainedErrorV1:vR,RetainedOutcomeStatusV1:vq,SessionCoverageIntervalV1:v9,SessionCoverageReasonV1:v5,SessionCoverageRequestV1:v8,SessionCoverageStateV1:v7,SessionRefreshFrontierResultV1:br,SessionRefreshProgressV1:bi,SessionRefreshReceiptV1:bo,SessionRefreshTerminalStateResultV1:bn,SessionSourceCoverageV1:bs,TemporalCoverageV1:bA,TemporalModeV1:bN,UtcMicros:bX,ValidCoverageIntervalV1:bY},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{accepted_at:{format:"int64",type:["integer","null"]},error:{anyOf:[{$ref:"#/$defs/RetainedErrorV1"},{type:"null"}]},handle:{type:["string","null"]},operation_id:{type:["string","null"]},outcome:{$ref:"#/$defs/RetainedOutcomeStatusV1"},progress:{anyOf:[{$ref:"#/$defs/SessionRefreshProgressV1"},{type:"null"}]},receipt:{anyOf:[{$ref:"#/$defs/SessionRefreshReceiptV1"},{type:"null"}]},scope:{type:"string"},tool:{type:"string"}},required:["outcome","scope","tool"],title:"SessionRefreshBeginResultV1",type:"object"},{$defs:{ClosedUtcIntervalV1:hf,RetainedErrorV1:vR,RetainedOutcomeStatusV1:vq,SessionCoverageIntervalV1:v9,SessionCoverageReasonV1:v5,SessionCoverageRequestV1:v8,SessionCoverageStateV1:v7,SessionRefreshFrontierResultV1:br,SessionRefreshProgressV1:bi,SessionRefreshReceiptV1:bo,SessionRefreshTerminalStateResultV1:bn,SessionSourceCoverageV1:bs,TemporalCoverageV1:bA,TemporalModeV1:bN,UtcMicros:bX,ValidCoverageIntervalV1:bY},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{accepted_at:{format:"int64",type:["integer","null"]},error:{anyOf:[{$ref:"#/$defs/RetainedErrorV1"},{type:"null"}]},handle:{type:["string","null"]},operation_id:{type:["string","null"]},outcome:{$ref:"#/$defs/RetainedOutcomeStatusV1"},progress:{anyOf:[{$ref:"#/$defs/SessionRefreshProgressV1"},{type:"null"}]},receipt:{anyOf:[{$ref:"#/$defs/SessionRefreshReceiptV1"},{type:"null"}]},scope:{type:"string"},tool:{type:"string"}},required:["outcome","scope","tool"],title:"SessionRefreshCancelResultV1",type:"object"},{$defs:{ClosedUtcIntervalV1:hf,RetainedErrorV1:vR,RetainedOutcomeStatusV1:vq,SessionCoverageIntervalV1:v9,SessionCoverageReasonV1:v5,SessionCoverageRequestV1:v8,SessionCoverageStateV1:v7,SessionRefreshFrontierResultV1:br,SessionRefreshProgressV1:bi,SessionRefreshReceiptV1:bo,SessionRefreshTerminalStateResultV1:bn,SessionSourceCoverageV1:bs,TemporalCoverageV1:bA,TemporalModeV1:bN,UtcMicros:bX,ValidCoverageIntervalV1:bY},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{error:{anyOf:[{$ref:"#/$defs/RetainedErrorV1"},{type:"null"}]},outcome:{$ref:"#/$defs/RetainedOutcomeStatusV1"},progress:{anyOf:[{$ref:"#/$defs/SessionRefreshProgressV1"},{type:"null"}]},receipt:{anyOf:[{$ref:"#/$defs/SessionRefreshReceiptV1"},{type:"null"}]},scope:{type:"string"},tool:{type:"string"}},required:["outcome","scope","tool"],title:"SessionRefreshStatusResultV1",type:"object"},{$defs:{RetainedTimeFilterV1:vI,SessionGitRefV1:{enum:["branch","worktree","commit"],type:"string"},SessionGitRelationV1:{enum:["produced","observed","all"],type:"string"}},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{git_ref:{$ref:"#/$defs/SessionGitRefV1"},limit:{format:"uint64",minimum:0,type:["integer","null"]},relation:{anyOf:[{$ref:"#/$defs/SessionGitRelationV1"},{type:"null"}]},since:{anyOf:[{$ref:"#/$defs/RetainedTimeFilterV1"},{type:"null"}]},until:{anyOf:[{$ref:"#/$defs/RetainedTimeFilterV1"},{type:"null"}]},value:{type:"string"}},required:["git_ref","value"],title:"SessionsForRequestV1",type:"object"},{$defs:{CorrelationIndexCountModeV1:{enum:["presence_only"],type:"string"},CorrelationIndexV1:{additionalProperties:!1,properties:{backfill_watermark:{format:"int64",type:["integer","null"]},commit_count:{format:"uint64",minimum:0,type:["integer","null"]},commits_present:{type:"boolean"},count_mode:{$ref:"#/$defs/CorrelationIndexCountModeV1"},generation:{type:["string","null"]},projection_available:{type:"boolean"},source_watermark:{type:["string","null"]},span_count:{format:"uint64",minimum:0,type:["integer","null"]},spans_present:{type:"boolean"}},required:["projection_available","spans_present","commits_present","count_mode"],type:"object"},RetainedOutcomeStatusV1:vq,SessionCorrelationHitV1:{additionalProperties:!1,properties:{branch:{type:["string","null"]},commit_sha:{type:["string","null"]},committed_at:{format:"int64",type:["integer","null"]},confidence:{format:"int64",type:["integer","null"]},event_count:{format:"int64",type:"integer"},evidence:{type:["string","null"]},evidence_message_id:{type:["string","null"]},first_ts:{format:"int64",type:["integer","null"]},last_ts:{format:"int64",type:["integer","null"]},provider:{type:"string"},relation:{type:["string","null"]},session_id:{type:"string"},sources:{items:{type:"string"},type:"array"},span_count:{format:"int64",type:"integer"},span_overlap_kind:{type:["string","null"]},worktree:{type:["string","null"]}},required:["provider","session_id","event_count","span_count","sources"],type:"object"}},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{count:{format:"uint",minimum:0,type:"integer"},git_ref:{type:["string","null"]},index:{anyOf:[{$ref:"#/$defs/CorrelationIndexV1"},{type:"null"}]},index_empty:{type:["boolean","null"]},message:{type:["string","null"]},observed_count:{format:"uint",minimum:0,type:["integer","null"]},observed_sessions:{items:{$ref:"#/$defs/SessionCorrelationHitV1"},type:["array","null"]},problem_code:{type:["string","null"]},relation:{type:["string","null"]},results:{items:{$ref:"#/$defs/SessionCorrelationHitV1"},type:"array"},since:{format:"int64",type:["integer","null"]},status:{$ref:"#/$defs/RetainedOutcomeStatusV1"},until:{format:"int64",type:["integer","null"]},value:{type:["string","null"]}},required:["count","results","status"],title:"SessionsForResultV1",type:"object"},{$defs:{NodeExpansionCostV1:_W,SymbolSignatureV1:{additionalProperties:!1,properties:{cost_to_expand:{$ref:"#/$defs/NodeExpansionCostV1"},docstring:{type:["string","null"]},end_line:{format:"uint32",minimum:0,type:"integer"},file:{type:"string"},is_async:{type:"boolean"},kind:{type:"string"},name:{type:"string"},node_id:{type:"string"},qualified_name:{type:"string"},signature:{type:["string","null"]},start_line:{format:"uint32",minimum:0,type:"integer"},unavailable_fields:{items:{type:"string"},type:"array"},visibility:{type:"string"}},required:["node_id","name","qualified_name","kind","visibility","is_async","file","start_line","end_line","cost_to_expand","unavailable_fields"],type:"object"}},$schema:"https://json-schema.org/draft/2020-12/schema",items:{$ref:"#/$defs/SymbolSignatureV1"},title:"Array_of_SymbolSignatureV1",type:"array"},{$defs:{ProjectId:_6,RepositoryId:v$,SimilarMatchClassV1:bp,SimilarTargetV1:{oneOf:[{additionalProperties:!1,properties:{kind:{const:"symbol_occurrence",type:"string"},symbol_occurrence_id:{$ref:"#/$defs/SymbolOccurrenceId"}},required:["kind","symbol_occurrence_id"],type:"object"},{additionalProperties:!1,properties:{kind:{const:"source_range",type:"string"},path:{type:"string"},span:{$ref:"#/$defs/SourceSpan"}},required:["kind","path","span"],type:"object"}]},SourceSpan:bk,SymbolOccurrenceId:bx},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{cursor:{type:["string","null"]},match_classes:{items:{$ref:"#/$defs/SimilarMatchClassV1"},type:"array"},project_id:{$ref:"#/$defs/ProjectId"},repository_id:{$ref:"#/$defs/RepositoryId"},result_limit:{description:"Preferred result page size.",format:"uint32",minimum:0,type:"integer"},target:{$ref:"#/$defs/SimilarTargetV1"},work_limit:{format:"uint32",minimum:0,type:"integer"}},required:["project_id","repository_id","target","match_classes","result_limit","work_limit"],title:"SimilarSurfaceRequestV1",type:"object"},{$defs:{CodeGenerationId:hg,CodeIndexBuildBlockedReasonV1:hv,CodeIndexConvergenceParkedV1:hb,CodeIndexStalenessStateV1:hw,ManifestDigest:_p,PrimitiveFreshnessStateV1:_K,PrimitiveIndexingStateV1:_J,PrimitiveSearchFreshnessV1:_Y,ProjectId:_6,RepositoryId:v$,SimilarCoverageV1:{oneOf:[{additionalProperties:!1,properties:{status:{const:"complete",type:"string"}},required:["status"],type:"object"},{additionalProperties:!1,properties:{status:{const:"partial",type:"string"}},required:["status"],type:"object"},{additionalProperties:!1,properties:{minimum_tokens:{format:"uint32",minimum:0,type:"integer"},status:{const:"excluded_too_small",type:"string"}},required:["status","minimum_tokens"],type:"object"},{additionalProperties:!1,properties:{maximum_bytes:{format:"uint64",minimum:0,type:"integer"},maximum_tokens:{format:"uint32",minimum:0,type:"integer"},status:{const:"excluded_too_large",type:"string"}},required:["status","maximum_tokens","maximum_bytes"],type:"object"},{additionalProperties:!1,properties:{status:{const:"excluded_incomplete_tokenization",type:"string"}},required:["status"],type:"object"}]},SimilarFamilyV1:bl,SimilarMatchClassV1:bp,SimilarOccurrenceV1:bu,SourceSpan:bk,SymbolOccurrenceId:bx,WorktreeId:SJ},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{coverage:{$ref:"#/$defs/SimilarCoverageV1"},families:{items:{$ref:"#/$defs/SimilarFamilyV1"},type:"array"},freshness:{anyOf:[{$ref:"#/$defs/PrimitiveSearchFreshnessV1"},{type:"null"}],description:"The worktree verdict a served graph read opens with."},source:{$ref:"#/$defs/SimilarOccurrenceV1"},source_generation:{$ref:"#/$defs/CodeGenerationId"}},required:["source","families","source_generation","coverage"],title:"SimilarResultV1",type:"object"},{$defs:{ManagedSkillState:_l},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{include_body:{default:!1,description:"If true, include each skill's body_markdown in the list response\n(default: false).",type:"boolean"},state:{anyOf:[{$ref:"#/$defs/ManagedSkillState"},{type:"null"}],description:"Optional managed-skill lifecycle state filter."}},title:"SkillListSurfaceRequestV1",type:"object"},{$defs:{AutomationReadStatusV1:fG,ManagedSkillMaterializationScope:_a,ManagedSkillMetadata:_s,ManagedSkillProvenance:_d,ManagedSkillSource:_c,ManagedSkillState:_l,SkillImprovementRecommendation:bm,SkillInstallTarget:bf,SkillListEntryV1:{additionalProperties:!1,properties:{body_markdown:{description:"Present only when the request asked for bodies.",type:["string","null"]},improvement_recommendation:{anyOf:[{$ref:"#/$defs/SkillImprovementRecommendation"},{type:"null"}]},metadata:{$ref:"#/$defs/ManagedSkillMetadata"},stale_recommendation:{anyOf:[{$ref:"#/$defs/SkillStaleRecommendation"},{type:"null"}]},support_file_count:{format:"uint",minimum:0,type:"integer"},support_file_paths:{items:{type:"string"},type:"array"},usage_summary:{$ref:"#/$defs/SkillUsageRecord"}},required:["metadata","support_file_count","support_file_paths","usage_summary"],type:"object"},SkillStaleRecommendation:bh,SkillUsageRecord:by},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{count:{format:"uint",minimum:0,type:"integer"},profile_root:{type:"string"},skills:{items:{$ref:"#/$defs/SkillListEntryV1"},type:"array"},status:{$ref:"#/$defs/AutomationReadStatusV1"}},required:["status","profile_root","count","skills"],title:"SkillListResultV1",type:"object"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{id:{description:"Managed skill id to read.",type:"string"},include_support_files:{default:!1,description:"Include support-file byte payloads. Default false; the response still\nlists each path and byte length.",type:"boolean"}},required:["id"],title:"SkillViewSurfaceRequestV1",type:"object"},{$defs:{AutomationReadStatusV1:fG,ManagedSkill:{properties:{body_markdown:{type:"string"},metadata:{$ref:"#/$defs/ManagedSkillMetadata"},support_files:{items:{$ref:"#/$defs/ManagedSupportFile"},type:"array"}},required:["metadata","body_markdown","support_files"],type:"object"},ManagedSkillMaterializationScope:_a,ManagedSkillMetadata:_s,ManagedSkillProvenance:_d,ManagedSkillSource:_c,ManagedSkillState:_l,ManagedSupportFile:{properties:{bytes:{items:{format:"uint8",maximum:255,minimum:0,type:"integer"},type:"array"},path:{type:"string"}},required:["path","bytes"],type:"object"},SkillImprovementRecommendation:bm,SkillInstallTarget:bf,SkillStaleRecommendation:bh,SkillSupportFileSummaryV1:{additionalProperties:!1,properties:{byte_len:{format:"uint",minimum:0,type:"integer"},path:{type:"string"}},required:["path","byte_len"],type:"object"},SkillUsageRecord:by},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{improvement_recommendation:{anyOf:[{$ref:"#/$defs/SkillImprovementRecommendation"},{type:"null"}]},profile_root:{type:"string"},skill:{$ref:"#/$defs/ManagedSkill",description:"The skill package; `support_files` is empty unless the request\nincluded them."},stale_recommendation:{anyOf:[{$ref:"#/$defs/SkillStaleRecommendation"},{type:"null"}]},status:{$ref:"#/$defs/AutomationReadStatusV1"},support_file_summaries:{items:{$ref:"#/$defs/SkillSupportFileSummaryV1"},type:"array"},support_files_included:{type:"boolean"},usage_summary:{$ref:"#/$defs/SkillUsageRecord"}},required:["status","profile_root","skill","usage_summary","support_files_included","support_file_summaries"],title:"SkillViewResultV1",type:"object"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{node_id:{type:"string"}},required:["node_id"],title:"SourceBodyPrimitiveRequest",type:"object"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{body:{type:"string"},end_line:{format:"uint32",minimum:0,type:"integer"},file:{type:"string"},node_id:{type:"string"},start_line:{format:"uint32",minimum:0,type:"integer"}},required:["node_id","file","start_line","end_line","body"],title:"SourceBodyPrimitiveResult",type:"object"},{$defs:{ManifestDigest:_p,UseCaseId:bZ},$schema:"https://json-schema.org/draft/2020-12/schema",description:"Exact public input accepted by `tracedecay_source_edit_reconcile`.",oneOf:[{additionalProperties:!1,description:"Exact public input accepted by `tracedecay_source_edit_reconcile`.",properties:{attempt_idempotency_key:{type:"string"},confirm:{default:!1,type:"boolean"},disposition:{const:"inspect",type:"string"},effect_id:{type:"string"},idempotency_key:{type:"string"},input_digest:{type:"string"},original_operation:{$ref:"#/$defs/UseCaseId"}},required:["original_operation","effect_id","idempotency_key","attempt_idempotency_key","input_digest","disposition"],type:"object"},{additionalProperties:!1,description:"Exact public input accepted by `tracedecay_source_edit_reconcile`.",properties:{attempt_idempotency_key:{type:"string"},committed_state:{$ref:"#/$defs/ManifestDigest"},confirm:{default:!1,type:"boolean"},disposition:{const:"confirm_committed",type:"string"},effect_id:{type:"string"},idempotency_key:{type:"string"},input_digest:{type:"string"},original_operation:{$ref:"#/$defs/UseCaseId"}},required:["original_operation","effect_id","idempotency_key","attempt_idempotency_key","input_digest","disposition","committed_state"],type:"object"},{additionalProperties:!1,description:"Exact public input accepted by `tracedecay_source_edit_reconcile`.",properties:{attempt_idempotency_key:{type:"string"},confirm:{default:!1,type:"boolean"},disposition:{const:"confirm_unchanged",type:"string"},effect_id:{type:"string"},idempotency_key:{type:"string"},input_digest:{type:"string"},original_operation:{$ref:"#/$defs/UseCaseId"}},required:["original_operation","effect_id","idempotency_key","attempt_idempotency_key","input_digest","disposition"],type:"object"},{additionalProperties:!1,description:"Exact public input accepted by `tracedecay_source_edit_reconcile`.",properties:{attempt_idempotency_key:{type:"string"},confirm:{default:!1,type:"boolean"},disposition:{const:"acknowledge_partial",type:"string"},effect_id:{type:"string"},idempotency_key:{type:"string"},input_digest:{type:"string"},observed_state:{$ref:"#/$defs/ManifestDigest"},original_operation:{$ref:"#/$defs/UseCaseId"}},required:["original_operation","effect_id","idempotency_key","attempt_idempotency_key","input_digest","disposition","observed_state"],type:"object"}],title:"SourceEditReconcileSurfaceRequestV1",type:"object"},{$defs:{FileOccurrenceId:gd,GitOidV1:gI,PageRequest:_H,ResultProjection:vV,RetrievalOrder:vj,RetrievalRequestMeta:vC,SourceSpan:bk,TemporalModeV1:bN,UtcMicros:bX},$schema:"https://json-schema.org/draft/2020-12/schema",anyOf:[{additionalProperties:!1,description:"Read an exact byte span from the current indexed file occurrence.",properties:{file:{$ref:"#/$defs/FileOccurrenceId",description:"Canonical file occurrence from `code_exact_occurrence` at\n`items[].occurrence.file`; a logical path is not a file occurrence identity."},meta:{$ref:"#/$defs/RetrievalRequestMeta"},span:{$ref:"#/$defs/SourceSpan"}},required:["file","span","meta"],type:"object"},{additionalProperties:!1,description:"Read a bounded range of whole lines from an immutable Git revision.",properties:{end_line:{description:"One-based last line, inclusive. Large ranges are clipped with `next_line`.",format:"uint32",minimum:0,type:"integer"},file:{description:"Canonical repository-relative path in that revision.",type:"string"},revision:{$ref:"#/$defs/GitOidV1",description:"Full lowercase commit OID; mutable names and abbreviations are refused."},start_line:{description:"One-based first line, inclusive.",format:"uint32",minimum:0,type:"integer"}},required:["revision","file","start_line","end_line"],type:"object"}],title:"SourceLinesRequest"},{$defs:{GitOidV1:gI,RetrievalAnchorId:vx,SourceReference:{additionalProperties:!1,properties:{anchor:{$ref:"#/$defs/RetrievalAnchorId"},span:{$ref:"#/$defs/SourceSpan"}},required:["anchor","span"],type:"object"},SourceSpan:bk},$schema:"https://json-schema.org/draft/2020-12/schema",anyOf:[{additionalProperties:!1,properties:{body:{type:["string","null"]},file:{type:["string","null"]},references:{items:{$ref:"#/$defs/SourceReference"},type:"array"}},required:["references"],type:"object"},{additionalProperties:!1,properties:{blob_oid:{$ref:"#/$defs/GitOidV1"},body:{type:"string"},end_line:{format:"uint32",minimum:0,type:"integer"},file:{type:"string"},next_line:{description:"First unread line within the requested range. Keep the original\nrevision, file, and requested end line when continuing.",format:"uint32",minimum:0,type:["integer","null"]},revision:{$ref:"#/$defs/GitOidV1"},span:{$ref:"#/$defs/SourceSpan"},start_line:{format:"uint32",minimum:0,type:"integer"}},required:["file","revision","blob_oid","start_line","end_line","span","body"],type:"object"}],title:"SourceLinesResult"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{file:{type:"string"}},required:["file"],title:"SourceOutlinePrimitiveRequest",type:"object"},{$defs:{SymbolPrimitiveRecord:bj},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{file:{type:"string"},symbols:{items:{$ref:"#/$defs/SymbolPrimitiveRecord"},type:"array"}},required:["file","symbols"],title:"SourceOutlinePrimitiveResult",type:"object"},{$defs:{BranchStackEdgeV1:f9,BranchStackId:f5,BranchStackNodeV1:f8,BranchStackRevisionId:f7,CommitId:hI,ManifestDigest:_p,NativeIntegrationDirectionV1:_q,NativeIntegrationSelectionDeclarationV1:{description:"Explicit caller declaration for one native-integration selection.\n\nDeclared stacks contain the visible nodes and edges, while the daemon\nderives canonical order and the revision digest through the domain\nconstructor. Callers cannot submit either derived field.",oneOf:[{additionalProperties:!1,properties:{binding:{additionalProperties:!1,properties:{destination_node_id:{$ref:"#/$defs/StackNodeId"},direction:{$ref:"#/$defs/NativeIntegrationDirectionV1"},edges:{items:{$ref:"#/$defs/BranchStackEdgeV1"},type:"array"},nodes:{items:{$ref:"#/$defs/BranchStackNodeV1"},type:"array"},revision_id:{$ref:"#/$defs/BranchStackRevisionId"},source_node_id:{$ref:"#/$defs/StackNodeId"},stack_id:{$ref:"#/$defs/BranchStackId"}},required:["stack_id","revision_id","nodes","edges","source_node_id","destination_node_id","direction"],type:"object"},kind:{const:"declared_stack_edge",type:"string"}},required:["kind","binding"],type:"object"},{additionalProperties:!1,properties:{binding:{additionalProperties:!1,properties:{destination_ref:{$ref:"#/$defs/RefId"},proposal_digest:{$ref:"#/$defs/ManifestDigest"},source_ref:{$ref:"#/$defs/RefId"}},required:["proposal_digest","source_ref","destination_ref"],type:"object"},kind:{const:"independent_branch",type:"string"}},required:["kind","binding"],type:"object"}]},ProjectId:_6,RefId:vf,RepositoryId:v$,ResolvedScope:vP,ScopeSetId:v1,ScopeSetRevision:v0,StackNodeId:bV,WorktreeId:SJ,WorktreeInventoryEpoch:SZ,WorktreeInventorySnapshotId:SQ},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"Exact caller-supplied identity frozen by `stack_snapshot`.\n\nThis proof binds the exact authorized `ProjectId`, `RepositoryId`, source\nand destination worktree/ref identity, frozen inventory, scope/grant/policy\nrevisions, and one declared-edge or independent-branch selection. Paths,\nfree-form SHA values, branch display names, and provider topology remain\nunrepresentable.",properties:{authorized_scope_set_digest:{$ref:"#/$defs/ManifestDigest"},authorized_scope_set_id:{$ref:"#/$defs/ScopeSetId"},authorized_scope_set_revision:{$ref:"#/$defs/ScopeSetRevision"},destination:{$ref:"#/$defs/ResolvedScope"},grant_digest:{$ref:"#/$defs/ManifestDigest"},inventory_epoch:{$ref:"#/$defs/WorktreeInventoryEpoch"},inventory_snapshot_id:{$ref:"#/$defs/WorktreeInventorySnapshotId"},policy_digest:{$ref:"#/$defs/ManifestDigest"},selection:{$ref:"#/$defs/NativeIntegrationSelectionDeclarationV1"},source:{$ref:"#/$defs/ResolvedScope"}},required:["source","destination","authorized_scope_set_id","authorized_scope_set_revision","authorized_scope_set_digest","inventory_snapshot_id","inventory_epoch","selection","grant_digest","policy_digest"],title:"NativeIntegrationStackSnapshotSurfaceRequest",type:"object"},{$defs:{CodeIndexReadinessTargetV1:{description:"The readiness a status caller can wait for.",oneOf:[{const:"fresh",description:"A sealed complete generation serves exact and lexical reads for the\ncurrent source: `code_index_freshness.status` is `current`.",type:"string"},{const:"ready",description:"`fresh`, and the generation's native code graph also serves.",type:"string"},{const:"graph_ready",description:"A published generation's native code graph serves and no convergence\npark is set, whatever the source freshness. Waiting for it never\nsweeps the source, so it cannot arm the reconcile it would observe.",type:"string"}]},CodeIndexReadinessWaitV1:{additionalProperties:!1,description:"`tracedecay_status` `wait_for`: hold the status read until the worktree\nreaches `state`, for at most the caller's `timeout_ms`.",properties:{state:{$ref:"#/$defs/CodeIndexReadinessTargetV1"},timeout_ms:{format:"uint64",minimum:0,type:"integer"}},required:["state","timeout_ms"],type:"object"}},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{admission_only:{default:!1,description:"Report only that the project route is admitted, reading no graph,\nindex, or session state. Default false.",type:"boolean"},include_branch_diagnostics:{default:!1,description:"Full tracked-branch diagnostic list. Default false.",type:"boolean"},include_session_ingest:{default:!1,description:"Session-ingest health. Default false.",type:"boolean"},include_staleness:{default:!1,description:"Git staleness object. Default false.",type:"boolean"},include_storage_health:{default:!1,description:"Storage-health snapshot. Default false.",type:"boolean"},wait_for:{anyOf:[{$ref:"#/$defs/CodeIndexReadinessWaitV1"},{type:"null"}],description:"Hold the status read until the code index reaches `state` (`fresh`:\nstatus `current`; `ready`: also native graph serving; `graph_ready`: a\npublished generation's native graph serves, whatever the freshness),\nfor at most `timeout_ms`. The payload's `wait` reports `reached`,\n`timed_out` with `last_state`, or `unavailable` with `reason`."}},title:"StatusSurfaceRequestV1",type:"object"},{$defs:{CodeCloneIndexBudgetsV1:{description:"Fixed automatic clone-discovery limits.",properties:{minimum_body_tokens:{format:"uint64",minimum:0,type:"integer"}},required:["minimum_body_tokens"],type:"object"},CodeCloneIndexCoverageV1:{description:"Coverage retained by one clone-index artifact or in-progress successor.\n\nCounts are `None` until the clone artifact has observed the corresponding\ndenominator. A complete empty repository reports `Some(0)`, which keeps a\ndesigned zero distinct from unavailable coverage.",properties:{conservative_normalized_bodies:{description:"Eligible bodies with a conservative exact posting.",format:"uint64",minimum:0,type:["integer","null"]},eligible_source_bodies:{description:"Source bodies admitted for automatic clone discovery.",format:"uint64",minimum:0,type:["integer","null"]},exact_postings:{description:"Conservative and rename-normalized exact posting rows.",format:"uint64",minimum:0,type:["integer","null"]},excluded_incomplete_tokenization_bodies:{description:"Bodies excluded because conservative tokenization was incomplete.",format:"uint64",minimum:0,type:["integer","null"]},excluded_too_large_bodies:{description:"Bodies excluded because they exceed the automatic-discovery token maximum.",format:"uint64",minimum:0,type:["integer","null"]},excluded_too_small_bodies:{description:"Bodies excluded because they are below the automatic-discovery minimum.",format:"uint64",minimum:0,type:["integer","null"]},payloads_reused:{description:"Current payload occurrences reused from the preceding generation.",format:"uint64",minimum:0,type:["integer","null"]},rename_normalized_bodies:{description:"Eligible bodies with a complete rename-normalized exact posting.",format:"uint64",minimum:0,type:["integer","null"]},rename_partial_bodies:{description:"Eligible bodies whose rename normalization is partial.",format:"uint64",minimum:0,type:["integer","null"]},rename_unsupported_bodies:{description:"Eligible bodies whose language has no rename normalization.",format:"uint64",minimum:0,type:["integer","null"]},source_bodies:{description:"Clone body occurrences observed in the sealed lexical source.",format:"uint64",minimum:0,type:["integer","null"]},unique_payloads:{description:"Distinct content-addressed payloads retained by the artifact.",format:"uint64",minimum:0,type:["integer","null"]}},type:"object"},CodeCloneIndexObservationV1:{description:"Generation-pinned clone-index evidence shared by non-error readiness states.",properties:{artifact_format_revision:{format:"uint32",minimum:0,type:["integer","null"]},budgets:{$ref:"#/$defs/CodeCloneIndexBudgetsV1"},conservative_normalization_revision:{format:"uint16",maximum:65535,minimum:0,type:"integer"},coverage:{$ref:"#/$defs/CodeCloneIndexCoverageV1"},generation_id:{type:"string"},rename_normalization_revision:{format:"uint16",maximum:65535,minimum:0,type:"integer"},resources:{$ref:"#/$defs/CodeCloneIndexResourcesV1"},source_revision:{type:["string","null"]}},required:["generation_id","conservative_normalization_revision","rename_normalization_revision","coverage","budgets","resources"],type:"object"},CodeCloneIndexResourcesV1:{description:"Measured resources and update accounting for one clone-index generation.",properties:{bytes_on_disk:{description:"Durable artifact bytes.",format:"uint64",minimum:0,type:["integer","null"]},changed_symbol_update_micros:{description:"Latest observed source-edit arrival through clone-ready publication.",format:"uint64",minimum:0,type:["integer","null"]},peak_scratch_memory_bytes:{description:"Largest measured clone-row serialization scratch during the build.",format:"uint64",minimum:0,type:["integer","null"]},stale_invalidations:{description:"Prior clone payload bindings invalidated by the latest publication.",format:"uint64",minimum:0,type:["integer","null"]}},type:"object"},CodeCloneIndexStatusV1:{description:"Clone readiness, independent from lexical and graph serving.",oneOf:[{description:"The sealed lexical artifact or its clone rows cannot be read.",properties:{reason:{type:"string"},state:{const:"unavailable",type:"string"}},required:["state","reason"],type:"object"},{description:"Some clone evidence is readable, but required postings are missing.",properties:{observation:{$ref:"#/$defs/CodeCloneIndexObservationV1"},omission_reasons:{items:{type:"string"},type:"array"},state:{const:"partial",type:"string"}},required:["state","observation","omission_reasons"],type:"object"},{description:"Required exact postings cover every eligible body.",properties:{observation:{$ref:"#/$defs/CodeCloneIndexObservationV1"},state:{const:"ready",type:"string"}},required:["state","observation"],type:"object"},{description:"The artifact is readable but belongs to a superseded source generation.",properties:{observation:{$ref:"#/$defs/CodeCloneIndexObservationV1"},reason:{type:"string"},state:{const:"stale",type:"string"}},required:["state","observation","reason"],type:"object"}]},CodeGraphServingReadinessV1:{description:"Interactive graph-serving state for the latest sealed generation.\n\nA sealed generation can expose truthful census statistics before its graph\nprojection is ready to serve queries, so readiness is reported separately.",oneOf:[{description:"No graph-serving authority exists for this worktree or generation.",properties:{reason:{type:"string"},state:{const:"unavailable",type:"string"}},required:["state","reason"],type:"object"},{description:"The sealed generation exists, but graph activation has not completed.",properties:{state:{const:"pending",type:"string"}},required:["state"],type:"object"},{description:"Graph activation completed without a serving projection.",properties:{reason:{type:"string"},state:{const:"refused",type:"string"}},required:["state","reason"],type:"object"},{description:"The verified graph projection is installed, but the engine or catalog\nits reads need is not resident: it is still being built, or it was\nreleased for memory. Graph reads answer the retryable warming state\nand restore it.",properties:{reason:{type:"string"},state:{const:"warming",type:"string"}},required:["state","reason"],type:"object"},{description:"The verified graph projection is installed for interactive reads.",properties:{state:{const:"ready",type:"string"}},required:["state"],type:"object"}]},CodeIndexBuildBlockedReasonV1:hv,CodeIndexBuildPhaseV1:{description:"The durable build phase whose committed boundary the dashboard is reading.\n\nA phase is not inferred from scheduler state. The mounted registry publishes\nthe exact phase that owns the active generation.",oneOf:[{enum:["source_scan","relational_preparation","bulk_commit","index_build","verification","ready"],type:"string"},{const:"graph_publication",description:"Text serving is built and the pass that sealed the generation is\nstill publishing its native graph.",type:"string"}]},CodeIndexBuildProgressV1:{description:"The latest committed progress boundary for one active code-index generation.\n\nEvery count is scoped to `generation_id`. The snapshot never includes a\nstaged page: work is reported only after the batch that owns it commits.",properties:{blocked_reason:{anyOf:[{$ref:"#/$defs/CodeIndexBuildBlockedReasonV1"},{type:"null"}],description:"Reason the active generation cannot currently advance, when known."},committed_chunks:{description:"Search chunks committed to the artifact database.",format:"uint64",minimum:0,type:"integer"},committed_imports:{description:"Import evidence rows committed to the artifact database.",format:"uint64",minimum:0,type:"integer"},committed_pages:{description:"Source pages committed to the artifact database.",format:"uint64",minimum:0,type:"integer"},committed_payload_bytes:{description:"Payload bytes committed to the artifact database.",format:"uint64",minimum:0,type:"integer"},completed_files:{description:"Authenticated sealed-source file boundary completed by committed work.",format:"uint64",minimum:0,type:"integer"},completed_lexical_units:{description:"Authenticated lexical-span boundary completed by committed work, in the\nsealed source's own advance unit.\n\nThe unit is the source's, not this surface's: a sealed-layout source\nadvances over the files-array byte span, while a published or\npartitioned source advances over file ordinals because its file records\nare not a contiguous byte range at all. Both are monotone and share the\ndenominator below, so completion and the derived estimate are truthful;\nnaming them bytes was not, and a consumer that multiplied this by an\naverage file size was wrong by orders of magnitude (issue #1205).",format:"uint64",minimum:0,type:"integer"},current_batch_pages:{description:"Source pages in the batch currently being processed.",format:"uint64",minimum:0,type:"integer"},current_batch_payload_bytes:{description:"Sealed payload bytes in the batch currently being processed.",format:"uint64",minimum:0,type:"integer"},daemon_incarnation:{description:"Durable daemon-authority epoch that produced this snapshot.\n\nThis orders snapshots across daemon restarts without relying on wall\nclock time.",format:"uint64",minimum:0,type:"integer"},elapsed_micros:{description:"Monotonic elapsed time for this process's active generation build.",format:"uint64",minimum:0,type:"integer"},estimated_remaining_seconds:{description:"Estimated remaining build duration, absent without a truthful rate.",format:"uint64",minimum:0,type:["integer","null"]},files_per_second:{description:"Rolling committed-file throughput, absent until it is established.",format:"double",type:["number","null"]},generation_id:{description:"Exact generation receiving the committed build work.",type:"string"},last_commit_latency_micros:{description:"Duration of the last committed SQLite batch, when one exists.",format:"uint64",minimum:0,type:["integer","null"]},last_progress_micros:{description:"Unix-epoch timestamp of the last durable progress publication.",format:"int64",type:"integer"},lexical_units_per_second:{description:"Rolling committed lexical-span throughput in units per second, absent\nuntil it is established. Not a byte rate; see\n[`Self::completed_lexical_units`].",format:"double",type:["number","null"]},phase:{$ref:"#/$defs/CodeIndexBuildPhaseV1",description:"Durable pipeline phase that published this snapshot."},producer_incarnation:{description:"Registry-minted scheduler incarnation within one daemon.\n\nA worktree retirement/remount creates a new value. `progress_epoch` is\ncomparable only when both incarnation fields match.",format:"uint64",minimum:0,type:"integer"},progress_epoch:{description:"Monotonic publication epoch for replacing delayed progress reads.",format:"uint64",minimum:0,type:"integer"},sealed_source_digest:{description:"Identity of the sealed source whose authenticated bounds define progress.",type:"string"},total_files:{description:"Authenticated sealed-source file bound for this generation.",format:"uint64",minimum:0,type:"integer"},total_lexical_units:{description:"Authenticated lexical-span bound for this generation, in the same unit\nas [`Self::completed_lexical_units`].",format:"uint64",minimum:0,type:"integer"}},required:["generation_id","daemon_incarnation","producer_incarnation","progress_epoch","sealed_source_digest","phase","committed_pages","committed_chunks","committed_imports","committed_payload_bytes","completed_files","total_files","completed_lexical_units","total_lexical_units","current_batch_pages","current_batch_payload_bytes","elapsed_micros","last_progress_micros"],type:"object"},CodeIndexConvergenceParkedV1:hb,CodeIndexFreshnessCoverageV1:{description:"Coverage of one freshness read. Distinct from [`CodeIndexStalenessStateV1`]:\na generation can be fresh and still omit hook-hint counts, or unverified\nwhile the ladder would otherwise say ready.\n\n`Unobserved` is only the constructed default. A projected read never emits\nit, so an absent observation cannot be mistaken for `complete`.",oneOf:[{enum:["unobserved","complete","partial_refresh_in_progress","partial_artifact_restore","partial_source_verification","partial_unverified_restore","partial_hook_hint_overflow"],type:"string"},{const:"partial_omitted_sources",description:"The sealed generation is fresh for every source it can index, and\n[`CodeIndexWorktreeFreshnessV1::omitted_sources`] names the sources it\ncannot. Waiting cannot change it.",type:"string"}]},CodeIndexGenerationRecoveryServingV1:{description:"Serving disposition of an incompatible generation during recovery.",enum:["preserved","refused"],type:"string"},CodeIndexGenerationRecoveryV1:{description:"Recovery state for a durable generation sealed under a different production\nowner configuration.",properties:{incompatibilities:{description:"Stable owner-input reason codes reported by the code-index authority.",items:{type:"string"},type:"array"},incompatible_generation_id:{description:"Generation retired from incremental reuse.",type:"string"},serving:{$ref:"#/$defs/CodeIndexGenerationRecoveryServingV1",description:"Whether the prior generation may continue serving while its replacement\nbuilds under the current configuration."}},required:["incompatible_generation_id","incompatibilities","serving"],type:"object"},CodeIndexOmittedSourceV1:h$,CodeIndexOmittedSourcesV1:hS,CodeIndexReadinessWaitOutcomeV1:{description:"How a `wait_for` status read ended. The status payload beside it is read\nafter the wait ends.",oneOf:[{properties:{outcome:{const:"reached",type:"string"}},required:["outcome"],type:"object"},{description:"The caller's budget elapsed; `last_state` is the last observed\n`code_index_freshness.status`.",properties:{last_state:{type:"string"},outcome:{const:"timed_out",type:"string"}},required:["outcome","last_state"],type:"object"},{description:"Waiting cannot reach the target: no scheduler is mounted, graph\nserving was refused, convergence is parked, or the request ended.",properties:{outcome:{const:"unavailable",type:"string"},reason:{type:"string"}},required:["outcome","reason"],type:"object"}]},CodeIndexRestoreProgressV1:{description:"Bounded authentication work required to restore one immutable lexical\nartifact as a serving reader.\n\nThe unit is a fixed restore check, not bytes or build work. Completed\nchecks are published only after they pass. `authenticated_remaining` is\nalways `authenticated_total - authenticated_completed`, so a caller can\ndistinguish bounded cold restore from an unbounded rebuild.",properties:{artifact_digest:{description:"Whole-file content address from the durable artifact descriptor.",type:"string"},authenticated_completed:{description:"Successfully completed authentication checks.",format:"uint64",minimum:0,type:"integer"},authenticated_remaining:{description:"Checks that have not completed yet.",format:"uint64",minimum:0,type:"integer"},authenticated_total:{description:"Fixed number of authentication checks for this restore.",format:"uint64",minimum:0,type:"integer"},generation_id:{description:"Generation whose lexical serving seat is being restored.",type:"string"}},required:["generation_id","artifact_digest","authenticated_completed","authenticated_total","authenticated_remaining"],type:"object"},CodeIndexSourceOmissionReasonV1:hk,CodeIndexStalenessStateV1:hw,CodeIndexWorktreeFreshnessV1:{description:"Freshness/generation state for one mounted worktree.\n\n`Deserialize` is part of the wire contract: the CLI status command decodes\nexactly this type back out of the daemon's `tracedecay_status` response,\nkeeping one authority for the freshness shape.",properties:{clone_index:{anyOf:[{$ref:"#/$defs/CodeCloneIndexStatusV1"},{type:"null"}],description:"Clone readiness from the same sealed lexical artifact."},code_graph_serving:{anyOf:[{$ref:"#/$defs/CodeGraphServingReadinessV1"},{type:"null"}],description:"Whether that generation's verified graph projection can serve reads."},coverage:{$ref:"#/$defs/CodeIndexFreshnessCoverageV1",description:"Whether this read covers the complete mounted scheduler state."},generation_recovery:{anyOf:[{$ref:"#/$defs/CodeIndexGenerationRecoveryV1"},{type:"null"}],description:"One-shot owner-configuration recovery currently replacing an\nincompatible durable generation."},hook_hint_count:{description:"Pending hook-hint count, when cheaply available.",format:"uint64",minimum:0,type:["integer","null"]},last_reconcile_micros:{description:"Last reconcile observation time (microseconds since the Unix epoch).",format:"int64",type:["integer","null"]},latest_generation_id:{description:"Latest sealed generation identity, when a complete generation exists.",type:["string","null"]},omitted_sources:{anyOf:[{$ref:"#/$defs/CodeIndexOmittedSourcesV1"},{type:"null"}],description:"Sources the serving snapshot captured but does not index, when any."},parked:{anyOf:[{$ref:"#/$defs/CodeIndexConvergenceParkedV1"},{type:"null"}],description:"Deterministic contract violation currently parking background\nconvergence, when one is observed. `staleness_state` reads `parked`\nwhile this is set and no generation serves."},progress:{anyOf:[{$ref:"#/$defs/CodeIndexBuildProgressV1"},{type:"null"}],description:"Latest committed progress for the active generation, if one is mounted."},rebuild_in_flight:{default:!1,description:"Whether the exact scheduler route owns a reconcile pass or has a\npending wake. A stale seated generation with this false is stalled,\nnot in a routine rebuild window.",type:"boolean"},repository_id:{description:"Stable repository identity resolved by the scheduler.",type:["string","null"]},restore_progress:{anyOf:[{$ref:"#/$defs/CodeIndexRestoreProgressV1"},{type:"null"}],description:"Bounded immutable-artifact restore work currently in flight. This is\nseparate from build progress because restore commits no index data."},sealed_at_micros:{description:"Time the complete generation was durably sealed.",format:"int64",type:["integer","null"]},snapshot_content_identity:{description:"Content identity of the complete source snapshot.",type:["string","null"]},source_reference:{description:"Exact source reference captured by the sealed generation.",type:["string","null"]},source_revision:{description:"Exact source revision captured by the sealed generation.",type:["string","null"]},staleness_state:{anyOf:[{$ref:"#/$defs/CodeIndexStalenessStateV1"},{type:"null"}],description:"Staleness-ladder state from the last scheduler execution. `fresh` means\nthe scheduler most recently observed a fresh source; the status read\ndoes not probe the worktree to revalidate that observation."},worktree_id:{description:"Stable worktree identity resolved by the scheduler.",type:["string","null"]},worktree_root:{description:"Display path of the mounted worktree root.",type:"string"}},required:["worktree_root","coverage"],type:"object"},LcmConvergenceStateV1:gY,LcmConvergenceV1:g1,LcmDoctorProjectionStateV1:g0,LcmDoctorProjectionV1:g2,NativeHostIdentityV1:{enum:["claude_code","cursor_desktop","cursor_cloud","codex","hermes","kiro","cline","roo_code","kilo","kimi_code","open_code","pi","factory_droid"],type:"string"},ProjectStatusV1:{additionalProperties:!1,properties:{active_branch:{type:["string","null"]},branch_diagnostics:!0,branch_drifted:{type:["boolean","null"]},branch_mismatch:{anyOf:[{$ref:"#/$defs/StatusBranchMismatchV1"},{type:"null"}]},branch_resolution:{type:["string","null"]},branch_warnings:{items:{type:"string"},type:["array","null"]},code_index_freshness:{$ref:"#/$defs/StatusCodeIndexFreshnessV1"},code_index_freshness_warning:{type:["string","null"]},current_branch:{type:["string","null"]},git_staleness:{anyOf:[{$ref:"#/$defs/StatusGitStalenessV1"},{type:"null"}]},github_source:{description:"The checkout's GitHub source as its advisory owner observed it."},graph_statistics:{description:"The exact-scope sealed-generation census."},hook_replay:{$ref:"#/$defs/StatusHookReplayV1",description:"The daemon's drain of this project's hook spools, as its last sweep\nleft it."},live_branch:{type:["string","null"]},memory:{$ref:"#/$defs/StatusMemoryV1"},parent_branch:{type:["string","null"]},project_root:{type:"string"},reset_required_stores:{description:"Registered stores this binary serves only as a typed reset-required\nrefusal, each with the command that resets it.",items:{$ref:"#/$defs/StoreResetRequiredV1"},type:"array"},retrieval_serving:{anyOf:[{$ref:"#/$defs/StatusRetrievalServingV1"},{type:"null"}],description:"Whether exact-scope retrieval can serve, when the census authority is\nattached."},schema_convergence:{$ref:"#/$defs/StatusSchemaConvergenceV1"},scope_prefix:{type:["string","null"]},server:{description:"The serving MCP server's request counters."},serving_branch:{type:["string","null"]},session_git_evidence:{$ref:"#/$defs/StatusSessionGitEvidenceV1",description:"The session↔Git evidence `tracedecay_sessions_for` and the\nbranch/commit session filters read."},session_history_catch_up:!0,session_ingest:!0,session_projection:{$ref:"#/$defs/LcmDoctorProjectionV1",description:"The project session projection's serving state, the same reading\n`tracedecay_lcm_doctor` reports."},storage_health:!0,tracked_branch_count:{format:"uint",minimum:0,type:["integer","null"]},wait:{anyOf:[{$ref:"#/$defs/CodeIndexReadinessWaitOutcomeV1"},{type:"null"}]}},required:["project_root","graph_statistics","memory","schema_convergence","reset_required_stores","code_index_freshness","github_source","session_projection","session_git_evidence","hook_replay"],type:"object"},ResidentMemoryHolderReadV1:{description:"One worktree holding a retained owner's memory, and what it holds: a\ngeneration id, or an LSP session id.",properties:{holding:{type:"string"},worktree_id:{type:"string"}},required:["worktree_id","holding"],type:"object"},RetrievalWorkerStatusV1:vO,SchemaConvergenceFindingV1:vU,SchemaConvergenceProgressV1:vH,SchemaConvergenceStageV1:vG,SchemaConvergenceStateV1:vB,StatusAdmissionV1:{additionalProperties:!1,properties:{project_admitted:{type:"boolean"},project_root:{type:"string"},scope_prefix:{type:["string","null"]},server:{description:"The serving MCP server's request counters."}},required:["project_admitted","project_root"],type:"object"},StatusBranchMismatchV1:{additionalProperties:!1,properties:{git_branch:{type:["string","null"]},indexed_branch:{type:["string","null"]},serving_branch:{type:["string","null"]}},type:"object"},StatusCodeIndexFreshnessV1:{description:"The code-index freshness of the served worktree, labeled the way readiness\nwaits report their last state.",oneOf:[{additionalProperties:!1,properties:{status:{const:"current",type:"string"},worktree:{$ref:"#/$defs/CodeIndexWorktreeFreshnessV1"}},required:["status","worktree"],type:"object"},{additionalProperties:!1,properties:{status:{const:"stale",type:"string"},worktree:{$ref:"#/$defs/CodeIndexWorktreeFreshnessV1"}},required:["status","worktree"],type:"object"},{additionalProperties:!1,properties:{status:{const:"restoring",type:"string"},worktree:{$ref:"#/$defs/CodeIndexWorktreeFreshnessV1"}},required:["status","worktree"],type:"object"},{additionalProperties:!1,properties:{status:{const:"warming",type:"string"},worktree:{$ref:"#/$defs/CodeIndexWorktreeFreshnessV1"}},required:["status","worktree"],type:"object"},{additionalProperties:!1,properties:{status:{const:"parked",type:"string"},worktree:{$ref:"#/$defs/CodeIndexWorktreeFreshnessV1"}},required:["status","worktree"],type:"object"},{additionalProperties:!1,description:"The last code-index mount failed; explicit reconciliation can retry it.",properties:{message:{type:"string"},remediation:{type:"string"},status:{const:"mount_failed",type:"string"}},required:["status","message","remediation"],type:"object"},{additionalProperties:!1,properties:{reason:{type:"string"},status:{const:"unavailable",type:"string"}},required:["status","reason"],type:"object"}]},StatusGitStalenessUnavailableV1:{oneOf:[{const:"no_sealed_generation",description:"No complete generation has sealed for the worktree yet.",type:"string"},{const:"sealed_generation_has_no_commit",description:"The sealed generation captured no commit, as in an unborn repository.",type:"string"},{const:"git_head_unreadable",description:"The worktree's checked-out commit could not be read.",type:"string"}]},StatusGitStalenessV1:{description:"The sealed generation's Git watermark, the commit its source snapshot was\ncaptured from, against the worktree's checked-out commit.",oneOf:[{additionalProperties:!1,description:"HEAD is the commit the sealed generation was built from.",properties:{status:{const:"current",type:"string"},watermark:{type:"string"}},required:["status","watermark"],type:"object"},{additionalProperties:!1,description:"HEAD has moved off the commit the sealed generation was built from.",properties:{head:{type:"string"},status:{const:"stale",type:"string"},watermark:{type:"string"}},required:["status","watermark","head"],type:"object"},{additionalProperties:!1,description:"No watermark or no HEAD to compare it with.",properties:{reason:{$ref:"#/$defs/StatusGitStalenessUnavailableV1"},status:{const:"unavailable",type:"string"}},required:["status","reason"],type:"object"}]},StatusHookReplayFailureV1:{additionalProperties:!1,description:"One hook spool the last replay sweep could not drain.",properties:{cause:{type:"string"},host:{$ref:"#/$defs/NativeHostIdentityV1"},spool:{$ref:"#/$defs/StatusHookReplaySpoolV1"}},required:["host","spool","cause"],type:"object"},StatusHookReplaySpoolV1:{oneOf:[{const:"records",description:"The host's spooled hook events.",type:"string"},{const:"delivery_receipts",description:"The host's hook delivery receipts.",type:"string"},{const:"pending_work",description:"The producer work the host's admission ledger still owes.",type:"string"}]},StatusHookReplayV1:{description:"The daemon's hook spool drain for one project.",oneOf:[{additionalProperties:!1,description:"No replay consumer drains this project's hook spools in this daemon.",properties:{status:{const:"unowned",type:"string"}},required:["status"],type:"object"},{additionalProperties:!1,description:"The replay consumer has not finished its first sweep.",properties:{status:{const:"starting",type:"string"}},required:["status"],type:"object"},{additionalProperties:!1,description:"The last sweep drained every hook spool it found.",properties:{status:{const:"drained",type:"string"}},required:["status"],type:"object"},{additionalProperties:!1,description:"The spools drained, but producer work they admitted waits for the\nproject's hook orchestrator to mount. The work stays owed and runs\nonce it does; nothing has failed.",properties:{status:{const:"waiting",type:"string"},waiting:{items:{$ref:"#/$defs/StatusHookReplayFailureV1"},type:"array"}},required:["status","waiting"],type:"object"},{additionalProperties:!1,description:"The last sweep could not drain these spools. Their records stay\ndurable and the next sweep retries them.",properties:{failures:{items:{$ref:"#/$defs/StatusHookReplayFailureV1"},type:"array"},status:{const:"failed",type:"string"}},required:["status","failures"],type:"object"}]},StatusMemoryOwnerV1:{additionalProperties:!1,properties:{bytes:{format:"uint64",minimum:0,type:["integer","null"]},content_digest:{type:["string","null"]},holders:{items:{$ref:"#/$defs/ResidentMemoryHolderReadV1"},type:"array"},idle_seconds:{format:"uint64",minimum:0,type:"integer"},kind:{type:"string"},measured:{type:"boolean"},project_id:{type:"string"},protected:{type:"boolean"}},required:["project_id","kind","holders","measured","idle_seconds","protected"],type:"object"},StatusMemoryPressureV1:{enum:["unobserved","nominal","over_budget"],type:"string"},StatusMemoryReservationV1:{additionalProperties:!1,properties:{bytes:{format:"uint64",minimum:0,type:"integer"},component:{type:"string"}},required:["component","bytes"],type:"object"},StatusMemoryV1:{additionalProperties:!1,description:"The daemon's memory admission and resident accounting as one project sees it.",properties:{high_watermark_bytes:{format:"uint64",minimum:0,type:"integer"},idle_window_seconds:{format:"uint64",minimum:0,type:"integer"},limit_bytes:{format:"uint64",minimum:0,type:"integer"},low_watermark_bytes:{format:"uint64",minimum:0,type:"integer"},owners:{description:"This project's retained owners; other projects' belong to the\ndaemon-wide Doctor inventory.",items:{$ref:"#/$defs/StatusMemoryOwnerV1"},type:"array"},psi_some_avg10:{format:"double",type:["number","null"]},reservations:{description:"`reserved_bytes` per component, largest first.",items:{$ref:"#/$defs/StatusMemoryReservationV1"},type:"array"},reserved_bytes:{description:"Bytes admitted work has reserved daemon-wide: the admission model of\nin-flight builds and decodes, not a measurement.",format:"uint64",minimum:0,type:"integer"},resident_bytes:{description:"Observed admission occupancy: anonymous/shared process pages plus swap,\nconstrained by shared cgroup headroom. This is not raw process RSS.",format:"uint64",minimum:0,type:["integer","null"]},retained_bytes:{format:"uint64",minimum:0,type:"integer"},shed_order:{items:{type:"string"},type:"array"},status:{$ref:"#/$defs/StatusMemoryPressureV1"},unattributed_bytes:{description:"Raw process RSS from the last successful canonical sample minus the\ndaemon-wide measured `retained_bytes`, saturating at zero. Unlike\n`resident_bytes`, this excludes swap and shared cgroup pressure. Work in\nflight, runtime allocations, SQLite page caches, and allocator-held pages\ncan contribute. `None` until a resident sample has been published.",format:"uint64",minimum:0,type:["integer","null"]},unmeasured_owners:{format:"uint",minimum:0,type:"integer"}},required:["status","limit_bytes","high_watermark_bytes","low_watermark_bytes","idle_window_seconds","shed_order","retained_bytes","unmeasured_owners","reserved_bytes","reservations","owners"],type:"object"},StatusRetrievalServingV1:{oneOf:[{additionalProperties:!1,description:"A sealed complete generation serves the exact worktree. The ages tell a\nroutine rebuild window from a wedged route.",properties:{condition:{anyOf:[{$ref:"#/$defs/StatusServingConditionV1"},{type:"null"}]},freshness:{$ref:"#/$defs/StatusServingFreshnessV1"},last_reconcile_age_seconds:{format:"int64",type:["integer","null"]},seated_generation_age_seconds:{format:"int64",type:["integer","null"]},status:{const:"serving",type:"string"}},required:["status","freshness"],type:"object"},{additionalProperties:!1,description:"The census answered and nothing is servable yet.",properties:{reason:{type:"string"},status:{const:"unavailable",type:"string"}},required:["status","reason"],type:"object"}]},StatusSchemaConvergenceStateV1:{enum:["completed","in_progress","degraded"],type:"string"},StatusSchemaConvergenceV1:{additionalProperties:!1,properties:{findings:{items:{$ref:"#/$defs/SchemaConvergenceFindingV1"},type:"array"},status:{$ref:"#/$defs/StatusSchemaConvergenceStateV1"}},required:["status","findings"],type:"object"},StatusServingConditionV1:{enum:["artifact_restore","source_verification","rebuilding","stalled"],type:"string"},StatusServingFreshnessV1:{enum:["current","restoring","last_complete_stale","unknown"],type:"string"},StatusSessionGitEvidenceUnavailableV1:{oneOf:[{const:"session_store_denied",description:"This request holds no project session store.",type:"string"},{const:"read_failed",description:"The session store refused the evidence read.",type:"string"}]},StatusSessionGitEvidenceV1:{description:"The project's session↔Git evidence generation.",oneOf:[{additionalProperties:!1,description:"A convergence pass installed this generation.",properties:{backfill_watermark:{format:"int64",type:["integer","null"]},commit_count:{format:"uint64",minimum:0,type:"integer"},generation:{type:"string"},source_watermark:{type:"string"},span_count:{format:"uint64",minimum:0,type:"integer"},status:{const:"recorded",type:"string"}},required:["status","generation","source_watermark","span_count","commit_count"],type:"object"},{additionalProperties:!1,description:"No convergence pass has written evidence for this project yet.",properties:{backfill_watermark:{format:"int64",type:["integer","null"]},status:{const:"unrecorded",type:"string"}},required:["status"],type:"object"},{additionalProperties:!1,description:"The evidence could not be read.",properties:{message:{type:["string","null"]},reason:{$ref:"#/$defs/StatusSessionGitEvidenceUnavailableV1"},status:{const:"unavailable",type:"string"}},required:["status","reason"],type:"object"}]},StoreResetRequiredV1:{description:"A persisted store the daemon keeps mounted in a typed reset-required state\ninstead of refusing to serve: every read against it returns the typed\nrefusal, stores that admit keep serving, and `remedy` is the exact command\nthe operator runs to reset it.",properties:{authority:{type:"string"},found_version:{format:"int64",type:["integer","null"]},reason:{type:"string"},remedy:{type:"string"},required_version:{format:"int64",type:["integer","null"]},store:{type:"string"}},required:["store","authority","reason","remedy"],type:"object"}},$schema:"https://json-schema.org/draft/2020-12/schema",anyOf:[{$ref:"#/$defs/StatusAdmissionV1"},{$ref:"#/$defs/ProjectStatusV1"}],description:"`tracedecay_status` for an `admission_only` read, or the project's status.",title:"StatusResultV1"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{include_details:{default:!1,type:"boolean"}},title:"StorageStatusPrimitiveRequest",type:"object"},{$defs:{StorageStatusHistoryPointV1:{additionalProperties:!1,properties:{database_bytes:{format:"uint64",minimum:0,type:"integer"},observed_at:{format:"int64",type:"integer"}},required:["observed_at","database_bytes"],type:"object"}},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{database_bytes:{format:"uint64",minimum:0,type:["integer","null"]},details:{items:{type:"string"},type:"array"},freelist_pages:{default:null,format:"uint64",minimum:0,type:["integer","null"]},history:{default:[],items:{$ref:"#/$defs/StorageStatusHistoryPointV1"},type:"array"},history_coverage:{default:null,type:["string","null"]},page_count:{default:null,format:"uint64",minimum:0,type:["integer","null"]},page_size_bytes:{default:null,format:"uint32",minimum:0,type:["integer","null"]},project_id:{default:null,type:["string","null"]},read_only:{type:"boolean"},status:{type:"string"},store_path:{default:null,type:["string","null"]}},required:["status","read_only","details"],title:"StorageStatusPrimitiveResult",type:"object"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"Exact public input accepted by `tracedecay_str_replace`.",properties:{dry_run:{default:!1,type:"boolean"},expected_state:{description:"Exact `preview_digest`/`expected_state` returned by the dry run. Apply\nre-resolves the typed plan and rejects any candidate-state drift.",type:["string","null"]},idempotency_key:{type:["string","null"]},new_str:{type:"string"},old_str:{type:"string"},path:{type:"string"},verify:{default:!1,type:"boolean"}},required:["path","old_str","new_str"],title:"StrReplaceSurfaceRequestV1",type:"object"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{file:{description:"Source file path to find test coverage for.",type:["string","null"]},node_id:{description:"Specific node ID to find test coverage for (alternative to file).",type:["string","null"]}},title:"TestMapSurfaceRequestV1",type:"object"},{$defs:{CodeIndexBuildBlockedReasonV1:hv,CodeIndexConvergenceParkedV1:hb,CodeIndexStalenessStateV1:hw,PrimitiveFreshnessStateV1:_K,PrimitiveIndexingStateV1:_J,PrimitiveSearchFreshnessV1:_Y,TestMapSourceCoverageV1:{additionalProperties:!1,properties:{source_file:{type:"string"},source_id:{type:"string"},source_line:{format:"uint32",minimum:0,type:"integer"},source_name:{type:"string"},tests:{items:{$ref:"#/$defs/TestMapTestV1"},type:"array"}},required:["source_name","source_id","source_file","source_line","tests"],type:"object"},TestMapTestV1:{additionalProperties:!1,properties:{attribution_depth:{format:"uint32",minimum:0,type:"integer"},test_file:{type:"string"},test_line:{format:"uint32",minimum:0,type:"integer"},test_name:{type:"string"}},required:["test_name","test_file","test_line","attribution_depth"],type:"object"},TestMapUncoveredV1:{additionalProperties:!1,properties:{file:{type:"string"},id:{type:"string"},line:{format:"uint32",minimum:0,type:"integer"},name:{type:"string"}},required:["id","name","file","line"],type:"object"}},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{coverage:{items:{$ref:"#/$defs/TestMapSourceCoverageV1"},type:"array"},covered_symbols:{format:"uint64",minimum:0,type:"integer"},freshness:{anyOf:[{$ref:"#/$defs/PrimitiveSearchFreshnessV1"},{type:"null"}],description:"The worktree verdict a served graph read opens with."},test_files:{items:{type:"string"},type:"array"},uncovered:{items:{$ref:"#/$defs/TestMapUncoveredV1"},type:"array"},uncovered_symbols:{format:"uint64",minimum:0,type:"integer"}},required:["covered_symbols","uncovered_symbols","test_files","coverage","uncovered"],title:"TestMapResultV1",type:"object"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"The admitted project selects the retained managed test run, so this exact\nrequest intentionally carries no caller-selectable scope or identity.",title:"TestResultsSurfaceRequestV1",type:"object"},{$defs:{CancellationObservation:ha,CancellationStage:hs,CodeGenerationId:hg,CommitId:hI,Deadline:yb,OperationBudgetUsage:_F,OperationReceipt:_L,OperationTermination:_U,TestResultProjectionV1:{additionalProperties:!1,description:"One result emitted by the daemon-managed test-run authority.",properties:{passed:{type:"boolean"},test:{type:"string"}},required:["test","passed"],type:"object"},UtcMicros:bX},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"Exact retained managed-test-run projection returned by `test_results`.\n\nThe daemon resolves the admitted project, reads its newest durable managed\nrun, and verifies that the run's head and code generation are current\nbefore it serializes this payload. `result_offset` and `available_results`\nretain the authoritative page position. The outcome fields (`finished_at`,\n`exit_code`, the counts, `termination`, `receipt`) are present only after\nthe managed run terminates.",properties:{available_results:{format:"uint64",minimum:0,type:"integer"},code_generation_id:{anyOf:[{$ref:"#/$defs/CodeGenerationId"},{type:"null"}]},completed:{format:"uint64",minimum:0,type:"integer"},exit_code:{format:"int32",type:["integer","null"]},failed:{format:"uint64",minimum:0,type:["integer","null"]},finished_at:{anyOf:[{$ref:"#/$defs/UtcMicros"},{type:"null"}]},head_commit_id:{anyOf:[{$ref:"#/$defs/CommitId"},{type:"null"}]},ignored:{format:"uint64",minimum:0,type:["integer","null"]},operation_id:{type:"string"},passed:{format:"uint64",minimum:0,type:["integer","null"]},receipt:{anyOf:[{$ref:"#/$defs/OperationReceipt"},{type:"null"}]},result_offset:{format:"uint64",minimum:0,type:"integer"},results:{items:{$ref:"#/$defs/TestResultProjectionV1"},type:"array"},session_id:{description:"The session the run was requested by; null when the request named none.",type:["string","null"]},started_at:{$ref:"#/$defs/UtcMicros"},termination:{anyOf:[{$ref:"#/$defs/OperationTermination"},{type:"null"}]},total:{format:"uint64",minimum:0,type:["integer","null"]}},required:["operation_id","started_at","results","completed","result_offset","available_results"],title:"TestResultsResultV1",type:"object"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{include_tested:{description:"Include already-tested functions in results (default: false).",type:["boolean","null"]},limit:{description:"Maximum number of results to return (default: 20, at most 200).",format:"uint32",minimum:0,type:["integer","null"]},path:{description:"Filter to files under this directory path.",type:["string","null"]}},title:"TestRiskSurfaceRequestV1",type:"object"},{$defs:{CodeIndexBuildBlockedReasonV1:hv,CodeIndexConvergenceParkedV1:hb,CodeIndexStalenessStateV1:hw,ComplexityAnalysisV1:hj,PrimitiveFreshnessStateV1:_K,PrimitiveIndexingStateV1:_J,PrimitiveSearchFreshnessV1:_Y,TestAttributionMethodV1:{description:"How a source symbol's static test evidence was attributed.",enum:["none","direct_unit","closure"],type:"string"},TestRiskAttributionSummaryV1:{additionalProperties:!1,properties:{cli_entry_attributed:{format:"uint64",minimum:0,type:"integer"},closure_attributed:{format:"uint64",minimum:0,type:"integer"},depth:{format:"uint64",minimum:0,type:"integer"},direct_unit_attributed:{format:"uint64",minimum:0,type:"integer"},public_api_attributed:{format:"uint64",minimum:0,type:"integer"},total_attributed:{format:"uint64",minimum:0,type:"integer"},trait_resolved_attributed:{format:"uint64",minimum:0,type:"integer"}},required:["depth","direct_unit_attributed","closure_attributed","trait_resolved_attributed","public_api_attributed","cli_entry_attributed","total_attributed"],type:"object"},TestRiskBucketSummaryV1:{additionalProperties:!1,properties:{attributed:{format:"uint64",minimum:0,type:"integer"},excluded:{format:"uint64",minimum:0,type:"integer"},orphan_entry:{format:"uint64",minimum:0,type:"integer"},reachable_unattributed:{format:"uint64",minimum:0,type:"integer"}},required:["attributed","reachable_unattributed","orphan_entry","excluded"],type:"object"},TestRiskConfidenceV1:{description:"What the reported coverage percentage bounds.",enum:["static_lower_bound"],type:"string"},TestRiskEntryV1:{additionalProperties:!1,properties:{attribution_depth:{format:"uint64",minimum:0,type:["integer","null"]},attribution_method:{$ref:"#/$defs/TestAttributionMethodV1"},churn:{format:"uint64",minimum:0,type:"integer"},complexity:{description:"`None` when `complexity_analysis` reports the bounded walk did not\ncover the body; `risk` then weighs the lower-bound counters.",format:"uint32",minimum:0,type:["integer","null"]},complexity_analysis:{$ref:"#/$defs/ComplexityAnalysisV1"},fan_in:{format:"uint64",minimum:0,type:"integer"},file:{type:"string"},has_test:{type:"boolean"},id:{type:"string"},line:{format:"uint32",minimum:0,type:"integer"},name:{type:"string"},risk:{format:"double",type:"number"}},required:["id","name","file","line","complexity_analysis","fan_in","has_test","attribution_method","risk","churn"],type:"object"},TestRiskSummaryV1:{additionalProperties:!1,properties:{attribution:{$ref:"#/$defs/TestRiskAttributionSummaryV1"},buckets:{$ref:"#/$defs/TestRiskBucketSummaryV1"},confidence:{$ref:"#/$defs/TestRiskConfidenceV1"},confidence_note:{type:"string"},coverage_pct:{format:"double",type:"number"},skipped:{format:"uint64",minimum:0,type:"integer"},tested:{format:"uint64",minimum:0,type:"integer"},top_risk_unattributed:{type:"string"},top_risk_untested:{type:"string"},total_functions:{format:"uint64",minimum:0,type:"integer"}},required:["total_functions","tested","skipped","coverage_pct","top_risk_untested","top_risk_unattributed","attribution","buckets","confidence","confidence_note"],type:"object"}},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{freshness:{anyOf:[{$ref:"#/$defs/PrimitiveSearchFreshnessV1"},{type:"null"}],description:"The worktree verdict a served graph read opens with."},risks:{items:{$ref:"#/$defs/TestRiskEntryV1"},type:"array"},summary:{$ref:"#/$defs/TestRiskSummaryV1"}},required:["risks","summary"],title:"TestRiskResultV1",type:"object"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{kinds:{items:{type:"string"},type:["array","null"]},limit:{format:"uint32",minimum:0,type:["integer","null"]},path:{type:["string","null"]}},title:"TodosSurfaceRequestV1",type:"object"},{$defs:{CodeIndexBuildBlockedReasonV1:hv,CodeIndexConvergenceParkedV1:hb,CodeIndexStalenessStateV1:hw,PrimitiveFreshnessStateV1:_K,PrimitiveIndexingStateV1:_J,PrimitiveSearchFreshnessV1:_Y,TodoMarkerV1:{additionalProperties:!1,properties:{enclosing:{type:["string","null"]},file:{type:"string"},kind:{type:"string"},line:{format:"uint32",minimum:0,type:"integer"},text:{type:"string"}},required:["kind","file","line","text"],type:"object"}},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{by_kind:{additionalProperties:{format:"uint64",minimum:0,type:"integer"},type:"object"},freshness:{anyOf:[{$ref:"#/$defs/PrimitiveSearchFreshnessV1"},{type:"null"}],description:"The worktree verdict a served graph read opens with."},markers:{items:{$ref:"#/$defs/TodoMarkerV1"},type:"array"},match_count:{format:"uint",minimum:0,type:"integer"}},required:["match_count","by_kind","markers"],title:"TodosResultV1",type:"object"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{ecosystem:{description:"Filter findings to one ecosystem ('rust' or 'typescript'). Every\necosystem section is still reported, so the scope of the answer stays\nvisible.",type:["string","null"]},limit:{description:"Maximum unmounted files to return (default: 200, max: 2000). The\nresponse always states the true total and how many rows were omitted.",format:"uint32",minimum:0,type:["integer","null"]},path:{description:"Filter findings to files under this directory path (e.g. 'src/daemon').\nThe whole project is still walked, reachability is not a per-directory\nquestion.",type:["string","null"]}},title:"UnmountedFilesSurfaceRequestV1",type:"object"},{$defs:{CodeIndexBuildBlockedReasonV1:hv,CodeIndexConvergenceParkedV1:hb,CodeIndexStalenessStateV1:hw,PrimitiveFreshnessStateV1:_K,PrimitiveIndexingStateV1:_J,PrimitiveSearchFreshnessV1:_Y,UnmountedEcosystemStatusV1:{description:"Whether an ecosystem was audited, absent, or recognised but unmodelled.",enum:["audited","partial","not_present","unsupported"],type:"string"},UnmountedEcosystemV1:{additionalProperties:!1,properties:{blind_spots:{items:{type:"string"},type:"array"},ecosystem:{type:"string"},entry_point_count:{format:"uint64",minimum:0,type:"integer"},excluded_path_globs:{items:{type:"string"},type:"array"},mounted_file_count:{format:"uint64",minimum:0,type:"integer"},note:{type:["string","null"]},package_count:{format:"uint64",minimum:0,type:"integer"},scanned_file_count:{format:"uint64",minimum:0,type:"integer"},status:{$ref:"#/$defs/UnmountedEcosystemStatusV1"},unclaimed_file_count:{format:"uint64",minimum:0,type:"integer"},unmounted_file_count:{format:"uint64",minimum:0,type:"integer"},verdict:{type:"string"}},required:["ecosystem","status","package_count","entry_point_count","scanned_file_count","mounted_file_count","unclaimed_file_count","unmounted_file_count","verdict","blind_spots","excluded_path_globs"],type:"object"},UnmountedFileV1:{additionalProperties:!1,properties:{ecosystem:{type:"string"},file:{type:"string"},manifest:{type:"string"},nearest_mounted_parent:{type:["string","null"]},package:{type:"string"},suggested_declaration:{type:["string","null"]}},required:["file","ecosystem","package","manifest"],type:"object"}},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{complete:{type:"boolean"},ecosystem:{type:["string","null"]},ecosystems:{items:{$ref:"#/$defs/UnmountedEcosystemV1"},type:"array"},freshness:{anyOf:[{$ref:"#/$defs/PrimitiveSearchFreshnessV1"},{type:"null"}],description:"The worktree verdict a served graph read opens with."},limit:{format:"uint64",minimum:0,type:"integer"},omitted_count:{format:"uint64",minimum:0,type:"integer"},path:{type:["string","null"]},returned_count:{format:"uint64",minimum:0,type:"integer"},unmounted:{items:{$ref:"#/$defs/UnmountedFileV1"},type:"array"},unmounted_file_count:{format:"uint64",minimum:0,type:"integer"}},required:["unmounted_file_count","returned_count","omitted_count","complete","ecosystems","limit","unmounted"],title:"UnmountedFilesResultV1",type:"object"},{$defs:{UnsafePatternKindV1:bJ},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{exclude_tests:{description:"When true, skips files whose path looks like a test (default: false).",type:["boolean","null"]},kinds:{description:"Subset of patterns to search. Default (or an empty list): every kind.",items:{$ref:"#/$defs/UnsafePatternKindV1"},type:["array","null"]},limit:{description:"Maximum number of matches to return (default: 200, max: 2000).",format:"uint32",minimum:0,type:["integer","null"]},path:{description:"Filter to files under this directory (relative to project root).",type:["string","null"]}},title:"UnsafePatternsSurfaceRequestV1",type:"object"},{$defs:{CodeIndexBuildBlockedReasonV1:hv,CodeIndexConvergenceParkedV1:hb,CodeIndexStalenessStateV1:hw,CoverageCompleteness:ym,PrimitiveFreshnessStateV1:_K,PrimitiveIndexingStateV1:_J,PrimitiveSearchFreshnessV1:_Y,UnsafePatternFileOmissionV1:{additionalProperties:!1,description:"One scanned file whose sites are not reported as verified matches.",properties:{cause:{$ref:"#/$defs/UnsafePatternOmissionCauseV1"},file:{type:"string"},reason:{$ref:"#/$defs/UnsafePatternOmissionReasonV1"},withheld_match_count:{description:"Sites of the requested kinds found in the file and withheld.",format:"uint64",minimum:0,type:"integer"}},required:["file","reason","cause","withheld_match_count"],type:"object"},UnsafePatternKindV1:bJ,UnsafePatternMatchV1:{additionalProperties:!1,properties:{enclosing:{type:["string","null"]},file:{type:"string"},in_test:{type:"boolean"},kind:{$ref:"#/$defs/UnsafePatternKindV1"},line:{format:"uint32",minimum:0,type:"integer"},snippet:{type:"string"}},required:["kind","file","line","snippet","in_test"],type:"object"},UnsafePatternOmissionCauseV1:{description:"What prevented the file from being classified.",oneOf:[{const:"syntax_errors",description:"The Rust grammar parsed the file with error nodes. Valid Rust it only\npartly parses (heavy `macro_rules!`) lands here.",type:"string"}]},UnsafePatternOmissionReasonV1:{description:"Why a file's risky-pattern sites are withheld from the verified result.",oneOf:[{const:"test_scope_unclassified",description:"Whether a site is test-only cannot be decided for this file.",type:"string"}]}},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{by_kind:{additionalProperties:{format:"uint64",minimum:0,type:"integer"},description:"Match count per pattern kind, keyed by its wire spelling.",type:"object"},coverage:{$ref:"#/$defs/CoverageCompleteness",description:"`partial` exactly when `omissions` names a file whose sites are withheld."},freshness:{anyOf:[{$ref:"#/$defs/PrimitiveSearchFreshnessV1"},{type:"null"}],description:"The worktree verdict a served graph read opens with."},match_count:{format:"uint64",minimum:0,type:"integer"},matches:{items:{$ref:"#/$defs/UnsafePatternMatchV1"},type:"array"},omissions:{items:{$ref:"#/$defs/UnsafePatternFileOmissionV1"},type:"array"}},required:["match_count","by_kind","matches","coverage","omissions"],title:"UnsafePatternsResultV1",type:"object"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{agent_label:{type:["string","null"]},branch:{type:["string","null"]},commit:{type:["string","null"]},limit:{format:"uint64",minimum:0,type:["integer","null"]},run_id:{type:["string","null"]},session_id:{type:["string","null"]},worktree:{type:["string","null"]}},title:"WorkflowsRequestV1",type:"object"},{$defs:{GitScopeV1:gA,RetainedErrorV1:vR,RetainedOutcomeStatusV1:vq,WorkflowAgentV1:{additionalProperties:!1,properties:{agent_id:{type:"string"},agent_label:{type:"string"},agent_session_id:{type:["string","null"]},ended_ts:{format:"int64",type:["integer","null"]},model:{type:["string","null"]},phase:{type:["string","null"]},run_id:{type:"string"},started_ts:{format:"int64",type:["integer","null"]},status:{$ref:"#/$defs/WorkflowStatusV1"},tokens:{format:"int64",type:"integer"},transcript_path:{type:["string","null"]}},required:["run_id","agent_label","agent_id","status"],type:"object"},WorkflowCoverageV1:{enum:["complete","conclusive","bounded_prefix"],type:"string"},WorkflowQueryModeV1:{enum:["session","git_scope","run","agent"],type:"string"},WorkflowRunV1:{additionalProperties:!1,properties:{agent_count:{format:"int64",type:"integer"},description:{type:["string","null"]},ended_ts:{format:"int64",type:["integer","null"]},name:{type:["string","null"]},parent_session_id:{type:"string"},phase_json:{type:["string","null"]},result_summary:{type:["string","null"]},run_id:{type:"string"},started_ts:{format:"int64",type:["integer","null"]},status:{$ref:"#/$defs/WorkflowStatusV1"}},required:["run_id","parent_session_id","status"],type:"object"},WorkflowStatusV1:{enum:["running","completed","failed","unknown"],type:"string"}},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{agent:{anyOf:[{$ref:"#/$defs/WorkflowAgentV1"},{type:"null"}]},agent_count:{format:"int64",type:["integer","null"]},agent_label:{type:["string","null"]},agents:{items:{$ref:"#/$defs/WorkflowAgentV1"},type:["array","null"]},agents_complete:{type:["boolean","null"]},agents_coverage:{anyOf:[{$ref:"#/$defs/WorkflowCoverageV1"},{type:"null"}]},agents_returned:{format:"uint",minimum:0,type:["integer","null"]},count:{format:"uint",minimum:0,type:["integer","null"]},error:{anyOf:[{$ref:"#/$defs/RetainedErrorV1"},{type:"null"}]},found:{type:["boolean","null"]},git_filter:{anyOf:[{$ref:"#/$defs/GitScopeV1"},{type:"null"}]},lookup_complete:{type:["boolean","null"]},lookup_coverage:{anyOf:[{$ref:"#/$defs/WorkflowCoverageV1"},{type:"null"}]},message:{type:["string","null"]},mode:{anyOf:[{$ref:"#/$defs/WorkflowQueryModeV1"},{type:"null"}]},run:{anyOf:[{$ref:"#/$defs/WorkflowRunV1"},{type:"null"}]},run_id:{type:["string","null"]},runs:{items:{$ref:"#/$defs/WorkflowRunV1"},type:["array","null"]},session_id:{type:["string","null"]},status:{$ref:"#/$defs/RetainedOutcomeStatusV1"}},required:["status"],title:"WorkflowsResultV1",type:"object"},{$defs:{ManifestDigest:_p,NativeWorktreeTargetV1:_A,ProjectId:_6,RepositoryId:v$,ScopeSetId:v1,ScopeSetRevision:v0,WorktreeId:SJ},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"Confirmation names the exact inspection digest, not a worktree id alone.",properties:{inspection_digest:{$ref:"#/$defs/ManifestDigest"},scope_set_digest:{$ref:"#/$defs/ManifestDigest"},scope_set_id:{$ref:"#/$defs/ScopeSetId"},scope_set_revision:{$ref:"#/$defs/ScopeSetRevision"},target:{$ref:"#/$defs/NativeWorktreeTargetV1"}},required:["scope_set_id","scope_set_revision","scope_set_digest","target","inspection_digest"],title:"WorktreeCleanupConfirmRequestV1",type:"object"},{$defs:{ManifestDigest:_p,NativeWorktreeTargetV1:_A,ProjectId:_6,RepositoryId:v$,ScopeSetId:v1,ScopeSetRevision:v0,WorktreeId:SJ},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{scope_set_digest:{$ref:"#/$defs/ManifestDigest"},scope_set_id:{$ref:"#/$defs/ScopeSetId"},scope_set_revision:{$ref:"#/$defs/ScopeSetRevision"},target:{$ref:"#/$defs/NativeWorktreeTargetV1"}},required:["scope_set_id","scope_set_revision","scope_set_digest","target"],title:"WorktreeCleanupInspectRequestV1",type:"object"},{$defs:{ManifestDigest:_p,NativeWorktreeTargetV1:_A,ProjectId:_6,RepositoryId:v$,ScopeSetId:v1,ScopeSetRevision:v0,WorktreeId:SJ},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{confirmation_digest:{$ref:"#/$defs/ManifestDigest"},scope_set_digest:{$ref:"#/$defs/ManifestDigest"},scope_set_id:{$ref:"#/$defs/ScopeSetId"},scope_set_revision:{$ref:"#/$defs/ScopeSetRevision"},target:{$ref:"#/$defs/NativeWorktreeTargetV1"}},required:["scope_set_id","scope_set_revision","scope_set_digest","target","confirmation_digest"],title:"WorktreeCleanupReconcileRequestV1",type:"object"},{$defs:{ManifestDigest:_p,NativeWorktreeTargetV1:_A,ProjectId:_6,RepositoryId:v$,ScopeSetId:v1,ScopeSetRevision:v0,UtcMicros:bX,WorktreeId:SJ},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"Removal carries both proofs so a stale confirmation cannot be replayed\nagainst another inspection of the same opaque worktree identity.",properties:{confirmation_digest:{$ref:"#/$defs/ManifestDigest"},confirmed_at:{$ref:"#/$defs/UtcMicros"},inspection_digest:{$ref:"#/$defs/ManifestDigest"},scope_set_digest:{$ref:"#/$defs/ManifestDigest"},scope_set_id:{$ref:"#/$defs/ScopeSetId"},scope_set_revision:{$ref:"#/$defs/ScopeSetRevision"},target:{$ref:"#/$defs/NativeWorktreeTargetV1"}},required:["scope_set_id","scope_set_revision","scope_set_digest","target","inspection_digest","confirmed_at","confirmation_digest"],title:"WorktreeCleanupRemoveRequestV1",type:"object"},{$defs:{ManifestDigest:_p,NativeWorktreeTargetV1:_A,ProjectId:_6,RepositoryId:v$,ScopeSetId:v1,ScopeSetRevision:v0,WorktreeId:SJ},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{scope_set_digest:{$ref:"#/$defs/ManifestDigest"},scope_set_id:{$ref:"#/$defs/ScopeSetId"},scope_set_revision:{$ref:"#/$defs/ScopeSetRevision"},target:{$ref:"#/$defs/NativeWorktreeTargetV1"}},required:["scope_set_id","scope_set_revision","scope_set_digest","target"],title:"WorktreeInventoryRequestV1",type:"object"},{$defs:{ActorId:f$,TaskId:bE},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"Issues a short-lived, version-bound task-opening token.\n\nIdentity, scope, authority revisions, issuance time, and expiry are all\nsupplied by the admitted daemon request. The caller supplies only the\nbearer, destination session, exact task version, and enrolled recipient\nprincipal it intends to authorize.",properties:{recipient_actor_id:{$ref:"#/$defs/ActorId"},session_id:{type:"string"},task_id:{$ref:"#/$defs/TaskId"},token:{type:"string"},version:{format:"uint64",minimum:0,type:"integer"}},required:["token","session_id","task_id","version","recipient_actor_id"],title:"IssueTaskHandoffRequestV1",type:"object"},{$defs:{ManifestDigest:_p,TaskId:bE,UtcMicros:bX},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"Flat public receipt for a committed task-handoff issue.\n\nThe complete binding remains inside the daemon authority. Publishing only\nthese exact identifiers avoids turning mutable grant and policy internals\ninto a second public wire authority.",properties:{expires_at:{$ref:"#/$defs/UtcMicros"},issued_at:{$ref:"#/$defs/UtcMicros"},issued_request_id:{type:"string"},session_id:{type:"string"},task_id:{$ref:"#/$defs/TaskId"},token_digest:{$ref:"#/$defs/ManifestDigest"},version:{format:"uint64",minimum:0,type:"integer"}},required:["token_digest","issued_request_id","session_id","task_id","version","issued_at","expires_at"],title:"IssueTaskHandoffResultV1",type:"object"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:'Enumerates the handoff tokens this caller could redeem in one session.\n\nThe two `open_*` operations redeem a bearer the caller already holds; they\ncannot answer "what has been handed to me and not yet taken up". This one\ncan, and it does so without any bearer: the request carries no token, and\nthe result carries only digests.',properties:{session_id:{type:"string"}},required:["session_id"],title:"ListTaskHandoffsRequestV1",type:"object"},{$defs:{FeedbackFindingId:y7,HandoffOpenKindV1:{enum:["investigation","task"],type:"string"},HandoffOpenTargetV1:{oneOf:[{properties:{finding_id:{$ref:"#/$defs/FeedbackFindingId"},kind:{const:"investigation",type:"string"},owner_version_digest:{$ref:"#/$defs/ManifestDigest"}},required:["kind","finding_id","owner_version_digest"],type:"object"},{properties:{kind:{const:"task",type:"string"},owner_version_digest:{$ref:"#/$defs/ManifestDigest"},task_id:{$ref:"#/$defs/TaskId"},version:{format:"uint64",minimum:0,type:"integer"}},required:["kind","task_id","version","owner_version_digest"],type:"object"}]},ListedTaskHandoffV1:{additionalProperties:!1,description:"One handoff token, projected for public reading.\n\nMirrors [`IssueTaskHandoffResultV1`]'s doctrine: the complete binding stays\ninside the daemon authority, and only these identifiers cross the wire. No\nbearer secret exists to leak here. The authority never stored one, and the\nissuer's grant identity and policy digests stay concealed.",properties:{consumed_at:{anyOf:[{$ref:"#/$defs/UtcMicros"},{type:"null"}],description:"Set only when `state` is `consumed`."},expires_at:{$ref:"#/$defs/UtcMicros"},issued_at:{$ref:"#/$defs/UtcMicros"},issued_request_id:{type:"string"},kind:{$ref:"#/$defs/HandoffOpenKindV1"},session_id:{type:"string"},state:{$ref:"#/$defs/TaskHandoffTokenStateV1"},target:{$ref:"#/$defs/HandoffOpenTargetV1"},token_digest:{$ref:"#/$defs/ManifestDigest"}},required:["token_digest","issued_request_id","session_id","kind","target","issued_at","expires_at","state"],type:"object"},ManifestDigest:_p,TaskHandoffTokenStateV1:{description:"Where one enumerated token stands at the observed instant.",oneOf:[{const:"open",description:"Not yet redeemed, and not yet expired: the live frontier.",type:"string"},{const:"consumed",description:"Redeemed. Single-use, so it can never be redeemed again.",type:"string"},{const:"expired",description:"Its window closed with no redemption. A dropped handoff, which is\nexactly the fact a frontier exists to surface.",type:"string"}]},TaskId:bE,UtcMicros:bX},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"The handoff-token frontier for one session.",properties:{consumed_count:{format:"uint32",minimum:0,type:"integer"},expired_count:{format:"uint32",minimum:0,type:"integer"},handoffs:{items:{$ref:"#/$defs/ListedTaskHandoffV1"},type:"array"},observed_at:{$ref:"#/$defs/UtcMicros",description:"The instant the states below were decided at. Without it, `open` and\n`expired` are claims with no clock behind them."},open_count:{format:"uint32",minimum:0,type:"integer"},truncated:{description:"True when the enumeration ceiling was reached, so the counts describe a\nprefix of the frontier rather than all of it.",type:"boolean"}},required:["observed_at","handoffs","open_count","consumed_count","expired_count","truncated"],title:"ListTaskHandoffsResultV1",type:"object"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{session_id:{type:"string"},token:{type:"string"}},required:["token","session_id"],title:"OpenInvestigationHandoffRequestV1",type:"object"},{$defs:{FeedbackFindingId:y7,HandoffOpenReceiptV1:gF,InvestigationHandoffSurfaceV1:{additionalProperties:!1,properties:{finding_id:{$ref:"#/$defs/FeedbackFindingId"},owner_version_digest:{$ref:"#/$defs/ManifestDigest"}},required:["finding_id","owner_version_digest"],type:"object"},ManifestDigest:_p,UtcMicros:bX},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{receipt:{$ref:"#/$defs/HandoffOpenReceiptV1"},surface:{$ref:"#/$defs/InvestigationHandoffSurfaceV1"}},required:["surface","receipt"],title:"OpenInvestigationHandoffResultV1",type:"object"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{session_id:{type:"string"},token:{type:"string"}},required:["token","session_id"],title:"OpenTaskHandoffRequestV1",type:"object"},{$defs:{HandoffOpenReceiptV1:gF,ManifestDigest:_p,TaskHandoffSurfaceV1:{additionalProperties:!1,properties:{task_id:{$ref:"#/$defs/TaskId"},version:{format:"uint64",minimum:0,type:"integer"}},required:["task_id","version"],type:"object"},TaskId:bE,UtcMicros:bX},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{receipt:{$ref:"#/$defs/HandoffOpenReceiptV1"},surface:{$ref:"#/$defs/TaskHandoffSurfaceV1"}},required:["surface","receipt"],title:"OpenTaskHandoffResultV1",type:"object"},{$defs:{ManifestDigest:_p,MultiRootContinuationV1:_V,MultiRootOperationV1:{description:"Closed federated read families. The family is typed while its existing\noperation-specific request remains the canonical JSON payload owned by that\napplication surface.",oneOf:[{properties:{kind:{const:"work",type:"string"},request:!0},required:["kind","request"],type:"object"},{properties:{kind:{const:"git",type:"string"},request:!0},required:["kind","request"],type:"object"},{properties:{kind:{const:"feedback",type:"string"},request:!0},required:["kind","request"],type:"object"},{properties:{kind:{const:"impact",type:"string"},request:!0},required:["kind","request"],type:"object"},{properties:{kind:{const:"query",type:"string"},request:!0},required:["kind","request"],type:"object"}]},RootGenerationV1:vN,RootScopeOutcomeV1_for_Nullable_RootGenerationV1:vz,RootScopeOutcomeV1_for_Nullable_string:vD,ScopeOutcome_for_Nullable_RootGenerationV1:vQ,ScopeOutcome_for_Nullable_string:vX,ScopePartialReasonV1:vY,ScopeSetId:v1,ScopeSetRevision:v0,ScopeUnavailableReasonV1:v4},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"External federated request bound to one persisted scope-set revision and\ndigest. Query/order digests and root generations are server-derived.",properties:{continuation:{anyOf:[{$ref:"#/$defs/MultiRootContinuationV1"},{type:"null"}]},operation:{$ref:"#/$defs/MultiRootOperationV1"},page:{format:"uint64",minimum:0,type:"integer"},scope_set_digest:{$ref:"#/$defs/ManifestDigest"},scope_set_id:{$ref:"#/$defs/ScopeSetId"},scope_set_revision:{$ref:"#/$defs/ScopeSetRevision"}},required:["scope_set_id","scope_set_revision","scope_set_digest","operation","page"],title:"MultiRootExecuteRequestV1",type:"object"},{$defs:{ManifestDigest:_p,MultiRootContinuationV1:_V,RootGenerationV1:vN,RootScopeOutcomeV1_for_Array_of_AnyValue:{additionalProperties:!1,description:"One typed outcome pinned to the digest of an exact resolved root.",properties:{outcome:{$ref:"#/$defs/ScopeOutcome_for_Array_of_AnyValue"},scope_digest:{$ref:"#/$defs/ManifestDigest"}},required:["scope_digest","outcome"],type:"object"},RootScopeOutcomeV1_for_Nullable_RootGenerationV1:vz,RootScopeOutcomeV1_for_Nullable_string:vD,ScopeOutcome_for_Array_of_AnyValue:{description:"Truthful outcome for one authorized root or an aggregate over roots.\n\n`Denied` and `Unavailable` carry no value and therefore cannot be confused\nwith a successful empty result.",oneOf:[{properties:{outcome:{const:"exact",type:"string"},value:{items:!0,type:"array"}},required:["outcome","value"],type:"object"},{properties:{outcome:{const:"partial",type:"string"},value:{properties:{reason:{$ref:"#/$defs/ScopePartialReasonV1"},value:{items:!0,type:"array"}},required:["value","reason"],type:"object"}},required:["outcome","value"],type:"object"},{properties:{outcome:{const:"denied",type:"string"}},required:["outcome"],type:"object"},{properties:{outcome:{const:"unavailable",type:"string"},value:{properties:{reason:{$ref:"#/$defs/ScopeUnavailableReasonV1"}},required:["reason"],type:"object"}},required:["outcome","value"],type:"object"}]},ScopeOutcome_for_Nullable_RootGenerationV1:vQ,ScopeOutcome_for_Nullable_string:vX,ScopePartialReasonV1:vY,ScopeSetId:v1,ScopeSetRevision:v0,ScopeUnavailableReasonV1:v4},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"Federated page preserving each root outcome and aggregate partial truth.",properties:{aggregate:{$ref:"#/$defs/ScopeOutcome_for_Array_of_AnyValue"},continuation:{anyOf:[{$ref:"#/$defs/MultiRootContinuationV1"},{type:"null"}]},roots:{items:{$ref:"#/$defs/RootScopeOutcomeV1_for_Array_of_AnyValue"},type:"array"},scope_set_digest:{$ref:"#/$defs/ManifestDigest"},scope_set_id:{$ref:"#/$defs/ScopeSetId"},scope_set_revision:{$ref:"#/$defs/ScopeSetRevision"}},required:["scope_set_id","scope_set_revision","scope_set_digest","roots","aggregate"],title:"MultiRootQueryPageV1_for_AnyValue",type:"object"},{$defs:{ProjectId:_6,RegisteredRootSelectorV1:{additionalProperties:!1,description:"Exact registered-root selector accepted by scope-set CAS.",properties:{project_id:{$ref:"#/$defs/ProjectId"},root:{type:"string"}},required:["project_id","root"],type:"object"},ScopeSetId:v1,ScopeSetRevision:v0},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"Canonical external selector for creating or updating an authorized scope\nset. Every member names one exact registered root; project-only selection\ncannot silently widen to an active or first-mounted graph.",properties:{expected_revision:{anyOf:[{$ref:"#/$defs/ScopeSetRevision"},{type:"null"}]},roots:{items:{$ref:"#/$defs/RegisteredRootSelectorV1"},type:"array"},scope_set_id:{$ref:"#/$defs/ScopeSetId"}},required:["scope_set_id","roots"],title:"MultiRootScopeSetCasRequestV1",type:"object"},{$defs:{ActorId:f$,AuthorizedRoot:fz,AuthorizedScopeSet:fD,BrainId:f0,ManifestDigest:_p,MultiRootScopeSetCasStatusV1:{enum:["applied","conflict"],type:"string"},ProjectId:_6,RefId:vf,RegisteredRootLocatorV1:vh,RepositoryId:v$,ResolvedScope:vP,ScopeSetId:v1,ScopeSetRevision:v0,SharedProfileStoreLocatorV1:bc,UserProfileId:bQ,WorktreeId:SJ},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{scope_set:{anyOf:[{$ref:"#/$defs/AuthorizedScopeSet"},{type:"null"}]},status:{$ref:"#/$defs/MultiRootScopeSetCasStatusV1"}},required:["status"],title:"MultiRootScopeSetCasResultV1",type:"object"},{$defs:{ScopeSetId:v1},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{scope_set_id:{$ref:"#/$defs/ScopeSetId"}},required:["scope_set_id"],title:"MultiRootScopeSetReadRequestV1",type:"object"},{$defs:{ActorId:f$,AuthorizedRoot:fz,AuthorizedScopeSet:fD,BrainId:f0,ManifestDigest:_p,ProjectId:_6,RefId:vf,RegisteredRootLocatorV1:vh,RepositoryId:v$,ResolvedScope:vP,ScopeSetId:v1,ScopeSetRevision:v0,SharedProfileStoreLocatorV1:bc,UserProfileId:bQ,WorktreeId:SJ},$schema:"https://json-schema.org/draft/2020-12/schema",anyOf:[{$ref:"#/$defs/AuthorizedScopeSet"},{type:"null"}],title:"Nullable_AuthorizedScopeSet"},{$defs:{AcceptWorkProposalDispositionV1:{description:"The accept-proposal operation can commit acceptance only.",enum:["accepted"],type:"string"},CatalogGenerationId:hu,ConfigurationRevisionId:hN,ManifestDigest:_p,ProjectId:_6,ProposalId:_7,ProviderId:vn,RepositoryId:v$,RetrievalAnchorId:vx,SourceStoreId:bw,TaskId:bE,UtcMicros:bX,VerifiedWorkGraphVersionV1:b1,WorkCommandId:$m,WorkProductAuthorizedRelationScopeV1:$1,WorkProductEventEvidenceV1:$0,WorkProductExpectedAuthorityV1:$6,WorkProductMutationIdentityV1:$9,WorkProductRevisionPinsV1:Se,WorkProductSelectionScopeV1:St,WorkProposalV1:So,WorkProposedChildV1:Sn,WorkProviderRouteId:Sl,WorkProviderRouteV1:Sp,WorkRouteDecisionV1:Sb,WorkScoreKindV1:SR,WorkShapeAssessmentV1:Sq,WorkSizingV1:SI},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{disposition:{$ref:"#/$defs/AcceptWorkProposalDispositionV1"},mutation:{$ref:"#/$defs/WorkProductMutationIdentityV1"},proposal:{$ref:"#/$defs/WorkProposalV1"},selection:{$ref:"#/$defs/WorkProductSelectionScopeV1"}},required:["selection","proposal","disposition","mutation"],title:"AcceptWorkProposalRequestV1",type:"object"},{$defs:{ActorId:f$,AttemptId:fM,BrainId:f0,CatalogGenerationId:hu,ConfigurationRevisionId:hN,ManifestDigest:_p,ProjectId:_6,ProposalId:_7,ProviderId:vn,RepositoryId:v$,RetrievalAnchorId:vx,RunId:vL,SourceStoreId:bw,TaskEvidenceLinkV1:bT,TaskId:bE,UserProfileId:bQ,UtcMicros:bX,VerifiedWorkGraphVersionV1:b1,WorkAcceptanceCriterionV1:b0,WorkAttemptIdentityV1:b9,WorkCommandId:$m,WorkGraphChangeV1:$T,WorkHandoffV1:$W,WorkHierarchyV1:$M,WorkInitiativeV1:$N,WorkItemInputV1:$z,WorkItemV1:$D,WorkMilestoneV1:$H,WorkPlanV1:$Y,WorkProductAuthorizedRelationScopeV1:$1,WorkProductEventEvidenceV1:$0,WorkProductEventPayloadV1:$2,WorkProductEventV1:$4,WorkProductGraphV1:$3,WorkProductProfileScopeV1:$8,WorkProposalDecisionV1:Sr,WorkProposalDispositionV1:Si,WorkProposalV1:So,WorkProposedChildV1:Sn,WorkProviderRouteId:Sl,WorkProviderRouteV1:Sp,WorkRelationReplanDecisionV1:Sm,WorkRelationReplanProposalV1:Sf,WorkRouteDecisionV1:Sb,WorkScoreKindV1:SR,WorkShapeAssessmentV1:Sq,WorkSizingV1:SI},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{event:{$ref:"#/$defs/WorkProductEventV1"},replayed:{type:"boolean"},verified_graph_version:{$ref:"#/$defs/VerifiedWorkGraphVersionV1"}},required:["event","verified_graph_version","replayed"],title:"WorkProductMutationReceiptV1",type:"object"},{$defs:{AttemptId:fM,CoverageStateV1:yh,DuplicateEffectOutcomeV1:yV,DuplicateEffortKindV1:yR,ProjectionGenerationId:_8,QuantityEvidenceClassV1:vd,RunId:vL,TaskId:bE,UtcMicros:bX,WorkAttemptIdentityV1:b9,WorkCommandId:$m,WorkDuplicateAdjudicationEvidenceV1:$h,WorkDuplicateAdjudicationQuantitiesV1:$y,WorkTopologyGenerationRefV1:SW},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{command_id:{$ref:"#/$defs/WorkCommandId"},evidence:{$ref:"#/$defs/WorkDuplicateAdjudicationEvidenceV1"},expected_revision:{format:"uint64",minimum:0,type:["integer","null"]},first_attempt:{$ref:"#/$defs/WorkAttemptIdentityV1"},occurred_at:{$ref:"#/$defs/UtcMicros"},quantities:{$ref:"#/$defs/WorkDuplicateAdjudicationQuantitiesV1"},reason:{type:"string"},second_attempt:{$ref:"#/$defs/WorkAttemptIdentityV1"},verdict:{$ref:"#/$defs/DuplicateEffortKindV1"}},required:["first_attempt","second_attempt","evidence","verdict","quantities","reason","command_id","occurred_at"],title:"WorkDuplicateAdjudicationCommandV1",type:"object"},{$defs:{ActorId:f$,AttemptId:fM,CoverageStateV1:yh,DuplicateEffectOutcomeV1:yV,DuplicateEffortKindV1:yR,ManifestDigest:_p,ProjectionGenerationId:_8,QuantityEvidenceClassV1:vd,RunId:vL,TaskId:bE,UtcMicros:bX,WorkAttemptIdentityV1:b9,WorkCommandId:$m,WorkDuplicateAdjudicationCommandV1:{additionalProperties:!1,properties:{command_id:{$ref:"#/$defs/WorkCommandId"},evidence:{$ref:"#/$defs/WorkDuplicateAdjudicationEvidenceV1"},expected_revision:{format:"uint64",minimum:0,type:["integer","null"]},first_attempt:{$ref:"#/$defs/WorkAttemptIdentityV1"},occurred_at:{$ref:"#/$defs/UtcMicros"},quantities:{$ref:"#/$defs/WorkDuplicateAdjudicationQuantitiesV1"},reason:{type:"string"},second_attempt:{$ref:"#/$defs/WorkAttemptIdentityV1"},verdict:{$ref:"#/$defs/DuplicateEffortKindV1"}},required:["first_attempt","second_attempt","evidence","verdict","quantities","reason","command_id","occurred_at"],type:"object"},WorkDuplicateAdjudicationEvidenceV1:$h,WorkDuplicateAdjudicationQuantitiesV1:$y,WorkDuplicateAdjudicationReceiptV1:{additionalProperties:!1,properties:{actor_id:{$ref:"#/$defs/ActorId"},adjudication_ref:{$ref:"#/$defs/ManifestDigest"},canonical_input_digest:{$ref:"#/$defs/ManifestDigest"},command:{$ref:"#/$defs/WorkDuplicateAdjudicationCommandV1"},revision:{format:"uint64",minimum:0,type:"integer"}},required:["command","revision","actor_id","canonical_input_digest","adjudication_ref"],type:"object"},WorkTopologyGenerationRefV1:SW},$schema:"https://json-schema.org/draft/2020-12/schema",oneOf:[{properties:{outcome:{const:"appended",type:"string"},receipt:{$ref:"#/$defs/WorkDuplicateAdjudicationReceiptV1"}},required:["outcome","receipt"],type:"object"},{properties:{outcome:{const:"replayed",type:"string"},receipt:{$ref:"#/$defs/WorkDuplicateAdjudicationReceiptV1"}},required:["outcome","receipt"],type:"object"}],title:"WorkDuplicateAdjudicationAppendOutcomeV1"},{$defs:{AttemptId:fM,RunId:vL,TaskId:bE,WorkAttemptIdentityV1:b9,WorkCommandId:$m},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{adjudication_id:{type:"string"},attempt:{$ref:"#/$defs/WorkAttemptIdentityV1"},command_id:{$ref:"#/$defs/WorkCommandId"},detection_horizon_micros:{format:"uint64",minimum:0,type:"integer"},expected_revision:{format:"uint64",minimum:0,type:["integer","null"]}},required:["adjudication_id","attempt","detection_horizon_micros","command_id"],title:"AdjudicateWorkLeakCommandV1",type:"object"},{$defs:{AdjudicateWorkLeakCommandV1:{additionalProperties:!1,properties:{adjudication_id:{type:"string"},attempt:{$ref:"#/$defs/WorkAttemptIdentityV1"},command_id:{$ref:"#/$defs/WorkCommandId"},detection_horizon_micros:{format:"uint64",minimum:0,type:"integer"},expected_revision:{format:"uint64",minimum:0,type:["integer","null"]}},required:["adjudication_id","attempt","detection_horizon_micros","command_id"],title:"AdjudicateWorkLeakCommandV1",type:"object"},AttemptId:fM,CoverageStateV1:yh,LeakOwnerClassV1:{enum:["work","workflow","git","delivery","unknown"],type:"string"},ManifestDigest:_p,RunId:vL,TaskId:bE,UtcMicros:bX,VerifiedWorkLeakEvidenceV1:{additionalProperties:!1,description:"Exact result of one scan by the canonical lease/process/effect/placement/\ndelivery evidence owner. Evidence references are opaque local anchors;\ntheir owning records remain behind normal authorization.",properties:{attempt:{$ref:"#/$defs/WorkAttemptIdentityV1"},coverage:{$ref:"#/$defs/CoverageStateV1"},detection_horizon_micros:{format:"uint64",minimum:0,type:"integer"},evidence_refs:{items:{type:"string"},type:"array"},kind:{$ref:"#/$defs/WorkExecutionLeakKindV1"},owner_class:{$ref:"#/$defs/LeakOwnerClassV1"},recovery:{$ref:"#/$defs/WorkExecutionLeakRecoveryV1"},scan_completed_at:{$ref:"#/$defs/UtcMicros"},scan_started_at:{$ref:"#/$defs/UtcMicros"}},required:["attempt","kind","recovery","owner_class","coverage","detection_horizon_micros","scan_started_at","scan_completed_at","evidence_refs"],type:"object"},WorkAttemptIdentityV1:b9,WorkCommandId:$m,WorkExecutionLeakKindV1:{enum:["lease_after_terminal","attempt_without_live_owner","effect_unknown_past_deadline","missing_worktree_binding","unbounded_delivery","none","unknown"],type:"string"},WorkExecutionLeakRecoveryV1:{enum:["not_required","pending","recovered","failed","unknown"],type:"string"},WorkLeakAdjudicationReceiptV1:{additionalProperties:!1,properties:{canonical_input_digest:{$ref:"#/$defs/ManifestDigest"},command:{$ref:"#/$defs/AdjudicateWorkLeakCommandV1"},evidence:{$ref:"#/$defs/VerifiedWorkLeakEvidenceV1"},revision:{format:"uint64",minimum:0,type:"integer"},scan_deadline:{$ref:"#/$defs/UtcMicros",description:"Daemon/request-owned deadline that bounded the source scan."}},required:["command","revision","evidence","scan_deadline","canonical_input_digest"],type:"object"}},$schema:"https://json-schema.org/draft/2020-12/schema",oneOf:[{properties:{outcome:{const:"appended",type:"string"},receipt:{$ref:"#/$defs/WorkLeakAdjudicationReceiptV1"}},required:["outcome","receipt"],type:"object"},{properties:{outcome:{const:"replayed",type:"string"},receipt:{$ref:"#/$defs/WorkLeakAdjudicationReceiptV1"}},required:["outcome","receipt"],type:"object"}],title:"WorkLeakAdjudicationOutcomeV1"},{$defs:{CatalogGenerationId:hu,ConfigurationRevisionId:hN,ManifestDigest:_p,ProjectId:_6,RepositoryId:v$,RetrievalAnchorId:vx,SourceStoreId:bw,TaskId:bE,UtcMicros:bX,VerifiedWorkGraphVersionV1:b1,WorkCommandId:$m,WorkProductAuthorizedRelationScopeV1:$1,WorkProductEventEvidenceV1:$0,WorkProductExpectedAuthorityV1:$6,WorkProductMutationIdentityV1:$9,WorkProductRevisionPinsV1:Se,WorkProductSelectionScopeV1:St},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{based_on_version:{format:"uint64",minimum:0,type:"integer"},mutation:{$ref:"#/$defs/WorkProductMutationIdentityV1"},selection:{$ref:"#/$defs/WorkProductSelectionScopeV1"},task_id:{$ref:"#/$defs/TaskId"}},required:["selection","task_id","based_on_version","mutation"],title:"AdmitWorkExecutionRequestV1",type:"object"},{$defs:{ActorId:f$,AttemptId:fM,AutomaticWorktreeGcV1:fL,BrainId:f0,BranchCollisionPolicyV1:f2,BranchNameComponentV1:f4,BranchNameSeparatorV1:f6,BranchNamingPolicyV1:f3,BranchTopologyKindV1:hr,BranchTopologyPolicyV1:hi,CanonicalGitRefNameV1:hc,CanonicalGitRefPrefix:hl,CapabilityId:hp,CatalogGenerationId:hu,ConfigurationRevisionId:hN,ConfigurationSnapshotId:hz,CredentialReferenceId:yy,CrossMergeModeV1:yg,CrossMergePolicyV1:y_,GitHubStackedPullRequestPolicyV1:gP,HistoryRewritePolicyV1:gL,LocatorDigest:_i,ManifestDigest:_p,ProjectId:_6,ProposalId:_7,ProtectedRefDispositionV1:ve,ProtectedRefRuleV1:vt,ProtectedRefSelectorV1:vr,ProviderId:vn,RepositoryId:v$,RepositoryPlacementScopeV1:vS,RequiredCheckExpectationV1:vk,RequiredCheckV1:vw,RetrievalAnchorId:vx,ReviewRequirementV1:vA,ReviewTopologyKindV1:vW,ReviewTopologyPolicyV1:vM,RunId:vL,SensitiveFilesystemLocatorV1:v3,SourceStoreId:bw,TaskEvidenceLinkV1:bT,TaskId:bE,TopologyConcurrencyPolicyV1:bH,TopologyEscalationPolicyV1:bG,TopologyGatePolicyV1:bB,TopologyNotificationLevelV1:bK,UserProfileId:bQ,UtcMicros:bX,VerifiedWorkGraphVersionV1:b1,WorkAcceptanceCriterionV1:b0,WorkApprovalPolicy:b2,WorkAttemptIdentityV1:b9,WorkCommandId:$m,WorkEgressPolicy:$v,WorkExecutableReference:$w,WorkExecutionLimits:$V,WorkExecutionSnapshot:$R,WorkFallbackTopology:$x,WorkFilesystemPolicy:$C,WorkGraphChangeV1:$T,WorkHandoffV1:$W,WorkHierarchyV1:$M,WorkInitiativeV1:$N,WorkItemInputV1:$z,WorkItemV1:$D,WorkMilestoneV1:$H,WorkPlanV1:$Y,WorkProductAuthorizedRelationScopeV1:$1,WorkProductEventEvidenceV1:$0,WorkProductEventPayloadV1:$2,WorkProductEventV1:$4,WorkProductGraphV1:$3,WorkProductMutationReceiptV1:$5,WorkProductProfileScopeV1:$8,WorkProposalDecisionV1:Sr,WorkProposalDispositionV1:Si,WorkProposalV1:So,WorkProposedChildV1:Sn,WorkProviderBackendV1:Ss,WorkProviderProtocol:Sc,WorkProviderRouteId:Sl,WorkProviderRouteV1:Sp,WorkRelationReplanDecisionV1:Sm,WorkRelationReplanProposalV1:Sf,WorkRouteDecisionV1:Sb,WorkSandboxPolicy:SV,WorkScoreKindV1:SR,WorkShapeAssessmentV1:Sq,WorkSizingV1:SI,WorkTopologyPolicyV1:SM,WorktreeCleanlinessRequirementV1:SK,WorktreePlacementModeV1:SX,WorktreeRetentionPolicyV1:SY,WorktreeRootPolicyV1:S1},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"Execution admission together with the immutable provider snapshot licensed\nby the accepted proposal and current configuration authority.",properties:{execution_snapshot:{$ref:"#/$defs/WorkExecutionSnapshot"},mutation:{$ref:"#/$defs/WorkProductMutationReceiptV1"}},required:["mutation","execution_snapshot"],title:"AdmittedWorkExecutionV1",type:"object"},{$defs:{RunId:vL,TaskId:bE,UtcMicros:bX,WorkPlacementKindV1:$J,WorkPlacementTargetV1:$Q},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{occurred_at:{$ref:"#/$defs/UtcMicros"},retention_eligible_at:{anyOf:[{$ref:"#/$defs/UtcMicros"},{type:"null"}],default:null,description:"When retention makes this placement eligible for a fresh cleanup\npreflight. Eligibility is not delete authority."},run_id:{$ref:"#/$defs/RunId"},target:{$ref:"#/$defs/WorkPlacementTargetV1"},task_id:{$ref:"#/$defs/TaskId"}},required:["task_id","run_id","target","occurred_at"],title:"AdmitWorkPlacementCommand",type:"object"},{$defs:{RunId:vL,TaskId:bE,UtcMicros:bX,WorkPlacementBlockerV1:$B,WorkPlacementIdentityV1:$K,WorkPlacementKindV1:$J,WorkPlacementStateV1:$Z,WorkPlacementTargetV1:$Q},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"One run's durable placement relation.",properties:{authority_version:{format:"uint64",minimum:0,type:"integer"},blockers:{items:{$ref:"#/$defs/WorkPlacementBlockerV1"},type:"array",uniqueItems:!0},identity:{$ref:"#/$defs/WorkPlacementIdentityV1"},retention_eligible_at:{anyOf:[{$ref:"#/$defs/UtcMicros"},{type:"null"}],description:"When retention makes this placement *eligible* for a fresh cleanup\npreflight. Eligibility is not delete authority."},state:{$ref:"#/$defs/WorkPlacementStateV1"},target:{$ref:"#/$defs/WorkPlacementTargetV1"},transitioned_at:{$ref:"#/$defs/UtcMicros"}},required:["identity","target","state","authority_version","transitioned_at","blockers"],title:"WorkPlacementV1",type:"object"},{$defs:{CommitId:hI,RefId:vf,WorkEffectStateV1:$g,WorkJobBaseV1:{additionalProperties:!1,description:"The source revision every attempt in the job starts from.",properties:{commit:{$ref:"#/$defs/CommitId"},reference:{anyOf:[{$ref:"#/$defs/RefId"},{type:"null"}]}},required:["commit"],type:"object"},WorkJobKeyV1:$F,WorkJobNameV1:{description:"A job name: `[a-z0-9-]`, 1 to 48 bytes. Identities derive from it.",type:"string"},WorkJobSynthesisV1:{additionalProperties:!1,properties:{instructions:{type:"string"},output_name:{$ref:"#/$defs/WorkflowOutputName"},task:{$ref:"#/$defs/WorkJobKeyV1",description:"The synthesis attempt runs under this task's run and execution snapshot."}},required:["task","output_name","instructions"],type:"object"},WorkJobTaskV1:{additionalProperties:!1,properties:{instructions:{type:"string"},key:{$ref:"#/$defs/WorkJobKeyV1"},placement:{$ref:"#/$defs/WorkPlacementTargetV1"},title:{type:"string"}},required:["key","title","instructions","placement"],type:"object"},WorkPlacementKindV1:$J,WorkPlacementTargetV1:$Q,WorkflowOutputName:SL},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"One guided job: the tasks to run in parallel, where each runs, and the\nsynthesis that reviews them.",properties:{base:{$ref:"#/$defs/WorkJobBaseV1"},effect_state:{$ref:"#/$defs/WorkEffectStateV1"},job:{$ref:"#/$defs/WorkJobNameV1"},synthesis:{$ref:"#/$defs/WorkJobSynthesisV1"},tasks:{items:{$ref:"#/$defs/WorkJobTaskV1"},type:"array"},title:{type:"string"}},required:["job","title","base","effect_state","tasks","synthesis"],title:"AdvanceWorkJobRequestV1",type:"object"},{$defs:{ActorId:f$,AdmittedWorkExecutionV1:{additionalProperties:!1,description:"Execution admission together with the immutable provider snapshot licensed\nby the accepted proposal and current configuration authority.",properties:{execution_snapshot:{$ref:"#/$defs/WorkExecutionSnapshot"},mutation:{$ref:"#/$defs/WorkProductMutationReceiptV1"}},required:["mutation","execution_snapshot"],type:"object"},ApplicationExecutionFailureClassV1:{description:"Stable non-retryable class for an admitted execution failure.",enum:["denied","malformed_output","permanent"],type:"string"},ApplicationProblemDetailV1:fW,ApplicationProblemKind:{description:"Stable problem-code taxonomy for request failures and admitted terminals.",enum:["invalid_request","not_found_or_not_authorized","conflict","partial_effect","stale","unsupported","unavailable","execution_failed","reset_required","saturated","cancelled","timed_out"],type:"string"},ApplicationProblemRecord:{additionalProperties:!1,description:"Stable application problem record shared verbatim by every adapter.",properties:{cancellation_stage:{$ref:"#/$defs/RequiredNullable3"},code:{type:"string"},committed_receipt:{$ref:"#/$defs/RequiredNullable2",description:"A committed effect is present only for an admitted partial effect.\nThe nullable field is always serialized: omitting it would create a\ncompatibility/default path that could hide a missing receipt."},coverage:{anyOf:[{$ref:"#/$defs/EvidenceCoverage"},{type:"null"}]},detail:{$ref:"#/$defs/RequiredNullable",description:"The structured facts `message` is rendered from, when the problem has\nany. Always serialized so a client never mistakes an omitted detail\nfor a problem without one."},details:{items:{$ref:"#/$defs/SafeDiagnostic"},type:"array"},diagnostic:{anyOf:[{$ref:"#/$defs/SafeDiagnostic"},{type:"null"}]},execution_failure_classification:{$ref:"#/$defs/RequiredNullable5"},kind:{$ref:"#/$defs/ApplicationProblemKind"},legal_actions:{items:{$ref:"#/$defs/LegalAction"},type:"array"},message:{type:"string"},owning_layer:{$ref:"#/$defs/ProblemOwningLayer"},request_id:{type:"string"},retry:{$ref:"#/$defs/RetryDirective"},retry_after_millis:{format:"uint64",minimum:0,type:["integer","null"]},retry_scope:{anyOf:[{$ref:"#/$defs/RetryScope"},{type:"null"}]},retryable:{type:"boolean"},revision:{format:"uint32",minimum:0,type:"integer"},terminality:{$ref:"#/$defs/ProblemTerminality"},trace_id:{type:"string"},unavailable_classification:{$ref:"#/$defs/RequiredNullable4"}},required:["revision","kind","code","message","detail","committed_receipt","owning_layer","terminality","retryable","retry","cancellation_stage","unavailable_classification","execution_failure_classification","request_id","trace_id","details","legal_actions"],type:"object"},ApplicationUnavailableClassV1:{description:"Stable reason an application authority is unavailable.",enum:["authority","backend_unavailable","backend_disconnected","backend_retryable"],type:"string"},AttemptId:fM,AutomaticWorktreeGcV1:fL,BrainId:f0,BranchCollisionPolicyV1:f2,BranchNameComponentV1:f4,BranchNameSeparatorV1:f6,BranchNamingPolicyV1:f3,BranchTopologyKindV1:hr,BranchTopologyPolicyV1:hi,CancellationStage:hs,CanonicalGitRefNameV1:hc,CanonicalGitRefPrefix:hl,CapabilityId:hp,CatalogGenerationId:hu,CommitId:hI,ConfigurationRevisionId:hN,ConfigurationSnapshotId:hz,CoverageCompleteness:ym,CoverageDomainState:yf,CredentialReferenceId:yy,CrossMergeModeV1:yg,CrossMergePolicyV1:y_,DaemonServiceUnitObservationV1:yv,DiagnosticsSearchedTsconfigV1:yk,EffectClass:yq,EffectReceipt:yI,EffectTermination:yx,EvidenceCoverage:yj,EvidenceDomain:yC,GitHubStackedPullRequestPolicyV1:gP,HistoryRewritePolicyV1:gL,LegalAction:{description:"Bounded action an adapter may offer without inferring executable authority.",enum:["correct_request","reauthorize","refresh","retry","reconcile","reset","restart_without_cursor","contact_administrator"],type:"string"},LocatorDigest:_i,ManifestDigest:_p,ProblemOwningLayer:{description:"Layer that owns resolving the problem rather than merely presenting it.",enum:["adapter","application","runtime","port"],type:"string"},ProblemTerminality:{description:"Whether the problem occurred before admission or is an admitted terminal.",enum:["pre_admission","admitted_terminal"],type:"string"},ProjectId:_6,ProposalId:_7,ProtectedRefDispositionV1:ve,ProtectedRefRuleV1:vt,ProtectedRefSelectorV1:vr,ProviderId:vn,RefId:vf,RepositoryId:v$,RepositoryPlacementScopeV1:vS,RequiredCheckExpectationV1:vk,RequiredCheckV1:vw,RequiredNullable:{anyOf:[{$ref:"#/$defs/ApplicationProblemDetailV1"},{type:"null"}],description:"Unlike `Option`, this wrapper distinguishes an explicit JSON `null`\nfrom an omitted field. New terminal-state fields must be present on every\nrecord so a missing committed receipt cannot be mistaken for `None`."},RequiredNullable2:{anyOf:[{$ref:"#/$defs/EffectReceipt"},{type:"null"}],description:"Unlike `Option`, this wrapper distinguishes an explicit JSON `null`\nfrom an omitted field. New terminal-state fields must be present on every\nrecord so a missing committed receipt cannot be mistaken for `None`."},RequiredNullable3:{anyOf:[{$ref:"#/$defs/CancellationStage"},{type:"null"}],description:"Unlike `Option`, this wrapper distinguishes an explicit JSON `null`\nfrom an omitted field. New terminal-state fields must be present on every\nrecord so a missing committed receipt cannot be mistaken for `None`."},RequiredNullable4:{anyOf:[{$ref:"#/$defs/ApplicationUnavailableClassV1"},{type:"null"}],description:"Unlike `Option`, this wrapper distinguishes an explicit JSON `null`\nfrom an omitted field. New terminal-state fields must be present on every\nrecord so a missing committed receipt cannot be mistaken for `None`."},RequiredNullable5:{anyOf:[{$ref:"#/$defs/ApplicationExecutionFailureClassV1"},{type:"null"}],description:"Unlike `Option`, this wrapper distinguishes an explicit JSON `null`\nfrom an omitted field. New terminal-state fields must be present on every\nrecord so a missing committed receipt cannot be mistaken for `None`."},ResolvedScope:vP,RetrievalAnchorId:vx,RetryDirective:{description:"Safe adapter-independent retry instruction. Adapters preserve it verbatim.",enum:["never","same_request","after_delay","after_revalidate","after_reconcile"],type:"string"},RetryScope:{description:"Request identity boundary within which a retry remains valid.",enum:["same_request","same_operation","fresh_request"],type:"string"},ReviewRequirementV1:vA,ReviewTopologyKindV1:vW,ReviewTopologyPolicyV1:vM,RunId:vL,SafeDiagnostic:{additionalProperties:!1,description:"Sanitized detail that may cross the application boundary.",properties:{code:{type:"string"},message:{type:"string"}},required:["code","message"],type:"object"},SensitiveFilesystemLocatorV1:v3,SourceStoreId:bw,TaskEvidenceLinkV1:bT,TaskId:bE,TopologyConcurrencyPolicyV1:bH,TopologyEscalationPolicyV1:bG,TopologyGatePolicyV1:bB,TopologyNotificationLevelV1:bK,UseCaseId:bZ,UserProfileId:bQ,UtcMicros:bX,VerifiedWorkGraphVersionV1:b1,WorkAcceptanceCriterionV1:b0,WorkApprovalPolicy:b2,WorkArtifactId:b4,WorkArtifactRefV1:b6,WorkAttemptIdentityV1:b9,WorkAttemptProgressV1:b7,WorkAttemptProjectionBindingV1:$e,WorkAttemptStateV1:$i,WorkAttemptV1:$s,WorkCancellationAcknowledgementV1:$d,WorkCancellationEscalationV1:$c,WorkCancellationRequestId:$l,WorkCancellationRequestV1:$p,WorkCancellationStateV1:$u,WorkCommandId:$m,WorkEffectStateV1:$g,WorkEgressPolicy:$v,WorkExecutableReference:$w,WorkExecutionEnvelopeV1:$P,WorkExecutionLimits:$V,WorkExecutionSnapshot:$R,WorkFallbackTopology:$x,WorkFenceEpochV1:$j,WorkFilesystemPolicy:$C,WorkGraphChangeV1:$T,WorkHandoffV1:$W,WorkHierarchyV1:$M,WorkInitiativeV1:$N,WorkItemInputV1:$z,WorkItemV1:$D,WorkJobIdentitiesV1:{additionalProperties:!1,properties:{operation:{$ref:"#/$defs/WorkflowOperationRef"},synthesis:{$ref:"#/$defs/WorkAttemptIdentityV1"},tasks:{items:{$ref:"#/$defs/WorkJobTaskIdentitiesV1"},type:"array"}},required:["operation","tasks","synthesis"],type:"object"},WorkJobKeyV1:$F,WorkJobStateV1:{oneOf:[{additionalProperties:!1,description:"The call's deadline floor arrived with work left; call again now.",properties:{state:{const:"advancing",type:"string"}},required:["state"],type:"object"},{additionalProperties:!1,description:"Nothing can move until providers, routing, or capacity progress.",properties:{on:{items:{$ref:"#/$defs/WorkJobWaitV1"},type:"array"},state:{const:"waiting",type:"string"}},required:["state","on"],type:"object"},{additionalProperties:!1,description:"The chain stopped at `step`. `problem` is the record the step's own\noperation produced, or a guided refusal naming the job-level cause.",properties:{problem:{$ref:"#/$defs/ApplicationProblemRecord"},state:{const:"refused",type:"string"},step:{$ref:"#/$defs/WorkJobStepV1"}},required:["state","step","problem"],type:"object"},{additionalProperties:!1,properties:{sources:{items:{$ref:"#/$defs/WorkAttemptV1"},type:"array"},state:{const:"completed",type:"string"},synthesis:{$ref:"#/$defs/WorkAttemptV1"}},required:["state","sources","synthesis"],type:"object"}]},WorkJobStepRecordV1:{additionalProperties:!1,description:"A step this call executed, with its operation's own effect receipt.",properties:{receipt:{$ref:"#/$defs/EffectReceipt"},request_id:{type:"string"},result:{$ref:"#/$defs/WorkJobStepResultV1"},step:{$ref:"#/$defs/WorkJobStepV1"}},required:["step","request_id","receipt","result"],type:"object"},WorkJobStepResultV1:{description:"Every arm is an existing Work operation's own output.",oneOf:[{properties:{result:{const:"graph",type:"string"},value:{$ref:"#/$defs/WorkProductMutationReceiptV1"}},required:["result","value"],type:"object"},{properties:{result:{const:"execution",type:"string"},value:{$ref:"#/$defs/AdmittedWorkExecutionV1"}},required:["result","value"],type:"object"},{properties:{result:{const:"placement",type:"string"},value:{$ref:"#/$defs/WorkPlacementV1"}},required:["result","value"],type:"object"},{properties:{result:{const:"attempt",type:"string"},value:{$ref:"#/$defs/WorkAttemptV1"}},required:["result","value"],type:"object"},{properties:{result:{const:"synthesis",type:"string"},value:{$ref:"#/$defs/WorkSynthesisAttemptV1"}},required:["result","value"],type:"object"}]},WorkJobStepV1:{description:"One existing Work operation the guided job runs. There is deliberately no\narm that advances a job, so a step can never recurse into the guided path.",oneOf:[{additionalProperties:!1,properties:{step:{const:"create_task",type:"string"},task:{$ref:"#/$defs/WorkJobKeyV1"}},required:["step","task"],type:"object"},{additionalProperties:!1,properties:{step:{const:"accept_proposal",type:"string"},task:{$ref:"#/$defs/WorkJobKeyV1"}},required:["step","task"],type:"object"},{additionalProperties:!1,properties:{step:{const:"admit_execution",type:"string"},task:{$ref:"#/$defs/WorkJobKeyV1"}},required:["step","task"],type:"object"},{additionalProperties:!1,properties:{step:{const:"admit_placement",type:"string"},task:{$ref:"#/$defs/WorkJobKeyV1"}},required:["step","task"],type:"object"},{additionalProperties:!1,properties:{step:{const:"start_source",type:"string"},task:{$ref:"#/$defs/WorkJobKeyV1"}},required:["step","task"],type:"object"},{additionalProperties:!1,properties:{step:{const:"await_sources",type:"string"}},required:["step"],type:"object"},{additionalProperties:!1,properties:{step:{const:"synthesize",type:"string"}},required:["step"],type:"object"},{additionalProperties:!1,properties:{step:{const:"await_synthesis",type:"string"}},required:["step"],type:"object"},{additionalProperties:!1,properties:{step:{const:"release_placement",type:"string"},task:{$ref:"#/$defs/WorkJobKeyV1"}},required:["step","task"],type:"object"}]},WorkJobTaskIdentitiesV1:{additionalProperties:!1,properties:{key:{$ref:"#/$defs/WorkJobKeyV1"},proposal_id:{$ref:"#/$defs/ProposalId"},source:{$ref:"#/$defs/WorkAttemptIdentityV1"}},required:["key","proposal_id","source"],type:"object"},WorkJobWaitV1:{oneOf:[{additionalProperties:!1,description:"The proposal route abstained, as it does while routing warms.",properties:{reason:{type:"string"},task:{$ref:"#/$defs/WorkJobKeyV1"},wait:{const:"proposal_route",type:"string"}},required:["wait","task","reason"],type:"object"},{additionalProperties:!1,properties:{identity:{$ref:"#/$defs/WorkAttemptIdentityV1"},state:{$ref:"#/$defs/WorkAttemptStateV1"},wait:{const:"attempt",type:"string"}},required:["wait","identity","state"],type:"object"},{additionalProperties:!1,description:"The registered topology has no free attempt slot for this task.",properties:{problem:{$ref:"#/$defs/ApplicationProblemRecord"},task:{$ref:"#/$defs/WorkJobKeyV1"},wait:{const:"capacity",type:"string"}},required:["wait","task","problem"],type:"object"}]},WorkLeaseFenceV1:$L,WorkLeaseId:$U,WorkMilestoneV1:$H,WorkPlacementBlockerV1:$B,WorkPlacementIdentityV1:$K,WorkPlacementKindV1:$J,WorkPlacementStateV1:$Z,WorkPlacementTargetV1:$Q,WorkPlacementV1:$X,WorkPlanV1:$Y,WorkProductAuthorizedRelationScopeV1:$1,WorkProductEventEvidenceV1:$0,WorkProductEventPayloadV1:$2,WorkProductEventV1:$4,WorkProductGraphV1:$3,WorkProductMutationReceiptV1:$5,WorkProductProfileScopeV1:$8,WorkProposalDecisionV1:Sr,WorkProposalDispositionV1:Si,WorkProposalV1:So,WorkProposedChildV1:Sn,WorkProviderBackendV1:Ss,WorkProviderProtocol:Sc,WorkProviderRouteId:Sl,WorkProviderRouteV1:Sp,WorkRecoveryStateV1:Su,WorkRelationReplanDecisionV1:Sm,WorkRelationReplanProposalV1:Sf,WorkRestartReasonV1:Sh,WorkRouteDecisionV1:Sb,WorkSandboxPolicy:SV,WorkScoreKindV1:SR,WorkShapeAssessmentV1:Sq,WorkSizingV1:SI,WorkSynthesisAttemptV1:{description:"The typed outcome of a synthesis request: an admitted attempt, or the\nsealed unsynthesized set when synthesis could not truthfully begin.",oneOf:[{additionalProperties:!1,description:"The admitted synthesis attempt and everything it is accountable to.",properties:{attempt:{$ref:"#/$defs/WorkAttemptV1",description:"The leased (or idempotently replayed) synthesis attempt."},draft:{$ref:"#/$defs/WorkflowSynthesisDraft",description:"The citation obligation, complete by construction: the draft cites\nevery citable source digest and is verified downstream by\n[`crate::workflow_synthesis::verify_workflow_synthesis_draft`]."},groups:{description:"Disagreement structure over the succeeded sources.",items:{$ref:"#/$defs/WorkSynthesisEvidenceGroupV1"},type:"array"},source_set:{$ref:"#/$defs/WorkSynthesisSourceSetV1",description:"The sealed source envelopes the attempt was admitted against."},synthesis:{const:"admitted",type:"string"},uncited:{description:"Sources preserved without citations: failures, unknowns, and\nartifact-less successes, in the caller's requested order.",items:{$ref:"#/$defs/WorkAttemptIdentityV1"},type:"array"}},required:["synthesis","attempt","source_set","groups","draft","uncited"],type:"object"},{properties:{refusal:{$ref:"#/$defs/WorkSynthesisRefusalV1"},sources:{$ref:"#/$defs/WorkSynthesisSourceSetV1"},synthesis:{const:"unsynthesized",type:"string"}},required:["synthesis","sources","refusal"],type:"object"}]},WorkSynthesisEvidenceGroupV1:Sx,WorkSynthesisRefusalV1:Sj,WorkSynthesisSourceEnvelopeV1:SC,WorkSynthesisSourceOutcomeV1:ST,WorkSynthesisSourceSetV1:SO,WorkTerminalEvidenceV1:SA,WorkTopologyPolicyV1:SM,WorkflowOperationRef:SF,WorkflowOutputName:SL,WorkflowSynthesisDraft:SB,WorktreeCleanlinessRequirementV1:SK,WorktreeId:SJ,WorktreePlacementModeV1:SX,WorktreeRetentionPolicyV1:SY,WorktreeRootPolicyV1:S1},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"What one call did and where the job now stands.",properties:{job:{$ref:"#/$defs/WorkJobIdentitiesV1",description:"The derived identities, so the advanced operations can target them."},performed:{description:"Only the steps this call executed, in order.",items:{$ref:"#/$defs/WorkJobStepRecordV1"},type:"array"},state:{$ref:"#/$defs/WorkJobStateV1"}},required:["job","performed","state"],title:"AdvanceWorkJobResultV1",type:"object"},{$defs:{AttemptId:fM,RunId:vL,TaskId:bE},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{attempt_id:{$ref:"#/$defs/AttemptId"},run_id:{$ref:"#/$defs/RunId"},task_id:{$ref:"#/$defs/TaskId"}},required:["task_id","run_id","attempt_id"],title:"WorkAttemptStatusRequestV1",type:"object"},{$defs:{AttemptId:fM,AutomaticWorktreeGcV1:fL,BranchCollisionPolicyV1:f2,BranchNameComponentV1:f4,BranchNameSeparatorV1:f6,BranchNamingPolicyV1:f3,BranchTopologyKindV1:hr,BranchTopologyPolicyV1:hi,CanonicalGitRefNameV1:hc,CanonicalGitRefPrefix:hl,CapabilityId:hp,CommitId:hI,ConfigurationRevisionId:hN,ConfigurationSnapshotId:hz,CredentialReferenceId:yy,CrossMergeModeV1:yg,CrossMergePolicyV1:y_,GitHubStackedPullRequestPolicyV1:gP,HistoryRewritePolicyV1:gL,LocatorDigest:_i,ManifestDigest:_p,ProjectId:_6,ProposalId:_7,ProtectedRefDispositionV1:ve,ProtectedRefRuleV1:vt,ProtectedRefSelectorV1:vr,ProviderId:vn,RefId:vf,RepositoryId:v$,RepositoryPlacementScopeV1:vS,RequiredCheckExpectationV1:vk,RequiredCheckV1:vw,ReviewRequirementV1:vA,ReviewTopologyKindV1:vW,ReviewTopologyPolicyV1:vM,RunId:vL,SensitiveFilesystemLocatorV1:v3,TaskId:bE,TopologyConcurrencyPolicyV1:bH,TopologyEscalationPolicyV1:bG,TopologyGatePolicyV1:bB,TopologyNotificationLevelV1:bK,UtcMicros:bX,WorkApprovalPolicy:b2,WorkArtifactId:b4,WorkArtifactRefV1:b6,WorkAttemptIdentityV1:b9,WorkAttemptProgressV1:b7,WorkAttemptProjectionBindingV1:$e,WorkAttemptStateV1:$i,WorkCancellationAcknowledgementV1:$d,WorkCancellationEscalationV1:$c,WorkCancellationRequestId:$l,WorkCancellationRequestV1:$p,WorkCancellationStateV1:$u,WorkEffectStateV1:$g,WorkEgressPolicy:$v,WorkExecutableReference:$w,WorkExecutionEnvelopeV1:$P,WorkExecutionLimits:$V,WorkExecutionSnapshot:$R,WorkFallbackTopology:$x,WorkFenceEpochV1:$j,WorkFilesystemPolicy:$C,WorkLeaseFenceV1:$L,WorkLeaseId:$U,WorkProviderBackendV1:Ss,WorkProviderProtocol:Sc,WorkProviderRouteId:Sl,WorkProviderRouteV1:Sp,WorkRecoveryStateV1:Su,WorkRestartReasonV1:Sh,WorkSandboxPolicy:SV,WorkTerminalEvidenceV1:SA,WorkTopologyPolicyV1:SM,WorkflowOperationRef:SF,WorktreeCleanlinessRequirementV1:SK,WorktreeId:SJ,WorktreePlacementModeV1:SX,WorktreeRetentionPolicyV1:SY,WorktreeRootPolicyV1:S1},$schema:"https://json-schema.org/draft/2020-12/schema",properties:{actual_route:{anyOf:[{$ref:"#/$defs/WorkProviderRouteV1"},{type:"null"}]},artifacts:{items:{$ref:"#/$defs/WorkArtifactRefV1"},type:"array"},cancellation:{$ref:"#/$defs/WorkCancellationStateV1"},execution:{$ref:"#/$defs/WorkExecutionEnvelopeV1"},identity:{$ref:"#/$defs/WorkAttemptIdentityV1"},lease:{$ref:"#/$defs/WorkLeaseFenceV1"},progress:{anyOf:[{$ref:"#/$defs/WorkAttemptProgressV1"},{type:"null"}]},projection_binding:{$ref:"#/$defs/WorkAttemptProjectionBindingV1"},recovery:{$ref:"#/$defs/WorkRecoveryStateV1"},requested_route:{$ref:"#/$defs/WorkProviderRouteV1"},state:{$ref:"#/$defs/WorkAttemptStateV1"},terminal:{anyOf:[{$ref:"#/$defs/WorkTerminalEvidenceV1"},{type:"null"}]}},required:["identity","projection_binding","execution","lease","state","artifacts","cancellation","recovery","requested_route"],title:"WorkAttemptV1",type:"object"},{$defs:{AttemptId:fM,RunId:vL,TaskId:bE,UtcMicros:bX,WorkCancellationRequestId:$l},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{attempt_id:{$ref:"#/$defs/AttemptId"},occurred_at:{$ref:"#/$defs/UtcMicros"},request_id:{$ref:"#/$defs/WorkCancellationRequestId"},run_id:{$ref:"#/$defs/RunId"},task_id:{$ref:"#/$defs/TaskId"}},required:["task_id","run_id","attempt_id","request_id","occurred_at"],title:"CancelWorkAttemptCommand",type:"object"},{$defs:{ManifestDigest:_p,ProjectId:_6,RepositoryId:v$,TaskId:bE,UtcMicros:bX,VerifiedWorkGraphVersionV1:b1,WorkProductAuthorizedRelationScopeV1:$1,WorkProductSelectionScopeV1:St},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{new_version:{$ref:"#/$defs/VerifiedWorkGraphVersionV1"},observed_at:{$ref:"#/$defs/UtcMicros"},old_version:{$ref:"#/$defs/VerifiedWorkGraphVersionV1"},selection:{$ref:"#/$defs/WorkProductSelectionScopeV1"},task_id:{$ref:"#/$defs/TaskId"}},required:["selection","task_id","old_version","new_version","observed_at"],title:"WorkProposalComparisonRequestV1",type:"object"},{$defs:{ActorId:f$,AttemptId:fM,ManifestDigest:_p,ProposalId:_7,ProviderId:vn,RetrievalAnchorId:vx,RunId:vL,TaskEvidenceLinkV1:bT,TaskId:bE,UtcMicros:bX,VerifiedWorkEvidenceRootV1:{additionalProperties:!1,properties:{item:{$ref:"#/$defs/WorkItemV1"},links:{items:{$ref:"#/$defs/TaskEvidenceLinkV1"},type:"array"},proposal_decisions:{items:{$ref:"#/$defs/WorkProposalDecisionV1"},type:"array"},relation_replan_decisions:{items:{$ref:"#/$defs/WorkRelationReplanDecisionV1"},type:"array"},relations:{items:{$ref:"#/$defs/WorkProductRelationV1"},type:"array"},verified_version:{$ref:"#/$defs/VerifiedWorkGraphVersionV1"}},required:["verified_version","item","relations","proposal_decisions","relation_replan_decisions","links"],type:"object"},VerifiedWorkGraphVersionV1:b1,WorkAcceptanceCriterionV1:b0,WorkAttemptIdentityV1:b9,WorkHandoffV1:$W,WorkHierarchyV1:$M,WorkItemInputV1:$z,WorkItemV1:$D,WorkProductRelationV1:$7,WorkProposalComparisonEffectV1:{oneOf:[{const:"advisory_only",description:"Comparison is evidence only. There is no apply edge from this result.",type:"string"}]},WorkProposalDecisionV1:Sr,WorkProposalDispositionV1:Si,WorkProposalV1:So,WorkProposedChildV1:Sn,WorkProviderRouteId:Sl,WorkProviderRouteV1:Sp,WorkRelationReplanDecisionV1:Sm,WorkRelationReplanProposalV1:Sf,WorkRouteDecisionV1:Sb,WorkScoreKindV1:SR,WorkShapeAssessmentV1:Sq,WorkSizingV1:SI},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{added_evidence:{items:{$ref:"#/$defs/TaskEvidenceLinkV1"},type:"array"},added_relations:{items:{$ref:"#/$defs/WorkProductRelationV1"},type:"array"},effect:{$ref:"#/$defs/WorkProposalComparisonEffectV1"},item_changed:{type:"boolean"},new:{$ref:"#/$defs/VerifiedWorkEvidenceRootV1"},old:{$ref:"#/$defs/VerifiedWorkEvidenceRootV1"},removed_evidence:{items:{$ref:"#/$defs/TaskEvidenceLinkV1"},type:"array"},removed_relations:{items:{$ref:"#/$defs/WorkProductRelationV1"},type:"array"},task_id:{$ref:"#/$defs/TaskId"}},required:["task_id","old","new","added_relations","removed_relations","added_evidence","removed_evidence","item_changed","effect"],title:"WorkProposalComparisonV1",type:"object"},{$defs:{ActorId:f$,AttemptId:fM,CatalogGenerationId:hu,ConfigurationRevisionId:hN,ManifestDigest:_p,ProjectId:_6,ProposalId:_7,ProviderId:vn,RepositoryId:v$,RetrievalAnchorId:vx,RunId:vL,SourceStoreId:bw,TaskId:bE,UtcMicros:bX,VerifiedWorkGraphVersionV1:b1,WorkAcceptanceCriterionV1:b0,WorkAttemptIdentityV1:b9,WorkCommandId:$m,WorkHandoffV1:$W,WorkHierarchyV1:$M,WorkInitiativeV1:$N,WorkItemInputV1:$z,WorkItemV1:$D,WorkMilestoneV1:$H,WorkPlanV1:$Y,WorkProductAuthorizedRelationScopeV1:$1,WorkProductEventEvidenceV1:$0,WorkProductExpectedAuthorityV1:$6,WorkProductMutationIdentityV1:$9,WorkProductRevisionPinsV1:Se,WorkProductSelectionScopeV1:St,WorkProviderRouteId:Sl,WorkProviderRouteV1:Sp,WorkRouteDecisionV1:Sb},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{initiative:{$ref:"#/$defs/WorkInitiativeV1"},item:{$ref:"#/$defs/WorkItemV1"},milestone:{$ref:"#/$defs/WorkMilestoneV1"},mutation:{$ref:"#/$defs/WorkProductMutationIdentityV1"},plan:{$ref:"#/$defs/WorkPlanV1"},selection:{$ref:"#/$defs/WorkProductSelectionScopeV1"}},required:["selection","initiative","plan","milestone","item","mutation"],title:"CreateWorkTaskRequestV1",type:"object"},{$defs:{WorkAttemptListCursorV1:b8},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{cursor:{anyOf:[{$ref:"#/$defs/WorkAttemptListCursorV1"},{type:"null"}],default:null},page_size:{format:"uint32",minimum:0,type:"integer"}},required:["page_size"],title:"WorkAttemptListRequestV1",type:"object"},{$defs:{AttemptId:fM,ManifestDigest:_p,RunId:vL,TaskId:bE,UtcMicros:bX,WorkAttemptIdentityV1:b9,WorkAttemptListCoverageV1:b5,WorkAttemptListCursorV1:b8,WorkAttemptStateV1:$i,WorkEffectStateV1:$g,WorkExecutionSpanV1:{additionalProperties:!1,properties:{admitted_projection_sequence:{description:"Durable Work projection sequence under which execution was admitted.",format:"uint64",minimum:0,type:"integer"},effect_state:{$ref:"#/$defs/WorkEffectStateV1"},ended_at:{anyOf:[{$ref:"#/$defs/UtcMicros"},{type:"null"}]},identity:{$ref:"#/$defs/WorkAttemptIdentityV1"},started_at:{$ref:"#/$defs/UtcMicros"},state:{$ref:"#/$defs/WorkAttemptStateV1"},terminal_evidence_digest:{anyOf:[{$ref:"#/$defs/ManifestDigest"},{type:"null"}]},wall_micros:{description:"Present only when both owner instants form a valid non-negative span.",format:"uint64",minimum:0,type:["integer","null"]}},required:["identity","admitted_projection_sequence","state","effect_state","started_at"],type:"object"},WorkExecutionTimingCoverageV1:{oneOf:[{additionalProperties:!1,properties:{coverage:{const:"complete",type:"string"}},required:["coverage"],type:"object"},{additionalProperties:!1,properties:{coverage:{const:"partial",type:"string"},invalid_terminal_span:{items:{$ref:"#/$defs/WorkAttemptIdentityV1"},type:"array"},missing_dispatch:{items:{$ref:"#/$defs/WorkAttemptIdentityV1"},type:"array"}},required:["coverage","missing_dispatch","invalid_terminal_span"],type:"object"}]},WorkObservedExecutionOrderBasisV1:{enum:["terminal_observed_at_then_admitted_projection_sequence_then_attempt_identity"],type:"string"},WorkObservedExecutionV1:{additionalProperties:!1,properties:{admitted_projection_sequence:{format:"uint64",minimum:0,type:"integer"},evidence_digest:{$ref:"#/$defs/ManifestDigest"},identity:{$ref:"#/$defs/WorkAttemptIdentityV1"},observed_at:{$ref:"#/$defs/UtcMicros"},ordinal:{description:"One-based order assigned after sorting the durable terminal instants.",format:"uint32",minimum:0,type:"integer"},state:{$ref:"#/$defs/WorkAttemptStateV1"}},required:["ordinal","identity","admitted_projection_sequence","observed_at","state","evidence_digest"],type:"object"}},$schema:"https://json-schema.org/draft/2020-12/schema",oneOf:[{additionalProperties:!1,properties:{state:{const:"absent",type:"string"}},required:["state"],type:"object"},{additionalProperties:!1,properties:{attempt_coverage:{$ref:"#/$defs/WorkAttemptListCoverageV1"},observed_order:{items:{$ref:"#/$defs/WorkObservedExecutionV1"},type:"array"},order_basis:{$ref:"#/$defs/WorkObservedExecutionOrderBasisV1"},spans:{items:{$ref:"#/$defs/WorkExecutionSpanV1"},type:"array"},state:{const:"listed",type:"string"},timing_coverage:{$ref:"#/$defs/WorkExecutionTimingCoverageV1"}},required:["state","spans","observed_order","order_basis","attempt_coverage","timing_coverage"],type:"object"}],title:"WorkExecutionHistoryV1"},{$defs:{ManifestDigest:_p,ProjectId:_6,RepositoryId:v$,TaskId:bE,UtcMicros:bX,VerifiedWorkGraphVersionV1:b1,WorkExpertiseCategoryV1:$q,WorkProductAuthorizedRelationScopeV1:$1,WorkProductSelectionScopeV1:St},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{evidence_not_before:{$ref:"#/$defs/UtcMicros",description:"Evidence before this owner-supplied horizon is excluded as stale."},expertise_categories:{description:"Categories for which the returned context will be used ephemerally.",items:{$ref:"#/$defs/WorkExpertiseCategoryV1"},type:"array",uniqueItems:!0},limit:{format:"uint32",minimum:0,type:"integer"},observed_at:{$ref:"#/$defs/UtcMicros"},selection:{$ref:"#/$defs/WorkProductSelectionScopeV1"},task_id:{$ref:"#/$defs/TaskId"},verified_version:{$ref:"#/$defs/VerifiedWorkGraphVersionV1"}},required:["selection","task_id","verified_version","evidence_not_before","expertise_categories","limit","observed_at"],title:"WorkExperienceRequestV1",type:"object"},{$defs:{ActorId:f$,AttemptId:fM,ConfigurationRevisionId:hN,ConfigurationSnapshotId:hz,ManifestDigest:_p,ObservationSourceIdentityV1:_N,ProposalId:_7,ProviderId:vn,RetrievalAnchorId:vx,RunId:vL,SessionId:be,TaskEvidenceLinkV1:bT,TaskId:bE,UtcMicros:bX,VerifiedWorkGraphVersionV1:b1,WorkAcceptanceCriterionV1:b0,WorkArtifactId:b4,WorkArtifactRefV1:b6,WorkAttemptEvidenceRecordV1:b3,WorkAttemptIdentityV1:b9,WorkAttemptProviderOutcomeV1:$t,WorkAttemptReceiptV1:$r,WorkAttemptStreamChannelV1:$o,WorkAttemptStreamSummaryV1:$n,WorkExperienceApplicabilityV1:{enum:["same_accepted_route","same_milestone"],type:"string"},WorkExperienceCandidateV1:{additionalProperties:!1,properties:{applicability:{description:"Separate declared applicability facts. This is intentionally not a\nscore and candidates remain in canonical TaskId order.",items:{$ref:"#/$defs/WorkExperienceApplicabilityV1"},type:"array",uniqueItems:!0},attempt_receipts:{description:"Exact receipts for accepted successful attempts whose sealed provider\nevidence and declared artifacts establish reusable observed work. The\nidentity is also the canonical `work_retrieve_evidence` drill target.",items:{$ref:"#/$defs/WorkAttemptReceiptV1"},type:"array"},evidence:{description:"Exact anchored evidence establishing that this is observed experience.",items:{$ref:"#/$defs/TaskEvidenceLinkV1"},type:"array"},item:{$ref:"#/$defs/WorkItemV1"}},required:["item","evidence","attempt_receipts","applicability"],type:"object"},WorkExperienceCoverageV1:{oneOf:[{additionalProperties:!1,properties:{coverage:{const:"unavailable",type:"string"}},required:["coverage"],type:"object"},{additionalProperties:!1,properties:{applicable:{format:"uint32",minimum:0,type:"integer"},coverage:{const:"complete",type:"string"},returned:{format:"uint32",minimum:0,type:"integer"},stale_excluded:{format:"uint32",minimum:0,type:"integer"}},required:["coverage","returned","applicable","stale_excluded"],type:"object"},{additionalProperties:!1,properties:{applicable:{format:"uint32",minimum:0,type:"integer"},coverage:{const:"partial",type:"string"},omitted_by_limit:{format:"uint32",minimum:0,type:"integer"},returned:{format:"uint32",minimum:0,type:"integer"},stale_excluded:{format:"uint32",minimum:0,type:"integer"}},required:["coverage","returned","applicable","stale_excluded","omitted_by_limit"],type:"object"}]},WorkExpertiseAuthorizationV1:{oneOf:[{additionalProperties:!1,properties:{availability:{const:"available",type:"string"},categories:{items:{$ref:"#/$defs/WorkExpertiseCategoryV1"},type:"array",uniqueItems:!0},durability:{$ref:"#/$defs/WorkExpertiseContextDurabilityV1"},expires_at:{$ref:"#/$defs/UtcMicros"},pin:{$ref:"#/$defs/WorkExpertiseConsentPinV1"}},required:["availability","categories","expires_at","pin","durability"],type:"object"},{additionalProperties:!1,properties:{availability:{const:"unavailable",type:"string"},legal_actions:{items:{$ref:"#/$defs/WorkExpertiseLegalActionV1"},type:"array",uniqueItems:!0},pin:{$ref:"#/$defs/WorkExpertiseConsentPinV1"},reasons:{items:{$ref:"#/$defs/WorkExpertiseUnavailableReasonV1"},type:"array",uniqueItems:!0}},required:["availability","reasons","legal_actions","pin"],type:"object"}]},WorkExpertiseCategoryV1:$q,WorkExpertiseConsentPinV1:{additionalProperties:!1,properties:{configuration_digest:{$ref:"#/$defs/ManifestDigest"},configuration_revision:{$ref:"#/$defs/ConfigurationRevisionId"},configuration_snapshot:{$ref:"#/$defs/ConfigurationSnapshotId"},provenance_digest:{$ref:"#/$defs/ManifestDigest"}},required:["configuration_revision","configuration_snapshot","configuration_digest","provenance_digest"],type:"object"},WorkExpertiseContextDurabilityV1:{oneOf:[{const:"ephemeral_only",description:"Context is returned for this read only and cannot establish evidence,\nrouting, proposal acceptance, execution admission, or completion.",type:"string"}]},WorkExpertiseLegalActionV1:{enum:["grant_user_consent","grant_project_consent","renew_user_consent","renew_project_consent","allow_requested_categories"],type:"string"},WorkExpertiseUnavailableReasonV1:{enum:["user_consent_disabled","project_consent_disabled","user_consent_not_yet_effective","project_consent_not_yet_effective","user_consent_expired","project_consent_expired","requested_category_not_allowed"],type:"string"},WorkHandoffV1:$W,WorkHierarchyV1:$M,WorkItemInputV1:$z,WorkItemV1:$D,WorkProviderAvailabilityV1:Sa,WorkProviderBackendV1:Ss,WorkProviderFallbackRecordV1:Sd,WorkProviderRouteId:Sl,WorkProviderRouteV1:Sp,WorkRouteDecisionV1:Sb},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{candidates:{items:{$ref:"#/$defs/WorkExperienceCandidateV1"},type:"array"},coverage:{$ref:"#/$defs/WorkExperienceCoverageV1"},evidence_not_before:{$ref:"#/$defs/UtcMicros"},expertise:{$ref:"#/$defs/WorkExpertiseAuthorizationV1"},observed_at:{$ref:"#/$defs/UtcMicros"},task_id:{$ref:"#/$defs/TaskId"},verified_version:{$ref:"#/$defs/VerifiedWorkGraphVersionV1"}},required:["task_id","verified_version","evidence_not_before","observed_at","expertise","candidates","coverage"],title:"WorkExperienceV1",type:"object"},{$defs:{ManifestDigest:_p,ProjectId:_6,ProposalId:_7,RepositoryId:v$,TaskId:bE,UtcMicros:bX,WorkEvidenceFrontierV1:$$,WorkProductAuthorizedRelationScopeV1:$1,WorkProductSelectionScopeV1:St},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"Read-only proposal generation over one exact current product graph.",properties:{live_git_evidence:{anyOf:[{$ref:"#/$defs/WorkEvidenceFrontierV1"},{type:"null"}],default:null},occurred_at:{$ref:"#/$defs/UtcMicros"},proposal_id:{$ref:"#/$defs/ProposalId"},selection:{$ref:"#/$defs/WorkProductSelectionScopeV1"},task_id:{$ref:"#/$defs/TaskId"}},required:["selection","task_id","proposal_id","occurred_at"],title:"GenerateProposalRequest",type:"object"},{$defs:{ConfigurationRevisionId:hN,ManifestDigest:_p,PolicyIdentifierV1:{description:"A bounded, canonical identifier owned by the policy input schema.\n\nIt represents immutable references only; it is never a path, display\nlabel, provider account, branch name, or native object identifier.",type:"string"},ProposalId:_7,ProviderId:vn,TaskId:bE,UtcMicros:bX,VerifiedWorkGraphVersionV1:b1,WorkCalibratedSizingV1:{additionalProperties:!1,description:"Calibrated sizing. Emitted ONLY when support >= floor. Every field is\nnamed separately (Plan 06); `support_floor` carries the governing floor\ninto the record.",properties:{band:{$ref:"#/$defs/WorkOrdinalBandV1",description:"The sizing band itself: the stronger of the route's declared effort and\nthe derived shape magnitude, widened when the cohort error is high."},cohort:{description:"Identity of the cohort the sizing was calibrated over: the top-ranked\nroute id. Sizing from one cohort is never reused for another.",type:"string"},drift_valid:{description:"False when the cohort contains incomparable or stale observations, so a\nconsumer can refuse a sizing that drifted rather than silently trust it.",type:"boolean"},error:{$ref:"#/$defs/WorkOrdinalBandV1",description:"Observed adverse-outcome band over the cohort. An ordinal band, never a\nrate and never a probability."},horizon:{$ref:"#/$defs/UtcMicros",description:"Latest comparable observation in the cohort. Nothing after\n`evaluated_at` contributes, so the horizon never runs ahead of the input."},support:{description:"Count of comparable in-cohort outcomes backing this sizing.",format:"uint32",minimum:0,type:"integer"},support_floor:{description:"The floor that governed this emission, carried so replay shows which\nfloor applied rather than assuming the current constant.",format:"uint32",minimum:0,type:"integer"}},required:["cohort","horizon","support","support_floor","error","drift_valid","band"],type:"object"},WorkCalibrationEvidenceV1:{additionalProperties:!1,description:"Raw calibration values and their exact decision provenance.\n\nNo rate, probability, or composite score is derived here. Consumers see\nthe authority-supplied outcome rows, categorical uncertainty, and exact\ndenominator counts that produced the proposal's existing calibrated sizing.",properties:{cohort_route:{type:["string","null"]},comparable_outcomes:{format:"uint32",minimum:0,type:"integer"},eligible_route_count:{format:"uint32",minimum:0,type:"integer"},incomparable_outcomes:{format:"uint32",minimum:0,type:"integer"},provenance:{$ref:"#/$defs/WorkCalibrationProvenanceV1"},raw_outcomes:{items:{$ref:"#/$defs/WorkPriorOutcomeV1"},type:"array"},routes_with_outcomes:{format:"uint32",minimum:0,type:"integer"},uncertainty:{$ref:"#/$defs/WorkCalibrationUncertaintyV1"}},required:["raw_outcomes","eligible_route_count","routes_with_outcomes","comparable_outcomes","incomparable_outcomes","uncertainty","provenance"],type:"object"},WorkCalibrationProvenanceV1:{additionalProperties:!1,properties:{configuration_digest:{$ref:"#/$defs/ManifestDigest"},configuration_revision:{anyOf:[{$ref:"#/$defs/ConfigurationRevisionId"},{type:"null"}]},evaluated_at:{$ref:"#/$defs/UtcMicros"},evaluator_id:{type:"string"},evaluator_revision:{format:"uint64",minimum:0,type:"integer"},input_digest:{$ref:"#/$defs/ManifestDigest"},local_evidence:{anyOf:[{$ref:"#/$defs/WorkEvidenceFrontierV1"},{type:"null"}]}},required:["evaluator_id","evaluator_revision","input_digest","configuration_digest","evaluated_at"],type:"object"},WorkCalibrationUncertaintyV1:{enum:["supported","sparse","stale","incomparable"],type:"string"},WorkDecompositionProposalV1:{additionalProperties:!1,description:"A one-level decomposition proposal. Never recursive: a deeper split is a\nseparate sequenced capability, not something this evaluator may invent.",properties:{candidates:{description:"The proposed sketches, ordinal ascending from 0.",items:{$ref:"#/$defs/WorkSubtaskSketchV1"},type:"array"},rationale:{description:"Why the proposal was emitted, in the same ordered reason vocabulary the\ndecision uses.",items:{$ref:"#/$defs/WorkProposalReasonV1"},type:"array"}},required:["candidates","rationale"],type:"object"},WorkEvidenceFrontierV1:$$,WorkFrontierComparisonV1:{description:"Recorded relation between the two supplied frontiers. `Incomparable` means\nat least one side was absent; it is not collapsed into agreement.",enum:["agree","disagree","incomparable"],type:"string"},WorkOrdinalBandV1:$G,WorkPriorOutcomeV1:{additionalProperties:!1,description:"Cohort denominator. APPLICATION-supplied, never worker-supplied.\n\nA worker cannot widen its own calibration cohort, so a route cannot earn\ncalibrated sizing by reporting its own successes.",properties:{accepted:{description:"Whether the produced work was accepted.",type:"boolean"},escaped_defect:{description:"Whether a defect escaped review.",type:"boolean"},observed_at:{$ref:"#/$defs/UtcMicros",description:"When the outcome was observed. Outcomes later than `evaluated_at` are\nINCOMPARABLE and are excluded from support rather than trusted."},rework:{description:"Whether the accepted work required rework.",type:"boolean"},route_id:{description:"The route this outcome belongs to. May name a retired route; only\noutcomes matching the top-ranked route form the sizing cohort.",type:"string"},terminal:{$ref:"#/$defs/WorkPriorTerminalV1",description:"How the attempt terminated."}},required:["route_id","accepted","rework","escaped_defect","terminal","observed_at"],type:"object"},WorkPriorTerminalV1:{description:"How a prior attempt on a route ended. Recorded, never inferred.",enum:["succeeded","failed","timed_out","cancelled"],type:"string"},WorkProposalActionV1:{description:"The explicit command the decision recommends next. A recommendation never\nexecutes; each action names a separate version-checked application command.",enum:["proceed_to_acceptance","hold_for_dependencies","admit_execution","replan"],type:"string"},WorkProposalDecisionV1:{additionalProperties:!1,description:"One explained, replayable work-loop decision.",properties:{based_on_version:{format:"uint64",minimum:0,type:"integer"},configuration_digest:{$ref:"#/$defs/ManifestDigest"},configuration_revision:{anyOf:[{$ref:"#/$defs/ConfigurationRevisionId"},{type:"null"}]},decomposition:{anyOf:[{$ref:"#/$defs/WorkDecompositionProposalV1"},{type:"null"}],description:"One-level decomposition sketch, present only when more than one\ndependency is unresolved."},deterministic_fallback:{description:"True when the recommendation is the declared deterministic baseline\nselected because the evidence cannot support a stronger claim.",type:"boolean"},disposition:{$ref:"#/$defs/WorkProposalDispositionV1"},evaluator_id:{$ref:"#/$defs/PolicyIdentifierV1"},evaluator_revision:{format:"uint64",minimum:0,type:"integer"},frontier_comparison:{$ref:"#/$defs/WorkFrontierComparisonV1"},input_digest:{$ref:"#/$defs/ManifestDigest"},live_git_evidence:{anyOf:[{$ref:"#/$defs/WorkEvidenceFrontierV1"},{type:"null"}],description:"The live Git frontier, returned exactly as supplied."},local_evidence:{anyOf:[{$ref:"#/$defs/WorkEvidenceFrontierV1"},{type:"null"}],description:"The local code/session frontier, returned exactly as supplied."},ordered_reason_codes:{items:{$ref:"#/$defs/WorkProposalReasonV1"},type:"array"},policy_digest:{$ref:"#/$defs/ManifestDigest"},policy_revision:{format:"uint64",minimum:0,type:"integer"},recommended_action:{anyOf:[{$ref:"#/$defs/WorkProposalActionV1"},{type:"null"}]},route_plan:{anyOf:[{$ref:"#/$defs/WorkRoutePlanV1"},{type:"null"}],description:"The explained route plan. Present on every evaluation that reached the\ngates, including the one that found no eligible route."},shape:{anyOf:[{$ref:"#/$defs/WorkTaskShapeV1"},{type:"null"}],description:"Derived task shape. Absent on the invalid, cancelled, and deadline\nshort-circuits, where no planner claim is licensed."},sizing:{anyOf:[{$ref:"#/$defs/WorkCalibratedSizingV1"},{type:"null"}],description:"Calibrated sizing, present only when in-cohort support reached the\ngoverning floor. Absence is a recorded fact, never a fabricated estimate."},task_id:{$ref:"#/$defs/TaskId"}},required:["evaluator_id","evaluator_revision","input_digest","task_id","based_on_version","policy_revision","policy_digest","configuration_digest","disposition","deterministic_fallback","ordered_reason_codes","frontier_comparison"],type:"object"},WorkProposalDispositionV1:{description:"Exactly one disposition per decision.",enum:["allow","deny","abstain","indeterminate"],type:"string"},WorkProposalReasonV1:{enum:["invalid_request","request_cancelled","deadline_exceeded","frontier_agreement","frontier_disagreement","frontier_incomparable","task_accepted","runtime_coverage_partial","runtime_coverage_unavailable","terminal_evidence_observed","execution_in_flight","proposal_accepted","dependencies_unresolved","ready","insufficient_calibration_support","route_budget_exceeded","route_content_location_refused","route_evidence_sparse","route_evidence_stale","human_override_applied","no_eligible_routes","deterministic_baseline_selected"],type:"string"},WorkProposalV1:So,WorkProposedChildV1:Sn,WorkProviderRouteId:Sl,WorkProviderRouteV1:Sp,WorkRankedRouteV1:{additionalProperties:!1,description:"Ranked route. Dimensions stay SEPARATE. No scalar score field is permitted here.",properties:{autonomy:{$ref:"#/$defs/WorkOrdinalBandV1",description:"Autonomy fitness, echoed unmerged."},correctness:{$ref:"#/$defs/WorkOrdinalBandV1",description:"Correctness fitness, echoed so the ranking can be audited without the input."},cost:{$ref:"#/$defs/WorkOrdinalBandV1",description:"Cost fitness, oriented so `Highest` is best-fitting."},evidence_quality:{$ref:"#/$defs/WorkOrdinalBandV1",description:"Evidence-quality fitness, echoed unmerged."},latency:{$ref:"#/$defs/WorkOrdinalBandV1",description:"Latency fitness, oriented so `Highest` is best-fitting."},rank:{description:"Position in the ranking, ascending from 1.",format:"uint32",minimum:0,type:"integer"},route_id:{description:"The ranked route's identity.",type:"string"},sensitive_data_fitness:{$ref:"#/$defs/WorkOrdinalBandV1",description:"Sensitive-data fitness, echoed unmerged."}},required:["rank","route_id","correctness","sensitive_data_fitness","latency","cost","autonomy","evidence_quality"],type:"object"},WorkRouteDecisionV1:Sb,WorkRouteExclusionV1:{additionalProperties:!1,description:"One refused route and the single reason that refused it. Exclusion is\nrecorded rather than silent so a missing route is always explained.",properties:{reason:{$ref:"#/$defs/WorkProposalReasonV1",description:"The first limit the route failed, in the declared exclusion order."},route_id:{description:"The refused route's identity.",type:"string"}},required:["route_id","reason"],type:"object"},WorkRoutePlanV1:{additionalProperties:!1,description:"The explained route plan for one decision. Recommends; never dispatches.",properties:{coverage:{$ref:"#/$defs/WorkOrdinalBandV1",description:"Fraction-free ordinal coverage of the cohort evidence over the ranked set."},deterministic_baseline:{description:"The declared deterministic baseline, selected when evidence cannot support a\nstronger claim. Always names a route that survived exclusion, or None when none did.",type:["string","null"]},exclusions:{description:"Every refused route with its reason, in supplied order.",items:{$ref:"#/$defs/WorkRouteExclusionV1"},type:"array"},human_override_applied:{description:"True only when a recorded human override named a route that survived\nexclusion. An excluded or unknown override leaves ranking untouched.",type:"boolean"},ranked:{description:"Surviving routes in total, deterministic order, rank ascending from 1.",items:{$ref:"#/$defs/WorkRankedRouteV1"},type:"array"},uncertainty:{$ref:"#/$defs/WorkOrdinalBandV1",description:"Widens on sparse / stale / incomparable evidence."}},required:["ranked","exclusions","coverage","uncertainty","human_override_applied"],type:"object"},WorkScoreKindV1:SR,WorkShapeAssessmentV1:Sq,WorkSizingV1:SI,WorkSubtaskSketchV1:{additionalProperties:!1,description:"One level only (Q3). Read-only sketch; accepting it stays a separate version-checked command.",properties:{ordinal:{description:"Position in the proposal, ascending from 0. Stable across replays of the\nsame input.",format:"uint32",minimum:0,type:"integer"},shape:{$ref:"#/$defs/WorkTaskShapeKindV1",description:"Kind the sketch would carry if it were accepted as its own task."},summary:{description:"What the sketch covers, phrased from the declared counts alone.",type:"string"}},required:["ordinal","summary","shape"],type:"object"},WorkTaskShapeKindV1:{description:"Kind of work the snapshot facts describe. Derived only from facts already in\nthe input; `Unclassified` when those facts do not distinguish a kind.",enum:["investigation","change","synthesis","unclassified"],type:"string"},WorkTaskShapeV1:{additionalProperties:!1,description:"The derived shape of the task: what kind of work it is and how large the\ndeclared dependency and evidence counts make it.",properties:{band:{$ref:"#/$defs/WorkOrdinalBandV1",description:"Magnitude band derived from the declared dependency and evidence counts."},kind:{$ref:"#/$defs/WorkTaskShapeKindV1",description:"Kind derived from the gate booleans and counts. No new discovery."}},required:["kind","band"],type:"object"}},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"A canonical product proposal and the exact verified graph that licensed it.\n\n`proposal` can be moved directly into a `DecideWorkProposalRequestV1`;\ncallers use `verified_graph_version` to construct that mutation's CAS pin.",properties:{calibration:{$ref:"#/$defs/WorkCalibrationEvidenceV1"},decision:{$ref:"#/$defs/WorkProposalDecisionV1"},proposal:{$ref:"#/$defs/WorkProposalV1"},verified_graph_version:{$ref:"#/$defs/VerifiedWorkGraphVersionV1"}},required:["proposal","verified_graph_version","decision","calibration"],title:"GeneratedWorkProposal",type:"object"},{$defs:{WorkAttemptListCursorV1:b8},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"One authority-scoped artifact hydration request, paged like the attempt\nlist and pinned to the same verified topology generation.",properties:{cursor:{anyOf:[{$ref:"#/$defs/WorkAttemptListCursorV1"},{type:"null"}],default:null},page_size:{format:"uint32",minimum:0,type:"integer"}},required:["page_size"],title:"WorkArtifactHydrationRequestV1",type:"object"},{$defs:{AttemptId:fM,ManifestDigest:_p,ObservationSourceIdentityV1:_N,ProviderId:vn,RunId:vL,SessionId:be,TaskId:bE,UtcMicros:bX,WorkArtifactId:b4,WorkArtifactRefV1:b6,WorkAttemptArtifactsV1:{additionalProperties:!1,description:"The artifacts and evidence one attempt declared.",properties:{artifacts:{description:"Every artifact reference the attempt declared, in its canonical\nstored order. References carry digest and byte length; bytes are\nnever part of this read.",items:{$ref:"#/$defs/WorkArtifactRefV1"},type:"array"},evidence:{$ref:"#/$defs/WorkAttemptEvidenceStateV1"},identity:{$ref:"#/$defs/WorkAttemptIdentityV1"}},required:["identity","artifacts","evidence"],type:"object"},WorkAttemptEvidenceRecordV1:b3,WorkAttemptEvidenceStateV1:{description:"Whether an attempt's terminal evidence has been sealed. An attempt that\nhas not reported an outcome yet is a typed state, not a missing record.",oneOf:[{additionalProperties:!1,description:"The attempt has not sealed terminal evidence yet.",properties:{state:{const:"pending",type:"string"}},required:["state"],type:"object"},{additionalProperties:!1,description:"The sealed terminal evidence record, exactly as it was written.",properties:{record:{$ref:"#/$defs/WorkAttemptEvidenceRecordV1"},state:{const:"sealed",type:"string"}},required:["state","record"],type:"object"}]},WorkAttemptIdentityV1:b9,WorkAttemptListCoverageV1:b5,WorkAttemptListCursorV1:b8,WorkAttemptProviderOutcomeV1:$t,WorkAttemptStreamChannelV1:$o,WorkAttemptStreamSummaryV1:$n,WorkAttemptTopologyBindingV1:$a,WorkProviderAvailabilityV1:Sa,WorkProviderBackendV1:Ss,WorkProviderFallbackRecordV1:Sd,WorkProviderRouteId:Sl,WorkProviderRouteV1:Sp},$schema:"https://json-schema.org/draft/2020-12/schema",description:"One authority-scoped artifact hydration read. Absence of any Work in\nscope is a typed state, distinct from an authorized-but-empty page.",oneOf:[{additionalProperties:!1,description:"No Work exists in this authority scope, so there is no attempt set to\nhydrate. Concealed scopes never reach this state: they are refused as\nnot-found-or-not-authorized before any read.",properties:{state:{const:"absent",type:"string"}},required:["state"],type:"object"},{additionalProperties:!1,description:"One page of attempt artifact sets under the verified topology\nsnapshot.",properties:{attempts:{items:{$ref:"#/$defs/WorkAttemptArtifactsV1"},type:"array"},coverage:{$ref:"#/$defs/WorkAttemptListCoverageV1"},state:{const:"hydrated",type:"string"},topology:{$ref:"#/$defs/WorkAttemptTopologyBindingV1"}},required:["state","topology","attempts","coverage"],type:"object"}],title:"WorkArtifactHydrationV1"},{$defs:{AttemptId:fM,AutomaticWorktreeGcV1:fL,BranchCollisionPolicyV1:f2,BranchNameComponentV1:f4,BranchNameSeparatorV1:f6,BranchNamingPolicyV1:f3,BranchTopologyKindV1:hr,BranchTopologyPolicyV1:hi,CanonicalGitRefNameV1:hc,CanonicalGitRefPrefix:hl,CapabilityId:hp,CommitId:hI,ConfigurationRevisionId:hN,ConfigurationSnapshotId:hz,CredentialReferenceId:yy,CrossMergeModeV1:yg,CrossMergePolicyV1:y_,GitHubStackedPullRequestPolicyV1:gP,HistoryRewritePolicyV1:gL,LocatorDigest:_i,ManifestDigest:_p,ProjectId:_6,ProposalId:_7,ProtectedRefDispositionV1:ve,ProtectedRefRuleV1:vt,ProtectedRefSelectorV1:vr,ProviderId:vn,RefId:vf,RepositoryId:v$,RepositoryPlacementScopeV1:vS,RequiredCheckExpectationV1:vk,RequiredCheckV1:vw,ReviewRequirementV1:vA,ReviewTopologyKindV1:vW,ReviewTopologyPolicyV1:vM,RunId:vL,SensitiveFilesystemLocatorV1:v3,TaskId:bE,TopologyConcurrencyPolicyV1:bH,TopologyEscalationPolicyV1:bG,TopologyGatePolicyV1:bB,TopologyNotificationLevelV1:bK,UtcMicros:bX,WorkApprovalPolicy:b2,WorkArtifactId:b4,WorkArtifactRefV1:b6,WorkAttemptIdentityV1:b9,WorkAttemptListCoverageV1:b5,WorkAttemptListCursorV1:b8,WorkAttemptProgressV1:b7,WorkAttemptProjectionBindingV1:$e,WorkAttemptStateV1:$i,WorkAttemptTopologyBindingV1:$a,WorkAttemptV1:$s,WorkCancellationAcknowledgementV1:$d,WorkCancellationEscalationV1:$c,WorkCancellationRequestId:$l,WorkCancellationRequestV1:$p,WorkCancellationStateV1:$u,WorkEffectStateV1:$g,WorkEgressPolicy:$v,WorkExecutableReference:$w,WorkExecutionEnvelopeV1:$P,WorkExecutionLimits:$V,WorkExecutionSnapshot:$R,WorkFallbackTopology:$x,WorkFenceEpochV1:$j,WorkFilesystemPolicy:$C,WorkLeaseFenceV1:$L,WorkLeaseId:$U,WorkProviderBackendV1:Ss,WorkProviderProtocol:Sc,WorkProviderRouteId:Sl,WorkProviderRouteV1:Sp,WorkRecoveryStateV1:Su,WorkRestartReasonV1:Sh,WorkSandboxPolicy:SV,WorkTerminalEvidenceV1:SA,WorkTopologyPolicyV1:SM,WorkflowOperationRef:SF,WorktreeCleanlinessRequirementV1:SK,WorktreeId:SJ,WorktreePlacementModeV1:SX,WorktreeRetentionPolicyV1:SY,WorktreeRootPolicyV1:S1},$schema:"https://json-schema.org/draft/2020-12/schema",description:"One authority-scoped attempt-list read. Absence of any Work in scope is a\ntyped state, distinct from an authorized-but-empty page.",oneOf:[{additionalProperties:!1,description:"No Work exists in this authority scope, so there is no attempt set to\npage. Concealed scopes never reach this state: they are refused as\nnot-found-or-not-authorized before any read.",properties:{state:{const:"absent",type:"string"}},required:["state"],type:"object"},{additionalProperties:!1,description:"One page of durable attempts under the verified topology snapshot.",properties:{attempts:{items:{$ref:"#/$defs/WorkAttemptV1"},type:"array"},coverage:{$ref:"#/$defs/WorkAttemptListCoverageV1"},state:{const:"listed",type:"string"},topology:{$ref:"#/$defs/WorkAttemptTopologyBindingV1"}},required:["state","topology","attempts","coverage"],type:"object"}],title:"WorkAttemptListV1"},{$defs:{AcceptWorkTaskRequestV1:{additionalProperties:!1,properties:{evidence_by_criterion:{additionalProperties:{type:"string"},type:"object"},mutation:{$ref:"#/$defs/WorkProductMutationIdentityV1"},selection:{$ref:"#/$defs/WorkProductSelectionScopeV1"},task_id:{$ref:"#/$defs/TaskId"}},required:["selection","task_id","evidence_by_criterion","mutation"],type:"object"},ActorId:f$,AddWorkTaskRequestV1:{additionalProperties:!1,properties:{item:{$ref:"#/$defs/WorkItemV1"},mutation:{$ref:"#/$defs/WorkProductMutationIdentityV1"},selection:{$ref:"#/$defs/WorkProductSelectionScopeV1"}},required:["selection","item","mutation"],type:"object"},AdmitWorkExecutionRequestV1:{additionalProperties:!1,properties:{based_on_version:{format:"uint64",minimum:0,type:"integer"},mutation:{$ref:"#/$defs/WorkProductMutationIdentityV1"},selection:{$ref:"#/$defs/WorkProductSelectionScopeV1"},task_id:{$ref:"#/$defs/TaskId"}},required:["selection","task_id","based_on_version","mutation"],type:"object"},ApplyWorkRelationReplanRequestV1:{additionalProperties:!1,properties:{mutation:{$ref:"#/$defs/WorkProductMutationIdentityV1"},proposal_id:{$ref:"#/$defs/ProposalId"},selection:{$ref:"#/$defs/WorkProductSelectionScopeV1"}},required:["selection","proposal_id","mutation"],type:"object"},AttemptId:fM,CatalogGenerationId:hu,ConfigurationRevisionId:hN,CreateWorkProductRequestV1:{additionalProperties:!1,properties:{initial_graph:{$ref:"#/$defs/WorkProductGraphV1"},mutation:{$ref:"#/$defs/WorkProductMutationIdentityV1"},selection:{$ref:"#/$defs/WorkProductSelectionScopeV1"}},required:["selection","initial_graph","mutation"],type:"object"},CreateWorkTaskRequestV1:{additionalProperties:!1,properties:{initiative:{$ref:"#/$defs/WorkInitiativeV1"},item:{$ref:"#/$defs/WorkItemV1"},milestone:{$ref:"#/$defs/WorkMilestoneV1"},mutation:{$ref:"#/$defs/WorkProductMutationIdentityV1"},plan:{$ref:"#/$defs/WorkPlanV1"},selection:{$ref:"#/$defs/WorkProductSelectionScopeV1"}},required:["selection","initiative","plan","milestone","item","mutation"],type:"object"},DecideWorkProposalRequestV1:{additionalProperties:!1,properties:{disposition:{$ref:"#/$defs/WorkProposalDispositionV1"},mutation:{$ref:"#/$defs/WorkProductMutationIdentityV1"},proposal:{$ref:"#/$defs/WorkProposalV1"},selection:{$ref:"#/$defs/WorkProductSelectionScopeV1"}},required:["selection","proposal","disposition","mutation"],type:"object"},DecideWorkRelationReplanRequestV1:{additionalProperties:!1,properties:{disposition:{$ref:"#/$defs/WorkProposalDispositionV1"},mutation:{$ref:"#/$defs/WorkProductMutationIdentityV1"},proposal:{$ref:"#/$defs/WorkRelationReplanProposalV1"},selection:{$ref:"#/$defs/WorkProductSelectionScopeV1"}},required:["selection","proposal","disposition","mutation"],type:"object"},LinkAcceptedWorkAttemptRequestV1:{additionalProperties:!1,properties:{based_on_version:{format:"uint64",minimum:0,type:"integer"},identity:{$ref:"#/$defs/WorkAttemptIdentityV1"},mutation:{$ref:"#/$defs/WorkProductMutationIdentityV1"},selection:{$ref:"#/$defs/WorkProductSelectionScopeV1"},task_id:{$ref:"#/$defs/TaskId"}},required:["selection","task_id","based_on_version","identity","mutation"],type:"object"},ManifestDigest:_p,ProjectId:_6,ProposalId:_7,ProviderId:vn,RecordWorkHandoffRequestV1:{additionalProperties:!1,properties:{handoff:{$ref:"#/$defs/WorkHandoffV1"},mutation:{$ref:"#/$defs/WorkProductMutationIdentityV1"},selection:{$ref:"#/$defs/WorkProductSelectionScopeV1"}},required:["selection","handoff","mutation"],type:"object"},RepositoryId:v$,RetrievalAnchorId:vx,RunId:vL,SourceStoreId:bw,TaskEvidenceLinkV1:bT,TaskId:bE,UtcMicros:bX,VerifiedWorkGraphVersionV1:b1,WorkAcceptanceCriterionV1:b0,WorkAttemptIdentityV1:b9,WorkCommandId:$m,WorkHandoffV1:$W,WorkHierarchyV1:$M,WorkInitiativeV1:$N,WorkItemInputV1:$z,WorkItemV1:$D,WorkMilestoneV1:$H,WorkPlanV1:$Y,WorkProductAuthorizedRelationScopeV1:$1,WorkProductEventEvidenceV1:$0,WorkProductExpectedAuthorityV1:$6,WorkProductGraphV1:$3,WorkProductMutationIdentityV1:$9,WorkProductRevisionPinsV1:Se,WorkProductSelectionScopeV1:St,WorkProposalDecisionV1:Sr,WorkProposalDispositionV1:Si,WorkProposalV1:So,WorkProposedChildV1:Sn,WorkProviderRouteId:Sl,WorkProviderRouteV1:Sp,WorkRelationReplanDecisionV1:Sm,WorkRelationReplanProposalV1:Sf,WorkRouteDecisionV1:Sb,WorkScoreKindV1:SR,WorkShapeAssessmentV1:Sq,WorkSizingV1:SI},$schema:"https://json-schema.org/draft/2020-12/schema",description:"Closed public mutation surface for the Work-product graph authority.",oneOf:[{properties:{mutation:{const:"create",type:"string"},request:{$ref:"#/$defs/CreateWorkProductRequestV1"}},required:["mutation","request"],type:"object"},{properties:{mutation:{const:"add_task",type:"string"},request:{$ref:"#/$defs/AddWorkTaskRequestV1"}},required:["mutation","request"],type:"object"},{properties:{mutation:{const:"create_task",type:"string"},request:{$ref:"#/$defs/CreateWorkTaskRequestV1"}},required:["mutation","request"],type:"object"},{properties:{mutation:{const:"decide_proposal",type:"string"},request:{$ref:"#/$defs/DecideWorkProposalRequestV1"}},required:["mutation","request"],type:"object"},{properties:{mutation:{const:"decide_relation_replan",type:"string"},request:{$ref:"#/$defs/DecideWorkRelationReplanRequestV1"}},required:["mutation","request"],type:"object"},{properties:{mutation:{const:"apply_relation_replan",type:"string"},request:{$ref:"#/$defs/ApplyWorkRelationReplanRequestV1"}},required:["mutation","request"],type:"object"},{properties:{mutation:{const:"accept_task",type:"string"},request:{$ref:"#/$defs/AcceptWorkTaskRequestV1"}},required:["mutation","request"],type:"object"},{properties:{mutation:{const:"admit_execution",type:"string"},request:{$ref:"#/$defs/AdmitWorkExecutionRequestV1"}},required:["mutation","request"],type:"object"},{properties:{mutation:{const:"link_accepted_attempt",type:"string"},request:{$ref:"#/$defs/LinkAcceptedWorkAttemptRequestV1"}},required:["mutation","request"],type:"object"},{properties:{mutation:{const:"record_handoff",type:"string"},request:{$ref:"#/$defs/RecordWorkHandoffRequestV1"}},required:["mutation","request"],type:"object"}],title:"WorkProductMutationRequestV1",type:"object"},{$defs:{RunId:vL,TaskId:bE,UtcMicros:bX,WorkRunControlReasonV1:Sk},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{expected_authority_version:{default:null,description:'The authority version the caller read. Absent means "no control row was\npublished yet"; a mismatch is a conflict, never an overwrite.',format:"uint64",minimum:0,type:["integer","null"]},occurred_at:{$ref:"#/$defs/UtcMicros"},reason:{$ref:"#/$defs/WorkRunControlReasonV1"},run_id:{$ref:"#/$defs/RunId"},task_id:{$ref:"#/$defs/TaskId"}},required:["task_id","run_id","reason","occurred_at"],title:"PauseWorkRunCommand",type:"object"},{$defs:{AttemptId:fM,RunId:vL,TaskId:bE,UtcMicros:bX,WorkRunControlAuthorityV1:SS,WorkRunControlReasonV1:Sk,WorkRunControlStateV1:Sw,WorkRunDeadlineCheckpointV1:SP},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"One run's durable control aggregate.",properties:{authority:{$ref:"#/$defs/WorkRunControlAuthorityV1"},deadline:{$ref:"#/$defs/WorkRunDeadlineCheckpointV1"},fenced_attempts:{description:'The exact attempts that were live when the current state published.\nEmpty means "none were live", never "we did not look".',items:{$ref:"#/$defs/AttemptId"},type:"array"},reason:{anyOf:[{$ref:"#/$defs/WorkRunControlReasonV1"},{type:"null"}]},run_id:{$ref:"#/$defs/RunId"},state:{$ref:"#/$defs/WorkRunControlStateV1"},task_id:{$ref:"#/$defs/TaskId"},transitioned_at:{$ref:"#/$defs/UtcMicros"}},required:["task_id","run_id","state","authority","deadline","transitioned_at","fenced_attempts"],title:"WorkRunControlV1",type:"object"},{$defs:{RunId:vL,TaskId:bE,UtcMicros:bX,WorkPlacementKindV1:$J,WorkPlacementTargetV1:$Q},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{occurred_at:{$ref:"#/$defs/UtcMicros"},run_id:{$ref:"#/$defs/RunId"},target:{$ref:"#/$defs/WorkPlacementTargetV1"},task_id:{$ref:"#/$defs/TaskId"}},required:["task_id","run_id","target","occurred_at"],title:"WorkPlacementPreflightRequestV1",type:"object"},{$defs:{RunId:vL,TaskId:bE,UtcMicros:bX,WorkPlacementBlockerV1:$B,WorkPlacementIdentityV1:$K,WorkPlacementKindV1:$J,WorkPlacementObservationV1:{additionalProperties:!1,description:'What was actually observed at the target, in counts rather than prose.\n\nCounts are measurements: a zero is "we looked and found none", and\n`readable: false` is the separate state for "we could not look". Collapsing\nthem would let an unreadable target read as a clean one.',properties:{active_holder:{description:"Whether another admitted placement already holds this target.",type:"boolean"},dirty_tracked_paths:{description:"Tracked paths that differ from the index or HEAD.",format:"uint32",minimum:0,type:"integer"},network_required:{description:"Whether the declared network-free placement would require network.",type:"boolean"},observed_at:{$ref:"#/$defs/UtcMicros"},readable:{description:"Whether the target could be read at all.",type:"boolean"},unique_commits:{description:'Commits in the target reachable from nowhere else.\n\n`None` means reachability was not measured, and it blocks removal\nexactly as a positive count does: an unmeasured target is "unknown"\nand is retained rather than assumed worthless. Only removal consults\nthis; admission does not.',format:"uint32",minimum:0,type:["integer","null"]},untracked_paths:{description:"Untracked paths present in the target.",format:"uint32",minimum:0,type:"integer"}},required:["dirty_tracked_paths","untracked_paths","readable","active_holder","network_required","observed_at"],title:"WorkPlacementObservationV1",type:"object"},WorkPlacementTargetV1:$Q},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"One placement preflight reading: what was asked for, what was seen, and\nexactly what blocks it.",properties:{blockers:{items:{$ref:"#/$defs/WorkPlacementBlockerV1"},type:"array",uniqueItems:!0},identity:{$ref:"#/$defs/WorkPlacementIdentityV1"},observation:{$ref:"#/$defs/WorkPlacementObservationV1"},target:{$ref:"#/$defs/WorkPlacementTargetV1"}},required:["identity","target","observation","blockers"],title:"WorkPlacementPreflightV1",type:"object"},{$defs:{RunId:vL,TaskId:bE},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{run_id:{$ref:"#/$defs/RunId"},task_id:{$ref:"#/$defs/TaskId"}},required:["task_id","run_id"],title:"WorkPlacementStatusRequestV1",type:"object"},{$defs:{RunId:vL,TaskId:bE,UtcMicros:bX,WorkPlacementBlockerV1:$B,WorkPlacementIdentityV1:$K,WorkPlacementKindV1:$J,WorkPlacementStateV1:$Z,WorkPlacementTargetV1:$Q,WorkPlacementV1:$X},$schema:"https://json-schema.org/draft/2020-12/schema",description:"One placement reading. Absence is a state, not an empty placement.",oneOf:[{additionalProperties:!1,description:"No placement was ever admitted for this run.",properties:{state:{const:"absent",type:"string"}},required:["state"],type:"object"},{additionalProperties:!1,description:"The durable placement relation.",properties:{placement:{$ref:"#/$defs/WorkPlacementV1"},state:{const:"placed",type:"string"}},required:["state","placement"],type:"object"}],title:"WorkPlacementReadingV1"},{$defs:{AttemptId:fM,CoverageStateV1:yh,DuplicateEffectOutcomeV1:yV,DuplicateEffortKindV1:yR,QuantityEvidenceClassV1:vd,RunId:vL,TaskId:bE,WorkAttemptIdentityV1:b9,WorkDuplicateAdjudicationQuantitiesV1:$y},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"Operator judgment before the owning Work authority binds exact current\ngenerations, relation revision, command identity, and observation time.",properties:{first_attempt:{$ref:"#/$defs/WorkAttemptIdentityV1"},quantities:{$ref:"#/$defs/WorkDuplicateAdjudicationQuantitiesV1"},reason:{type:"string"},second_attempt:{$ref:"#/$defs/WorkAttemptIdentityV1"},verdict:{$ref:"#/$defs/DuplicateEffortKindV1"}},required:["first_attempt","second_attempt","verdict","quantities","reason"],title:"PrepareWorkDuplicateAdjudicationRequestV1",type:"object"},{$defs:{ActorId:f$,AttemptId:fM,ManifestDigest:_p,ProjectId:_6,ProposalId:_7,ProviderId:vn,RepositoryId:v$,RetrievalAnchorId:vx,RunId:vL,SourceStoreId:bw,TaskId:bE,UtcMicros:bX,WorkAcceptanceCriterionV1:b0,WorkAttemptIdentityV1:b9,WorkHandoffV1:$W,WorkHierarchyV1:$M,WorkInitiativeV1:$N,WorkItemInputV1:$z,WorkItemV1:$D,WorkMilestoneV1:$H,WorkPlanV1:$Y,WorkProductAuthorizedRelationScopeV1:$1,WorkProductChangeDraftV1:{description:"Operator-selected graph change before the owning Work authority binds the\ncurrent verified head and revision authorities.",oneOf:[{properties:{change:{const:"add_task",type:"string"},item:{$ref:"#/$defs/WorkItemV1"}},required:["change","item"],type:"object"},{properties:{change:{const:"create_task",type:"string"},initiative:{$ref:"#/$defs/WorkInitiativeV1"},item:{$ref:"#/$defs/WorkItemV1"},milestone:{$ref:"#/$defs/WorkMilestoneV1"},plan:{$ref:"#/$defs/WorkPlanV1"}},required:["change","initiative","plan","milestone","item"],type:"object"},{properties:{change:{const:"decide_proposal",type:"string"},disposition:{$ref:"#/$defs/WorkProposalDispositionV1"},proposal:{$ref:"#/$defs/WorkProposalV1"}},required:["change","proposal","disposition"],type:"object"},{properties:{change:{const:"decide_relation_replan",type:"string"},disposition:{$ref:"#/$defs/WorkProposalDispositionV1"},proposal:{$ref:"#/$defs/WorkRelationReplanProposalV1"}},required:["change","proposal","disposition"],type:"object"},{properties:{change:{const:"apply_relation_replan",type:"string"},proposal_id:{$ref:"#/$defs/ProposalId"}},required:["change","proposal_id"],type:"object"},{properties:{change:{const:"accept_task",type:"string"},evidence_by_criterion:{additionalProperties:{type:"string"},type:"object"},task_id:{$ref:"#/$defs/TaskId"}},required:["change","task_id","evidence_by_criterion"],type:"object"},{properties:{change:{const:"admit_execution",type:"string"},task_id:{$ref:"#/$defs/TaskId"}},required:["change","task_id"],type:"object"},{properties:{change:{const:"link_accepted_attempt",type:"string"},identity:{$ref:"#/$defs/WorkAttemptIdentityV1"},task_id:{$ref:"#/$defs/TaskId"}},required:["change","task_id","identity"],type:"object"},{properties:{change:{const:"record_handoff",type:"string"},handoff:{$ref:"#/$defs/WorkHandoffV1"}},required:["change","handoff"],type:"object"}]},WorkProductEventEvidenceV1:$0,WorkProductSelectionScopeV1:St,WorkProposalDispositionV1:Si,WorkProposalV1:So,WorkProposedChildV1:Sn,WorkProviderRouteId:Sl,WorkProviderRouteV1:Sp,WorkRelationReplanProposalV1:Sf,WorkRouteDecisionV1:Sb,WorkScoreKindV1:SR,WorkShapeAssessmentV1:Sq,WorkSizingV1:SI},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"Read-only preparation input. Authority identities, clocks, and revision\npins are deliberately absent because the backend owns them.",properties:{causation_event_id:{type:["string","null"]},change:{$ref:"#/$defs/WorkProductChangeDraftV1"},evidence:{items:{$ref:"#/$defs/WorkProductEventEvidenceV1"},type:"array"},selection:{$ref:"#/$defs/WorkProductSelectionScopeV1"}},required:["selection","change","evidence"],title:"PrepareWorkProductMutationRequestV1",type:"object"},{$defs:{RunId:vL,TaskId:bE,UtcMicros:bX},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{expected_authority_version:{format:"uint64",minimum:0,type:"integer"},occurred_at:{$ref:"#/$defs/UtcMicros"},run_id:{$ref:"#/$defs/RunId"},task_id:{$ref:"#/$defs/TaskId"}},required:["task_id","run_id","expected_authority_version","occurred_at"],title:"ReleaseWorkPlacementCommand",type:"object"},{$defs:{UtcMicros:bX},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{occurred_at:{$ref:"#/$defs/UtcMicros"}},required:["occurred_at"],title:"ResumeWorkAttemptsCommand",type:"object"},{$defs:{AttemptId:fM,AutomaticWorktreeGcV1:fL,BranchCollisionPolicyV1:f2,BranchNameComponentV1:f4,BranchNameSeparatorV1:f6,BranchNamingPolicyV1:f3,BranchTopologyKindV1:hr,BranchTopologyPolicyV1:hi,CanonicalGitRefNameV1:hc,CanonicalGitRefPrefix:hl,CapabilityId:hp,CommitId:hI,ConfigurationRevisionId:hN,ConfigurationSnapshotId:hz,CredentialReferenceId:yy,CrossMergeModeV1:yg,CrossMergePolicyV1:y_,GitHubStackedPullRequestPolicyV1:gP,HistoryRewritePolicyV1:gL,LocatorDigest:_i,ManifestDigest:_p,ProjectId:_6,ProposalId:_7,ProtectedRefDispositionV1:ve,ProtectedRefRuleV1:vt,ProtectedRefSelectorV1:vr,ProviderId:vn,RefId:vf,RepositoryId:v$,RepositoryPlacementScopeV1:vS,RequiredCheckExpectationV1:vk,RequiredCheckV1:vw,ReviewRequirementV1:vA,ReviewTopologyKindV1:vW,ReviewTopologyPolicyV1:vM,RunId:vL,SensitiveFilesystemLocatorV1:v3,TaskId:bE,TopologyConcurrencyPolicyV1:bH,TopologyEscalationPolicyV1:bG,TopologyGatePolicyV1:bB,TopologyNotificationLevelV1:bK,UtcMicros:bX,WorkApprovalPolicy:b2,WorkArtifactId:b4,WorkArtifactRefV1:b6,WorkAttemptIdentityV1:b9,WorkAttemptProgressV1:b7,WorkAttemptProjectionBindingV1:$e,WorkAttemptStateV1:$i,WorkAttemptV1:$s,WorkCancellationAcknowledgementV1:$d,WorkCancellationEscalationV1:$c,WorkCancellationRequestId:$l,WorkCancellationRequestV1:$p,WorkCancellationStateV1:$u,WorkEffectStateV1:$g,WorkEgressPolicy:$v,WorkExecutableReference:$w,WorkExecutionEnvelopeV1:$P,WorkExecutionLimits:$V,WorkExecutionSnapshot:$R,WorkFallbackTopology:$x,WorkFenceEpochV1:$j,WorkFilesystemPolicy:$C,WorkLeaseFenceV1:$L,WorkLeaseId:$U,WorkProviderBackendV1:Ss,WorkProviderProtocol:Sc,WorkProviderRouteId:Sl,WorkProviderRouteV1:Sp,WorkRecoveryStateV1:Su,WorkRestartReasonV1:Sh,WorkSandboxPolicy:SV,WorkTerminalEvidenceV1:SA,WorkTopologyPolicyV1:SM,WorkflowOperationRef:SF,WorktreeCleanlinessRequirementV1:SK,WorktreeId:SJ,WorktreePlacementModeV1:SX,WorktreeRetentionPolicyV1:SY,WorktreeRootPolicyV1:S1},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"What restart recovery did to each open attempt.\n\nThis report never claims that a provider resumed. An attempt in\n`recovery_required` remains fenced under its original identity. This report\ndoes not authorize another launch; an explicit `retry_attempt` must verify\nthe exact recovery fence and effect safety before it can atomically admit a\nnew identity.",properties:{cancelled:{description:"Attempts whose in-flight cancellation was completed during recovery.",items:{$ref:"#/$defs/WorkAttemptV1"},type:"array"},recovery_required:{description:"Attempts fenced onto a new epoch and awaiting an explicit recovery\ndecision.",items:{$ref:"#/$defs/WorkAttemptV1"},type:"array"}},required:["recovery_required","cancelled"],title:"WorkAttemptRecoveryReportV1",type:"object"},{$defs:{RunId:vL,TaskId:bE,UtcMicros:bX,WorkRunControlReasonV1:Sk},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{expected_authority_version:{format:"uint64",minimum:0,type:"integer"},occurred_at:{$ref:"#/$defs/UtcMicros"},reason:{$ref:"#/$defs/WorkRunControlReasonV1"},run_id:{$ref:"#/$defs/RunId"},task_id:{$ref:"#/$defs/TaskId"}},required:["task_id","run_id","reason","expected_authority_version","occurred_at"],title:"ResumeWorkRunCommand",type:"object"},{$defs:{AttemptId:fM,ManifestDigest:_p,ObservationSourceIdentityV1:_N,ProjectId:_6,ProviderId:vn,RepositoryId:v$,RunId:vL,SessionId:be,TaskId:bE,TemporalModeV1:bN,UtcMicros:bX,VerifiedWorkGraphVersionV1:b1,WorkAttemptIdentityV1:b9,WorkEvidenceContinuationV1:$b,WorkEvidenceExpansionSelectorV1:{oneOf:[{additionalProperties:!1,properties:{kind:{const:"anchor",type:"string"},link_id:{type:"string"}},required:["kind","link_id"],type:"object"},{additionalProperties:!1,properties:{attempt:{$ref:"#/$defs/WorkAttemptIdentityV1"},kind:{const:"task_session",type:"string"}},required:["kind","attempt"],type:"object"}]},WorkProductAuthorizedRelationScopeV1:$1,WorkProductSelectionScopeV1:St,WorkTaskSessionContinuationV1:SE},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"One TaskId-rooted read. The exact Work graph identity remains mandatory on\ncontinuation and expansion requests, so neither an anchor nor a cursor is\nauthority by possession.",properties:{continuation:{anyOf:[{$ref:"#/$defs/WorkEvidenceContinuationV1"},{type:"null"}],default:null},expansion:{anyOf:[{$ref:"#/$defs/WorkEvidenceExpansionSelectorV1"},{type:"null"}],default:null},observed_at:{$ref:"#/$defs/UtcMicros"},page_size:{format:"uint32",minimum:0,type:"integer"},selection:{$ref:"#/$defs/WorkProductSelectionScopeV1"},task_id:{$ref:"#/$defs/TaskId"},temporal:{$ref:"#/$defs/TemporalModeV1"},verified_version:{$ref:"#/$defs/VerifiedWorkGraphVersionV1"}},required:["selection","task_id","verified_version","temporal","page_size","observed_at"],title:"WorkEvidenceRetrieveRequestV1",type:"object"},{$defs:{ActorId:f$,AttemptId:fM,ManifestDigest:_p,ObservationSourceIdentityV1:_N,ProposalId:_7,ProviderId:vn,RetrievalAnchorId:vx,RunId:vL,SessionId:be,SessionRetrievalBudgetAccountingV1:{additionalProperties:!1,description:"The ceiling and count behind a budget refusal.\n\n`stage` names which budget refused; this is what tells an oversized request\napart from a read whose cost was mis-sized for it. The ceiling value also\ndistinguishes the resources inside one stage: a record read that stopped at\n1024 hit the item count, one that stopped at 16 MiB hit the byte total, so\nthe kernel's resource spelling stays in the kernel instead of becoming a\nsecond wire vocabulary to keep in step.",properties:{limit:{format:"uint64",minimum:0,type:"integer"},observed:{$ref:"#/$defs/SessionRetrievalBudgetObservationV1"}},required:["limit","observed"],type:"object"},SessionRetrievalBudgetObservationV1:{description:"What a refusing budget boundary had counted.\n\nBoth variants are exact. A bounded read never counts the rows it declined to\nread, so an exhausted read reports what it consumed and that storage held\nmore, never a total it would have to run the refused scan to learn.",oneOf:[{additionalProperties:!1,description:"The request asked for more units than the admitted maximum.",properties:{observation:{const:"requested",type:"string"},units:{format:"uint64",minimum:0,type:"integer"}},required:["observation","units"],type:"object"},{additionalProperties:!1,description:"The read consumed its whole budget and storage still held more.",properties:{observation:{const:"consumed_with_more_available",type:"string"},units:{format:"uint64",minimum:0,type:"integer"}},required:["observation","units"],type:"object"}]},SessionRetrievalBudgetStageV1:ba,SessionRetrievalStructuralRefusalV1:{oneOf:[{additionalProperties:!1,properties:{kind:{type:"string"},maximum:{format:"uint",minimum:0,type:"integer"},observed:{format:"uint",minimum:0,type:"integer"},refusal:{const:"cursor_manifest_limit_exceeded",type:"string"}},required:["refusal","kind","observed","maximum"],type:"object"},{additionalProperties:!1,properties:{accounting:{anyOf:[{$ref:"#/$defs/SessionRetrievalBudgetAccountingV1"},{type:"null"}],description:"Present when the refusing boundary keeps a counter. A request-shape\ncheck has none and reports `None` rather than inventing numbers."},refusal:{const:"budget_exhausted",type:"string"},stage:{$ref:"#/$defs/SessionRetrievalBudgetStageV1"}},required:["refusal","stage"],type:"object"}]},TaskEvidenceLinkV1:bT,TaskId:bE,UtcMicros:bX,VerifiedWorkGraphVersionV1:b1,WorkAcceptanceCriterionV1:b0,WorkAnchorHydrationV1:{additionalProperties:!1,properties:{anchor_id:{$ref:"#/$defs/RetrievalAnchorId"},content:{items:{type:"string"},type:"array"},continuation:{type:["string","null"]},coverage:{$ref:"#/$defs/WorkEvidenceCoverageStateV1"},exact_anchors:{items:{$ref:"#/$defs/RetrievalAnchorId"},type:"array"},freshness:{$ref:"#/$defs/WorkEvidenceFreshnessV1"},redacted:{type:"boolean"}},required:["anchor_id","exact_anchors","content","coverage","freshness","redacted"],type:"object"},WorkArtifactId:b4,WorkArtifactRefV1:b6,WorkAttemptEvidenceRecordV1:b3,WorkAttemptIdentityV1:b9,WorkAttemptProviderOutcomeV1:$t,WorkAttemptReceiptV1:$r,WorkAttemptStreamChannelV1:$o,WorkAttemptStreamSummaryV1:$n,WorkEvidenceContinuationV1:$b,WorkEvidenceCoverageStateV1:{enum:["complete","partial","unknown"],type:"string"},WorkEvidenceCoverageV1:{additionalProperties:!1,properties:{hydrated:{format:"uint32",minimum:0,type:"integer"},omitted:{format:"uint32",minimum:0,type:"integer"},selected:{format:"uint32",minimum:0,type:"integer"},state:{$ref:"#/$defs/WorkEvidenceCoverageStateV1"}},required:["state","selected","hydrated","omitted"],type:"object"},WorkEvidenceFreshnessV1:{enum:["current","stale","unknown"],type:"string"},WorkEvidenceOmissionReasonV1:{oneOf:[{enum:["limit_reached","pending","not_found_or_not_authorized","unavailable","reset_required","stale","cancelled","timed_out","redacted"],type:"string"},{additionalProperties:!1,properties:{structural_refusal:{$ref:"#/$defs/SessionRetrievalStructuralRefusalV1"}},required:["structural_refusal"],type:"object"}]},WorkEvidenceOmissionV1:{additionalProperties:!1,properties:{reason:{$ref:"#/$defs/WorkEvidenceOmissionReasonV1"},relation:{type:"string"}},required:["relation","reason"],type:"object"},WorkEvidenceSourceV1:{oneOf:[{additionalProperties:!1,properties:{kind:{const:"attempt_receipt",type:"string"},receipt:{$ref:"#/$defs/WorkAttemptReceiptV1"}},required:["kind","receipt"],type:"object"},{additionalProperties:!1,properties:{attempt:{$ref:"#/$defs/WorkAttemptIdentityV1"},evidence:{$ref:"#/$defs/WorkTaskSessionEvidenceV1"},kind:{const:"task_session",type:"string"}},required:["kind","attempt","evidence"],type:"object"},{additionalProperties:!1,properties:{hydration:{$ref:"#/$defs/WorkAnchorHydrationV1"},kind:{const:"anchor",type:"string"},link:{$ref:"#/$defs/TaskEvidenceLinkV1"}},required:["kind","link","hydration"],type:"object"}]},WorkHandoffV1:$W,WorkHierarchyV1:$M,WorkItemInputV1:$z,WorkItemV1:$D,WorkProductRelationV1:$7,WorkProposalDecisionV1:Sr,WorkProposalDispositionV1:Si,WorkProposalV1:So,WorkProposedChildV1:Sn,WorkProviderAvailabilityV1:Sa,WorkProviderBackendV1:Ss,WorkProviderFallbackRecordV1:Sd,WorkProviderRouteId:Sl,WorkProviderRouteV1:Sp,WorkRelationReplanDecisionV1:Sm,WorkRelationReplanProposalV1:Sf,WorkRouteDecisionV1:Sb,WorkScoreKindV1:SR,WorkShapeAssessmentV1:Sq,WorkSizingV1:SI,WorkTaskSessionContinuationV1:SE,WorkTaskSessionCoverageV1:{additionalProperties:!1,properties:{hidden:{format:"uint64",minimum:0,type:"integer"},redacted:{format:"uint64",minimum:0,type:"integer"},unknown:{format:"uint64",minimum:0,type:"integer"},visible:{format:"uint64",minimum:0,type:"integer"}},required:["visible","hidden","unknown","redacted"],type:"object"},WorkTaskSessionEvidenceV1:{additionalProperties:!1,properties:{attempt:{$ref:"#/$defs/WorkAttemptIdentityV1"},continuation:{anyOf:[{$ref:"#/$defs/WorkTaskSessionContinuationV1"},{type:"null"}]},coverage:{$ref:"#/$defs/WorkEvidenceCoverageStateV1"},coverage_counts:{$ref:"#/$defs/WorkTaskSessionCoverageV1"},freshness:{$ref:"#/$defs/WorkEvidenceFreshnessV1"},hydrated:{items:{$ref:"#/$defs/WorkTaskSessionHydrationV1"},type:"array"},participant_epoch:{$ref:"#/$defs/ManifestDigest"},ranked_anchors:{items:{$ref:"#/$defs/WorkTaskSessionRankedAnchorV1"},type:"array"},redacted:{type:"boolean"},source:{$ref:"#/$defs/ObservationSourceIdentityV1"},task_id:{$ref:"#/$defs/TaskId"},verified_version:{$ref:"#/$defs/VerifiedWorkGraphVersionV1"}},required:["task_id","verified_version","attempt","source","participant_epoch","ranked_anchors","hydrated","coverage","coverage_counts","freshness","redacted"],type:"object"},WorkTaskSessionHydrationStateV1:{enum:["available","retained_but_unavailable","redacted","deleted","retention_expired","unauthorized","locked","unverifiable"],type:"string"},WorkTaskSessionHydrationV1:{additionalProperties:!1,properties:{anchor_id:{$ref:"#/$defs/RetrievalAnchorId"},content:{items:{format:"uint8",maximum:255,minimum:0,type:"integer"},type:["array","null"]},rank:{format:"uint32",minimum:0,type:"integer"},state:{$ref:"#/$defs/WorkTaskSessionHydrationStateV1"}},required:["rank","anchor_id","state"],type:"object"},WorkTaskSessionRankContributionV1:{additionalProperties:!1,properties:{calibrated_feature_micros:{format:"uint32",minimum:0,type:"integer"},calibration_profile:{type:"string"},ordinal_rank:{format:"uint32",minimum:0,type:"integer"},raw_score_micros:{format:"int64",type:"integer"},retriever:{type:"string"},retriever_revision:{type:"string"},score_domain:{type:"string"},source_occurrence:{type:"string"},weight_micros:{format:"uint32",minimum:0,type:"integer"},weighted_contribution_micros:{format:"uint64",minimum:0,type:"integer"}},required:["retriever","retriever_revision","source_occurrence","ordinal_rank","raw_score_micros","score_domain","calibration_profile","calibrated_feature_micros","weight_micros","weighted_contribution_micros"],type:"object"},WorkTaskSessionRankedAnchorV1:{additionalProperties:!1,properties:{anchor_id:{$ref:"#/$defs/RetrievalAnchorId"},contributions:{items:{$ref:"#/$defs/WorkTaskSessionRankContributionV1"},type:"array"},final_ordinal:{format:"uint32",minimum:0,type:"integer"},utility_micros:{format:"uint64",minimum:0,type:"integer"}},required:["anchor_id","final_ordinal","utility_micros","contributions"],type:"object"}},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{continuations:{items:{$ref:"#/$defs/WorkEvidenceContinuationV1"},type:"array"},coverage:{$ref:"#/$defs/WorkEvidenceCoverageV1"},freshness:{$ref:"#/$defs/WorkEvidenceFreshnessV1"},item:{$ref:"#/$defs/WorkItemV1"},omissions:{items:{$ref:"#/$defs/WorkEvidenceOmissionV1"},type:"array"},proposal_decisions:{items:{$ref:"#/$defs/WorkProposalDecisionV1"},type:"array"},redacted:{type:"boolean"},relation_replan_decisions:{items:{$ref:"#/$defs/WorkRelationReplanDecisionV1"},type:"array"},relations:{items:{$ref:"#/$defs/WorkProductRelationV1"},type:"array"},sources:{items:{$ref:"#/$defs/WorkEvidenceSourceV1"},type:"array"},task_id:{$ref:"#/$defs/TaskId"},verified_version:{$ref:"#/$defs/VerifiedWorkGraphVersionV1"}},required:["task_id","verified_version","item","relations","proposal_decisions","relation_replan_decisions","sources","coverage","omissions","freshness","redacted","continuations"],title:"WorkEvidenceRetrievalV1",type:"object"},{$defs:{AttemptId:fM,RunId:vL,TaskId:bE,WorkAttemptIdentityV1:b9,WorkCommandId:$m,WorkRetryCauseV1:Sy,WorkRetryFailureSelectorV1:Sg,WorkRetrySourceV1:S_},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{command_id:{$ref:"#/$defs/WorkCommandId"},failure:{$ref:"#/$defs/WorkRetryFailureSelectorV1"},new_attempt_id:{$ref:"#/$defs/AttemptId"},original_attempt:{$ref:"#/$defs/WorkAttemptIdentityV1"}},required:["original_attempt","new_attempt_id","failure","command_id"],title:"RetryWorkAttemptCommandV1",type:"object"},{$defs:{AttemptId:fM,AutomaticWorktreeGcV1:fL,BranchCollisionPolicyV1:f2,BranchNameComponentV1:f4,BranchNameSeparatorV1:f6,BranchNamingPolicyV1:f3,BranchTopologyKindV1:hr,BranchTopologyPolicyV1:hi,CanonicalGitRefNameV1:hc,CanonicalGitRefPrefix:hl,CapabilityId:hp,CommitId:hI,ConfigurationRevisionId:hN,ConfigurationSnapshotId:hz,CredentialReferenceId:yy,CrossMergeModeV1:yg,CrossMergePolicyV1:y_,GitHubStackedPullRequestPolicyV1:gP,HistoryRewritePolicyV1:gL,LocatorDigest:_i,ManifestDigest:_p,ProjectId:_6,ProposalId:_7,ProtectedRefDispositionV1:ve,ProtectedRefRuleV1:vt,ProtectedRefSelectorV1:vr,ProviderId:vn,RefId:vf,RepositoryId:v$,RepositoryPlacementScopeV1:vS,RequiredCheckExpectationV1:vk,RequiredCheckV1:vw,RetryWorkAttemptCommandV1:{additionalProperties:!1,properties:{command_id:{$ref:"#/$defs/WorkCommandId"},failure:{$ref:"#/$defs/WorkRetryFailureSelectorV1"},new_attempt_id:{$ref:"#/$defs/AttemptId"},original_attempt:{$ref:"#/$defs/WorkAttemptIdentityV1"}},required:["original_attempt","new_attempt_id","failure","command_id"],title:"RetryWorkAttemptCommandV1",type:"object"},ReviewRequirementV1:vA,ReviewTopologyKindV1:vW,ReviewTopologyPolicyV1:vM,RunId:vL,SensitiveFilesystemLocatorV1:v3,TaskId:bE,TopologyConcurrencyPolicyV1:bH,TopologyEscalationPolicyV1:bG,TopologyGatePolicyV1:bB,TopologyNotificationLevelV1:bK,UtcMicros:bX,VerifiedWorkRetryFailureV1:{additionalProperties:!1,description:"Failure fact returned by a canonical evidence authority.",properties:{evidence_digest:{$ref:"#/$defs/ManifestDigest"},observed_at:{$ref:"#/$defs/UtcMicros"},selector:{$ref:"#/$defs/WorkRetryFailureSelectorV1"}},required:["selector","evidence_digest","observed_at"],type:"object"},WorkApprovalPolicy:b2,WorkArtifactId:b4,WorkArtifactRefV1:b6,WorkAttemptIdentityV1:b9,WorkAttemptProgressV1:b7,WorkAttemptProjectionBindingV1:$e,WorkAttemptStateV1:$i,WorkAttemptV1:$s,WorkCancellationAcknowledgementV1:$d,WorkCancellationEscalationV1:$c,WorkCancellationRequestId:$l,WorkCancellationRequestV1:$p,WorkCancellationStateV1:$u,WorkCommandId:$m,WorkEffectStateV1:$g,WorkEgressPolicy:$v,WorkExecutableReference:$w,WorkExecutionEnvelopeV1:$P,WorkExecutionLimits:$V,WorkExecutionSnapshot:$R,WorkFallbackTopology:$x,WorkFenceEpochV1:$j,WorkFilesystemPolicy:$C,WorkLeaseFenceV1:$L,WorkLeaseId:$U,WorkProviderBackendV1:Ss,WorkProviderProtocol:Sc,WorkProviderRouteId:Sl,WorkProviderRouteV1:Sp,WorkRecoveryStateV1:Su,WorkRestartReasonV1:Sh,WorkRetryCauseV1:Sy,WorkRetryFailureSelectorV1:Sg,WorkRetryReceiptV1:{additionalProperties:!1,properties:{canonical_input_digest:{$ref:"#/$defs/ManifestDigest"},command:{$ref:"#/$defs/RetryWorkAttemptCommandV1"},failure:{$ref:"#/$defs/VerifiedWorkRetryFailureV1"},new_attempt:{$ref:"#/$defs/WorkAttemptIdentityV1"},owner_receipt_digest:{$ref:"#/$defs/ManifestDigest"},restarted_at:{$ref:"#/$defs/UtcMicros",description:"Daemon-owned admission time at which the new attempt was created."},retry_required_at:{$ref:"#/$defs/UtcMicros",description:"Exact source-owned time at which the failure made a retry necessary."}},required:["command","failure","new_attempt","retry_required_at","restarted_at","canonical_input_digest","owner_receipt_digest"],type:"object"},WorkRetrySourceV1:S_,WorkSandboxPolicy:SV,WorkTerminalEvidenceV1:SA,WorkTopologyPolicyV1:SM,WorkflowOperationRef:SF,WorktreeCleanlinessRequirementV1:SK,WorktreeId:SJ,WorktreePlacementModeV1:SX,WorktreeRetentionPolicyV1:SY,WorktreeRootPolicyV1:S1},$schema:"https://json-schema.org/draft/2020-12/schema",oneOf:[{additionalProperties:!1,properties:{attempt:{$ref:"#/$defs/WorkAttemptV1"},outcome:{const:"created",type:"string"},receipt:{$ref:"#/$defs/WorkRetryReceiptV1"}},required:["outcome","receipt","attempt"],type:"object"},{additionalProperties:!1,properties:{attempt:{$ref:"#/$defs/WorkAttemptV1"},outcome:{const:"replayed",type:"string"},receipt:{$ref:"#/$defs/WorkRetryReceiptV1"}},required:["outcome","receipt","attempt"],type:"object"}],title:"WorkRetryAttemptOutcomeV1"},{$defs:{CatalogGenerationId:hu,ConfigurationRevisionId:hN,ManifestDigest:_p,ProjectId:_6,ProposalId:_7,ProviderId:vn,RepositoryId:v$,RetrievalAnchorId:vx,ReviewWorkProposalDispositionV1:{description:"The only non-accepting dispositions the proposal-review operation can\ncommit. The broader decision request remains available to the graph\nmutation operation, which owns all decision forms.",enum:["rejected","superseded"],type:"string"},SourceStoreId:bw,TaskId:bE,UtcMicros:bX,VerifiedWorkGraphVersionV1:b1,WorkCommandId:$m,WorkProductAuthorizedRelationScopeV1:$1,WorkProductEventEvidenceV1:$0,WorkProductExpectedAuthorityV1:$6,WorkProductMutationIdentityV1:$9,WorkProductRevisionPinsV1:Se,WorkProductSelectionScopeV1:St,WorkProposalV1:So,WorkProposedChildV1:Sn,WorkProviderRouteId:Sl,WorkProviderRouteV1:Sp,WorkRouteDecisionV1:Sb,WorkScoreKindV1:SR,WorkShapeAssessmentV1:Sq,WorkSizingV1:SI},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{disposition:{$ref:"#/$defs/ReviewWorkProposalDispositionV1"},mutation:{$ref:"#/$defs/WorkProductMutationIdentityV1"},proposal:{$ref:"#/$defs/WorkProposalV1"},selection:{$ref:"#/$defs/WorkProductSelectionScopeV1"}},required:["selection","proposal","disposition","mutation"],title:"ReviewWorkProposalRequestV1",type:"object"},{$defs:{RunId:vL,TaskId:bE},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{run_id:{$ref:"#/$defs/RunId"},task_id:{$ref:"#/$defs/TaskId"}},required:["task_id","run_id"],title:"WorkRunControlRequestV1",type:"object"},{$defs:{AttemptId:fM,RunId:vL,TaskId:bE,UtcMicros:bX,WorkRunControlAuthorityV1:SS,WorkRunControlReasonV1:Sk,WorkRunControlStateV1:Sw,WorkRunControlV1:{additionalProperties:!1,description:"One run's durable control aggregate.",properties:{authority:{$ref:"#/$defs/WorkRunControlAuthorityV1"},deadline:{$ref:"#/$defs/WorkRunDeadlineCheckpointV1"},fenced_attempts:{description:'The exact attempts that were live when the current state published.\nEmpty means "none were live", never "we did not look".',items:{$ref:"#/$defs/AttemptId"},type:"array"},reason:{anyOf:[{$ref:"#/$defs/WorkRunControlReasonV1"},{type:"null"}]},run_id:{$ref:"#/$defs/RunId"},state:{$ref:"#/$defs/WorkRunControlStateV1"},task_id:{$ref:"#/$defs/TaskId"},transitioned_at:{$ref:"#/$defs/UtcMicros"}},required:["task_id","run_id","state","authority","deadline","transitioned_at","fenced_attempts"],title:"WorkRunControlV1",type:"object"},WorkRunDeadlineCheckpointV1:SP},$schema:"https://json-schema.org/draft/2020-12/schema",description:"One run's control reading.\n\n`Uncontrolled` is a distinct answer from `Controlled`: it says the run is\nadmitted and running under its admitted deadline with no control transition\never published, which is not the same as a control row that happens to say\n`Running`.",oneOf:[{additionalProperties:!1,description:"The run holds durable attempts but no control transition has ever been\npublished for it.",properties:{deadline:{$ref:"#/$defs/UtcMicros",description:"The admitted deadline the run is running against."},live_attempts:{description:"Attempts that have not reached a terminal state.",items:{$ref:"#/$defs/AttemptId"},type:"array"},state:{const:"uncontrolled",type:"string"},total_attempts:{format:"uint32",minimum:0,type:"integer"}},required:["state","deadline","live_attempts","total_attempts"],type:"object"},{additionalProperties:!1,description:"The published control aggregate, plus the live frontier as of this\nread (which may differ from the frontier the transition fenced).",properties:{control:{$ref:"#/$defs/WorkRunControlV1"},live_attempts:{items:{$ref:"#/$defs/AttemptId"},type:"array"},state:{const:"controlled",type:"string"},total_attempts:{format:"uint32",minimum:0,type:"integer"}},required:["state","control","live_attempts","total_attempts"],type:"object"}],title:"WorkRunControlReadingV1"},{$defs:{AttemptId:fM,AutomaticWorktreeGcV1:fL,BranchCollisionPolicyV1:f2,BranchNameComponentV1:f4,BranchNameSeparatorV1:f6,BranchNamingPolicyV1:f3,BranchTopologyKindV1:hr,BranchTopologyPolicyV1:hi,CanonicalGitRefNameV1:hc,CanonicalGitRefPrefix:hl,CapabilityId:hp,CommitId:hI,ConfigurationRevisionId:hN,ConfigurationSnapshotId:hz,CredentialReferenceId:yy,CrossMergeModeV1:yg,CrossMergePolicyV1:y_,GitHubStackedPullRequestPolicyV1:gP,HistoryRewritePolicyV1:gL,LocatorDigest:_i,ManifestDigest:_p,ProtectedRefDispositionV1:ve,ProtectedRefRuleV1:vt,ProtectedRefSelectorV1:vr,ProviderId:vn,RefId:vf,RepositoryId:v$,RepositoryPlacementScopeV1:vS,RequiredCheckExpectationV1:vk,RequiredCheckV1:vw,ReviewRequirementV1:vA,ReviewTopologyKindV1:vW,ReviewTopologyPolicyV1:vM,RunId:vL,SensitiveFilesystemLocatorV1:v3,TaskId:bE,TopologyConcurrencyPolicyV1:bH,TopologyEscalationPolicyV1:bG,TopologyGatePolicyV1:bB,TopologyNotificationLevelV1:bK,UtcMicros:bX,WorkApprovalPolicy:b2,WorkEffectStateV1:$g,WorkEgressPolicy:$v,WorkExecutableReference:$w,WorkExecutionLimits:$V,WorkExecutionSnapshot:$R,WorkFallbackTopology:$x,WorkFilesystemPolicy:$C,WorkProviderBackendV1:Ss,WorkProviderProtocol:Sc,WorkProviderRouteId:Sl,WorkProviderRouteV1:Sp,WorkSandboxPolicy:SV,WorkTopologyPolicyV1:SM,WorkflowOperationRef:SF,WorktreeCleanlinessRequirementV1:SK,WorktreePlacementModeV1:SX,WorktreeRetentionPolicyV1:SY,WorktreeRootPolicyV1:S1},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"Starts one admitted provider attempt. Every field is a typed fact; there\nis no argv, environment entry, executable path, or shell string here. The\nprojection binding and admission facts are re-read from the canonical Work\nauthority, never trusted from the caller.",properties:{attempt_id:{$ref:"#/$defs/AttemptId"},commit:{$ref:"#/$defs/CommitId"},effect_state:{$ref:"#/$defs/WorkEffectStateV1"},execution_snapshot:{$ref:"#/$defs/WorkExecutionSnapshot"},instructions:{type:"string"},occurred_at:{$ref:"#/$defs/UtcMicros"},operation:{$ref:"#/$defs/WorkflowOperationRef"},reference:{anyOf:[{$ref:"#/$defs/RefId"},{type:"null"}]},run_id:{$ref:"#/$defs/RunId"},task_id:{$ref:"#/$defs/TaskId"},worktree_root:{type:"string"}},required:["task_id","run_id","attempt_id","operation","execution_snapshot","worktree_root","commit","instructions","effect_state","occurred_at"],title:"StartWorkAttemptCommand",type:"object"},{$defs:{AttemptId:fM,AutomaticWorktreeGcV1:fL,BranchCollisionPolicyV1:f2,BranchNameComponentV1:f4,BranchNameSeparatorV1:f6,BranchNamingPolicyV1:f3,BranchTopologyKindV1:hr,BranchTopologyPolicyV1:hi,CanonicalGitRefNameV1:hc,CanonicalGitRefPrefix:hl,CapabilityId:hp,CommitId:hI,ConfigurationRevisionId:hN,ConfigurationSnapshotId:hz,CredentialReferenceId:yy,CrossMergeModeV1:yg,CrossMergePolicyV1:y_,GitHubStackedPullRequestPolicyV1:gP,HistoryRewritePolicyV1:gL,LocatorDigest:_i,ManifestDigest:_p,ProtectedRefDispositionV1:ve,ProtectedRefRuleV1:vt,ProtectedRefSelectorV1:vr,ProviderId:vn,RefId:vf,RepositoryId:v$,RepositoryPlacementScopeV1:vS,RequiredCheckExpectationV1:vk,RequiredCheckV1:vw,ReviewRequirementV1:vA,ReviewTopologyKindV1:vW,ReviewTopologyPolicyV1:vM,RunId:vL,SensitiveFilesystemLocatorV1:v3,StartWorkAttemptCommand:{additionalProperties:!1,description:"Starts one admitted provider attempt. Every field is a typed fact; there\nis no argv, environment entry, executable path, or shell string here. The\nprojection binding and admission facts are re-read from the canonical Work\nauthority, never trusted from the caller.",properties:{attempt_id:{$ref:"#/$defs/AttemptId"},commit:{$ref:"#/$defs/CommitId"},effect_state:{$ref:"#/$defs/WorkEffectStateV1"},execution_snapshot:{$ref:"#/$defs/WorkExecutionSnapshot"},instructions:{type:"string"},occurred_at:{$ref:"#/$defs/UtcMicros"},operation:{$ref:"#/$defs/WorkflowOperationRef"},reference:{anyOf:[{$ref:"#/$defs/RefId"},{type:"null"}]},run_id:{$ref:"#/$defs/RunId"},task_id:{$ref:"#/$defs/TaskId"},worktree_root:{type:"string"}},required:["task_id","run_id","attempt_id","operation","execution_snapshot","worktree_root","commit","instructions","effect_state","occurred_at"],type:"object"},TaskId:bE,TopologyConcurrencyPolicyV1:bH,TopologyEscalationPolicyV1:bG,TopologyGatePolicyV1:bB,TopologyNotificationLevelV1:bK,UtcMicros:bX,WorkApprovalPolicy:b2,WorkAttemptIdentityV1:b9,WorkEffectStateV1:$g,WorkEgressPolicy:$v,WorkExecutableReference:$w,WorkExecutionLimits:$V,WorkExecutionSnapshot:$R,WorkFallbackTopology:$x,WorkFilesystemPolicy:$C,WorkProviderBackendV1:Ss,WorkProviderProtocol:Sc,WorkProviderRouteId:Sl,WorkProviderRouteV1:Sp,WorkSandboxPolicy:SV,WorkTopologyPolicyV1:SM,WorkflowOperationRef:SF,WorkflowOutputName:SL,WorktreeCleanlinessRequirementV1:SK,WorktreePlacementModeV1:SX,WorktreeRetentionPolicyV1:SY,WorktreeRootPolicyV1:S1},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"Admits one synthesis attempt over an ordered set of sibling sources.",properties:{output_name:{$ref:"#/$defs/WorkflowOutputName",description:"The fan-out output the synthesis belongs to, carried into the draft\nthe workflow completion path verifies."},sources:{description:"The ordered sibling sources the synthesis consumes.",items:{$ref:"#/$defs/WorkAttemptIdentityV1"},type:"array"},start:{$ref:"#/$defs/StartWorkAttemptCommand",description:"The synthesis attempt's own admission facts; it is started through\nthe same admission machinery as any other attempt."}},required:["start","output_name","sources"],title:"AdmitWorkSynthesisCommand",type:"object"},{$defs:{AttemptId:fM,AutomaticWorktreeGcV1:fL,BranchCollisionPolicyV1:f2,BranchNameComponentV1:f4,BranchNameSeparatorV1:f6,BranchNamingPolicyV1:f3,BranchTopologyKindV1:hr,BranchTopologyPolicyV1:hi,CanonicalGitRefNameV1:hc,CanonicalGitRefPrefix:hl,CapabilityId:hp,CommitId:hI,ConfigurationRevisionId:hN,ConfigurationSnapshotId:hz,CredentialReferenceId:yy,CrossMergeModeV1:yg,CrossMergePolicyV1:y_,GitHubStackedPullRequestPolicyV1:gP,HistoryRewritePolicyV1:gL,LocatorDigest:_i,ManifestDigest:_p,ProjectId:_6,ProposalId:_7,ProtectedRefDispositionV1:ve,ProtectedRefRuleV1:vt,ProtectedRefSelectorV1:vr,ProviderId:vn,RefId:vf,RepositoryId:v$,RepositoryPlacementScopeV1:vS,RequiredCheckExpectationV1:vk,RequiredCheckV1:vw,ReviewRequirementV1:vA,ReviewTopologyKindV1:vW,ReviewTopologyPolicyV1:vM,RunId:vL,SensitiveFilesystemLocatorV1:v3,TaskId:bE,TopologyConcurrencyPolicyV1:bH,TopologyEscalationPolicyV1:bG,TopologyGatePolicyV1:bB,TopologyNotificationLevelV1:bK,UtcMicros:bX,WorkApprovalPolicy:b2,WorkArtifactId:b4,WorkArtifactRefV1:b6,WorkAttemptIdentityV1:b9,WorkAttemptProgressV1:b7,WorkAttemptProjectionBindingV1:$e,WorkAttemptStateV1:$i,WorkAttemptV1:$s,WorkCancellationAcknowledgementV1:$d,WorkCancellationEscalationV1:$c,WorkCancellationRequestId:$l,WorkCancellationRequestV1:$p,WorkCancellationStateV1:$u,WorkEffectStateV1:$g,WorkEgressPolicy:$v,WorkExecutableReference:$w,WorkExecutionEnvelopeV1:$P,WorkExecutionLimits:$V,WorkExecutionSnapshot:$R,WorkFallbackTopology:$x,WorkFenceEpochV1:$j,WorkFilesystemPolicy:$C,WorkLeaseFenceV1:$L,WorkLeaseId:$U,WorkProviderBackendV1:Ss,WorkProviderProtocol:Sc,WorkProviderRouteId:Sl,WorkProviderRouteV1:Sp,WorkRecoveryStateV1:Su,WorkRestartReasonV1:Sh,WorkSandboxPolicy:SV,WorkSynthesisEvidenceGroupV1:Sx,WorkSynthesisRefusalV1:Sj,WorkSynthesisSourceEnvelopeV1:SC,WorkSynthesisSourceOutcomeV1:ST,WorkSynthesisSourceSetV1:SO,WorkTerminalEvidenceV1:SA,WorkTopologyPolicyV1:SM,WorkflowOperationRef:SF,WorkflowOutputName:SL,WorkflowSynthesisDraft:SB,WorktreeCleanlinessRequirementV1:SK,WorktreeId:SJ,WorktreePlacementModeV1:SX,WorktreeRetentionPolicyV1:SY,WorktreeRootPolicyV1:S1},$schema:"https://json-schema.org/draft/2020-12/schema",description:"The typed outcome of a synthesis request: an admitted attempt, or the\nsealed unsynthesized set when synthesis could not truthfully begin.",oneOf:[{additionalProperties:!1,description:"The admitted synthesis attempt and everything it is accountable to.",properties:{attempt:{$ref:"#/$defs/WorkAttemptV1",description:"The leased (or idempotently replayed) synthesis attempt."},draft:{$ref:"#/$defs/WorkflowSynthesisDraft",description:"The citation obligation, complete by construction: the draft cites\nevery citable source digest and is verified downstream by\n[`crate::workflow_synthesis::verify_workflow_synthesis_draft`]."},groups:{description:"Disagreement structure over the succeeded sources.",items:{$ref:"#/$defs/WorkSynthesisEvidenceGroupV1"},type:"array"},source_set:{$ref:"#/$defs/WorkSynthesisSourceSetV1",description:"The sealed source envelopes the attempt was admitted against."},synthesis:{const:"admitted",type:"string"},uncited:{description:"Sources preserved without citations: failures, unknowns, and\nartifact-less successes, in the caller's requested order.",items:{$ref:"#/$defs/WorkAttemptIdentityV1"},type:"array"}},required:["synthesis","attempt","source_set","groups","draft","uncited"],type:"object"},{properties:{refusal:{$ref:"#/$defs/WorkSynthesisRefusalV1"},sources:{$ref:"#/$defs/WorkSynthesisSourceSetV1"},synthesis:{const:"unsynthesized",type:"string"}},required:["synthesis","sources","refusal"],type:"object"}],title:"WorkSynthesisAttemptV1"},{$defs:{WorkAttemptListCursorV1:b8},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"One page-bounded topology view read. The cursor vocabulary is the attempt\nlist's: a cursor minted under a superseded topology generation is a typed\nstaleness refusal, never a silently different page.",properties:{cursor:{anyOf:[{$ref:"#/$defs/WorkAttemptListCursorV1"},{type:"null"}],default:null},page_size:{format:"uint32",minimum:0,type:"integer"}},required:["page_size"],title:"WorkTopologyViewRequestV1",type:"object"},{$defs:{BranchTopologyKindV1:hr,BranchTopologyPolicyV1:hi,CanonicalGitRefNameV1:hc,CanonicalGitRefPrefix:hl,CapabilityId:hp,CrossMergeModeV1:yg,CrossMergePolicyV1:y_,GitHubStackedPullRequestPolicyV1:gP,ProtectedRefDispositionV1:ve,ProtectedRefRuleV1:vt,ProtectedRefSelectorV1:vr,RequiredCheckExpectationV1:vk,RequiredCheckV1:vw,ReviewRequirementV1:vA,ReviewTopologyKindV1:vW,ReviewTopologyPolicyV1:vM,RunId:vL,TaskId:bE,TopologyGatePolicyV1:bB,UtcMicros:bX,WorkAttemptListCoverageV1:b5,WorkAttemptListCursorV1:b8,WorkAttemptTopologyBindingV1:$a,WorkPlacementBlockerV1:$B,WorkPlacementIdentityV1:$K,WorkPlacementKindV1:$J,WorkPlacementReadingV1:{description:"One placement reading. Absence is a state, not an empty placement.",oneOf:[{additionalProperties:!1,description:"No placement was ever admitted for this run.",properties:{state:{const:"absent",type:"string"}},required:["state"],type:"object"},{additionalProperties:!1,description:"The durable placement relation.",properties:{placement:{$ref:"#/$defs/WorkPlacementV1"},state:{const:"placed",type:"string"}},required:["state","placement"],type:"object"}],title:"WorkPlacementReadingV1"},WorkPlacementStateV1:$Z,WorkPlacementTargetV1:$Q,WorkPlacementV1:$X,WorkTopologyExecutionPlacementV1:{additionalProperties:!1,description:"The execution-placement dimension: the policy's placement mode plus one\nlane per distinct `(task, run)` pair in page order.",properties:{lanes:{items:{$ref:"#/$defs/WorkTopologyPlacementLaneV1"},type:"array"},mode:{$ref:"#/$defs/WorktreePlacementModeV1"}},required:["mode","lanes"],title:"WorkTopologyExecutionPlacementV1",type:"object"},WorkTopologyIntegrationStrategyV1:{additionalProperties:!1,description:"The integration-strategy dimension, read verbatim from the resolved work\ntopology policy the runs in scope are admitted against.",properties:{cross_merge:{$ref:"#/$defs/CrossMergePolicyV1"},gates:{$ref:"#/$defs/TopologyGatePolicyV1"},protected_refs:{items:{$ref:"#/$defs/ProtectedRefRuleV1"},type:"array"}},required:["cross_merge","gates","protected_refs"],title:"WorkTopologyIntegrationStrategyV1",type:"object"},WorkTopologyPlacementLaneV1:{additionalProperties:!1,description:"One execution-placement lane: a distinct `(task, run)` pair from the\nattempt page joined to its durable placement reading. Placement absence is\na state on the lane, not a dropped lane.",properties:{attempt_count:{description:"Attempts this lane carried within the requested page.",format:"uint32",minimum:0,type:"integer"},placement:{$ref:"#/$defs/WorkPlacementReadingV1"},run_id:{$ref:"#/$defs/RunId"},task_id:{$ref:"#/$defs/TaskId"}},required:["task_id","run_id","attempt_count","placement"],title:"WorkTopologyPlacementLaneV1",type:"object"},WorktreeCleanlinessRequirementV1:SK,WorktreePlacementModeV1:SX},$schema:"https://json-schema.org/draft/2020-12/schema",description:"The application-owned execution-topology view. Absence of any Work in\nscope is a typed state, distinct from an authorized-but-empty page.",oneOf:[{additionalProperties:!1,description:"No Work exists in this authority scope, so there is no topology to\ndraw. Concealed scopes are refused before any read.",properties:{state:{const:"absent",type:"string"}},required:["state"],type:"object"},{additionalProperties:!1,description:"The four dimensions, pinned to one verified topology generation.",properties:{branch_topology:{$ref:"#/$defs/BranchTopologyPolicyV1"},coverage:{$ref:"#/$defs/WorkAttemptListCoverageV1"},execution_placement:{$ref:"#/$defs/WorkTopologyExecutionPlacementV1"},integration_strategy:{$ref:"#/$defs/WorkTopologyIntegrationStrategyV1"},review_topology:{$ref:"#/$defs/ReviewTopologyPolicyV1"},state:{const:"view",type:"string"},topology:{$ref:"#/$defs/WorkAttemptTopologyBindingV1"}},required:["state","topology","coverage","execution_placement","branch_topology","review_topology","integration_strategy"],type:"object"}],title:"ExecutionTopologyViewV1"},{$defs:{ObservabilityHorizonV1:_M},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"One horizon-bounded execution-topology metrics read. The authorized scope\nis taken from the request context, not from the request, so a caller can\nnever widen the population it reads.",properties:{horizon:{$ref:"#/$defs/ObservabilityHorizonV1"},max_events:{description:"Event budget for this read, at most\n[`MAX_EXECUTION_TOPOLOGY_EVENTS_V1`].",format:"uint32",minimum:0,type:"integer"}},required:["horizon","max_events"],title:"ExecutionTopologyMetricsRequestV1",type:"object"},{$defs:{CoverageStateV1:yh,ExecutionBlockedCauseV1:{description:"Cause a work item was blocked for.",enum:["dependency","needs_input","capability","policy","scope","conflict","lease","backpressure","test","ci","review","effect_unknown","other","unknown"],type:"string"},ExecutionConcurrencyPhaseV1:{description:"Concurrency-width phase. `Useful` counts only distinct admitted\nattempts that advanced a committed progress frontier; heartbeats,\nqueued work, child processes, and transport fanout never reach it.",enum:["requested","accepted","admitted","active","useful"],type:"string"},ExecutionConflictKindV1:{description:"Conflict prediction kind. Mechanical and semantic keep separate\ndenominators because their adjudicators are not interchangeable.",enum:["mechanical","semantic","combined"],type:"string"},ExecutionConflictOutcomeV1:{description:"Independently observed conflict outcome. `Censored` and `Unknown`\nnever enter a confusion-matrix denominator.",enum:["conflict","no_conflict","censored","unknown"],type:"string"},ExecutionDeliveryOutcomeV1:{description:"Per-surface delivery outcome. A multi-surface delivery is never a\nduplicate of product work; only `Deduplicated` is.",enum:["delivered","deduplicated","dropped","unknown"],type:"string"},ExecutionDuplicateKindV1:{description:"Adjudicated duplicate-work relation. Similarity, proximity, shared\npaths, and concurrency never produce one of these.",enum:["exact_duplicate","superseded_overlap","repeated_investigation","duplicate_effect","not_duplicate","censored","unknown"],type:"string"},ExecutionDuplicateOutcomeV1:{description:"Whether a duplicate effect was prevented or actually committed. The\ntwo never collapse into one count.",enum:["prevented","committed","unknown","not_applicable"],type:"string"},ExecutionDurationBucketV1:{description:"Fixed duration buckets shared by stale stack age, blocked time, and\nrerun latency. Raw timestamps and exact durations stay authorized\nlocal detail.",enum:["under1m","from1m_to5m","from5m_to15m","from15m_to1h","from1h_to4h","from4h_to24h","from1d_to7d","over7d"],type:"string"},ExecutionFanoutPhaseV1:{description:"Fan-out width phase. `PeakActive` is the sampled active width; the\nfan-out distribution is unweighted so serialized and blocked samples,\nwhich carry no interval, are preserved rather than dropped.",enum:["requested","accepted","admitted","peak_active","useful"],type:"string"},ExecutionGitHubStackCapabilityReadingV1:{additionalProperties:!1,description:"Latest trustworthy GitHub stacked-PR capability observation in the\nhorizon. It is a typed operational state, not a metric or success claim.",properties:{capability:{anyOf:[{$ref:"#/$defs/ExecutionGitHubStackCapabilityV1"},{type:"null"}]},coverage:{$ref:"#/$defs/MetricCoverageV1"},other_forge_fallback_available:{type:["boolean","null"]},standard_git_fallback_available:{type:["boolean","null"]},unavailable:{anyOf:[{$ref:"#/$defs/ExecutionMetricUnavailableV1"},{type:"null"}]}},required:["coverage"],title:"ExecutionGitHubStackCapabilityReadingV1",type:"object"},ExecutionGitHubStackCapabilityV1:{description:"Last bounded GitHub stacked-PR capability state observed in the\nhorizon. This remains orthogonal to GitHub ingress and item lifecycle.",enum:["unavailable","private_preview_disabled","enabled","degraded"],type:"string"},ExecutionIntegrationKindV1:{description:"Integration operation kind. Rebase remains external observation only.",enum:["fast_forward","merge_commit","rebase","cherry_pick","stack_retarget","graph_only","external_observed","unknown"],type:"string"},ExecutionIntegrationOutcomeV1:{description:"Terminal result of an observed native integration.",enum:["succeeded","conflicted","rejected","denied","stale","locked","cancelled","timed_out","failed","partial","effect_unknown","unsupported","unknown"],type:"string"},ExecutionIntervalStateV1:{description:"Whether the owning drift interval is still open or exactly closed.",enum:["open","closed"],type:"string"},ExecutionLeakKindV1:{description:"Independently proved execution-leak class.",enum:["lease_after_terminal","attempt_without_live_owner","effect_unknown_past_deadline","missing_worktree_binding","unbounded_delivery","none","unknown"],type:"string"},ExecutionLeakOutcomeV1:{description:"Recovery state a proved leak reached.",enum:["not_required","pending","recovered","failed","unknown"],type:"string"},ExecutionMetricUnavailableV1:{description:"Why a measurement carries no value. Absence is always one of these typed\nreasons; it is never an empty string, a zero, or a silently dropped row.",oneOf:[{const:"store_unavailable",description:"The observation store could not be read at all for this horizon.",type:"string"},{const:"event_budget_exceeded",description:"The horizon holds more events than one read may draw, so every\ndenominator here would be a partial count presented as a total.",type:"string"},{const:"cell_budget_exceeded",description:"The bounded projection would exceed the Plan 26 result-cell ceiling.\nThe whole read refuses rather than returning a misleading subset.",type:"string"},{const:"no_eligible_evidence",description:"No recorded event in the family supplies this metric's numerator or\ndenominator.",type:"string"},{const:"support_floor_unmet",description:"Eligible cases exist but fall below the metric's support floor.",type:"string"},{const:"coverage_floor_unmet",description:"Observed cases cover less of the eligible population than the metric's\ncoverage floor allows.",type:"string"},{const:"censoring_ceiling_exceeded",description:"More of the eligible population is censored than the metric admits.",type:"string"},{const:"unbounded_interval",description:"The interval this metric integrates over has no proved upper bound, so\nits duration cannot be measured without inventing a terminal.",type:"string"}]},ExecutionQuantityUnitV1:{description:"Quantity unit for duplicate-effort accounting. Each unit is reported\nseparately: wall time, tokens, cost, tests, and effects are never\nsummed into one number.",enum:["wall_micros","tokens","cost_micros","tests","effects"],type:"string"},ExecutionRerunCauseV1:{description:"Typed rerun cause. Repeated logs and transport redelivery are not\nreruns and never carry one of these.",enum:["runtime_retry","runtime_fallback","test_rerun","ci_rerun","recovery","human_requested","unknown"],type:"string"},ExecutionRerunSourceV1:{description:"Which independent system observed the rerun.",enum:["runtime","test","ci"],type:"string"},ExecutionStackDriftKindV1:{description:"Exact reason a stack became stale. The enum is bounded and never\ncarries a branch, ref, worktree, repository, or provider identity.",enum:["head_advanced","base_advanced","merge_base_changed","retargeted","superseded"],type:"string"},ExecutionSurfaceFamilyV1:{description:"Delivery surface family. Addresses, payloads, principals, and\nrecipients are never observed, so the family is the whole label.",enum:["hook","mcp","lsp","dashboard","cli","other"],type:"string"},ExecutionTopologyDimensionV1:{description:"One allowed local grouping dimension. The set is closed by construction:\nevery value is produced by an exhaustive match over a bounded domain class,\nso no person, agent, task, project, repository, worktree, branch, ref,\ncommit, model version, or route can ever appear as a label.",oneOf:[{properties:{dimension:{const:"concurrency_phase",type:"string"},value:{$ref:"#/$defs/ExecutionConcurrencyPhaseV1"}},required:["dimension","value"],type:"object"},{properties:{dimension:{const:"fanout_phase",type:"string"},value:{$ref:"#/$defs/ExecutionFanoutPhaseV1"}},required:["dimension","value"],type:"object"},{properties:{dimension:{const:"width_bucket",type:"string"},value:{$ref:"#/$defs/ExecutionWidthBucketV1"}},required:["dimension","value"],type:"object"},{properties:{dimension:{const:"duration_bucket",type:"string"},value:{$ref:"#/$defs/ExecutionDurationBucketV1"}},required:["dimension","value"],type:"object"},{properties:{dimension:{const:"duplicate_kind",type:"string"},value:{$ref:"#/$defs/ExecutionDuplicateKindV1"}},required:["dimension","value"],type:"object"},{properties:{dimension:{const:"unit",type:"string"},value:{$ref:"#/$defs/ExecutionQuantityUnitV1"}},required:["dimension","value"],type:"object"},{properties:{dimension:{const:"duplicate_outcome",type:"string"},value:{$ref:"#/$defs/ExecutionDuplicateOutcomeV1"}},required:["dimension","value"],type:"object"},{properties:{dimension:{const:"conflict_kind",type:"string"},value:{$ref:"#/$defs/ExecutionConflictKindV1"}},required:["dimension","value"],type:"object"},{properties:{dimension:{const:"conflict_outcome",type:"string"},value:{$ref:"#/$defs/ExecutionConflictOutcomeV1"}},required:["dimension","value"],type:"object"},{properties:{dimension:{const:"integration_kind",type:"string"},value:{$ref:"#/$defs/ExecutionIntegrationKindV1"}},required:["dimension","value"],type:"object"},{properties:{dimension:{const:"integration_outcome",type:"string"},value:{$ref:"#/$defs/ExecutionIntegrationOutcomeV1"}},required:["dimension","value"],type:"object"},{properties:{dimension:{const:"stack_drift_kind",type:"string"},value:{$ref:"#/$defs/ExecutionStackDriftKindV1"}},required:["dimension","value"],type:"object"},{properties:{dimension:{const:"interval_state",type:"string"},value:{$ref:"#/$defs/ExecutionIntervalStateV1"}},required:["dimension","value"],type:"object"},{properties:{dimension:{const:"blocked_cause",type:"string"},value:{$ref:"#/$defs/ExecutionBlockedCauseV1"}},required:["dimension","value"],type:"object"},{properties:{dimension:{const:"rerun_source",type:"string"},value:{$ref:"#/$defs/ExecutionRerunSourceV1"}},required:["dimension","value"],type:"object"},{properties:{dimension:{const:"rerun_cause",type:"string"},value:{$ref:"#/$defs/ExecutionRerunCauseV1"}},required:["dimension","value"],type:"object"},{properties:{dimension:{const:"leak_kind",type:"string"},value:{$ref:"#/$defs/ExecutionLeakKindV1"}},required:["dimension","value"],type:"object"},{properties:{dimension:{const:"leak_outcome",type:"string"},value:{$ref:"#/$defs/ExecutionLeakOutcomeV1"}},required:["dimension","value"],type:"object"},{properties:{dimension:{const:"surface",type:"string"},value:{$ref:"#/$defs/ExecutionSurfaceFamilyV1"}},required:["dimension","value"],type:"object"},{properties:{dimension:{const:"delivery_outcome",type:"string"},value:{$ref:"#/$defs/ExecutionDeliveryOutcomeV1"}},required:["dimension","value"],type:"object"}]},ExecutionTopologyDrillAnchorV1:{additionalProperties:!1,description:"An opaque cursor minted by the registered observation authority. It can be\nresolved only through that same authorized local query boundary and is not\na metric dimension or exportable identity.",properties:{cursor:{type:"string"}},required:["cursor"],title:"ExecutionTopologyDrillAnchorV1",type:"object"},ExecutionTopologyEmissionCoverageV1:{additionalProperties:!1,description:"Envelope-level delivery evidence for this read. `None` means the store did\nnot answer, so no zero may be inferred. `dropped` is the proved lower bound\nfrom the bound producer scope, deduplicated across explicit loss receipts\nand their next-envelope carriers; it is not attributed to a topology\nfamily. Sampling stays a count of sampled topology envelopes and is never\nexpanded into a fabricated population estimate.",properties:{delayed:{format:"uint64",minimum:0,type:["integer","null"]},dropped:{format:"uint64",minimum:0,type:["integer","null"]},emitted:{format:"uint64",minimum:0,type:["integer","null"]},sampled_events:{format:"uint64",minimum:0,type:["integer","null"]}},title:"ExecutionTopologyEmissionCoverageV1",type:"object"},ExecutionTopologyMeasurementV1:{additionalProperties:!1,description:"One descriptor cell: the Plan 26 descriptor name, its grouping dimensions,\nand the landed metric envelope carrying value, denominator, coverage, and\nprovenance.",properties:{dimensions:{description:"Allowed local grouping dimensions, at most\n[`MAX_METRIC_DIMENSIONS_V1`], in a fixed order per descriptor.",items:{$ref:"#/$defs/ExecutionTopologyDimensionV1"},type:"array"},unavailable:{anyOf:[{$ref:"#/$defs/ExecutionMetricUnavailableV1"},{type:"null"}],description:"Typed absence reason. It is `Some` exactly when `value.value` is\n`None`, so a reader can never mistake a refused metric for a zero."},value:{$ref:"#/$defs/MetricValueV1"}},required:["dimensions","value"],title:"ExecutionTopologyMeasurementV1",type:"object"},ExecutionWidthBucketV1:{description:"Fixed width buckets. Raw widths stay authorized local detail; only\nbucket counts leave the projection.",enum:["zero","one","two","from3_to4","from5_to8","from9_to16","from17_to32","from33_to64","over64"],type:"string"},MetricCalibrationV1:_y,MetricCohortV1:_g,MetricCoverageV1:__,MetricEvidenceClassV1:_v,MetricProvenanceV1:_b,MetricSourceV1:_$,MetricTemporalV1:_S,MetricUncertaintyV1:_k,MetricValueV1:_w,ObservabilityHorizonV1:_M},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"The canonical execution-topology read model. Observatory and Costs render\nthis without local formulas; CLI, MCP, and HTTP return the same bytes.",properties:{authorized_scope_ref:{description:"Local authorization anchor the read was admitted under. It is derived\nfrom the resolved scope, never from a caller-supplied string.",type:"string"},coverage:{$ref:"#/$defs/MetricCoverageV1",description:"Family-level coverage over the event population, independent of any\nsingle descriptor's denominator."},current:{description:"True only when the whole family was read with `Known` coverage. A\nfalse value means at least one descriptor below is a typed absence.",type:"boolean"},drill_anchors:{description:"Bounded registered source cursors for authorized local drill-down.\nPayload anchors, traces, and scope identifiers never enter this list.",items:{$ref:"#/$defs/ExecutionTopologyDrillAnchorV1"},type:"array"},emission_coverage:{$ref:"#/$defs/ExecutionTopologyEmissionCoverageV1"},github_stack_capability:{$ref:"#/$defs/ExecutionGitHubStackCapabilityReadingV1"},horizon:{$ref:"#/$defs/ObservabilityHorizonV1"},measurements:{items:{$ref:"#/$defs/ExecutionTopologyMeasurementV1"},type:"array"},observed_at_micros:{format:"int64",type:"integer"},watermark:{description:"Watermark of the last event this projection consumed. A rebuild at the\nsame watermark yields the same values.",type:"string"}},required:["authorized_scope_ref","horizon","watermark","observed_at_micros","current","coverage","emission_coverage","github_stack_capability","drill_anchors","measurements"],title:"ExecutionTopologyMetricsV1",type:"object"},{$defs:{ProjectId:_6,RepositoryId:v$,UtcMicros:bX,WorkGraphReadModeV1:{oneOf:[{properties:{mode:{const:"current",type:"string"}},required:["mode"],type:"object"},{properties:{mode:{const:"as_of",type:"string"},valid_at:{$ref:"#/$defs/UtcMicros"}},required:["mode","valid_at"],type:"object"},{properties:{from_valid_at:{$ref:"#/$defs/UtcMicros"},mode:{const:"evolution",type:"string"},through_valid_at:{$ref:"#/$defs/UtcMicros"}},required:["mode","from_valid_at","through_valid_at"],type:"object"},{properties:{from_observed_at:{$ref:"#/$defs/UtcMicros"},mode:{const:"forensic",type:"string"},through_observed_at:{$ref:"#/$defs/UtcMicros"}},required:["mode","from_observed_at","through_observed_at"],type:"object"}]},WorkProductAuthorizedRelationScopeV1:$1,WorkProductSelectionScopeV1:St},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{continuation:{type:["string","null"]},mode:{$ref:"#/$defs/WorkGraphReadModeV1"},observed_at:{$ref:"#/$defs/UtcMicros"},selection:{$ref:"#/$defs/WorkProductSelectionScopeV1"}},required:["selection","mode","observed_at"],title:"WorkGraphReadRequestV1",type:"object"},{$defs:{ActorId:f$,AttemptId:fM,AuthorizedWorkProductScopeV1:{additionalProperties:!1,description:"Owner identity resolved by the registered profile authority. It is never\naccepted from a Work request.",properties:{owner_brain_id:{$ref:"#/$defs/BrainId"},owner_profile_id:{$ref:"#/$defs/UserProfileId"},selection:{$ref:"#/$defs/WorkProductSelectionScopeV1"}},required:["owner_brain_id","owner_profile_id","selection"],type:"object"},BrainId:f0,ManifestDigest:_p,ProjectId:_6,ProjectionGenerationId:_8,ProposalId:_7,ProviderId:vn,RepositoryId:v$,RetrievalAnchorId:vx,RunId:vL,TaskEvidenceLinkV1:bT,TaskId:bE,UserProfileId:bQ,UtcMicros:bX,VerifiedWorkGraphVersionV1:b1,WorkAcceptanceCriterionV1:b0,WorkAttemptIdentityV1:b9,WorkAttemptStateV1:$i,WorkCausalProjectionV1:{additionalProperties:!1,properties:{candidate_edges:{items:{$ref:"#/$defs/WorkDagEdgeV1"},type:"array"},graph_version:{format:"uint64",minimum:0,type:"integer"}},required:["graph_version","candidate_edges"],type:"object"},WorkCriticalPathProjectionV1:{additionalProperties:!1,properties:{graph_version:{format:"uint64",minimum:0,type:"integer"},task_ids:{items:{$ref:"#/$defs/TaskId"},type:"array"},total_effort:{format:"uint32",minimum:0,type:"integer"}},required:["graph_version","task_ids","total_effort"],type:"object"},WorkDagEdgeV1:{additionalProperties:!1,properties:{dependency:{$ref:"#/$defs/TaskId"},dependent:{$ref:"#/$defs/TaskId"}},required:["dependency","dependent"],type:"object"},WorkDagProjectionV1:{additionalProperties:!1,properties:{gating_edges:{items:{$ref:"#/$defs/WorkDagEdgeV1"},type:"array"},graph_version:{format:"uint64",minimum:0,type:"integer"},task_ids:{items:{$ref:"#/$defs/TaskId"},type:"array"}},required:["graph_version","task_ids","gating_edges"],type:"object"},WorkGraphSelectionCoverageV1:{description:"How much of the owner's journal the read's selection actually covers.\n\nA selection names a slice of the owner's work, not the whole journal: an\nevent records the relation scopes it was admitted under, and a selection\nthat does not name them puts that event *outside* the slice. The events\noutside a selection do not poison the ones inside it, but they must never be\nconcealed either, a caller who is shown the covered slice with no way to\nlearn that more exists is reading a silently incomplete graph.\n\nSo the read answers over the covered slice and says so, in the same\n`Complete`/`Partial` vocabulary [`WorkGraphTimelineCoverageV1`] and\n[`WorkHistoryCoverageV1`](crate::WorkHistoryCoverageV1) already use.\n\nThe covered slice is always a *prefix* of the journal, and that is a\nproperty of folding rather than a simplification. A graph version is folded\nfrom every event up to its own sequence, so the first event a selection does\nnot cover ends the readable slice: every later version, whatever scopes its\nown event named, would have to be folded across that event to exist at all.\n`excluded_events` therefore counts every event from the first uncovered one\nonward.",oneOf:[{description:"The selection covers the owner's whole journal. Nothing was withheld.",properties:{coverage:{const:"complete",type:"string"},covered_events:{format:"uint32",minimum:0,type:"integer"}},required:["coverage","covered_events"],type:"object"},{description:"The selection covers `covered_events` events and `excluded_events`\nevents lie outside it, starting at `first_excluded_sequence`. Every\nentry this read returned was folded from covered events alone.",properties:{coverage:{const:"partial",type:"string"},covered_events:{format:"uint32",minimum:0,type:"integer"},excluded_events:{format:"uint32",minimum:0,type:"integer"},first_excluded_sequence:{format:"uint64",minimum:0,type:"integer"}},required:["coverage","covered_events","excluded_events","first_excluded_sequence"],type:"object"}]},WorkGraphTimelineCoverageV1:{oneOf:[{properties:{coverage:{const:"complete",type:"string"},returned:{format:"uint32",minimum:0,type:"integer"}},required:["coverage","returned"],type:"object"},{properties:{continuation:{type:"string"},coverage:{const:"partial",type:"string"},returned:{format:"uint32",minimum:0,type:"integer"}},required:["coverage","returned","continuation"],type:"object"}]},WorkGraphTimelineV1:{additionalProperties:!1,properties:{coverage:{$ref:"#/$defs/WorkGraphTimelineCoverageV1"},entries:{items:{$ref:"#/$defs/WorkGraphVersionEntryV1"},type:"array"}},required:["entries","coverage"],type:"object"},WorkGraphVersionEntryV1:{additionalProperties:!1,description:"One immutable graph version and every Work projection derived from that\nsame version at the caller's explicit observation time.",properties:{graph:{$ref:"#/$defs/WorkProductGraphV1"},observed_at:{$ref:"#/$defs/UtcMicros"},projected_at:{$ref:"#/$defs/UtcMicros"},projections:{$ref:"#/$defs/WorkProductProjectionBundleV1"},runtime:{$ref:"#/$defs/WorkRuntimeProjectionV1"},valid_at:{$ref:"#/$defs/UtcMicros"},verified_version:{$ref:"#/$defs/VerifiedWorkGraphVersionV1"}},required:["valid_at","observed_at","projected_at","verified_version","graph","runtime","projections"],type:"object"},WorkHandoffV1:$W,WorkHierarchyV1:$M,WorkInitiativeV1:$N,WorkItemInputV1:$z,WorkItemV1:$D,WorkKanbanCardV1:{additionalProperties:!1,properties:{effort:{format:"uint32",minimum:0,type:"integer"},lane:{$ref:"#/$defs/WorkTimelineLaneV1"},legal_actions:{items:{$ref:"#/$defs/WorkLegalActionV1"},type:"array",uniqueItems:!0},task_id:{$ref:"#/$defs/TaskId"}},required:["task_id","lane","effort","legal_actions"],type:"object"},WorkKanbanProjectionV1:{additionalProperties:!1,properties:{cards:{items:{$ref:"#/$defs/WorkKanbanCardV1"},type:"array"},graph_version:{format:"uint64",minimum:0,type:"integer"}},required:["graph_version","cards"],type:"object"},WorkLegalActionV1:{enum:["view_evidence","generate_proposal","accept_proposal","link_accepted_attempt","accept_task","handoff","archive"],type:"string"},WorkMilestoneV1:$H,WorkPlanV1:$Y,WorkProductAuthorizedRelationScopeV1:$1,WorkProductGraphV1:$3,WorkProductProjectionBundleV1:{additionalProperties:!1,properties:{causal:{$ref:"#/$defs/WorkCausalProjectionV1"},critical_path:{$ref:"#/$defs/WorkCriticalPathProjectionV1"},dag:{$ref:"#/$defs/WorkDagProjectionV1"},graph_version:{format:"uint64",minimum:0,type:"integer"},kanban:{$ref:"#/$defs/WorkKanbanProjectionV1"},runtime:{$ref:"#/$defs/WorkRuntimeProjectionV1"},timeline:{$ref:"#/$defs/WorkTimelineProjectionV1"},workload:{$ref:"#/$defs/WorkWorkloadProjectionV1"}},required:["graph_version","runtime","kanban","dag","timeline","causal","critical_path","workload"],type:"object"},WorkProductSelectionScopeV1:St,WorkProjectionSequenceV1:{format:"uint64",minimum:0,title:"WorkProjectionSequenceV1",type:"integer"},WorkProposalDecisionV1:Sr,WorkProposalDispositionV1:Si,WorkProposalV1:So,WorkProposedChildV1:Sn,WorkProviderRouteId:Sl,WorkProviderRouteV1:Sp,WorkRelationReplanDecisionV1:Sm,WorkRelationReplanProposalV1:Sf,WorkRouteDecisionV1:Sb,WorkRuntimeAttemptProjectionV1:{additionalProperties:!1,properties:{identity:{$ref:"#/$defs/WorkAttemptIdentityV1"},state:{$ref:"#/$defs/WorkAttemptStateV1"}},required:["identity","state"],type:"object"},WorkRuntimeProjectionCoverageV1:{oneOf:[{additionalProperties:!1,properties:{coverage:{const:"complete",type:"string"}},required:["coverage"],type:"object"},{additionalProperties:!1,properties:{coverage:{const:"partial",type:"string"},unavailable_attempts:{items:{$ref:"#/$defs/WorkAttemptIdentityV1"},type:"array",uniqueItems:!0}},required:["coverage","unavailable_attempts"],type:"object"},{additionalProperties:!1,properties:{coverage:{const:"unavailable",type:"string"}},required:["coverage"],type:"object"}]},WorkRuntimeProjectionV1:{additionalProperties:!1,properties:{attempts:{items:{$ref:"#/$defs/WorkRuntimeAttemptProjectionV1"},type:"array"},coverage:{$ref:"#/$defs/WorkRuntimeProjectionCoverageV1"},generation_id:{$ref:"#/$defs/ProjectionGenerationId"},graph_version:{format:"uint64",minimum:0,type:"integer"},observed_at:{$ref:"#/$defs/UtcMicros"},sequence:{$ref:"#/$defs/WorkProjectionSequenceV1"}},required:["graph_version","generation_id","sequence","observed_at","attempts","coverage"],type:"object"},WorkScoreKindV1:SR,WorkShapeAssessmentV1:Sq,WorkSizingV1:SI,WorkTimelineEntryV1:{additionalProperties:!1,properties:{created_at:{$ref:"#/$defs/UtcMicros"},deadline:{anyOf:[{$ref:"#/$defs/UtcMicros"},{type:"null"}]},scheduled_at:{anyOf:[{$ref:"#/$defs/UtcMicros"},{type:"null"}]},task_id:{$ref:"#/$defs/TaskId"},updated_at:{$ref:"#/$defs/UtcMicros"}},required:["task_id","created_at","updated_at"],type:"object"},WorkTimelineLaneV1:{enum:["triage","todo","scheduled","ready","running","blocked","review","done","archived","cancelled","unavailable"],type:"string"},WorkTimelineProjectionV1:{additionalProperties:!1,properties:{entries:{items:{$ref:"#/$defs/WorkTimelineEntryV1"},type:"array"},graph_version:{format:"uint64",minimum:0,type:"integer"}},required:["graph_version","entries"],type:"object"},WorkWorkloadProjectionV1:{additionalProperties:!1,properties:{actual_concurrency:{format:"uint32",minimum:0,type:["integer","null"]},blocked_effort:{format:"uint32",minimum:0,type:["integer","null"]},graph_version:{format:"uint64",minimum:0,type:"integer"},ready_effort:{format:"uint32",minimum:0,type:["integer","null"]},requested_concurrency:{format:"uint32",minimum:0,type:["integer","null"]},running_effort:{format:"uint32",minimum:0,type:["integer","null"]},total_effort:{format:"uint32",minimum:0,type:"integer"}},required:["graph_version","total_effort"],type:"object"}},$schema:"https://json-schema.org/draft/2020-12/schema",oneOf:[{properties:{authorized_scope:{$ref:"#/$defs/AuthorizedWorkProductScopeV1"},mode:{const:"current",type:"string"},selection_coverage:{$ref:"#/$defs/WorkGraphSelectionCoverageV1"},snapshot:{$ref:"#/$defs/WorkGraphVersionEntryV1"}},required:["mode","authorized_scope","selection_coverage","snapshot"],type:"object"},{properties:{authorized_scope:{$ref:"#/$defs/AuthorizedWorkProductScopeV1"},mode:{const:"as_of",type:"string"},selection_coverage:{$ref:"#/$defs/WorkGraphSelectionCoverageV1"},snapshot:{$ref:"#/$defs/WorkGraphVersionEntryV1"}},required:["mode","authorized_scope","selection_coverage","snapshot"],type:"object"},{properties:{authorized_scope:{$ref:"#/$defs/AuthorizedWorkProductScopeV1"},mode:{const:"evolution",type:"string"},selection_coverage:{$ref:"#/$defs/WorkGraphSelectionCoverageV1"},timeline:{$ref:"#/$defs/WorkGraphTimelineV1"}},required:["mode","authorized_scope","selection_coverage","timeline"],type:"object"},{properties:{authorized_scope:{$ref:"#/$defs/AuthorizedWorkProductScopeV1"},mode:{const:"forensic",type:"string"},selection_coverage:{$ref:"#/$defs/WorkGraphSelectionCoverageV1"},timeline:{$ref:"#/$defs/WorkGraphTimelineV1"}},required:["mode","authorized_scope","selection_coverage","timeline"],type:"object"},{description:"A `Current` or `AsOf` point read under an authorized selection that has\nno published graph version at that point: no task has been created yet.\nThe caller was authorized; the legal next action is creating a task.",properties:{authorized_scope:{$ref:"#/$defs/AuthorizedWorkProductScopeV1"},mode:{const:"absent",type:"string"},selection_coverage:{$ref:"#/$defs/WorkGraphSelectionCoverageV1"}},required:["mode","authorized_scope","selection_coverage"],type:"object"}],title:"WorkGraphReadV1"},{$defs:{WorkflowDefinitionId:Sz},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"Wire request for [`WorkflowDefinitionService::activate`].",properties:{definition_id:{$ref:"#/$defs/WorkflowDefinitionId"},definition_version:{format:"uint64",minimum:1,type:"integer"},expected_revision:{description:"Current candidate disposition revision. A newly registered candidate\nstarts at revision 1; activation reports expected and observed values\nwhen this compare-and-swap precondition is stale.",format:"uint64",minimum:1,type:"integer"}},required:["definition_id","definition_version","expected_revision"],title:"WorkflowDefinitionActivateRequest",type:"object"},{$defs:{UtcMicros:bX,WorkflowDefinitionId:Sz,WorkflowDefinitionLifecycleState:{description:'Durable lifecycle disposition of one immutable workflow definition version.\n\nPlan 32 ("Typed workflow definitions"): "Lifecycle retains candidate,\nvalidate, activate, retire, reject, list, get, diff, and history operations\nthrough the same application surfaces." The definition payload itself stays\nimmutable, "Editing creates a new version; admitted runs remain pinned",\nso the disposition is a separate revisioned aggregate keyed by the same\ndefinition identity.',enum:["candidate","validated","active","retired","rejected"],type:"string"}},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"Revisioned lifecycle disposition of one definition version.",properties:{definition_id:{$ref:"#/$defs/WorkflowDefinitionId"},definition_version:{format:"uint64",minimum:1,type:"integer"},revision:{format:"uint64",minimum:1,type:"integer"},state:{$ref:"#/$defs/WorkflowDefinitionLifecycleState"},transitioned_at:{$ref:"#/$defs/UtcMicros"}},required:["definition_id","definition_version","state","revision","transitioned_at"],title:"WorkflowDefinitionDisposition",type:"object"},{$defs:{RunId:vL,WorkCommandId:$m},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"Requests cooperative cancellation as a durable typed transition; the run\nsettles to `Cancelled` when the runtime reconciles in-flight steps.",properties:{command_id:{$ref:"#/$defs/WorkCommandId"},expected_sequence:{format:"uint64",minimum:0,type:"integer"},run_id:{$ref:"#/$defs/RunId"}},required:["run_id","expected_sequence","command_id"],title:"WorkflowRunCancelRequest",type:"object"},{$defs:{ActorId:f$,AttemptId:fM,AutomaticWorktreeGcV1:fL,BranchCollisionPolicyV1:f2,BranchNameComponentV1:f4,BranchNameSeparatorV1:f6,BranchNamingPolicyV1:f3,BranchTopologyKindV1:hr,BranchTopologyPolicyV1:hi,CanonicalGitRefNameV1:hc,CanonicalGitRefPrefix:hl,CapabilityId:hp,CommitId:hI,ConfigurationRevisionId:hN,ConfigurationSnapshotId:hz,CredentialReferenceId:yy,CrossMergeModeV1:yg,CrossMergePolicyV1:y_,GitHubStackedPullRequestPolicyV1:gP,HistoryRewritePolicyV1:gL,LocatorDigest:_i,ManifestDigest:_p,ProjectId:_6,ProposalId:_7,ProtectedRefDispositionV1:ve,ProtectedRefRuleV1:vt,ProtectedRefSelectorV1:vr,ProviderId:vn,RefId:vf,RepositoryId:v$,RepositoryPlacementScopeV1:vS,RequiredCheckExpectationV1:vk,RequiredCheckV1:vw,ReviewRequirementV1:vA,ReviewTopologyKindV1:vW,ReviewTopologyPolicyV1:vM,RunId:vL,SensitiveFilesystemLocatorV1:v3,TaskId:bE,TopologyConcurrencyPolicyV1:bH,TopologyEscalationPolicyV1:bG,TopologyGatePolicyV1:bB,TopologyNotificationLevelV1:bK,UtcMicros:bX,WorkAcceptanceCriterionV1:b0,WorkApprovalPolicy:b2,WorkArtifactId:b4,WorkArtifactRefV1:b6,WorkAttemptIdentityV1:b9,WorkAuthority:{additionalProperties:!1,properties:{actor_id:{$ref:"#/$defs/ActorId"},policy_digest:{$ref:"#/$defs/ManifestDigest"},project_id:{$ref:"#/$defs/ProjectId"},repository_id:{$ref:"#/$defs/RepositoryId"},worktree_id:{$ref:"#/$defs/WorktreeId"}},required:["project_id","repository_id","worktree_id","actor_id","policy_digest"],type:"object"},WorkCommandId:$m,WorkEffectStateV1:$g,WorkEgressPolicy:$v,WorkExecutableReference:$w,WorkExecutionLimits:$V,WorkExecutionSnapshot:$R,WorkFallbackTopology:$x,WorkFilesystemPolicy:$C,WorkHandoffV1:$W,WorkHierarchyV1:$M,WorkInitiativeV1:$N,WorkItemInputV1:$z,WorkItemV1:$D,WorkMilestoneV1:$H,WorkPlanV1:$Y,WorkProposalV1:So,WorkProposedChildV1:Sn,WorkProviderBackendV1:Ss,WorkProviderProtocol:Sc,WorkProviderRouteId:Sl,WorkProviderRouteV1:Sp,WorkRouteDecisionV1:Sb,WorkSandboxPolicy:SV,WorkScoreKindV1:SR,WorkShapeAssessmentV1:Sq,WorkSizingV1:SI,WorkTopologyPolicyV1:SM,WorkflowDefinition:SN,WorkflowDefinitionId:Sz,WorkflowFanOut:SD,WorkflowFanOutChildPlanV1:{additionalProperties:!1,properties:{admit_command_id:{$ref:"#/$defs/WorkCommandId"},attempt_identity:{$ref:"#/$defs/WorkAttemptIdentityV1"},create_command_id:{$ref:"#/$defs/WorkCommandId"},initiative:{$ref:"#/$defs/WorkInitiativeV1"},instructions:{type:"string"},item:{$ref:"#/$defs/WorkItemV1"},milestone:{$ref:"#/$defs/WorkMilestoneV1"},plan:{$ref:"#/$defs/WorkPlanV1"},proposal:{$ref:"#/$defs/WorkProposalV1"},proposal_command_id:{$ref:"#/$defs/WorkCommandId"},task_id:{$ref:"#/$defs/TaskId"}},required:["task_id","attempt_identity","create_command_id","proposal_command_id","admit_command_id","initiative","plan","milestone","item","proposal","instructions"],type:"object"},WorkflowFanOutFailurePolicyV1:{oneOf:[{properties:{policy:{const:"fail_fast",type:"string"}},required:["policy"],type:"object"},{properties:{policy:{const:"collect",type:"string"}},required:["policy"],type:"object"},{properties:{policy:{const:"require_at_least",type:"string"},successes:{format:"uint16",maximum:65535,minimum:1,type:"integer"}},required:["policy","successes"],type:"object"}]},WorkflowFanOutPlanV1:{additionalProperties:!1,properties:{admitted_at:{$ref:"#/$defs/UtcMicros"},authority:{$ref:"#/$defs/WorkAuthority",description:"Exact Work authority that admitted this plan. Recovery may execute the\nplan only from a runtime with this byte-identical authority."},children:{items:{$ref:"#/$defs/WorkflowFanOutChildPlanV1"},type:"array"},commit:{$ref:"#/$defs/CommitId"},effect_state:{$ref:"#/$defs/WorkEffectStateV1"},execution_snapshot:{$ref:"#/$defs/WorkExecutionSnapshot"},failure_policy:{$ref:"#/$defs/WorkflowFanOutFailurePolicyV1"},maximum_parallel:{format:"uint16",maximum:65535,minimum:1,type:"integer"},operation:{$ref:"#/$defs/WorkflowOperationRef"},plan_digest:{$ref:"#/$defs/ManifestDigest"},reference:{anyOf:[{$ref:"#/$defs/RefId"},{type:"null"}]},step_id:{$ref:"#/$defs/WorkflowStepId"}},required:["authority","step_id","operation","plan_digest","admitted_at","maximum_parallel","failure_policy","execution_snapshot","commit","effect_state","children"],type:"object"},WorkflowOperationRef:SF,WorkflowOutputArtifact:{additionalProperties:!1,properties:{artifact:{$ref:"#/$defs/WorkArtifactRefV1"},attempt_identity:{$ref:"#/$defs/WorkAttemptIdentityV1"}},required:["attempt_identity","artifact"],type:"object"},WorkflowOutputName:SL,WorkflowOutputReference:SU,WorkflowPlacementReceipt:{additionalProperties:!1,properties:{backend:{$ref:"#/$defs/WorkProviderBackendV1"},configuration_digest:{$ref:"#/$defs/ManifestDigest"},model:{type:"string"},placement_digest:{$ref:"#/$defs/ManifestDigest"},provider_registry_digest:{$ref:"#/$defs/ManifestDigest"},route:{$ref:"#/$defs/WorkProviderRouteV1"},run_id:{$ref:"#/$defs/RunId"},step_id:{$ref:"#/$defs/WorkflowStepId"},topology_digest:{$ref:"#/$defs/ManifestDigest"},worktree_placement:{$ref:"#/$defs/WorktreePlacementModeV1"}},required:["run_id","step_id","route","backend","model","configuration_digest","topology_digest","provider_registry_digest","worktree_placement","placement_digest"],type:"object"},WorkflowRunEvent:{additionalProperties:!1,properties:{command_id:{$ref:"#/$defs/WorkCommandId"},event:{$ref:"#/$defs/WorkflowRunEventKind"},input_digest:{$ref:"#/$defs/ManifestDigest"},occurred_at:{$ref:"#/$defs/UtcMicros"},run_id:{$ref:"#/$defs/RunId"},sequence:{format:"uint64",minimum:0,type:"integer"}},required:["run_id","sequence","command_id","input_digest","occurred_at","event"],type:"object"},WorkflowRunEventKind:{oneOf:[{properties:{definition:{$ref:"#/$defs/WorkflowDefinition"},fan_out_plans:{default:[],items:{$ref:"#/$defs/WorkflowFanOutPlanV1"},type:"array"},pinned_provider_registry_digest:{$ref:"#/$defs/ManifestDigest"},pinned_topology_digest:{$ref:"#/$defs/ManifestDigest"},type:{const:"admitted",type:"string"}},required:["type","definition","pinned_topology_digest","pinned_provider_registry_digest"],type:"object"},{properties:{attempts:{items:{$ref:"#/$defs/WorkAttemptIdentityV1"},type:"array"},step_id:{$ref:"#/$defs/WorkflowStepId"},type:{const:"fan_out_children_released",type:"string"}},required:["type","step_id","attempts"],type:"object"},{properties:{attempts:{items:{$ref:"#/$defs/WorkAttemptIdentityV1"},type:"array"},step_id:{$ref:"#/$defs/WorkflowStepId"},type:{const:"fan_out_children_settled",type:"string"}},required:["type","step_id","attempts"],type:"object"},{properties:{planned_attempt:{$ref:"#/$defs/WorkAttemptIdentityV1"},prior_attempt:{$ref:"#/$defs/WorkAttemptIdentityV1"},replacement_attempt:{$ref:"#/$defs/WorkAttemptIdentityV1"},retry_receipt_digest:{$ref:"#/$defs/ManifestDigest"},step_id:{$ref:"#/$defs/WorkflowStepId"},type:{const:"fan_out_child_retry_rebound",type:"string"}},required:["type","step_id","planned_attempt","prior_attempt","replacement_attempt","retry_receipt_digest"],type:"object"},{properties:{placement:{$ref:"#/$defs/WorkflowPlacementReceipt"},step_id:{$ref:"#/$defs/WorkflowStepId"},type:{const:"step_started",type:"string"}},required:["type","step_id","placement"],type:"object"},{properties:{effect_receipt:{$ref:"#/$defs/WorkflowStepEffectReceipt"},outputs:{items:{$ref:"#/$defs/WorkflowStepOutput"},type:"array"},step_id:{$ref:"#/$defs/WorkflowStepId"},type:{const:"step_completed",type:"string"}},required:["type","step_id","outputs","effect_receipt"],type:"object"},{properties:{effect_receipt:{$ref:"#/$defs/WorkflowStepEffectReceipt"},outputs:{items:{$ref:"#/$defs/WorkflowStepOutput"},type:"array"},step_id:{$ref:"#/$defs/WorkflowStepId"},type:{const:"step_failed",type:"string"}},required:["type","step_id","outputs","effect_receipt"],type:"object"},{properties:{type:{const:"paused",type:"string"}},required:["type"],type:"object"},{properties:{type:{const:"resumed",type:"string"}},required:["type"],type:"object"},{properties:{type:{const:"cancellation_requested",type:"string"}},required:["type"],type:"object"},{properties:{type:{const:"cancelled",type:"string"}},required:["type"],type:"object"}]},WorkflowRunStatus:{enum:["running","paused","cancelling","completed","failed","cancelled"],type:"string"},WorkflowStep:SH,WorkflowStepEffectOutcome:{enum:["completed","failed","cancelled","timed_out","unknown"],type:"string"},WorkflowStepEffectReceipt:{additionalProperties:!1,properties:{effect_digest:{$ref:"#/$defs/ManifestDigest"},outcome:{$ref:"#/$defs/WorkflowStepEffectOutcome"},output_set_digest:{$ref:"#/$defs/ManifestDigest"},placement_digest:{$ref:"#/$defs/ManifestDigest"},receipt_digest:{$ref:"#/$defs/ManifestDigest"},run_id:{$ref:"#/$defs/RunId"},step_id:{$ref:"#/$defs/WorkflowStepId"}},required:["run_id","step_id","placement_digest","outcome","effect_digest","output_set_digest","receipt_digest"],type:"object"},WorkflowStepId:SG,WorkflowStepOutput:{additionalProperties:!1,properties:{artifacts:{items:{$ref:"#/$defs/WorkflowOutputArtifact"},type:"array"},output_name:{$ref:"#/$defs/WorkflowOutputName"}},required:["output_name","artifacts"],type:"object"},WorkflowStepRunProjection:{additionalProperties:!1,properties:{effect_receipt:{anyOf:[{$ref:"#/$defs/WorkflowStepEffectReceipt"},{type:"null"}]},outputs:{additionalProperties:{$ref:"#/$defs/WorkflowStepOutput"},type:"object"},placement_receipt:{anyOf:[{$ref:"#/$defs/WorkflowPlacementReceipt"},{type:"null"}]},status:{$ref:"#/$defs/WorkflowStepStatus"}},required:["status","outputs"],type:"object"},WorkflowStepStatus:{enum:["blocked","ready","running","succeeded","failed","cancelled"],type:"string"},WorktreeCleanlinessRequirementV1:SK,WorktreeId:SJ,WorktreePlacementModeV1:SX,WorktreeRetentionPolicyV1:SY,WorktreeRootPolicyV1:S1},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{definition:{$ref:"#/$defs/WorkflowDefinition"},fan_out_plans:{additionalProperties:{$ref:"#/$defs/WorkflowFanOutPlanV1"},type:"object"},history:{items:{$ref:"#/$defs/WorkflowRunEvent"},type:"array"},pinned_provider_registry_digest:{$ref:"#/$defs/ManifestDigest"},pinned_topology_digest:{$ref:"#/$defs/ManifestDigest"},released_fan_out_attempts:{items:{$ref:"#/$defs/WorkAttemptIdentityV1"},type:"array",uniqueItems:!0},run_id:{$ref:"#/$defs/RunId"},sequence:{format:"uint64",minimum:0,type:"integer"},settled_fan_out_attempts:{items:{$ref:"#/$defs/WorkAttemptIdentityV1"},type:"array",uniqueItems:!0},status:{$ref:"#/$defs/WorkflowRunStatus"},steps:{additionalProperties:{$ref:"#/$defs/WorkflowStepRunProjection"},type:"object"}},required:["run_id","definition","pinned_topology_digest","pinned_provider_registry_digest","status","sequence","steps","fan_out_plans","released_fan_out_attempts","settled_fan_out_attempts","history"],title:"WorkflowRunProjection",type:"object"},{$defs:{WorkflowDefinitionId:Sz},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"Wire request for [`WorkflowDefinitionService::history`].",properties:{definition_id:{$ref:"#/$defs/WorkflowDefinitionId"}},required:["definition_id"],title:"WorkflowDefinitionHistoryRequest",type:"object"},{$defs:{ManifestDigest:_p,ProjectId:_6,WorkflowDefinition:SN,WorkflowDefinitionId:Sz,WorkflowFanOut:SD,WorkflowOperationRef:SF,WorkflowOutputName:SL,WorkflowOutputReference:SU,WorkflowStep:SH,WorkflowStepId:SG},$schema:"https://json-schema.org/draft/2020-12/schema",items:{$ref:"#/$defs/WorkflowDefinition"},title:"Array_of_WorkflowDefinition",type:"array"},{$defs:{WorkflowDefinitionId:Sz},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"Wire request for [`WorkflowDefinitionService::diff`].",properties:{definition_id:{$ref:"#/$defs/WorkflowDefinitionId"},from_version:{format:"uint64",minimum:1,type:"integer"},to_version:{format:"uint64",minimum:1,type:"integer"}},required:["definition_id","from_version","to_version"],title:"WorkflowDefinitionDiffRequest",type:"object"},{$defs:{WorkflowDefinitionId:Sz,WorkflowStepId:SG},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{catalog_changed:{type:"boolean"},changed_steps:{items:{$ref:"#/$defs/WorkflowStepId"},type:"array",uniqueItems:!0},configuration_changed:{type:"boolean"},definition_id:{$ref:"#/$defs/WorkflowDefinitionId"},from_version:{format:"uint64",minimum:0,type:"integer"},policy_changed:{type:"boolean"},to_version:{format:"uint64",minimum:0,type:"integer"}},required:["definition_id","from_version","to_version","changed_steps","policy_changed","configuration_changed","catalog_changed"],title:"WorkflowDefinitionDiff",type:"object"},{$defs:{WorkflowDefinitionId:Sz},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"Wire request for [`WorkflowDefinitionService::get`].",properties:{definition_id:{$ref:"#/$defs/WorkflowDefinitionId"},definition_version:{format:"uint64",minimum:1,type:"integer"}},required:["definition_id","definition_version"],title:"WorkflowDefinitionGetRequest",type:"object"},{$defs:{ManifestDigest:_p,ProjectId:_6,WorkflowDefinitionId:Sz,WorkflowFanOut:SD,WorkflowOperationRef:SF,WorkflowOutputName:SL,WorkflowOutputReference:SU,WorkflowStep:SH,WorkflowStepId:SG},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{definition_id:{$ref:"#/$defs/WorkflowDefinitionId"},definition_version:{format:"uint64",minimum:0,type:"integer"},pinned_catalog_digest:{$ref:"#/$defs/ManifestDigest",description:"Must equal the live Work executable catalog digest. Validation and\nactivation report the current digest when this pin is stale."},pinned_configuration_digest:{$ref:"#/$defs/ManifestDigest"},pinned_policy_digest:{$ref:"#/$defs/ManifestDigest"},project_id:{$ref:"#/$defs/ProjectId"},steps:{items:{$ref:"#/$defs/WorkflowStep"},type:"array"}},required:["definition_id","definition_version","project_id","steps","pinned_policy_digest","pinned_configuration_digest","pinned_catalog_digest"],title:"WorkflowDefinition",type:"object"},{$defs:{RunId:vL},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{run_id:{$ref:"#/$defs/RunId"}},required:["run_id"],title:"WorkflowRunGetRequest",type:"object"},{$defs:{ActorId:f$,AttemptId:fM,ManifestDigest:_p,ProjectId:_6,RepositoryId:v$,RunId:vL,TaskHandoffScope:bO,TaskId:bE,ThreadId:bF,UtcMicros:bX,WorkAttemptIdentityV1:b9,WorkAttemptStateV1:$i,WorkHandoffAttemptFrontierV1:$O,WorkHandoffFrontierV1:$E,WorkHandoffLineageV1:$A,WorkflowDefinitionId:Sz,WorkflowStepId:SG,WorktreeId:SJ},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"Wire request for [`TaskHandoffService::issue`].\n\n`secret` is the caller-supplied bearer token; the authority persists only\nits digest, never the secret itself. The scope must name a step the\nActive definition version declares and a run admitted from that version;\nany other scope is refused as not found and journals no grant.",properties:{frontier:{$ref:"#/$defs/WorkHandoffFrontierV1",description:"The exact work/evidence frontier this handoff records (Plan 24)."},scope:{$ref:"#/$defs/TaskHandoffScope"},secret:{type:"string"}},required:["scope","secret","frontier"],title:"TaskHandoffIssueRequest",type:"object"},{$defs:{ActorId:f$,AttemptId:fM,ManifestDigest:_p,ProjectId:_6,RepositoryId:v$,RunId:vL,TaskHandoffScope:bO,TaskId:bE,ThreadId:bF,UtcMicros:bX,WorkAttemptIdentityV1:b9,WorkAttemptStateV1:$i,WorkHandoffAttemptFrontierV1:$O,WorkHandoffFrontierV1:$E,WorkHandoffLineageV1:$A,WorkflowDefinitionId:Sz,WorkflowStepId:SG,WorktreeId:SJ},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{expires_at:{$ref:"#/$defs/UtcMicros"},frontier:{$ref:"#/$defs/WorkHandoffFrontierV1",description:"The exact work/evidence frontier this handoff records (Plan 24)."},frontier_digest:{$ref:"#/$defs/ManifestDigest",description:"The canonical digest of `frontier`; lineage chains hold this value."},issued_at:{$ref:"#/$defs/UtcMicros"},scope:{$ref:"#/$defs/TaskHandoffScope"},token_digest:{$ref:"#/$defs/ManifestDigest"}},required:["scope","token_digest","issued_at","expires_at","frontier","frontier_digest"],title:"TaskHandoffGrant",type:"object"},{$defs:{ActorId:f$,ProjectId:_6,RepositoryId:v$,RunId:vL,TaskHandoffScope:bO,TaskId:bE,ThreadId:bF,WorkflowDefinitionId:Sz,WorkflowStepId:SG,WorktreeId:SJ},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"Wire request for [`TaskHandoffService::redeem`].",properties:{expected_scope:{$ref:"#/$defs/TaskHandoffScope"},secret:{type:"string"}},required:["secret","expected_scope"],title:"TaskHandoffRedeemRequest",type:"object"},{$defs:{ActorId:f$,AttemptId:fM,ManifestDigest:_p,ProjectId:_6,RepositoryId:v$,RunId:vL,TaskHandoffScope:bO,TaskId:bE,ThreadId:bF,UtcMicros:bX,WorkAttemptIdentityV1:b9,WorkAttemptStateV1:$i,WorkHandoffAttemptFrontierV1:$O,WorkHandoffFrontierV1:$E,WorkHandoffLineageV1:$A,WorkflowDefinitionId:Sz,WorkflowStepId:SG,WorktreeId:SJ},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"Wire response for [`TaskHandoffService::redeem`]: the redemption receipt,\nonce and only once, for the caller that actually consumed the grant.\n\nThe receipt is checkpoint evidence only. It deliberately carries no\nlease, fence, or acceptance authority: redeeming a handoff cannot renew\na lease, establish task acceptance, or mutate graph or runtime state\n(Plan 24). The redeemer must earn runtime authority through the normal\nadmission and lease paths.",properties:{frontier:{$ref:"#/$defs/WorkHandoffFrontierV1",description:"The frontier exactly as the issuer recorded it."},frontier_digest:{$ref:"#/$defs/ManifestDigest",description:"The canonical digest of `frontier`, for lineage chaining."},redeemed_at:{$ref:"#/$defs/UtcMicros"},scope:{$ref:"#/$defs/TaskHandoffScope"}},required:["scope","frontier","frontier_digest","redeemed_at"],title:"TaskHandoffRedeemed",type:"object"},{$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"Wire request for [`WorkflowDefinitionService::list`].",title:"WorkflowDefinitionListRequest",type:"object"},{$defs:{RunId:vL,WorkCommandId:$m},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{command_id:{$ref:"#/$defs/WorkCommandId"},expected_sequence:{format:"uint64",minimum:0,type:"integer"},run_id:{$ref:"#/$defs/RunId"}},required:["run_id","expected_sequence","command_id"],title:"WorkflowRunPauseRequest",type:"object"},{$defs:{ManifestDigest:_p,ProjectId:_6,WorkflowDefinition:SN,WorkflowDefinitionId:Sz,WorkflowFanOut:SD,WorkflowOperationRef:SF,WorkflowOutputName:SL,WorkflowOutputReference:SU,WorkflowStep:SH,WorkflowStepId:SG},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"Wire request for [`WorkflowDefinitionService::register`].",properties:{definition:{$ref:"#/$defs/WorkflowDefinition"}},required:["definition"],title:"WorkflowDefinitionRegisterRequest",type:"object"},{$defs:{WorkflowDefinitionId:Sz},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"Wire request for [`WorkflowDefinitionService::reject`].",properties:{definition_id:{$ref:"#/$defs/WorkflowDefinitionId"},definition_version:{format:"uint64",minimum:1,type:"integer"},expected_revision:{format:"uint64",minimum:1,type:"integer"}},required:["definition_id","definition_version","expected_revision"],title:"WorkflowDefinitionRejectRequest",type:"object"},{$defs:{RunId:vL,WorkCommandId:$m},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{command_id:{$ref:"#/$defs/WorkCommandId"},expected_sequence:{format:"uint64",minimum:0,type:"integer"},run_id:{$ref:"#/$defs/RunId"}},required:["run_id","expected_sequence","command_id"],title:"WorkflowRunResumeRequest",type:"object"},{$defs:{WorkflowDefinitionId:Sz},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"Wire request for [`WorkflowDefinitionService::retire`].",properties:{definition_id:{$ref:"#/$defs/WorkflowDefinitionId"},definition_version:{format:"uint64",minimum:1,type:"integer"},expected_revision:{format:"uint64",minimum:1,type:"integer"}},required:["definition_id","definition_version","expected_revision"],title:"WorkflowDefinitionRetireRequest",type:"object"},{$defs:{ActorId:f$,AttemptId:fM,AutomaticWorktreeGcV1:fL,BranchCollisionPolicyV1:f2,BranchNameComponentV1:f4,BranchNameSeparatorV1:f6,BranchNamingPolicyV1:f3,BranchTopologyKindV1:hr,BranchTopologyPolicyV1:hi,CanonicalGitRefNameV1:hc,CanonicalGitRefPrefix:hl,CapabilityId:hp,CommitId:hI,ConfigurationRevisionId:hN,ConfigurationSnapshotId:hz,CredentialReferenceId:yy,CrossMergeModeV1:yg,CrossMergePolicyV1:y_,GitHubStackedPullRequestPolicyV1:gP,HistoryRewritePolicyV1:gL,LocatorDigest:_i,ManifestDigest:_p,ProposalId:_7,ProtectedRefDispositionV1:ve,ProtectedRefRuleV1:vt,ProtectedRefSelectorV1:vr,ProviderId:vn,RefId:vf,RepositoryId:v$,RepositoryPlacementScopeV1:vS,RequiredCheckExpectationV1:vk,RequiredCheckV1:vw,ReviewRequirementV1:vA,ReviewTopologyKindV1:vW,ReviewTopologyPolicyV1:vM,RunId:vL,SensitiveFilesystemLocatorV1:v3,TaskId:bE,TopologyConcurrencyPolicyV1:bH,TopologyEscalationPolicyV1:bG,TopologyGatePolicyV1:bB,TopologyNotificationLevelV1:bK,UtcMicros:bX,WorkAcceptanceCriterionV1:b0,WorkApprovalPolicy:b2,WorkAttemptIdentityV1:b9,WorkCommandId:$m,WorkEffectStateV1:$g,WorkEgressPolicy:$v,WorkExecutableReference:$w,WorkExecutionLimits:$V,WorkExecutionSnapshot:$R,WorkFallbackTopology:$x,WorkFenceEpochV1:$j,WorkFilesystemPolicy:$C,WorkHandoffV1:$W,WorkHierarchyV1:$M,WorkInitiativeV1:$N,WorkItemInputV1:$z,WorkItemV1:$D,WorkLeaseFenceV1:$L,WorkLeaseId:$U,WorkMilestoneV1:$H,WorkPlanV1:$Y,WorkProposalV1:So,WorkProposedChildV1:Sn,WorkProviderBackendV1:Ss,WorkProviderProtocol:Sc,WorkProviderRouteId:Sl,WorkProviderRouteV1:Sp,WorkRouteDecisionV1:Sb,WorkSandboxPolicy:SV,WorkScoreKindV1:SR,WorkShapeAssessmentV1:Sq,WorkSizingV1:SI,WorkTopologyPolicyV1:SM,WorkflowDefinitionId:Sz,WorkflowExecutionFence:{additionalProperties:!1,properties:{attempt_id:{$ref:"#/$defs/AttemptId"},lease:{$ref:"#/$defs/WorkLeaseFenceV1"}},required:["attempt_id","lease"],type:"object"},WorkflowFailurePolicy:{oneOf:[{properties:{policy:{const:"fail_fast",type:"string"}},required:["policy"],type:"object"},{properties:{policy:{const:"collect",type:"string"}},required:["policy"],type:"object"},{properties:{policy:{const:"require_at_least",type:"string"},successes:{format:"uint32",minimum:1,type:"integer"}},required:["policy","successes"],type:"object"}]},WorkflowFanOutInput:{additionalProperties:!1,properties:{initiative:{$ref:"#/$defs/WorkInitiativeV1"},input_digest:{$ref:"#/$defs/ManifestDigest"},instructions:{type:"string"},item:{$ref:"#/$defs/WorkItemV1"},milestone:{$ref:"#/$defs/WorkMilestoneV1"},plan:{$ref:"#/$defs/WorkPlanV1"},proposal:{$ref:"#/$defs/WorkProposalV1"}},required:["instructions","input_digest","initiative","plan","milestone","item","proposal"],type:"object"},WorkflowFanOutStartV1:{additionalProperties:!1,description:"Caller input required to durably plan the entry fan-out of a workflow run.\nDaemon-owned registration and topology digests are resolved at admission.",properties:{commit:{$ref:"#/$defs/CommitId"},effect_state:{$ref:"#/$defs/WorkEffectStateV1"},execution_snapshot:{$ref:"#/$defs/WorkExecutionSnapshot"},failure_policy:{$ref:"#/$defs/WorkflowFailurePolicy"},fence:{$ref:"#/$defs/WorkflowExecutionFence"},inputs:{items:{$ref:"#/$defs/WorkflowFanOutInput"},type:"array"},max_parallel:{format:"uint32",minimum:1,type:"integer"},reference:{anyOf:[{$ref:"#/$defs/RefId"},{type:"null"}]}},required:["fence","max_parallel","failure_policy","execution_snapshot","commit","effect_state","inputs"],type:"object"},WorkflowProviderRegistration:{additionalProperties:!1,properties:{backend:{$ref:"#/$defs/WorkProviderBackendV1"},model:{type:"string"},priority:{format:"uint32",minimum:0,type:"integer"},route:{$ref:"#/$defs/WorkProviderRouteV1"}},required:["route","backend","model","priority"],type:"object"},WorktreeCleanlinessRequirementV1:SK,WorktreePlacementModeV1:SX,WorktreeRetentionPolicyV1:SY,WorktreeRootPolicyV1:S1},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"Starts (admits) a journaled workflow run from an active definition.\n\nThe daemon derives every admission digest itself: the definition's own\npinned policy/configuration/catalog digests are checked against the live\nenvironment, the topology digest comes from the evaluated topology policy,\nand the provider registry digest is computed from this registration. The\ncaller never supplies a digest the runtime must trust.",properties:{command_id:{$ref:"#/$defs/WorkCommandId"},definition_id:{$ref:"#/$defs/WorkflowDefinitionId"},definition_version:{format:"uint64",minimum:1,type:"integer"},fan_out:{anyOf:[{$ref:"#/$defs/WorkflowFanOutStartV1"},{type:"null"}]},provider:{$ref:"#/$defs/WorkflowProviderRegistration"},run_id:{$ref:"#/$defs/RunId"}},required:["run_id","definition_id","definition_version","provider","command_id"],title:"WorkflowRunStartRequest",type:"object"},{$defs:{ManifestDigest:_p,ProjectId:_6,WorkflowDefinition:SN,WorkflowDefinitionId:Sz,WorkflowFanOut:SD,WorkflowOperationRef:SF,WorkflowOutputName:SL,WorkflowOutputReference:SU,WorkflowStep:SH,WorkflowStepId:SG},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,description:"Wire request for [`WorkflowDefinitionService::validate`].",properties:{definition:{$ref:"#/$defs/WorkflowDefinition"}},required:["definition"],title:"WorkflowDefinitionValidateRequest",type:"object"},{$defs:{ManifestDigest:_p,ProjectId:_6,WorkflowDefinition:SN,WorkflowDefinitionId:Sz,WorkflowFanOut:SD,WorkflowOperationRef:SF,WorkflowOutputName:SL,WorkflowOutputReference:SU,WorkflowStep:SH,WorkflowStepId:SG},$schema:"https://json-schema.org/draft/2020-12/schema",additionalProperties:!1,properties:{definition:{$ref:"#/$defs/WorkflowDefinition"}},required:["definition"],title:"WorkflowDefinitionValidation",type:"object"}].map(e=>t=>(!function e(t,r,i,o,n){var a;if("boolean"==typeof r){if(!r)throw TypeError(`${o} is rejected by the canonical schema`);return}let s=fr(r,o);if("string"==typeof s.$ref){if(n.has(s.$ref))throw TypeError(`cyclic canonical schema reference: ${s.$ref}`);n.add(s.$ref),e(t,function(e,t){if(!t.startsWith("#/"))throw TypeError(`unsupported canonical schema reference: ${t}`);let r=e;for(let e of t.slice(2).split("/")){let i=e.replaceAll("~1","/").replaceAll("~0","~");r=fr(r,t)[i]}return fr(r,t)}(i,s.$ref),i,o,n),n.delete(s.$ref);return}if("const"in s&&(a=s.const,ft(t)!==ft(a)))throw TypeError(`${o} does not match the canonical constant`);if(Array.isArray(s.enum)&&!s.enum.some(e=>ft(t)===ft(e)))throw TypeError(`${o} is not a canonical enum value`);if(Array.isArray(s.allOf))for(let r of s.allOf)e(t,r,i,o,new Set(n));if(Array.isArray(s.anyOf)&&!s.anyOf.some(r=>{try{return e(t,r,i,o,new Set(n)),!0}catch{return!1}}))throw TypeError(`${o} does not match any canonical variant`);if(Array.isArray(s.oneOf)&&1!==s.oneOf.filter(r=>{try{return e(t,r,i,o,new Set(n)),!0}catch{return!1}}).length)throw TypeError(`${o} must match exactly one canonical variant`);let d=s.type;if("string"==typeof d&&!fi(t,d))throw TypeError(`${o} must be ${d}`);if(Array.isArray(d)&&!d.some(e=>"string"==typeof e&&fi(t,e)))throw TypeError(`${o} has no canonical type`);if("string"==typeof t){if("number"==typeof s.minLength&&t.lengths.maxLength)throw TypeError(`${o} exceeds maxLength`);if("string"==typeof s.pattern&&!RegExp(s.pattern,"u").test(t))throw TypeError(`${o} does not match the canonical pattern`)}if("number"==typeof t){if("integer"===s.type){if("uint32"===s.format&&(t<0||t>0xffffffff))throw TypeError(`${o} is outside uint32`);if("uint64"===s.format&&(t<0||t>Number.MAX_SAFE_INTEGER))throw TypeError(`${o} is outside safely representable uint64`);if("int64"===s.format&&(tNumber.MAX_SAFE_INTEGER))throw TypeError(`${o} is outside safely representable int64`)}if("number"==typeof s.minimum&&ts.maximum)throw TypeError(`${o} exceeds maximum`)}if(Array.isArray(t)){if("number"==typeof s.minItems&&t.lengths.maxItems)throw TypeError(`${o} has too many items`);if(!0===s.uniqueItems){let e=new Set;for(let r of t){let t=ft(r);if(e.has(t))throw TypeError(`${o} contains duplicate items`);e.add(t)}}Array.isArray(s.prefixItems)&&s.prefixItems.forEach((r,n)=>{ne(t,s.items,i,`${o}[${r}]`,new Set))}if("object"==typeof t&&null!==t&&!Array.isArray(t)){let r=void 0===s.properties?{}:fr(s.properties,`${o}.properties`);if(Array.isArray(s.required)){for(let e of s.required)if("string"==typeof e&&!(e in t))throw TypeError(`${o}.${e} is required`)}for(let[n,a]of Object.entries(t))if(n in r)e(a,r[n],i,`${o}.${n}`,new Set);else if(!1===s.additionalProperties)throw TypeError(`${o}.${n} is not allowed`);else"object"==typeof s.additionalProperties&&e(a,s.additionalProperties,i,`${o}.${n}`,new Set)}}(t,e,e,"value",new Set),t));function S2(e){let t=S0[e];if(void 0===t)throw TypeError(`generated canonical schema ${e} is missing`);return t}let S4=[{operation:"active_project",operationId:"operation.application.active_project",transport:{kind:"mcp_tool",toolName:"tracedecay_active_project"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.active_project.v1",requestSchema:{schemaId:"schema.application.primitive.active-project.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.active-project.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:12e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(0),decodeResult:S2(1)},{operation:"admin_cli",operationId:"operation.application.admin_cli",transport:{kind:"mcp_tool",toolName:"tracedecay_admin_cli"},effect:"maintains_profile_state",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.admin_cli.v1",requestSchema:{schemaId:"schema.application.primitive.admin-cli.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.admin-cli.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","effect_in_flight"]},deadline:{behavior:"return_operation_receipt",maximum_millis:6e5},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(2),decodeResult:S2(3)},{operation:"admin_project",operationId:"operation.application.admin_project",transport:{kind:"mcp_tool",toolName:"tracedecay_admin_project"},effect:"maintains_owner_state",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.admin_project.v1",requestSchema:{schemaId:"schema.application.primitive.admin-project.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.admin-project.result",revision:1},cancellation:{mode:"not_cancellable"},deadline:{behavior:"return_operation_receipt",maximum_millis:6e5},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","timed_out","failed","unavailable","partial"],decodeRequest:S2(4),decodeResult:S2(5)},{operation:"admin_sync",operationId:"operation.application.admin_sync",transport:{kind:"mcp_tool",toolName:"tracedecay_admin_sync"},effect:"schedules_work",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.admin_sync.v1",requestSchema:{schemaId:"schema.application.primitive.admin-sync.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.admin-sync.result",revision:1},cancellation:{mode:"not_cancellable"},deadline:{behavior:"return_operation_receipt",maximum_millis:6e5},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","timed_out","failed","unavailable","partial"],decodeRequest:S2(6),decodeResult:S2(7)},{operation:"affected",operationId:"operation.application.affected",transport:{kind:"mcp_tool",toolName:"tracedecay_affected"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.affected.v1",requestSchema:{schemaId:"schema.application.primitive.affected.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.affected.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:12e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(8),decodeResult:S2(9)},{operation:"application_affected_tests",operationId:"operation.application.affected_tests",transport:{kind:"http",route:"/application/tests/affected",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.affected_tests.v1",requestSchema:{schemaId:"schema.application.feedback.affected-tests.request",revision:1},resultSchema:{schemaId:"schema.application.feedback.affected-tests.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:15e3},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(10),decodeResult:S2(11),decodeSuccess:e=>fu(e,"binding.http.affected_tests.v1","schema.application.feedback.affected-tests.result",1,["completed","cancelled","timed_out","failed","unavailable","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(11))},{operation:"analytics",operationId:"operation.application.analytics",transport:{kind:"mcp_tool",toolName:"tracedecay_analytics"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.analytics.v1",requestSchema:{schemaId:"schema.application.primitive.analytics.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.analytics.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:12e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(12),decodeResult:S2(13)},{operation:"apply_native_integration",operationId:"operation.application.apply_native_integration",transport:{kind:"mcp_tool",toolName:"tracedecay_apply_native_integration"},effect:"administrative",idempotency:"required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.apply_native_integration.v1",requestSchema:{schemaId:"schema.application.native-integration.apply.request",revision:1},resultSchema:{schemaId:"schema.application.native-integration.apply.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_effect","effect_in_flight","after_commit"]},deadline:{behavior:"return_effect_receipt",maximum_millis:3e4},reconciliation:"required",receipt:"durable_effect",terminalStates:["completed","cancelled","timed_out","failed","effect_unknown","partial"],decodeRequest:S2(14),decodeResult:S2(15)},{operation:"approve_native_integration",operationId:"operation.application.approve_native_integration",transport:{kind:"mcp_tool",toolName:"tracedecay_approve_native_integration"},effect:"administrative",idempotency:"required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.approve_native_integration.v1",requestSchema:{schemaId:"schema.application.native-integration.approve.request",revision:1},resultSchema:{schemaId:"schema.application.native-integration.approve.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_effect","effect_in_flight","after_commit"]},deadline:{behavior:"return_effect_receipt",maximum_millis:3e4},reconciliation:"required",receipt:"durable_effect",terminalStates:["completed","cancelled","timed_out","failed","effect_unknown","partial"],decodeRequest:S2(16),decodeResult:S2(15)},{operation:"ast_grep_rewrite",operationId:"operation.application.ast_grep_rewrite",transport:{kind:"mcp_tool",toolName:"tracedecay_ast_grep_rewrite"},effect:"source_edit",idempotency:"required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.ast_grep_rewrite.v1",requestSchema:{schemaId:"schema.application.source-edit.ast-grep-rewrite.request",revision:1},resultSchema:{schemaId:"schema.application.source-edit.ast-grep-rewrite.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_effect","effect_in_flight","after_commit"]},deadline:{behavior:"return_effect_receipt",maximum_millis:3e4},reconciliation:"required",receipt:"durable_effect",terminalStates:["completed","cancelled","timed_out","failed","effect_unknown","partial"],decodeRequest:S2(17),decodeResult:S2(18)},{operation:"ast_grep_search",operationId:"operation.application.ast_grep_search",transport:{kind:"mcp_tool",toolName:"tracedecay_ast_grep_search"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.ast_grep_search.v1",requestSchema:{schemaId:"schema.application.primitive.ast-grep-search.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.ast-grep-search.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:12e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(19),decodeResult:S2(20)},{operation:"automation_run_artifact_view",operationId:"operation.application.automation_run_artifact_view",transport:{kind:"mcp_tool",toolName:"tracedecay_automation_run_artifact_view"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.automation_run_artifact_view.v1",requestSchema:{schemaId:"schema.application.primitive.automation-run-artifact-view.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.automation-run-artifact-view.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:12e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(21),decodeResult:S2(22)},{operation:"automation_run_list",operationId:"operation.application.automation_run_list",transport:{kind:"mcp_tool",toolName:"tracedecay_automation_run_list"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.automation_run_list.v1",requestSchema:{schemaId:"schema.application.primitive.automation-run-list.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.automation-run-list.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:12e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(23),decodeResult:S2(24)},{operation:"automation_run_view",operationId:"operation.application.automation_run_view",transport:{kind:"mcp_tool",toolName:"tracedecay_automation_run_view"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.automation_run_view.v1",requestSchema:{schemaId:"schema.application.primitive.automation-run-view.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.automation-run-view.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:12e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(25),decodeResult:S2(26)},{operation:"branch_diff",operationId:"operation.application.branch_diff",transport:{kind:"mcp_tool",toolName:"tracedecay_branch_diff"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.branch_diff.v1",requestSchema:{schemaId:"schema.application.primitive.branch-diff.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.branch-diff.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:12e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(27),decodeResult:S2(28)},{operation:"branch_list",operationId:"operation.application.branch_list",transport:{kind:"mcp_tool",toolName:"tracedecay_branch_list"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.branch_list.v1",requestSchema:{schemaId:"schema.application.primitive.branch-list.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.branch-list.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:12e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(29),decodeResult:S2(30)},{operation:"branch_search",operationId:"operation.application.branch_search",transport:{kind:"mcp_tool",toolName:"tracedecay_branch_search"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.branch_search.v1",requestSchema:{schemaId:"schema.application.primitive.branch-search.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.branch-search.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:12e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(31),decodeResult:S2(32)},{operation:"by_qualified_name",operationId:"operation.application.by_qualified_name",transport:{kind:"mcp_tool",toolName:"tracedecay_by_qualified_name"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.by_qualified_name.v1",requestSchema:{schemaId:"schema.application.primitive.by-qualified-name.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.by-qualified-name.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:12e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(33),decodeResult:S2(34)},{operation:"application_call_chain",operationId:"operation.application.call_chain",transport:{kind:"http",route:"/application/primitives/call_chain",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.call_chain.v1",requestSchema:{schemaId:"schema.application.primitive.call-chain.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.call-chain.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:1e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(35),decodeResult:S2(36),decodeSuccess:e=>fu(e,"binding.http.call_chain.v1","schema.application.primitive.call-chain.result",1,["completed","cancelled","timed_out","failed","unavailable","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(36))},{operation:"cancel_native_integration",operationId:"operation.application.cancel_native_integration",transport:{kind:"mcp_tool",toolName:"tracedecay_cancel_native_integration"},effect:"administrative",idempotency:"required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.cancel_native_integration.v1",requestSchema:{schemaId:"schema.application.native-integration.cancel.request",revision:1},resultSchema:{schemaId:"schema.application.native-integration.cancel.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_effect","effect_in_flight","after_commit"]},deadline:{behavior:"return_effect_receipt",maximum_millis:3e4},reconciliation:"required",receipt:"durable_effect",terminalStates:["completed","cancelled","timed_out","failed","effect_unknown","partial"],decodeRequest:S2(37),decodeResult:S2(15)},{operation:"changelog",operationId:"operation.application.changelog",transport:{kind:"mcp_tool",toolName:"tracedecay_changelog"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.changelog.v1",requestSchema:{schemaId:"schema.application.primitive.changelog.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.changelog.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:12e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(38),decodeResult:S2(39)},{operation:"circular",operationId:"operation.application.circular",transport:{kind:"mcp_tool",toolName:"tracedecay_circular"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.circular.v1",requestSchema:{schemaId:"schema.application.primitive.circular.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.circular.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:12e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(40),decodeResult:S2(41)},{operation:"code_callees",operationId:"operation.application.code_callees",transport:{kind:"http",route:"/application/code/code_callees",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.code_callees.v1",requestSchema:{schemaId:"schema.application.code-query.callees.request",revision:1},resultSchema:{schemaId:"schema.application.code-query.callees.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:1e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(42),decodeResult:S2(43),decodeSuccess:e=>fu(e,"binding.http.code_callees.v1","schema.application.code-query.callees.result",1,["completed","cancelled","timed_out","failed","unavailable","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(43))},{operation:"code_callers",operationId:"operation.application.code_callers",transport:{kind:"http",route:"/application/code/code_callers",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.code_callers.v1",requestSchema:{schemaId:"schema.application.primitive.code-callers.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.code-callers.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:1e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(44),decodeResult:S2(45),decodeSuccess:e=>fu(e,"binding.http.code_callers.v1","schema.application.primitive.code-callers.result",1,["completed","cancelled","timed_out","failed","unavailable","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(45))},{operation:"code_declaration",operationId:"operation.application.code_declaration",transport:{kind:"http",route:"/application/code/code_declaration",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.code_declaration.v1",requestSchema:{schemaId:"schema.application.code-query.declaration.request",revision:1},resultSchema:{schemaId:"schema.application.code-query.declaration.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:1e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(46),decodeResult:S2(47),decodeSuccess:e=>fu(e,"binding.http.code_declaration.v1","schema.application.code-query.declaration.result",1,["completed","cancelled","timed_out","failed","unavailable","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(47))},{operation:"code_exact_occurrence",operationId:"operation.application.code_exact_occurrence",transport:{kind:"http",route:"/application/code/code_exact_occurrence",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.code_exact_occurrence.v1",requestSchema:{schemaId:"schema.application.code-query.exact-occurrence.request",revision:1},resultSchema:{schemaId:"schema.application.code-query.exact-occurrence.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:1e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(48),decodeResult:S2(49),decodeSuccess:e=>fu(e,"binding.http.code_exact_occurrence.v1","schema.application.code-query.exact-occurrence.result",1,["completed","cancelled","timed_out","failed","unavailable","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(49))},{operation:"code_facets",operationId:"operation.application.code_facets",transport:{kind:"http",route:"/application/code/code_facets",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.code_facets.v1",requestSchema:{schemaId:"schema.application.code-query.facets.request",revision:1},resultSchema:{schemaId:"schema.application.code-query.facets.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:1e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(50),decodeResult:S2(51),decodeSuccess:e=>fu(e,"binding.http.code_facets.v1","schema.application.code-query.facets.result",1,["completed","cancelled","timed_out","failed","unavailable","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(51))},{operation:"code_implementations",operationId:"operation.application.code_implementations",transport:{kind:"http",route:"/application/code/code_implementations",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.code_implementations.v1",requestSchema:{schemaId:"schema.application.primitive.code-implementations.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.code-implementations.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:1e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(52),decodeResult:S2(53),decodeSuccess:e=>fu(e,"binding.http.code_implementations.v1","schema.application.primitive.code-implementations.result",1,["completed","cancelled","timed_out","failed","unavailable","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(53))},{operation:"code_phrase_search",operationId:"operation.application.code_phrase_search",transport:{kind:"http",route:"/application/code/code_phrase_search",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.code_phrase_search.v1",requestSchema:{schemaId:"schema.application.code-query.phrase-search.request",revision:1},resultSchema:{schemaId:"schema.application.code-query.phrase-search.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:1e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(54),decodeResult:S2(55),decodeSuccess:e=>fu(e,"binding.http.code_phrase_search.v1","schema.application.code-query.phrase-search.result",1,["completed","cancelled","timed_out","failed","unavailable","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(55))},{operation:"code_references",operationId:"operation.application.code_references",transport:{kind:"http",route:"/application/code/code_references",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.code_references.v1",requestSchema:{schemaId:"schema.application.code-query.references.request",revision:1},resultSchema:{schemaId:"schema.application.code-query.references.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:1e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(46),decodeResult:S2(43),decodeSuccess:e=>fu(e,"binding.http.code_references.v1","schema.application.code-query.references.result",1,["completed","cancelled","timed_out","failed","unavailable","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(43))},{operation:"code_signature_search",operationId:"operation.application.code_signature_search",transport:{kind:"http",route:"/application/code/code_signature_search",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.code_signature_search.v1",requestSchema:{schemaId:"schema.application.primitive.code-signature-search.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.code-signature-search.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:1e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(56),decodeResult:S2(57),decodeSuccess:e=>fu(e,"binding.http.code_signature_search.v1","schema.application.primitive.code-signature-search.result",1,["completed","cancelled","timed_out","failed","unavailable","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(57))},{operation:"code_symbol_search",operationId:"operation.application.code_symbol_search",transport:{kind:"http",route:"/application/code/code_symbol_search",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.code_symbol_search.v1",requestSchema:{schemaId:"schema.application.symbol-search.request",revision:1},resultSchema:{schemaId:"schema.application.symbol-search.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:1e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(58),decodeResult:S2(57),decodeSuccess:e=>fu(e,"binding.http.code_symbol_search.v1","schema.application.symbol-search.result",1,["completed","cancelled","timed_out","failed","unavailable","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(57))},{operation:"code_timeline",operationId:"operation.application.code_timeline",transport:{kind:"http",route:"/application/code/code_timeline",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.code_timeline.v1",requestSchema:{schemaId:"schema.application.code-query.timeline.request",revision:1},resultSchema:{schemaId:"schema.application.code-query.timeline.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:1e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(59),decodeResult:S2(60),decodeSuccess:e=>fu(e,"binding.http.code_timeline.v1","schema.application.code-query.timeline.result",1,["completed","cancelled","timed_out","failed","unavailable","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(60))},{operation:"code_type_definition",operationId:"operation.application.code_type_definition",transport:{kind:"http",route:"/application/code/code_type_definition",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.code_type_definition.v1",requestSchema:{schemaId:"schema.application.code-query.type-definition.request",revision:1},resultSchema:{schemaId:"schema.application.code-query.type-definition.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:1e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(46),decodeResult:S2(47),decodeSuccess:e=>fu(e,"binding.http.code_type_definition.v1","schema.application.code-query.type-definition.result",1,["completed","cancelled","timed_out","failed","unavailable","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(47))},{operation:"code_type_hierarchy",operationId:"operation.application.code_type_hierarchy",transport:{kind:"http",route:"/application/code/code_type_hierarchy",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.code_type_hierarchy.v1",requestSchema:{schemaId:"schema.application.primitive.code-type-hierarchy.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.code-type-hierarchy.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:1e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(61),decodeResult:S2(62),decodeSuccess:e=>fu(e,"binding.http.code_type_hierarchy.v1","schema.application.primitive.code-type-hierarchy.result",1,["completed","cancelled","timed_out","failed","unavailable","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(62))},{operation:"commit_context",operationId:"operation.application.commit_context",transport:{kind:"mcp_tool",toolName:"tracedecay_commit_context"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.commit_context.v1",requestSchema:{schemaId:"schema.application.primitive.commit-context.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.commit-context.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:12e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(63),decodeResult:S2(64)},{operation:"complexity",operationId:"operation.application.complexity",transport:{kind:"mcp_tool",toolName:"tracedecay_complexity"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.complexity.v1",requestSchema:{schemaId:"schema.application.primitive.complexity.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.complexity.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:12e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(65),decodeResult:S2(66)},{operation:"config",operationId:"operation.application.config",transport:{kind:"mcp_tool",toolName:"tracedecay_config"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.config.v1",requestSchema:{schemaId:"schema.application.primitive.config.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.config.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:12e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(67),decodeResult:S2(68)},{operation:"application_configuration_audit",operationId:"operation.application.configuration_audit",transport:{kind:"http",route:"/application/configuration/configuration_audit",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.configuration_audit.v1",requestSchema:{schemaId:"schema.application.configuration.configuration_audit.request",revision:1},resultSchema:{schemaId:"schema.application.configuration.configuration_audit.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:15e3},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","partial"],decodeRequest:S2(69),decodeResult:S2(70),decodeSuccess:e=>fu(e,"binding.http.configuration_audit.v1","schema.application.configuration.configuration_audit.result",1,["completed","cancelled","timed_out","failed","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(70))},{operation:"application_configuration_batch",operationId:"operation.application.configuration_batch",transport:{kind:"http",route:"/application/configuration/configuration_batch",method:"POST"},effect:"configuration_write",idempotency:"required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.configuration_batch.v1",requestSchema:{schemaId:"schema.application.configuration.configuration_batch.request",revision:1},resultSchema:{schemaId:"schema.application.configuration.configuration_batch.result",revision:1},cancellation:{mode:"not_cancellable"},deadline:{behavior:"return_effect_receipt",maximum_millis:15e3},reconciliation:"required",receipt:"durable_effect",terminalStates:["completed","timed_out","failed","effect_unknown","partial"],decodeRequest:S2(71),decodeResult:S2(72),decodeSuccess:e=>fu(e,"binding.http.configuration_batch.v1","schema.application.configuration.configuration_batch.result",1,["completed","timed_out","failed","effect_unknown","partial"],{mode:"not_cancellable"},"durable_effect","required",S2(72))},{operation:"application_configuration_get",operationId:"operation.application.configuration_get",transport:{kind:"http",route:"/application/configuration/configuration_get",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.configuration_get.v1",requestSchema:{schemaId:"schema.application.configuration.configuration_get.request",revision:1},resultSchema:{schemaId:"schema.application.configuration.configuration_get.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:15e3},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","partial"],decodeRequest:S2(73),decodeResult:S2(74),decodeSuccess:e=>fu(e,"binding.http.configuration_get.v1","schema.application.configuration.configuration_get.result",1,["completed","cancelled","timed_out","failed","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(74))},{operation:"application_configuration_list",operationId:"operation.application.configuration_list",transport:{kind:"http",route:"/application/configuration/configuration_list",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.configuration_list.v1",requestSchema:{schemaId:"schema.application.configuration.configuration_list.request",revision:1},resultSchema:{schemaId:"schema.application.configuration.configuration_list.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:15e3},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","partial"],decodeRequest:S2(75),decodeResult:S2(76),decodeSuccess:e=>fu(e,"binding.http.configuration_list.v1","schema.application.configuration.configuration_list.result",1,["completed","cancelled","timed_out","failed","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(76))},{operation:"application_configuration_observed_state",operationId:"operation.application.configuration_observed_state",transport:{kind:"http",route:"/application/configuration/configuration_observed_state",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.configuration_observed_state.v1",requestSchema:{schemaId:"schema.application.configuration.configuration_observed_state.request",revision:1},resultSchema:{schemaId:"schema.application.configuration.configuration_observed_state.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:15e3},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","partial"],decodeRequest:S2(77),decodeResult:S2(78),decodeSuccess:e=>fu(e,"binding.http.configuration_observed_state.v1","schema.application.configuration.configuration_observed_state.result",1,["completed","cancelled","timed_out","failed","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(78))},{operation:"application_configuration_protected_apply",operationId:"operation.application.configuration_protected_apply",transport:{kind:"http",route:"/application/configuration/configuration_protected_apply",method:"POST"},effect:"configuration_write",idempotency:"required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.configuration_protected_apply.v1",requestSchema:{schemaId:"schema.application.configuration.configuration_protected_apply.request",revision:1},resultSchema:{schemaId:"schema.application.configuration.configuration_protected_apply.result",revision:1},cancellation:{mode:"not_cancellable"},deadline:{behavior:"return_effect_receipt",maximum_millis:15e3},reconciliation:"required",receipt:"durable_effect",terminalStates:["completed","timed_out","failed","effect_unknown","partial"],decodeRequest:S2(79),decodeResult:S2(72),decodeSuccess:e=>fu(e,"binding.http.configuration_protected_apply.v1","schema.application.configuration.configuration_protected_apply.result",1,["completed","timed_out","failed","effect_unknown","partial"],{mode:"not_cancellable"},"durable_effect","required",S2(72))},{operation:"application_configuration_protected_preview",operationId:"operation.application.configuration_protected_preview",transport:{kind:"http",route:"/application/configuration/configuration_protected_preview",method:"POST"},effect:"preview",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.configuration_protected_preview.v1",requestSchema:{schemaId:"schema.application.configuration.configuration_protected_preview.request",revision:1},resultSchema:{schemaId:"schema.application.configuration.configuration_protected_preview.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:15e3},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","partial"],decodeRequest:S2(80),decodeResult:S2(81),decodeSuccess:e=>fu(e,"binding.http.configuration_protected_preview.v1","schema.application.configuration.configuration_protected_preview.result",1,["completed","cancelled","timed_out","failed","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(81))},{operation:"application_configuration_rollback_apply",operationId:"operation.application.configuration_rollback_apply",transport:{kind:"http",route:"/application/configuration/configuration_rollback_apply",method:"POST"},effect:"configuration_write",idempotency:"required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.configuration_rollback_apply.v1",requestSchema:{schemaId:"schema.application.configuration.configuration_rollback_apply.request",revision:1},resultSchema:{schemaId:"schema.application.configuration.configuration_rollback_apply.result",revision:1},cancellation:{mode:"not_cancellable"},deadline:{behavior:"return_effect_receipt",maximum_millis:15e3},reconciliation:"required",receipt:"durable_effect",terminalStates:["completed","timed_out","failed","effect_unknown","partial"],decodeRequest:S2(79),decodeResult:S2(72),decodeSuccess:e=>fu(e,"binding.http.configuration_rollback_apply.v1","schema.application.configuration.configuration_rollback_apply.result",1,["completed","timed_out","failed","effect_unknown","partial"],{mode:"not_cancellable"},"durable_effect","required",S2(72))},{operation:"application_configuration_rollback_preview",operationId:"operation.application.configuration_rollback_preview",transport:{kind:"http",route:"/application/configuration/configuration_rollback_preview",method:"POST"},effect:"preview",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.configuration_rollback_preview.v1",requestSchema:{schemaId:"schema.application.configuration.configuration_rollback_preview.request",revision:1},resultSchema:{schemaId:"schema.application.configuration.configuration_rollback_preview.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:15e3},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","partial"],decodeRequest:S2(82),decodeResult:S2(81),decodeSuccess:e=>fu(e,"binding.http.configuration_rollback_preview.v1","schema.application.configuration.configuration_rollback_preview.result",1,["completed","cancelled","timed_out","failed","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(81))},{operation:"application_configuration_set",operationId:"operation.application.configuration_set",transport:{kind:"http",route:"/application/configuration/configuration_set",method:"POST"},effect:"configuration_write",idempotency:"required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.configuration_set.v1",requestSchema:{schemaId:"schema.application.configuration.configuration_set.request",revision:1},resultSchema:{schemaId:"schema.application.configuration.configuration_set.result",revision:1},cancellation:{mode:"not_cancellable"},deadline:{behavior:"return_effect_receipt",maximum_millis:15e3},reconciliation:"required",receipt:"durable_effect",terminalStates:["completed","timed_out","failed","effect_unknown","partial"],decodeRequest:S2(83),decodeResult:S2(72),decodeSuccess:e=>fu(e,"binding.http.configuration_set.v1","schema.application.configuration.configuration_set.result",1,["completed","timed_out","failed","effect_unknown","partial"],{mode:"not_cancellable"},"durable_effect","required",S2(72))},{operation:"application_configuration_unset",operationId:"operation.application.configuration_unset",transport:{kind:"http",route:"/application/configuration/configuration_unset",method:"POST"},effect:"configuration_write",idempotency:"required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.configuration_unset.v1",requestSchema:{schemaId:"schema.application.configuration.configuration_unset.request",revision:1},resultSchema:{schemaId:"schema.application.configuration.configuration_unset.result",revision:1},cancellation:{mode:"not_cancellable"},deadline:{behavior:"return_effect_receipt",maximum_millis:15e3},reconciliation:"required",receipt:"durable_effect",terminalStates:["completed","timed_out","failed","effect_unknown","partial"],decodeRequest:S2(84),decodeResult:S2(72),decodeSuccess:e=>fu(e,"binding.http.configuration_unset.v1","schema.application.configuration.configuration_unset.result",1,["completed","timed_out","failed","effect_unknown","partial"],{mode:"not_cancellable"},"durable_effect","required",S2(72))},{operation:"constructors",operationId:"operation.application.constructors",transport:{kind:"mcp_tool",toolName:"tracedecay_constructors"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.constructors.v1",requestSchema:{schemaId:"schema.application.primitive.constructors.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.constructors.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:12e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(85),decodeResult:S2(86)},{operation:"context",operationId:"operation.application.context",transport:{kind:"mcp_tool",toolName:"tracedecay_context"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.context.v1",requestSchema:{schemaId:"schema.application.primitive.context.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.context.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:1e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(87),decodeResult:S2(88)},{operation:"application_context_scout_budget",operationId:"operation.application.context_scout_budget",transport:{kind:"http",route:"/application/context-scout/context_scout_budget",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.context_scout_budget.v1",requestSchema:{schemaId:"schema.application.context-scout-budget.request",revision:1},resultSchema:{schemaId:"schema.application.context-scout-budget.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:15e3},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","partial"],decodeRequest:S2(89),decodeResult:S2(90),decodeSuccess:e=>fu(e,"binding.http.context_scout_budget.v1","schema.application.context-scout-budget.result",1,["completed","cancelled","timed_out","failed","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(90))},{operation:"application_context_scout_cancel",operationId:"operation.application.context_scout_cancel",transport:{kind:"http",route:"/application/context-scout/context_scout_cancel",method:"POST"},effect:"administrative",idempotency:"required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.context_scout_cancel.v1",requestSchema:{schemaId:"schema.application.context-scout-cancel.request",revision:1},resultSchema:{schemaId:"schema.application.context-scout-cancel.result",revision:1},cancellation:{mode:"not_cancellable"},deadline:{behavior:"return_effect_receipt",maximum_millis:15e3},reconciliation:"required",receipt:"durable_effect",terminalStates:["completed","timed_out","failed","effect_unknown","partial"],decodeRequest:S2(91),decodeResult:S2(92),decodeSuccess:e=>fu(e,"binding.http.context_scout_cancel.v1","schema.application.context-scout-cancel.result",1,["completed","timed_out","failed","effect_unknown","partial"],{mode:"not_cancellable"},"durable_effect","required",S2(92))},{operation:"application_context_scout_capability",operationId:"operation.application.context_scout_capability",transport:{kind:"http",route:"/application/context-scout/context_scout_capability",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.context_scout_capability.v1",requestSchema:{schemaId:"schema.application.context-scout-capability.request",revision:1},resultSchema:{schemaId:"schema.application.context-scout-capability.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:15e3},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","partial"],decodeRequest:S2(89),decodeResult:S2(93),decodeSuccess:e=>fu(e,"binding.http.context_scout_capability.v1","schema.application.context-scout-capability.result",1,["completed","cancelled","timed_out","failed","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(93))},{operation:"application_context_scout_claim",operationId:"operation.application.context_scout_claim",transport:{kind:"http",route:"/application/context-scout/context_scout_claim",method:"POST"},effect:"administrative",idempotency:"required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.context_scout_claim.v1",requestSchema:{schemaId:"schema.application.context-scout-claim.request",revision:1},resultSchema:{schemaId:"schema.application.context-scout-claim.result",revision:1},cancellation:{mode:"not_cancellable"},deadline:{behavior:"return_effect_receipt",maximum_millis:15e3},reconciliation:"required",receipt:"durable_effect",terminalStates:["completed","timed_out","failed","effect_unknown","partial"],decodeRequest:S2(94),decodeResult:S2(95),decodeSuccess:e=>fu(e,"binding.http.context_scout_claim.v1","schema.application.context-scout-claim.result",1,["completed","timed_out","failed","effect_unknown","partial"],{mode:"not_cancellable"},"durable_effect","required",S2(95))},{operation:"application_context_scout_delivery",operationId:"operation.application.context_scout_delivery",transport:{kind:"http",route:"/application/context-scout/context_scout_delivery",method:"POST"},effect:"administrative",idempotency:"required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.context_scout_delivery.v1",requestSchema:{schemaId:"schema.application.context-scout-delivery.request",revision:1},resultSchema:{schemaId:"schema.application.context-scout-delivery.result",revision:1},cancellation:{mode:"not_cancellable"},deadline:{behavior:"return_effect_receipt",maximum_millis:15e3},reconciliation:"required",receipt:"durable_effect",terminalStates:["completed","timed_out","failed","effect_unknown","partial"],decodeRequest:S2(96),decodeResult:S2(97),decodeSuccess:e=>fu(e,"binding.http.context_scout_delivery.v1","schema.application.context-scout-delivery.result",1,["completed","timed_out","failed","effect_unknown","partial"],{mode:"not_cancellable"},"durable_effect","required",S2(97))},{operation:"application_context_scout_explain",operationId:"operation.application.context_scout_explain",transport:{kind:"http",route:"/application/context-scout/context_scout_explain",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.context_scout_explain.v1",requestSchema:{schemaId:"schema.application.context-scout-explain.request",revision:1},resultSchema:{schemaId:"schema.application.context-scout-explain.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:15e3},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","partial"],decodeRequest:S2(98),decodeResult:S2(99),decodeSuccess:e=>fu(e,"binding.http.context_scout_explain.v1","schema.application.context-scout-explain.result",1,["completed","cancelled","timed_out","failed","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(99))},{operation:"application_context_scout_feedback",operationId:"operation.application.context_scout_feedback",transport:{kind:"http",route:"/application/context-scout/context_scout_feedback",method:"POST"},effect:"administrative",idempotency:"required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.context_scout_feedback.v1",requestSchema:{schemaId:"schema.application.context-scout-feedback.request",revision:1},resultSchema:{schemaId:"schema.application.context-scout-feedback.result",revision:1},cancellation:{mode:"not_cancellable"},deadline:{behavior:"return_effect_receipt",maximum_millis:15e3},reconciliation:"required",receipt:"durable_effect",terminalStates:["completed","timed_out","failed","effect_unknown","partial"],decodeRequest:S2(100),decodeResult:S2(92),decodeSuccess:e=>fu(e,"binding.http.context_scout_feedback.v1","schema.application.context-scout-feedback.result",1,["completed","timed_out","failed","effect_unknown","partial"],{mode:"not_cancellable"},"durable_effect","required",S2(92))},{operation:"application_context_scout_pause",operationId:"operation.application.context_scout_pause",transport:{kind:"http",route:"/application/context-scout/context_scout_pause",method:"POST"},effect:"configuration_write",idempotency:"required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.context_scout_pause.v1",requestSchema:{schemaId:"schema.application.context-scout-pause.request",revision:1},resultSchema:{schemaId:"schema.application.context-scout-pause.result",revision:1},cancellation:{mode:"not_cancellable"},deadline:{behavior:"return_effect_receipt",maximum_millis:15e3},reconciliation:"required",receipt:"durable_effect",terminalStates:["completed","timed_out","failed","effect_unknown","partial"],decodeRequest:S2(101),decodeResult:S2(72),decodeSuccess:e=>fu(e,"binding.http.context_scout_pause.v1","schema.application.context-scout-pause.result",1,["completed","timed_out","failed","effect_unknown","partial"],{mode:"not_cancellable"},"durable_effect","required",S2(72))},{operation:"application_context_scout_recent",operationId:"operation.application.context_scout_recent",transport:{kind:"http",route:"/application/context-scout/context_scout_recent",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.context_scout_recent.v1",requestSchema:{schemaId:"schema.application.context-scout-recent.request",revision:1},resultSchema:{schemaId:"schema.application.context-scout-recent.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:15e3},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","partial"],decodeRequest:S2(98),decodeResult:S2(102),decodeSuccess:e=>fu(e,"binding.http.context_scout_recent.v1","schema.application.context-scout-recent.result",1,["completed","cancelled","timed_out","failed","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(102))},{operation:"application_context_scout_resume",operationId:"operation.application.context_scout_resume",transport:{kind:"http",route:"/application/context-scout/context_scout_resume",method:"POST"},effect:"configuration_write",idempotency:"required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.context_scout_resume.v1",requestSchema:{schemaId:"schema.application.context-scout-resume.request",revision:1},resultSchema:{schemaId:"schema.application.context-scout-resume.result",revision:1},cancellation:{mode:"not_cancellable"},deadline:{behavior:"return_effect_receipt",maximum_millis:15e3},reconciliation:"required",receipt:"durable_effect",terminalStates:["completed","timed_out","failed","effect_unknown","partial"],decodeRequest:S2(101),decodeResult:S2(72),decodeSuccess:e=>fu(e,"binding.http.context_scout_resume.v1","schema.application.context-scout-resume.result",1,["completed","timed_out","failed","effect_unknown","partial"],{mode:"not_cancellable"},"durable_effect","required",S2(72))},{operation:"application_context_scout_status",operationId:"operation.application.context_scout_status",transport:{kind:"http",route:"/application/context-scout/context_scout_status",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.context_scout_status.v1",requestSchema:{schemaId:"schema.application.context-scout-status.request",revision:1},resultSchema:{schemaId:"schema.application.context-scout-status.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:15e3},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","partial"],decodeRequest:S2(89),decodeResult:S2(103),decodeSuccess:e=>fu(e,"binding.http.context_scout_status.v1","schema.application.context-scout-status.result",1,["completed","cancelled","timed_out","failed","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(103))},{operation:"coupling",operationId:"operation.application.coupling",transport:{kind:"mcp_tool",toolName:"tracedecay_coupling"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.coupling.v1",requestSchema:{schemaId:"schema.application.primitive.coupling.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.coupling.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:12e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(104),decodeResult:S2(105)},{operation:"dashboard",operationId:"operation.application.dashboard",transport:{kind:"mcp_tool",toolName:"tracedecay_dashboard"},effect:"binds_server",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.dashboard.v1",requestSchema:{schemaId:"schema.application.primitive.dashboard.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.dashboard.result",revision:1},cancellation:{mode:"not_cancellable"},deadline:{behavior:"return_operation_receipt",maximum_millis:12e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","timed_out","failed","unavailable","partial"],decodeRequest:S2(106),decodeResult:S2(107)},{operation:"dead_code",operationId:"operation.application.dead_code",transport:{kind:"mcp_tool",toolName:"tracedecay_dead_code"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.dead_code.v1",requestSchema:{schemaId:"schema.application.primitive.dead-code.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.dead-code.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:12e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(108),decodeResult:S2(109)},{operation:"dependency_depth",operationId:"operation.application.dependency_depth",transport:{kind:"mcp_tool",toolName:"tracedecay_dependency_depth"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.dependency_depth.v1",requestSchema:{schemaId:"schema.application.primitive.dependency-depth.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.dependency-depth.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:12e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(110),decodeResult:S2(111)},{operation:"derives",operationId:"operation.application.derives",transport:{kind:"mcp_tool",toolName:"tracedecay_derives"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.derives.v1",requestSchema:{schemaId:"schema.application.primitive.derives.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.derives.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:12e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(112),decodeResult:S2(113)},{operation:"diagnose",operationId:"operation.application.diagnose",transport:{kind:"mcp_tool",toolName:"tracedecay_diagnose"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.diagnose.v1",requestSchema:{schemaId:"schema.application.primitive.diagnose.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.diagnose.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:12e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(114),decodeResult:S2(115)},{operation:"application_diagnostics_read",operationId:"operation.application.diagnostics_read",transport:{kind:"http",route:"/application/primitives/diagnostics_read",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.diagnostics_read.v1",requestSchema:{schemaId:"schema.application.primitive.diagnostics-read.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.diagnostics-read.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:1e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(116),decodeResult:S2(117),decodeSuccess:e=>fu(e,"binding.http.diagnostics_read.v1","schema.application.primitive.diagnostics-read.result",1,["completed","cancelled","timed_out","failed","unavailable","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(117))},{operation:"diff_context",operationId:"operation.application.diff_context",transport:{kind:"mcp_tool",toolName:"tracedecay_diff_context"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.diff_context.v1",requestSchema:{schemaId:"schema.application.primitive.diff-context.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.diff-context.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:12e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(118),decodeResult:S2(119)},{operation:"distribution",operationId:"operation.application.distribution",transport:{kind:"mcp_tool",toolName:"tracedecay_distribution"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.distribution.v1",requestSchema:{schemaId:"schema.application.primitive.distribution.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.distribution.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:12e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(120),decodeResult:S2(121)},{operation:"doc_coverage",operationId:"operation.application.doc_coverage",transport:{kind:"mcp_tool",toolName:"tracedecay_doc_coverage"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.doc_coverage.v1",requestSchema:{schemaId:"schema.application.primitive.doc-coverage.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.doc-coverage.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:12e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(122),decodeResult:S2(123)},{operation:"dsm",operationId:"operation.application.dsm",transport:{kind:"mcp_tool",toolName:"tracedecay_dsm"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.dsm.v1",requestSchema:{schemaId:"schema.application.primitive.dsm.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.dsm.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:12e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(124),decodeResult:S2(125)},{operation:"application_fact_feedback",operationId:"operation.application.fact_feedback",transport:{kind:"http",route:"/application/retained/fact_feedback",method:"POST"},effect:"administrative",idempotency:"required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.fact_feedback.v1",requestSchema:{schemaId:"schema.application.retained.fact-feedback.request",revision:1},resultSchema:{schemaId:"schema.application.retained.fact-feedback.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_effect","effect_in_flight","reconciling","after_commit"]},deadline:{behavior:"return_effect_receipt",maximum_millis:3e4},reconciliation:"required",receipt:"durable_effect",terminalStates:["completed","cancelled","timed_out","failed","unavailable","effect_unknown","partial"],decodeRequest:S2(126),decodeResult:S2(127),decodeSuccess:e=>fu(e,"binding.http.fact_feedback.v1","schema.application.retained.fact-feedback.result",1,["completed","cancelled","timed_out","failed","unavailable","effect_unknown","partial"],{mode:"cooperative",points:["before_admission","before_effect","effect_in_flight","reconciling","after_commit"]},"durable_effect","required",S2(127))},{operation:"application_fact_store_add",operationId:"operation.application.fact_store_add",transport:{kind:"http",route:"/application/retained/fact_store_add",method:"POST"},effect:"administrative",idempotency:"required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.fact_store_add.v1",requestSchema:{schemaId:"schema.application.retained.fact-store-add.request",revision:1},resultSchema:{schemaId:"schema.application.retained.fact-store-add.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_effect","effect_in_flight","reconciling","after_commit"]},deadline:{behavior:"return_effect_receipt",maximum_millis:3e4},reconciliation:"required",receipt:"durable_effect",terminalStates:["completed","cancelled","timed_out","failed","unavailable","effect_unknown","partial"],decodeRequest:S2(128),decodeResult:S2(129),decodeSuccess:e=>fu(e,"binding.http.fact_store_add.v1","schema.application.retained.fact-store-add.result",1,["completed","cancelled","timed_out","failed","unavailable","effect_unknown","partial"],{mode:"cooperative",points:["before_admission","before_effect","effect_in_flight","reconciling","after_commit"]},"durable_effect","required",S2(129))},{operation:"application_fact_store_contradict",operationId:"operation.application.fact_store_contradict",transport:{kind:"http",route:"/application/retained/fact_store_contradict",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.fact_store_contradict.v1",requestSchema:{schemaId:"schema.application.retained.fact-store-contradict.request",revision:1},resultSchema:{schemaId:"schema.application.retained.fact-store-contradict.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:3e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(130),decodeResult:S2(131),decodeSuccess:e=>fu(e,"binding.http.fact_store_contradict.v1","schema.application.retained.fact-store-contradict.result",1,["completed","cancelled","timed_out","failed","unavailable","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(131))},{operation:"application_fact_store_curate",operationId:"operation.application.fact_store_curate",transport:{kind:"http",route:"/application/retained/fact_store_curate",method:"POST"},effect:"administrative",idempotency:"required",requestIdControl:"required",resultSemantics:"fact_store_curate_receipt",bindingId:"binding.http.fact_store_curate.v1",requestSchema:{schemaId:"schema.application.retained.fact-store-curate.request",revision:1},resultSchema:{schemaId:"schema.application.retained.fact-store-curate.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_effect","effect_in_flight","reconciling","after_commit"]},deadline:{behavior:"return_effect_receipt",maximum_millis:9e4},reconciliation:"required",receipt:"durable_effect",terminalStates:["completed","cancelled","timed_out","failed","unavailable","effect_unknown","partial"],decodeRequest:S2(132),decodeResult:S2(133),decodeSuccess:e=>fu(e,"binding.http.fact_store_curate.v1","schema.application.retained.fact-store-curate.result",1,["completed","cancelled","timed_out","failed","unavailable","effect_unknown","partial"],{mode:"cooperative",points:["before_admission","before_effect","effect_in_flight","reconciling","after_commit"]},"durable_effect","required",S2(133))},{operation:"application_fact_store_get",operationId:"operation.application.fact_store_get",transport:{kind:"http",route:"/application/retained/fact_store_get",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.fact_store_get.v1",requestSchema:{schemaId:"schema.application.retained.fact-store-get.request",revision:1},resultSchema:{schemaId:"schema.application.retained.fact-store-get.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:3e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(134),decodeResult:S2(135),decodeSuccess:e=>fu(e,"binding.http.fact_store_get.v1","schema.application.retained.fact-store-get.result",1,["completed","cancelled","timed_out","failed","unavailable","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(135))},{operation:"application_fact_store_list",operationId:"operation.application.fact_store_list",transport:{kind:"http",route:"/application/retained/fact_store_list",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.fact_store_list.v1",requestSchema:{schemaId:"schema.application.retained.fact-store-list.request",revision:1},resultSchema:{schemaId:"schema.application.retained.fact-store-list.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:3e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(136),decodeResult:S2(137),decodeSuccess:e=>fu(e,"binding.http.fact_store_list.v1","schema.application.retained.fact-store-list.result",1,["completed","cancelled","timed_out","failed","unavailable","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(137))},{operation:"application_fact_store_probe",operationId:"operation.application.fact_store_probe",transport:{kind:"http",route:"/application/retained/fact_store_probe",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.fact_store_probe.v1",requestSchema:{schemaId:"schema.application.retained.fact-store-probe.request",revision:1},resultSchema:{schemaId:"schema.application.retained.fact-store-probe.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:3e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(138),decodeResult:S2(139),decodeSuccess:e=>fu(e,"binding.http.fact_store_probe.v1","schema.application.retained.fact-store-probe.result",1,["completed","cancelled","timed_out","failed","unavailable","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(139))},{operation:"application_fact_store_reason",operationId:"operation.application.fact_store_reason",transport:{kind:"http",route:"/application/retained/fact_store_reason",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.fact_store_reason.v1",requestSchema:{schemaId:"schema.application.retained.fact-store-reason.request",revision:1},resultSchema:{schemaId:"schema.application.retained.fact-store-reason.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:3e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(140),decodeResult:S2(141),decodeSuccess:e=>fu(e,"binding.http.fact_store_reason.v1","schema.application.retained.fact-store-reason.result",1,["completed","cancelled","timed_out","failed","unavailable","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(141))},{operation:"application_fact_store_related",operationId:"operation.application.fact_store_related",transport:{kind:"http",route:"/application/retained/fact_store_related",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.fact_store_related.v1",requestSchema:{schemaId:"schema.application.retained.fact-store-related.request",revision:1},resultSchema:{schemaId:"schema.application.retained.fact-store-related.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:3e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(142),decodeResult:S2(143),decodeSuccess:e=>fu(e,"binding.http.fact_store_related.v1","schema.application.retained.fact-store-related.result",1,["completed","cancelled","timed_out","failed","unavailable","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(143))},{operation:"application_fact_store_remove",operationId:"operation.application.fact_store_remove",transport:{kind:"http",route:"/application/retained/fact_store_remove",method:"POST"},effect:"administrative",idempotency:"required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.fact_store_remove.v1",requestSchema:{schemaId:"schema.application.retained.fact-store-remove.request",revision:1},resultSchema:{schemaId:"schema.application.retained.fact-store-remove.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_effect","effect_in_flight","reconciling","after_commit"]},deadline:{behavior:"return_effect_receipt",maximum_millis:3e4},reconciliation:"required",receipt:"durable_effect",terminalStates:["completed","cancelled","timed_out","failed","unavailable","effect_unknown","partial"],decodeRequest:S2(144),decodeResult:S2(145),decodeSuccess:e=>fu(e,"binding.http.fact_store_remove.v1","schema.application.retained.fact-store-remove.result",1,["completed","cancelled","timed_out","failed","unavailable","effect_unknown","partial"],{mode:"cooperative",points:["before_admission","before_effect","effect_in_flight","reconciling","after_commit"]},"durable_effect","required",S2(145))},{operation:"application_fact_store_search",operationId:"operation.application.fact_store_search",transport:{kind:"http",route:"/application/retained/fact_store_search",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.fact_store_search.v1",requestSchema:{schemaId:"schema.application.retained.fact-store-search.request",revision:1},resultSchema:{schemaId:"schema.application.retained.fact-store-search.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:3e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(146),decodeResult:S2(147),decodeSuccess:e=>fu(e,"binding.http.fact_store_search.v1","schema.application.retained.fact-store-search.result",1,["completed","cancelled","timed_out","failed","unavailable","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(147))},{operation:"application_fact_store_supersede",operationId:"operation.application.fact_store_supersede",transport:{kind:"http",route:"/application/retained/fact_store_supersede",method:"POST"},effect:"administrative",idempotency:"required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.fact_store_supersede.v1",requestSchema:{schemaId:"schema.application.retained.fact-store-supersede.request",revision:1},resultSchema:{schemaId:"schema.application.retained.fact-store-supersede.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_effect","effect_in_flight","reconciling","after_commit"]},deadline:{behavior:"return_effect_receipt",maximum_millis:3e4},reconciliation:"required",receipt:"durable_effect",terminalStates:["completed","cancelled","timed_out","failed","unavailable","effect_unknown","partial"],decodeRequest:S2(148),decodeResult:S2(149),decodeSuccess:e=>fu(e,"binding.http.fact_store_supersede.v1","schema.application.retained.fact-store-supersede.result",1,["completed","cancelled","timed_out","failed","unavailable","effect_unknown","partial"],{mode:"cooperative",points:["before_admission","before_effect","effect_in_flight","reconciling","after_commit"]},"durable_effect","required",S2(149))},{operation:"application_fact_store_update",operationId:"operation.application.fact_store_update",transport:{kind:"http",route:"/application/retained/fact_store_update",method:"POST"},effect:"administrative",idempotency:"required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.fact_store_update.v1",requestSchema:{schemaId:"schema.application.retained.fact-store-update.request",revision:1},resultSchema:{schemaId:"schema.application.retained.fact-store-update.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_effect","effect_in_flight","reconciling","after_commit"]},deadline:{behavior:"return_effect_receipt",maximum_millis:3e4},reconciliation:"required",receipt:"durable_effect",terminalStates:["completed","cancelled","timed_out","failed","unavailable","effect_unknown","partial"],decodeRequest:S2(150),decodeResult:S2(151),decodeSuccess:e=>fu(e,"binding.http.fact_store_update.v1","schema.application.retained.fact-store-update.result",1,["completed","cancelled","timed_out","failed","unavailable","effect_unknown","partial"],{mode:"cooperative",points:["before_admission","before_effect","effect_in_flight","reconciling","after_commit"]},"durable_effect","required",S2(151))},{operation:"application_feedback_advisory_cycle",operationId:"operation.application.feedback_advisory_cycle",transport:{kind:"http",route:"/application/feedback/advisory_cycle",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.feedback_advisory_cycle.v1",requestSchema:{schemaId:"schema.application.feedback.advisory-cycle.request",revision:1},resultSchema:{schemaId:"schema.application.feedback.advisory-cycle.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:15e3},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(152),decodeResult:S2(153),decodeSuccess:e=>fu(e,"binding.http.feedback_advisory_cycle.v1","schema.application.feedback.advisory-cycle.result",1,["completed","cancelled","timed_out","failed","unavailable","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(153))},{operation:"application_feedback_diagnostics",operationId:"operation.application.feedback_diagnostics",transport:{kind:"http",route:"/application/feedback/diagnostics",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.feedback_diagnostics.v1",requestSchema:{schemaId:"schema.application.feedback.diagnostics.request",revision:1},resultSchema:{schemaId:"schema.application.feedback.diagnostics.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:15e3},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(10),decodeResult:S2(154),decodeSuccess:e=>fu(e,"binding.http.feedback_diagnostics.v1","schema.application.feedback.diagnostics.result",1,["completed","cancelled","timed_out","failed","unavailable","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(154))},{operation:"application_feedback_expand",operationId:"operation.application.feedback_expand",transport:{kind:"http",route:"/application/feedback/expand",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.feedback_expand.v1",requestSchema:{schemaId:"schema.application.feedback.expand.request",revision:1},resultSchema:{schemaId:"schema.application.feedback.expand.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:15e3},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(10),decodeResult:S2(155),decodeSuccess:e=>fu(e,"binding.http.feedback_expand.v1","schema.application.feedback.expand.result",1,["completed","cancelled","timed_out","failed","unavailable","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(155))},{operation:"application_feedback_get",operationId:"operation.application.feedback_get",transport:{kind:"http",route:"/application/feedback/get",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.feedback_get.v1",requestSchema:{schemaId:"schema.application.feedback.get.request",revision:1},resultSchema:{schemaId:"schema.application.feedback.get.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:15e3},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(10),decodeResult:S2(156),decodeSuccess:e=>fu(e,"binding.http.feedback_get.v1","schema.application.feedback.get.result",1,["completed","cancelled","timed_out","failed","unavailable","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(156))},{operation:"application_feedback_impact",operationId:"operation.application.feedback_impact",transport:{kind:"http",route:"/application/feedback/impact",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.feedback_impact.v1",requestSchema:{schemaId:"schema.application.feedback.impact.request",revision:1},resultSchema:{schemaId:"schema.application.feedback.impact.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:15e3},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(10),decodeResult:S2(157),decodeSuccess:e=>fu(e,"binding.http.feedback_impact.v1","schema.application.feedback.impact.result",1,["completed","cancelled","timed_out","failed","unavailable","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(157))},{operation:"application_feedback_list",operationId:"operation.application.feedback_list",transport:{kind:"http",route:"/application/feedback/list",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.feedback_list.v1",requestSchema:{schemaId:"schema.application.feedback.list.request",revision:1},resultSchema:{schemaId:"schema.application.feedback.list.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:15e3},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(10),decodeResult:S2(158),decodeSuccess:e=>fu(e,"binding.http.feedback_list.v1","schema.application.feedback.list.result",1,["completed","cancelled","timed_out","failed","unavailable","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(158))},{operation:"application_feedback_proximity",operationId:"operation.application.feedback_proximity",transport:{kind:"http",route:"/application/feedback/proximity",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.feedback_proximity.v1",requestSchema:{schemaId:"schema.application.feedback.proximity.request",revision:1},resultSchema:{schemaId:"schema.application.feedback.proximity.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:15e3},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(159),decodeResult:S2(160),decodeSuccess:e=>fu(e,"binding.http.feedback_proximity.v1","schema.application.feedback.proximity.result",1,["completed","cancelled","timed_out","failed","unavailable","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(160))},{operation:"field_sites",operationId:"operation.application.field_sites",transport:{kind:"mcp_tool",toolName:"tracedecay_field_sites"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.field_sites.v1",requestSchema:{schemaId:"schema.application.primitive.field-sites.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.field-sites.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:12e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(161),decodeResult:S2(162)},{operation:"application_file_dependents",operationId:"operation.application.file_dependents",transport:{kind:"http",route:"/application/primitives/file_dependents",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.file_dependents.v1",requestSchema:{schemaId:"schema.application.primitive.file-dependents.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.file-dependents.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:1e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(163),decodeResult:S2(164),decodeSuccess:e=>fu(e,"binding.http.file_dependents.v1","schema.application.primitive.file-dependents.result",1,["completed","cancelled","timed_out","failed","unavailable","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(164))},{operation:"files",operationId:"operation.application.files",transport:{kind:"mcp_tool",toolName:"tracedecay_files"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.files.v1",requestSchema:{schemaId:"schema.application.primitive.files.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.files.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:12e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(165),decodeResult:S2(166)},{operation:"find_exact_symbol",operationId:"operation.application.find_exact_symbol",transport:{kind:"mcp_tool",toolName:"tracedecay_find_exact_symbol"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.find_exact_symbol.v1",requestSchema:{schemaId:"schema.application.primitive.find-exact-symbol.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.find-exact-symbol.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:12e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(167),decodeResult:S2(168)},{operation:"gini",operationId:"operation.application.gini",transport:{kind:"mcp_tool",toolName:"tracedecay_gini"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.gini.v1",requestSchema:{schemaId:"schema.application.primitive.gini.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.gini.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:12e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(169),decodeResult:S2(170)},{operation:"git_apply",operationId:"operation.application.git_apply",transport:{kind:"mcp_tool",toolName:"tracedecay_git_apply"},effect:"administrative",idempotency:"required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.git_apply.v1",requestSchema:{schemaId:"schema.application.git.apply.request",revision:1},resultSchema:{schemaId:"schema.application.git.apply.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_effect","effect_in_flight","after_commit"]},deadline:{behavior:"return_effect_receipt",maximum_millis:3e4},reconciliation:"required",receipt:"durable_effect",terminalStates:["completed","cancelled","timed_out","failed","effect_unknown","partial"],decodeRequest:S2(171),decodeResult:S2(172)},{operation:"application_git_blame",operationId:"operation.application.git_blame",transport:{kind:"http",route:"/application/git/blame",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.git_blame.v1",requestSchema:{schemaId:"schema.application.git.blame.request",revision:1},resultSchema:{schemaId:"schema.application.git.blame.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:3e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","partial"],decodeRequest:S2(173),decodeResult:S2(174),decodeSuccess:e=>fu(e,"binding.http.git_blame.v1","schema.application.git.blame.result",1,["completed","cancelled","timed_out","failed","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(174))},{operation:"application_git_diff",operationId:"operation.application.git_diff",transport:{kind:"http",route:"/application/git/diff",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.git_diff.v1",requestSchema:{schemaId:"schema.application.git.diff.request",revision:1},resultSchema:{schemaId:"schema.application.git.diff.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:3e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","partial"],decodeRequest:S2(175),decodeResult:S2(174),decodeSuccess:e=>fu(e,"binding.http.git_diff.v1","schema.application.git.diff.result",1,["completed","cancelled","timed_out","failed","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(174))},{operation:"application_git_history",operationId:"operation.application.git_history",transport:{kind:"http",route:"/application/git/history",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.git_history.v1",requestSchema:{schemaId:"schema.application.git.history.request",revision:1},resultSchema:{schemaId:"schema.application.git.history.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:3e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","partial"],decodeRequest:S2(176),decodeResult:S2(174),decodeSuccess:e=>fu(e,"binding.http.git_history.v1","schema.application.git.history.result",1,["completed","cancelled","timed_out","failed","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(174))},{operation:"application_git_hunks",operationId:"operation.application.git_hunks",transport:{kind:"http",route:"/application/git/hunks",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.git_hunks.v1",requestSchema:{schemaId:"schema.application.git.hunks.request",revision:1},resultSchema:{schemaId:"schema.application.git.hunks.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:3e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","partial"],decodeRequest:S2(177),decodeResult:S2(174),decodeSuccess:e=>fu(e,"binding.http.git_hunks.v1","schema.application.git.hunks.result",1,["completed","cancelled","timed_out","failed","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(174))},{operation:"git_preview",operationId:"operation.application.git_preview",transport:{kind:"mcp_tool",toolName:"tracedecay_git_preview"},effect:"preview",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.git_preview.v1",requestSchema:{schemaId:"schema.application.git.preview.request",revision:1},resultSchema:{schemaId:"schema.application.git.preview.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:3e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","partial"],decodeRequest:S2(178),decodeResult:S2(179)},{operation:"application_git_status",operationId:"operation.application.git_status",transport:{kind:"http",route:"/application/git/status",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.git_status.v1",requestSchema:{schemaId:"schema.application.git.status.request",revision:1},resultSchema:{schemaId:"schema.application.git.status.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:3e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","partial"],decodeRequest:S2(180),decodeResult:S2(174),decodeSuccess:e=>fu(e,"binding.http.git_status.v1","schema.application.git.status.result",1,["completed","cancelled","timed_out","failed","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(174))},{operation:"application_github_stack_signal_expand",operationId:"operation.application.github_stack_signal_expand",transport:{kind:"http",route:"/application/github-stack/signal-expand",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.github_stack_signal_expand.v1",requestSchema:{schemaId:"schema.application.github-stack.signal-expand.request",revision:1},resultSchema:{schemaId:"schema.application.github-stack.signal-expand.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:3e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","partial"],decodeRequest:S2(181),decodeResult:S2(182),decodeSuccess:e=>fu(e,"binding.http.github_stack_signal_expand.v1","schema.application.github-stack.signal-expand.result",1,["completed","cancelled","timed_out","failed","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(182))},{operation:"god_class",operationId:"operation.application.god_class",transport:{kind:"mcp_tool",toolName:"tracedecay_god_class"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.god_class.v1",requestSchema:{schemaId:"schema.application.primitive.god-class.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.god-class.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:12e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(183),decodeResult:S2(184)},{operation:"grep",operationId:"operation.application.grep",transport:{kind:"mcp_tool",toolName:"tracedecay_grep"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.grep.v1",requestSchema:{schemaId:"schema.application.primitive.grep.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.grep.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:12e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(185),decodeResult:S2(186)},{operation:"health",operationId:"operation.application.health",transport:{kind:"mcp_tool",toolName:"tracedecay_health"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.health.v1",requestSchema:{schemaId:"schema.application.primitive.health.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.health.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:12e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(187),decodeResult:S2(188)},{operation:"application_health_delta",operationId:"operation.application.health_delta",transport:{kind:"http",route:"/application/primitives/health_delta",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.health_delta.v1",requestSchema:{schemaId:"schema.application.primitive.health-delta.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.health-delta.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:1e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(189),decodeResult:S2(190),decodeSuccess:e=>fu(e,"binding.http.health_delta.v1","schema.application.primitive.health-delta.result",1,["completed","cancelled","timed_out","failed","unavailable","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(190))},{operation:"application_health_read",operationId:"operation.application.health_read",transport:{kind:"http",route:"/application/primitives/health_read",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.health_read.v1",requestSchema:{schemaId:"schema.application.primitive.health-read.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.health-read.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:1e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(191),decodeResult:S2(192),decodeSuccess:e=>fu(e,"binding.http.health_read.v1","schema.application.primitive.health-read.result",1,["completed","cancelled","timed_out","failed","unavailable","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(192))},{operation:"hermes_skill_bridge",operationId:"operation.application.hermes_skill_bridge",transport:{kind:"mcp_tool",toolName:"tracedecay_hermes_skill_bridge"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.hermes_skill_bridge.v1",requestSchema:{schemaId:"schema.application.primitive.hermes-skill-bridge.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.hermes-skill-bridge.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:12e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(193),decodeResult:S2(194)},{operation:"hook_runtime",operationId:"operation.application.hook_runtime",transport:{kind:"mcp_tool",toolName:"tracedecay_hook_runtime"},effect:"records_host_evidence",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.hook_runtime.v1",requestSchema:{schemaId:"schema.application.primitive.hook-runtime.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.hook-runtime.result",revision:1},cancellation:{mode:"not_cancellable"},deadline:{behavior:"return_operation_receipt",maximum_millis:12e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","timed_out","failed","unavailable","partial"],decodeRequest:S2(195),decodeResult:S2(196)},{operation:"hotspots",operationId:"operation.application.hotspots",transport:{kind:"mcp_tool",toolName:"tracedecay_hotspots"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.hotspots.v1",requestSchema:{schemaId:"schema.application.primitive.hotspots.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.hotspots.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:12e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(197),decodeResult:S2(198)},{operation:"impact",operationId:"operation.application.impact",transport:{kind:"mcp_tool",toolName:"tracedecay_impact"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.impact.v1",requestSchema:{schemaId:"schema.application.primitive.impact.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.impact.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:1e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(199),decodeResult:S2(200)},{operation:"inheritance_depth",operationId:"operation.application.inheritance_depth",transport:{kind:"mcp_tool",toolName:"tracedecay_inheritance_depth"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.inheritance_depth.v1",requestSchema:{schemaId:"schema.application.primitive.inheritance-depth.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.inheritance-depth.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:12e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(201),decodeResult:S2(202)},{operation:"insert_at",operationId:"operation.application.insert_at",transport:{kind:"mcp_tool",toolName:"tracedecay_insert_at"},effect:"source_edit",idempotency:"required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.insert_at.v1",requestSchema:{schemaId:"schema.application.source-edit.insert-at.request",revision:1},resultSchema:{schemaId:"schema.application.source-edit.insert-at.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_effect","effect_in_flight","after_commit"]},deadline:{behavior:"return_effect_receipt",maximum_millis:3e4},reconciliation:"required",receipt:"durable_effect",terminalStates:["completed","cancelled","timed_out","failed","effect_unknown","partial"],decodeRequest:S2(203),decodeResult:S2(18)},{operation:"insert_at_symbol",operationId:"operation.application.insert_at_symbol",transport:{kind:"mcp_tool",toolName:"tracedecay_insert_at_symbol"},effect:"source_edit",idempotency:"required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.insert_at_symbol.v1",requestSchema:{schemaId:"schema.application.source-edit.insert-at-symbol.request",revision:1},resultSchema:{schemaId:"schema.application.source-edit.insert-at-symbol.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_effect","effect_in_flight","after_commit"]},deadline:{behavior:"return_effect_receipt",maximum_millis:3e4},reconciliation:"required",receipt:"durable_effect",terminalStates:["completed","cancelled","timed_out","failed","effect_unknown","partial"],decodeRequest:S2(204),decodeResult:S2(18)},{operation:"largest",operationId:"operation.application.largest",transport:{kind:"mcp_tool",toolName:"tracedecay_largest"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.largest.v1",requestSchema:{schemaId:"schema.application.primitive.largest.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.largest.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:12e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(205),decodeResult:S2(206)},{operation:"application_lcm_describe",operationId:"operation.application.lcm_describe",transport:{kind:"http",route:"/application/retained/lcm_describe",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.lcm_describe.v1",requestSchema:{schemaId:"schema.application.retained.lcm-describe.request",revision:1},resultSchema:{schemaId:"schema.application.retained.lcm-describe.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:3e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(207),decodeResult:S2(208),decodeSuccess:e=>fu(e,"binding.http.lcm_describe.v1","schema.application.retained.lcm-describe.result",1,["completed","cancelled","timed_out","failed","unavailable","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(208))},{operation:"application_lcm_doctor",operationId:"operation.application.lcm_doctor",transport:{kind:"http",route:"/application/retained/lcm_doctor",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.lcm_doctor.v1",requestSchema:{schemaId:"schema.application.retained.lcm-doctor.request",revision:1},resultSchema:{schemaId:"schema.application.retained.lcm-doctor.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:3e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(209),decodeResult:S2(210),decodeSuccess:e=>fu(e,"binding.http.lcm_doctor.v1","schema.application.retained.lcm-doctor.result",1,["completed","cancelled","timed_out","failed","unavailable","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(210))},{operation:"application_lcm_expand",operationId:"operation.application.lcm_expand",transport:{kind:"http",route:"/application/retained/lcm_expand",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.lcm_expand.v1",requestSchema:{schemaId:"schema.application.retained.lcm-expand.request",revision:1},resultSchema:{schemaId:"schema.application.retained.lcm-expand.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:3e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(211),decodeResult:S2(212),decodeSuccess:e=>fu(e,"binding.http.lcm_expand.v1","schema.application.retained.lcm-expand.result",1,["completed","cancelled","timed_out","failed","unavailable","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(212))},{operation:"application_lcm_expand_query",operationId:"operation.application.lcm_expand_query",transport:{kind:"http",route:"/application/retained/lcm_expand_query",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.lcm_expand_query.v1",requestSchema:{schemaId:"schema.application.retained.lcm-expand-query.request",revision:1},resultSchema:{schemaId:"schema.application.retained.lcm-expand-query.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:3e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(213),decodeResult:S2(214),decodeSuccess:e=>fu(e,"binding.http.lcm_expand_query.v1","schema.application.retained.lcm-expand-query.result",1,["completed","cancelled","timed_out","failed","unavailable","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(214))},{operation:"application_lcm_grep",operationId:"operation.application.lcm_grep",transport:{kind:"http",route:"/application/retained/lcm_grep",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.lcm_grep.v1",requestSchema:{schemaId:"schema.application.retained.lcm-grep.request",revision:1},resultSchema:{schemaId:"schema.application.retained.lcm-grep.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:3e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(215),decodeResult:S2(216),decodeSuccess:e=>fu(e,"binding.http.lcm_grep.v1","schema.application.retained.lcm-grep.result",1,["completed","cancelled","timed_out","failed","unavailable","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(216))},{operation:"application_lcm_load_session",operationId:"operation.application.lcm_load_session",transport:{kind:"http",route:"/application/retained/lcm_load_session",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.lcm_load_session.v1",requestSchema:{schemaId:"schema.application.retained.lcm-load-session.request",revision:1},resultSchema:{schemaId:"schema.application.retained.lcm-load-session.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:3e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(217),decodeResult:S2(218),decodeSuccess:e=>fu(e,"binding.http.lcm_load_session.v1","schema.application.retained.lcm-load-session.result",1,["completed","cancelled","timed_out","failed","unavailable","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(218))},{operation:"application_lcm_status",operationId:"operation.application.lcm_status",transport:{kind:"http",route:"/application/retained/lcm_status",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.lcm_status.v1",requestSchema:{schemaId:"schema.application.retained.lcm-status.request",revision:1},resultSchema:{schemaId:"schema.application.retained.lcm-status.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:3e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(219),decodeResult:S2(220),decodeSuccess:e=>fu(e,"binding.http.lcm_status.v1","schema.application.retained.lcm-status.result",1,["completed","cancelled","timed_out","failed","unavailable","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(220))},{operation:"application_memory_status",operationId:"operation.application.memory_status",transport:{kind:"http",route:"/application/retained/memory_status",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.memory_status.v1",requestSchema:{schemaId:"schema.application.retained.memory-status.request",revision:1},resultSchema:{schemaId:"schema.application.retained.memory-status.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:3e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(221),decodeResult:S2(222),decodeSuccess:e=>fu(e,"binding.http.memory_status.v1","schema.application.retained.memory-status.result",1,["completed","cancelled","timed_out","failed","unavailable","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(222))},{operation:"application_message_search",operationId:"operation.application.message_search",transport:{kind:"http",route:"/application/retained/message_search",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.message_search.v1",requestSchema:{schemaId:"schema.application.retained.message-search.request",revision:1},resultSchema:{schemaId:"schema.application.retained.message-search.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:3e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(223),decodeResult:S2(224),decodeSuccess:e=>fu(e,"binding.http.message_search.v1","schema.application.retained.message-search.result",1,["completed","cancelled","timed_out","failed","unavailable","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(224))},{operation:"application_module_api",operationId:"operation.application.module_api",transport:{kind:"http",route:"/application/primitives/module_api",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.module_api.v1",requestSchema:{schemaId:"schema.application.primitive.module-api.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.module-api.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:1e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(225),decodeResult:S2(226),decodeSuccess:e=>fu(e,"binding.http.module_api.v1","schema.application.primitive.module-api.result",1,["completed","cancelled","timed_out","failed","unavailable","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(226))},{operation:"move_symbol",operationId:"operation.application.move_symbol",transport:{kind:"mcp_tool",toolName:"tracedecay_move_symbol"},effect:"source_edit",idempotency:"required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.move_symbol.v1",requestSchema:{schemaId:"schema.application.source-edit.move-symbol.request",revision:1},resultSchema:{schemaId:"schema.application.source-edit.move-symbol.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_effect","effect_in_flight","after_commit"]},deadline:{behavior:"return_effect_receipt",maximum_millis:3e4},reconciliation:"required",receipt:"durable_effect",terminalStates:["completed","cancelled","timed_out","failed","effect_unknown","partial"],decodeRequest:S2(227),decodeResult:S2(18)},{operation:"multi_str_replace",operationId:"operation.application.multi_str_replace",transport:{kind:"mcp_tool",toolName:"tracedecay_multi_str_replace"},effect:"source_edit",idempotency:"required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.multi_str_replace.v1",requestSchema:{schemaId:"schema.application.source-edit.multi-str-replace.request",revision:1},resultSchema:{schemaId:"schema.application.source-edit.multi-str-replace.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_effect","effect_in_flight","after_commit"]},deadline:{behavior:"return_effect_receipt",maximum_millis:3e4},reconciliation:"required",receipt:"durable_effect",terminalStates:["completed","cancelled","timed_out","failed","effect_unknown","partial"],decodeRequest:S2(228),decodeResult:S2(18)},{operation:"native_integration_status",operationId:"operation.application.native_integration_status",transport:{kind:"mcp_tool",toolName:"tracedecay_native_integration_status"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.native_integration_status.v1",requestSchema:{schemaId:"schema.application.native-integration.status.request",revision:1},resultSchema:{schemaId:"schema.application.native-integration.status.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:3e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","partial"],decodeRequest:S2(229),decodeResult:S2(15)},{operation:"node",operationId:"operation.application.node",transport:{kind:"mcp_tool",toolName:"tracedecay_node"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.node.v1",requestSchema:{schemaId:"schema.application.primitive.node.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.node.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:1e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(230),decodeResult:S2(231)},{operation:"observatory_read",operationId:"operation.application.observatory_read",transport:{kind:"mcp_tool",toolName:"tracedecay_observatory_read"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.observatory_read.v1",requestSchema:{schemaId:"schema.application.observatory-read.request",revision:1},resultSchema:{schemaId:"schema.application.observatory-read.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:15e3},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(232),decodeResult:S2(233)},{operation:"port_order",operationId:"operation.application.port_order",transport:{kind:"mcp_tool",toolName:"tracedecay_port_order"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.port_order.v1",requestSchema:{schemaId:"schema.application.primitive.port-order.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.port-order.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:1e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(234),decodeResult:S2(235)},{operation:"port_status",operationId:"operation.application.port_status",transport:{kind:"mcp_tool",toolName:"tracedecay_port_status"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.port_status.v1",requestSchema:{schemaId:"schema.application.primitive.port-status.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.port-status.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:1e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(236),decodeResult:S2(237)},{operation:"pr_context",operationId:"operation.application.pr_context",transport:{kind:"mcp_tool",toolName:"tracedecay_pr_context"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.pr_context.v1",requestSchema:{schemaId:"schema.application.primitive.pr-context.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.pr-context.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:12e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(238),decodeResult:S2(239)},{operation:"preflight_native_integration",operationId:"operation.application.preflight_native_integration",transport:{kind:"mcp_tool",toolName:"tracedecay_preflight_native_integration"},effect:"preview",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.preflight_native_integration.v1",requestSchema:{schemaId:"schema.application.native-integration.preflight.request",revision:1},resultSchema:{schemaId:"schema.application.native-integration.preflight.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:3e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","partial"],decodeRequest:S2(240),decodeResult:S2(15)},{operation:"project_context",operationId:"operation.application.project_context",transport:{kind:"mcp_tool",toolName:"tracedecay_project_context"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.project_context.v1",requestSchema:{schemaId:"schema.application.primitive.project-context.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.project-context.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:12e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(241),decodeResult:S2(242)},{operation:"project_list",operationId:"operation.application.project_list",transport:{kind:"mcp_tool",toolName:"tracedecay_project_list"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.project_list.v1",requestSchema:{schemaId:"schema.application.primitive.project-list.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.project-list.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:12e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(243),decodeResult:S2(244)},{operation:"project_search",operationId:"operation.application.project_search",transport:{kind:"mcp_tool",toolName:"tracedecay_project_search"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.project_search.v1",requestSchema:{schemaId:"schema.application.primitive.project-search.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.project-search.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:12e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(245),decodeResult:S2(244)},{operation:"application_qualified_name",operationId:"operation.application.qualified_name",transport:{kind:"http",route:"/application/primitives/qualified_name",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.qualified_name.v1",requestSchema:{schemaId:"schema.application.primitive.qualified-name.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.qualified-name.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:1e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(246),decodeResult:S2(247),decodeSuccess:e=>fu(e,"binding.http.qualified_name.v1","schema.application.primitive.qualified-name.result",1,["completed","cancelled","timed_out","failed","unavailable","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(247))},{operation:"rank",operationId:"operation.application.rank",transport:{kind:"mcp_tool",toolName:"tracedecay_rank"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.rank.v1",requestSchema:{schemaId:"schema.application.primitive.rank.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.rank.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:12e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(248),decodeResult:S2(249)},{operation:"recursion",operationId:"operation.application.recursion",transport:{kind:"mcp_tool",toolName:"tracedecay_recursion"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.recursion.v1",requestSchema:{schemaId:"schema.application.primitive.recursion.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.recursion.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:12e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(250),decodeResult:S2(251)},{operation:"redundancy",operationId:"operation.application.redundancy",transport:{kind:"mcp_tool",toolName:"tracedecay_redundancy"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.redundancy.v1",requestSchema:{schemaId:"schema.application.primitive.redundancy.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.redundancy.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:1e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(252),decodeResult:S2(253)},{operation:"remote_status",operationId:"operation.application.remote_status",transport:{kind:"mcp_tool",toolName:"tracedecay_remote_status"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.remote_status.v1",requestSchema:{schemaId:"schema.application.primitive.remote-status.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.remote-status.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:12e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(254),decodeResult:S2(255)},{operation:"rename_preview",operationId:"operation.application.rename_preview",transport:{kind:"mcp_tool",toolName:"tracedecay_rename_preview"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.rename_preview.v1",requestSchema:{schemaId:"schema.application.primitive.rename-preview.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.rename-preview.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:1e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(256),decodeResult:S2(257)},{operation:"rename_symbol",operationId:"operation.application.rename_symbol",transport:{kind:"mcp_tool",toolName:"tracedecay_rename_symbol"},effect:"source_edit",idempotency:"required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.rename_symbol.v1",requestSchema:{schemaId:"schema.application.source-edit.rename-symbol.request",revision:1},resultSchema:{schemaId:"schema.application.source-edit.rename-symbol.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_effect","effect_in_flight","after_commit"]},deadline:{behavior:"return_effect_receipt",maximum_millis:3e4},reconciliation:"required",receipt:"durable_effect",terminalStates:["completed","cancelled","timed_out","failed","effect_unknown","partial"],decodeRequest:S2(258),decodeResult:S2(18)},{operation:"replace_symbol",operationId:"operation.application.replace_symbol",transport:{kind:"mcp_tool",toolName:"tracedecay_replace_symbol"},effect:"source_edit",idempotency:"required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.replace_symbol.v1",requestSchema:{schemaId:"schema.application.source-edit.replace-symbol.request",revision:1},resultSchema:{schemaId:"schema.application.source-edit.replace-symbol.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_effect","effect_in_flight","after_commit"]},deadline:{behavior:"return_effect_receipt",maximum_millis:3e4},reconciliation:"required",receipt:"durable_effect",terminalStates:["completed","cancelled","timed_out","failed","effect_unknown","partial"],decodeRequest:S2(259),decodeResult:S2(18)},{operation:"retrieve",operationId:"operation.application.retrieve",transport:{kind:"mcp_tool",toolName:"tracedecay_retrieve"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.retrieve.v1",requestSchema:{schemaId:"schema.application.primitive.retrieve.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.retrieve.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:12e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(260),decodeResult:S2(261)},{operation:"run_affected_tests",operationId:"operation.application.run_affected_tests",transport:{kind:"mcp_tool",toolName:"tracedecay_run_affected_tests"},effect:"spawns_process",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.run_affected_tests.v1",requestSchema:{schemaId:"schema.application.primitive.run-affected-tests.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.run-affected-tests.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","effect_in_flight"]},deadline:{behavior:"return_operation_receipt",maximum_millis:6e5},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(262),decodeResult:S2(263)},{operation:"runtime",operationId:"operation.application.runtime",transport:{kind:"mcp_tool",toolName:"tracedecay_runtime"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.runtime.v1",requestSchema:{schemaId:"schema.application.primitive.runtime.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.runtime.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:12e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(264),decodeResult:S2(265)},{operation:"search",operationId:"operation.application.search",transport:{kind:"mcp_tool",toolName:"tracedecay_search"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.search.v1",requestSchema:{schemaId:"schema.application.primitive.search.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.search.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:12e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(266),decodeResult:S2(267)},{operation:"session_lookup",operationId:"operation.application.session_lookup",transport:{kind:"mcp_tool",toolName:"tracedecay_session_lookup"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.session_lookup.v1",requestSchema:{schemaId:"schema.application.primitive.session-lookup.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.session-lookup.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:1e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(268),decodeResult:S2(269)},{operation:"application_session_refresh_begin",operationId:"operation.application.session_refresh_begin",transport:{kind:"http",route:"/application/retained/session_refresh_begin",method:"POST"},effect:"administrative",idempotency:"required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.session_refresh_begin.v1",requestSchema:{schemaId:"schema.application.retained.session-refresh-begin.request",revision:1},resultSchema:{schemaId:"schema.application.retained.session-refresh-begin.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_effect","effect_in_flight","reconciling","after_commit"]},deadline:{behavior:"return_effect_receipt",maximum_millis:3e4},reconciliation:"required",receipt:"durable_effect",terminalStates:["completed","cancelled","timed_out","failed","unavailable","effect_unknown","partial"],decodeRequest:S2(270),decodeResult:S2(271),decodeSuccess:e=>fu(e,"binding.http.session_refresh_begin.v1","schema.application.retained.session-refresh-begin.result",1,["completed","cancelled","timed_out","failed","unavailable","effect_unknown","partial"],{mode:"cooperative",points:["before_admission","before_effect","effect_in_flight","reconciling","after_commit"]},"durable_effect","required",S2(271))},{operation:"application_session_refresh_cancel",operationId:"operation.application.session_refresh_cancel",transport:{kind:"http",route:"/application/retained/session_refresh_cancel",method:"POST"},effect:"administrative",idempotency:"required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.session_refresh_cancel.v1",requestSchema:{schemaId:"schema.application.retained.session-refresh-cancel.request",revision:1},resultSchema:{schemaId:"schema.application.retained.session-refresh-cancel.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_effect","effect_in_flight","reconciling","after_commit"]},deadline:{behavior:"return_effect_receipt",maximum_millis:3e4},reconciliation:"required",receipt:"durable_effect",terminalStates:["completed","cancelled","timed_out","failed","unavailable","effect_unknown","partial"],decodeRequest:S2(270),decodeResult:S2(272),decodeSuccess:e=>fu(e,"binding.http.session_refresh_cancel.v1","schema.application.retained.session-refresh-cancel.result",1,["completed","cancelled","timed_out","failed","unavailable","effect_unknown","partial"],{mode:"cooperative",points:["before_admission","before_effect","effect_in_flight","reconciling","after_commit"]},"durable_effect","required",S2(272))},{operation:"application_session_refresh_status",operationId:"operation.application.session_refresh_status",transport:{kind:"http",route:"/application/retained/session_refresh_status",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.session_refresh_status.v1",requestSchema:{schemaId:"schema.application.retained.session-refresh-status.request",revision:1},resultSchema:{schemaId:"schema.application.retained.session-refresh-status.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:3e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(270),decodeResult:S2(273),decodeSuccess:e=>fu(e,"binding.http.session_refresh_status.v1","schema.application.retained.session-refresh-status.result",1,["completed","cancelled","timed_out","failed","unavailable","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(273))},{operation:"application_sessions_for",operationId:"operation.application.sessions_for",transport:{kind:"http",route:"/application/retained/sessions_for",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.sessions_for.v1",requestSchema:{schemaId:"schema.application.retained.sessions-for.request",revision:1},resultSchema:{schemaId:"schema.application.retained.sessions-for.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:3e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(274),decodeResult:S2(275),decodeSuccess:e=>fu(e,"binding.http.sessions_for.v1","schema.application.retained.sessions-for.result",1,["completed","cancelled","timed_out","failed","unavailable","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(275))},{operation:"signature",operationId:"operation.application.signature",transport:{kind:"mcp_tool",toolName:"tracedecay_signature"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.signature.v1",requestSchema:{schemaId:"schema.application.primitive.signature.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.signature.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:12e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(112),decodeResult:S2(276)},{operation:"similar",operationId:"operation.application.similar",transport:{kind:"mcp_tool",toolName:"tracedecay_similar"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.similar.v1",requestSchema:{schemaId:"schema.application.primitive.similar.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.similar.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:1e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(277),decodeResult:S2(278)},{operation:"skill_list",operationId:"operation.application.skill_list",transport:{kind:"mcp_tool",toolName:"tracedecay_skill_list"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.skill_list.v1",requestSchema:{schemaId:"schema.application.primitive.skill-list.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.skill-list.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:12e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(279),decodeResult:S2(280)},{operation:"skill_view",operationId:"operation.application.skill_view",transport:{kind:"mcp_tool",toolName:"tracedecay_skill_view"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.skill_view.v1",requestSchema:{schemaId:"schema.application.primitive.skill-view.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.skill-view.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:12e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(281),decodeResult:S2(282)},{operation:"application_source_body",operationId:"operation.application.source_body",transport:{kind:"http",route:"/application/primitives/source_body",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.source_body.v1",requestSchema:{schemaId:"schema.application.primitive.source-body.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.source-body.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:1e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(283),decodeResult:S2(284),decodeSuccess:e=>fu(e,"binding.http.source_body.v1","schema.application.primitive.source-body.result",1,["completed","cancelled","timed_out","failed","unavailable","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(284))},{operation:"source_edit_reconcile",operationId:"operation.application.source_edit_reconcile",transport:{kind:"mcp_tool",toolName:"tracedecay_source_edit_reconcile"},effect:"source_edit",idempotency:"required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.source_edit_reconcile.v1",requestSchema:{schemaId:"schema.application.source-edit.reconcile.request",revision:1},resultSchema:{schemaId:"schema.application.source-edit.reconcile.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_effect","effect_in_flight","after_commit"]},deadline:{behavior:"return_effect_receipt",maximum_millis:3e4},reconciliation:"required",receipt:"durable_effect",terminalStates:["completed","cancelled","timed_out","failed","effect_unknown","partial"],decodeRequest:S2(285),decodeResult:S2(18)},{operation:"application_source_lines",operationId:"operation.application.source_lines",transport:{kind:"http",route:"/application/primitives/source_lines",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.source_lines.v1",requestSchema:{schemaId:"schema.application.primitive.source-lines.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.source-lines.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:1e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(286),decodeResult:S2(287),decodeSuccess:e=>fu(e,"binding.http.source_lines.v1","schema.application.primitive.source-lines.result",1,["completed","cancelled","timed_out","failed","unavailable","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(287))},{operation:"application_source_outline",operationId:"operation.application.source_outline",transport:{kind:"http",route:"/application/primitives/source_outline",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.source_outline.v1",requestSchema:{schemaId:"schema.application.primitive.source-outline.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.source-outline.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:1e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(288),decodeResult:S2(289),decodeSuccess:e=>fu(e,"binding.http.source_outline.v1","schema.application.primitive.source-outline.result",1,["completed","cancelled","timed_out","failed","unavailable","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(289))},{operation:"stack_snapshot",operationId:"operation.application.stack_snapshot",transport:{kind:"mcp_tool",toolName:"tracedecay_stack_snapshot"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.stack_snapshot.v1",requestSchema:{schemaId:"schema.application.native-integration.stack-snapshot.request",revision:1},resultSchema:{schemaId:"schema.application.native-integration.stack-snapshot.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:3e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","partial"],decodeRequest:S2(290),decodeResult:S2(15)},{operation:"status",operationId:"operation.application.status",transport:{kind:"mcp_tool",toolName:"tracedecay_status"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.status.v1",requestSchema:{schemaId:"schema.application.primitive.status.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.status.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:12e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(291),decodeResult:S2(292)},{operation:"application_storage_status",operationId:"operation.application.storage_status",transport:{kind:"http",route:"/application/primitives/storage_status",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.storage_status.v1",requestSchema:{schemaId:"schema.application.primitive.storage-status.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.storage-status.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:1e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(293),decodeResult:S2(294),decodeSuccess:e=>fu(e,"binding.http.storage_status.v1","schema.application.primitive.storage-status.result",1,["completed","cancelled","timed_out","failed","unavailable","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(294))},{operation:"str_replace",operationId:"operation.application.str_replace",transport:{kind:"mcp_tool",toolName:"tracedecay_str_replace"},effect:"source_edit",idempotency:"required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.str_replace.v1",requestSchema:{schemaId:"schema.application.source-edit.str-replace.request",revision:1},resultSchema:{schemaId:"schema.application.source-edit.str-replace.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_effect","effect_in_flight","after_commit"]},deadline:{behavior:"return_effect_receipt",maximum_millis:3e4},reconciliation:"required",receipt:"durable_effect",terminalStates:["completed","cancelled","timed_out","failed","effect_unknown","partial"],decodeRequest:S2(295),decodeResult:S2(18)},{operation:"test_map",operationId:"operation.application.test_map",transport:{kind:"mcp_tool",toolName:"tracedecay_test_map"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.test_map.v1",requestSchema:{schemaId:"schema.application.primitive.test-map.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.test-map.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:12e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(296),decodeResult:S2(297)},{operation:"application_test_results",operationId:"operation.application.test_results",transport:{kind:"http",route:"/application/tests/results",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.test_results.v1",requestSchema:{schemaId:"schema.application.feedback.test-results.request",revision:1},resultSchema:{schemaId:"schema.application.feedback.test-results.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:15e3},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(298),decodeResult:S2(299),decodeSuccess:e=>fu(e,"binding.http.test_results.v1","schema.application.feedback.test-results.result",1,["completed","cancelled","timed_out","failed","unavailable","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(299))},{operation:"test_risk",operationId:"operation.application.test_risk",transport:{kind:"mcp_tool",toolName:"tracedecay_test_risk"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.test_risk.v1",requestSchema:{schemaId:"schema.application.primitive.test-risk.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.test-risk.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:12e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(300),decodeResult:S2(301)},{operation:"todos",operationId:"operation.application.todos",transport:{kind:"mcp_tool",toolName:"tracedecay_todos"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.todos.v1",requestSchema:{schemaId:"schema.application.primitive.todos.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.todos.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:1e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(302),decodeResult:S2(303)},{operation:"unmounted_files",operationId:"operation.application.unmounted_files",transport:{kind:"mcp_tool",toolName:"tracedecay_unmounted_files"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.unmounted_files.v1",requestSchema:{schemaId:"schema.application.primitive.unmounted-files.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.unmounted-files.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:12e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(304),decodeResult:S2(305)},{operation:"unsafe_patterns",operationId:"operation.application.unsafe_patterns",transport:{kind:"mcp_tool",toolName:"tracedecay_unsafe_patterns"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.mcp.unsafe_patterns.v1",requestSchema:{schemaId:"schema.application.primitive.unsafe-patterns.request",revision:1},resultSchema:{schemaId:"schema.application.primitive.unsafe-patterns.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:12e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(306),decodeResult:S2(307)},{operation:"application_workflows",operationId:"operation.application.workflows",transport:{kind:"http",route:"/application/retained/workflows",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.workflows.v1",requestSchema:{schemaId:"schema.application.retained.workflows.request",revision:1},resultSchema:{schemaId:"schema.application.retained.workflows.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:3e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","unavailable","partial"],decodeRequest:S2(308),decodeResult:S2(309),decodeSuccess:e=>fu(e,"binding.http.workflows.v1","schema.application.retained.workflows.result",1,["completed","cancelled","timed_out","failed","unavailable","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(309))},{operation:"application_worktree_cleanup_confirm",operationId:"operation.application.worktree_cleanup_confirm",transport:{kind:"http",route:"/application/native-integration/worktree_cleanup_confirm",method:"POST"},effect:"preview",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.worktree_cleanup_confirm.v1",requestSchema:{schemaId:"schema.application.native-integration.worktree-cleanup-confirm.request",revision:1},resultSchema:{schemaId:"schema.application.native-integration.worktree-cleanup-confirm.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:3e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","partial"],decodeRequest:S2(310),decodeResult:S2(15),decodeSuccess:e=>fu(e,"binding.http.worktree_cleanup_confirm.v1","schema.application.native-integration.worktree-cleanup-confirm.result",1,["completed","cancelled","timed_out","failed","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(15))},{operation:"application_worktree_cleanup_inspect",operationId:"operation.application.worktree_cleanup_inspect",transport:{kind:"http",route:"/application/native-integration/worktree_cleanup_inspect",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.worktree_cleanup_inspect.v1",requestSchema:{schemaId:"schema.application.native-integration.worktree-cleanup-inspect.request",revision:1},resultSchema:{schemaId:"schema.application.native-integration.worktree-cleanup-inspect.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:3e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","partial"],decodeRequest:S2(311),decodeResult:S2(15),decodeSuccess:e=>fu(e,"binding.http.worktree_cleanup_inspect.v1","schema.application.native-integration.worktree-cleanup-inspect.result",1,["completed","cancelled","timed_out","failed","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(15))},{operation:"application_worktree_cleanup_reconcile",operationId:"operation.application.worktree_cleanup_reconcile",transport:{kind:"http",route:"/application/native-integration/worktree_cleanup_reconcile",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.worktree_cleanup_reconcile.v1",requestSchema:{schemaId:"schema.application.native-integration.worktree-cleanup-reconcile.request",revision:1},resultSchema:{schemaId:"schema.application.native-integration.worktree-cleanup-reconcile.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:3e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","partial"],decodeRequest:S2(312),decodeResult:S2(15),decodeSuccess:e=>fu(e,"binding.http.worktree_cleanup_reconcile.v1","schema.application.native-integration.worktree-cleanup-reconcile.result",1,["completed","cancelled","timed_out","failed","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(15))},{operation:"application_worktree_cleanup_remove",operationId:"operation.application.worktree_cleanup_remove",transport:{kind:"http",route:"/application/native-integration/worktree_cleanup_remove",method:"POST"},effect:"administrative",idempotency:"required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.worktree_cleanup_remove.v1",requestSchema:{schemaId:"schema.application.native-integration.worktree-cleanup-remove.request",revision:1},resultSchema:{schemaId:"schema.application.native-integration.worktree-cleanup-remove.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_effect","effect_in_flight","after_commit"]},deadline:{behavior:"return_effect_receipt",maximum_millis:3e4},reconciliation:"required",receipt:"durable_effect",terminalStates:["completed","cancelled","timed_out","failed","effect_unknown","partial"],decodeRequest:S2(313),decodeResult:S2(15),decodeSuccess:e=>fu(e,"binding.http.worktree_cleanup_remove.v1","schema.application.native-integration.worktree-cleanup-remove.result",1,["completed","cancelled","timed_out","failed","effect_unknown","partial"],{mode:"cooperative",points:["before_admission","before_effect","effect_in_flight","after_commit"]},"durable_effect","required",S2(15))},{operation:"application_worktree_inventory",operationId:"operation.application.worktree_inventory",transport:{kind:"http",route:"/application/native-integration/worktree_inventory",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.worktree_inventory.v1",requestSchema:{schemaId:"schema.application.native-integration.worktree-inventory.request",revision:1},resultSchema:{schemaId:"schema.application.native-integration.worktree-inventory.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:3e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","partial"],decodeRequest:S2(314),decodeResult:S2(15),decodeSuccess:e=>fu(e,"binding.http.worktree_inventory.v1","schema.application.native-integration.worktree-inventory.result",1,["completed","cancelled","timed_out","failed","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(15))},{operation:"handoff_issue_task_handoff",operationId:"operation.handoff.issue_task_handoff",transport:{kind:"http",route:"/application/handoff/issue-task",method:"POST"},effect:"administrative",idempotency:"required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.handoff.issue_task_handoff",requestSchema:{schemaId:"schema.handoff.issue_task_handoff.request",revision:1},resultSchema:{schemaId:"schema.handoff.issue_task_handoff.result",revision:1},cancellation:{mode:"not_cancellable"},deadline:{behavior:"return_effect_receipt",maximum_millis:3e4},reconciliation:"required",receipt:"durable_effect",terminalStates:["completed","timed_out","failed","effect_unknown","partial"],decodeRequest:S2(315),decodeResult:S2(316),decodeSuccess:e=>fu(e,"binding.http.handoff.issue_task_handoff","schema.handoff.issue_task_handoff.result",1,["completed","timed_out","failed","effect_unknown","partial"],{mode:"not_cancellable"},"durable_effect","required",S2(316))},{operation:"handoff_list_task_handoffs",operationId:"operation.handoff.list_task_handoffs",transport:{kind:"http",route:"/application/handoff/list-task",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.handoff.list_task_handoffs",requestSchema:{schemaId:"schema.handoff.list_task_handoffs.request",revision:1},resultSchema:{schemaId:"schema.handoff.list_task_handoffs.result",revision:1},cancellation:{mode:"not_cancellable"},deadline:{behavior:"return_operation_receipt",maximum_millis:3e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","timed_out","failed","partial"],decodeRequest:S2(317),decodeResult:S2(318),decodeSuccess:e=>fu(e,"binding.http.handoff.list_task_handoffs","schema.handoff.list_task_handoffs.result",1,["completed","timed_out","failed","partial"],{mode:"not_cancellable"},"operation","not_required",S2(318))},{operation:"handoff_open_investigation_handoff",operationId:"operation.handoff.open_investigation_handoff",transport:{kind:"http",route:"/application/handoff/open-investigation",method:"POST"},effect:"administrative",idempotency:"required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.handoff.open_investigation_handoff",requestSchema:{schemaId:"schema.handoff.open_investigation_handoff.request",revision:1},resultSchema:{schemaId:"schema.handoff.open_investigation_handoff.result",revision:1},cancellation:{mode:"not_cancellable"},deadline:{behavior:"return_effect_receipt",maximum_millis:3e4},reconciliation:"required",receipt:"durable_effect",terminalStates:["completed","timed_out","failed","effect_unknown","partial"],decodeRequest:S2(319),decodeResult:S2(320),decodeSuccess:e=>fu(e,"binding.http.handoff.open_investigation_handoff","schema.handoff.open_investigation_handoff.result",1,["completed","timed_out","failed","effect_unknown","partial"],{mode:"not_cancellable"},"durable_effect","required",S2(320))},{operation:"handoff_open_task_handoff",operationId:"operation.handoff.open_task_handoff",transport:{kind:"http",route:"/application/handoff/open-task",method:"POST"},effect:"administrative",idempotency:"required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.handoff.open_task_handoff",requestSchema:{schemaId:"schema.handoff.open_task_handoff.request",revision:1},resultSchema:{schemaId:"schema.handoff.open_task_handoff.result",revision:1},cancellation:{mode:"not_cancellable"},deadline:{behavior:"return_effect_receipt",maximum_millis:3e4},reconciliation:"required",receipt:"durable_effect",terminalStates:["completed","timed_out","failed","effect_unknown","partial"],decodeRequest:S2(321),decodeResult:S2(322),decodeSuccess:e=>fu(e,"binding.http.handoff.open_task_handoff","schema.handoff.open_task_handoff.result",1,["completed","timed_out","failed","effect_unknown","partial"],{mode:"not_cancellable"},"durable_effect","required",S2(322))},{operation:"multi_root_execute",operationId:"operation.multi_root.execute",transport:{kind:"http",route:"/application/multi-root/execute",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.multi_root.execute.v1",requestSchema:{schemaId:"schema.tracedecay.multi-root.execute-request.v1",revision:1},resultSchema:{schemaId:"schema.tracedecay.multi-root.execute-result.v1",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:3e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","partial"],decodeRequest:S2(323),decodeResult:S2(324),decodeSuccess:e=>fu(e,"binding.http.multi_root.execute.v1","schema.tracedecay.multi-root.execute-result.v1",1,["completed","cancelled","timed_out","failed","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(324))},{operation:"multi_root_scope_set_compare_and_swap",operationId:"operation.multi_root.scope_set_compare_and_swap",transport:{kind:"http",route:"/application/multi-root/scope-set/compare-and-swap",method:"POST"},effect:"administrative",idempotency:"required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.multi_root.scope_set_compare_and_swap.v1",requestSchema:{schemaId:"schema.tracedecay.multi-root.scope-set-compare-and-swap-request.v1",revision:1},resultSchema:{schemaId:"schema.tracedecay.multi-root.scope-set-compare-and-swap-result.v1",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_effect","effect_in_flight","after_commit"]},deadline:{behavior:"return_effect_receipt",maximum_millis:3e4},reconciliation:"required",receipt:"durable_effect",terminalStates:["completed","cancelled","timed_out","failed","effect_unknown","partial"],decodeRequest:S2(325),decodeResult:S2(326),decodeSuccess:e=>fu(e,"binding.http.multi_root.scope_set_compare_and_swap.v1","schema.tracedecay.multi-root.scope-set-compare-and-swap-result.v1",1,["completed","cancelled","timed_out","failed","effect_unknown","partial"],{mode:"cooperative",points:["before_admission","before_effect","effect_in_flight","after_commit"]},"durable_effect","required",S2(326))},{operation:"multi_root_scope_set_read",operationId:"operation.multi_root.scope_set_read",transport:{kind:"http",route:"/application/multi-root/scope-set/read",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.multi_root.scope_set_read.v1",requestSchema:{schemaId:"schema.tracedecay.multi-root.scope-set-read-request.v1",revision:1},resultSchema:{schemaId:"schema.tracedecay.multi-root.scope-set-read-result.v1",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:3e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","partial"],decodeRequest:S2(327),decodeResult:S2(328),decodeSuccess:e=>fu(e,"binding.http.multi_root.scope_set_read.v1","schema.tracedecay.multi-root.scope-set-read-result.v1",1,["completed","cancelled","timed_out","failed","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(328))},{operation:"work_accept_proposal",operationId:"operation.work.accept_proposal",transport:{kind:"http",route:"/application/work/accept-proposal",method:"POST"},effect:"administrative",idempotency:"required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.work.accept_proposal",requestSchema:{schemaId:"schema.work.accept_proposal.request",revision:1},resultSchema:{schemaId:"schema.work.accept_proposal.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_effect","effect_in_flight","after_commit"]},deadline:{behavior:"return_effect_receipt",maximum_millis:3e4},reconciliation:"required",receipt:"durable_effect",terminalStates:["completed","cancelled","timed_out","failed","effect_unknown","partial"],decodeRequest:S2(329),decodeResult:S2(330),decodeSuccess:e=>fu(e,"binding.http.work.accept_proposal","schema.work.accept_proposal.result",1,["completed","cancelled","timed_out","failed","effect_unknown","partial"],{mode:"cooperative",points:["before_admission","before_effect","effect_in_flight","after_commit"]},"durable_effect","required",S2(330))},{operation:"work_adjudicate_duplicate",operationId:"operation.work.adjudicate_duplicate",transport:{kind:"http",route:"/application/work/adjudicate-duplicate",method:"POST"},effect:"administrative",idempotency:"required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.work.adjudicate_duplicate",requestSchema:{schemaId:"schema.work.adjudicate_duplicate.request",revision:1},resultSchema:{schemaId:"schema.work.adjudicate_duplicate.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_effect","effect_in_flight","after_commit"]},deadline:{behavior:"return_effect_receipt",maximum_millis:3e4},reconciliation:"required",receipt:"durable_effect",terminalStates:["completed","cancelled","timed_out","failed","effect_unknown","partial"],decodeRequest:S2(331),decodeResult:S2(332),decodeSuccess:e=>fu(e,"binding.http.work.adjudicate_duplicate","schema.work.adjudicate_duplicate.result",1,["completed","cancelled","timed_out","failed","effect_unknown","partial"],{mode:"cooperative",points:["before_admission","before_effect","effect_in_flight","after_commit"]},"durable_effect","required",S2(332))},{operation:"work_adjudicate_leak",operationId:"operation.work.adjudicate_leak",transport:{kind:"http",route:"/application/work/adjudicate-leak",method:"POST"},effect:"administrative",idempotency:"required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.work.adjudicate_leak",requestSchema:{schemaId:"schema.work.adjudicate_leak.request",revision:1},resultSchema:{schemaId:"schema.work.adjudicate_leak.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_effect","effect_in_flight","after_commit"]},deadline:{behavior:"return_effect_receipt",maximum_millis:3e4},reconciliation:"required",receipt:"durable_effect",terminalStates:["completed","cancelled","timed_out","failed","effect_unknown","partial"],decodeRequest:S2(333),decodeResult:S2(334),decodeSuccess:e=>fu(e,"binding.http.work.adjudicate_leak","schema.work.adjudicate_leak.result",1,["completed","cancelled","timed_out","failed","effect_unknown","partial"],{mode:"cooperative",points:["before_admission","before_effect","effect_in_flight","after_commit"]},"durable_effect","required",S2(334))},{operation:"work_admit_execution",operationId:"operation.work.admit_execution",transport:{kind:"http",route:"/application/work/admit-execution",method:"POST"},effect:"administrative",idempotency:"required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.work.admit_execution",requestSchema:{schemaId:"schema.work.admit_execution.request",revision:1},resultSchema:{schemaId:"schema.work.admit_execution.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_effect","effect_in_flight","after_commit"]},deadline:{behavior:"return_effect_receipt",maximum_millis:3e4},reconciliation:"required",receipt:"durable_effect",terminalStates:["completed","cancelled","timed_out","failed","effect_unknown","partial"],decodeRequest:S2(335),decodeResult:S2(336),decodeSuccess:e=>fu(e,"binding.http.work.admit_execution","schema.work.admit_execution.result",1,["completed","cancelled","timed_out","failed","effect_unknown","partial"],{mode:"cooperative",points:["before_admission","before_effect","effect_in_flight","after_commit"]},"durable_effect","required",S2(336))},{operation:"work_admit_placement",operationId:"operation.work.admit_placement",transport:{kind:"http",route:"/application/work/admit-placement",method:"POST"},effect:"administrative",idempotency:"required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.work.admit_placement",requestSchema:{schemaId:"schema.work.admit_placement.request",revision:1},resultSchema:{schemaId:"schema.work.admit_placement.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_effect","effect_in_flight","after_commit"]},deadline:{behavior:"return_effect_receipt",maximum_millis:3e4},reconciliation:"required",receipt:"durable_effect",terminalStates:["completed","cancelled","timed_out","failed","effect_unknown","partial"],decodeRequest:S2(337),decodeResult:S2(338),decodeSuccess:e=>fu(e,"binding.http.work.admit_placement","schema.work.admit_placement.result",1,["completed","cancelled","timed_out","failed","effect_unknown","partial"],{mode:"cooperative",points:["before_admission","before_effect","effect_in_flight","after_commit"]},"durable_effect","required",S2(338))},{operation:"work_advance_job",operationId:"operation.work.advance_job",transport:{kind:"http",route:"/application/work/advance-job",method:"POST"},effect:"administrative",idempotency:"required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.work.advance_job",requestSchema:{schemaId:"schema.work.advance_job.request",revision:1},resultSchema:{schemaId:"schema.work.advance_job.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_effect","effect_in_flight","after_commit"]},deadline:{behavior:"return_effect_receipt",maximum_millis:3e4},reconciliation:"required",receipt:"durable_effect",terminalStates:["completed","cancelled","timed_out","failed","effect_unknown","partial"],decodeRequest:S2(339),decodeResult:S2(340),decodeSuccess:e=>fu(e,"binding.http.work.advance_job","schema.work.advance_job.result",1,["completed","cancelled","timed_out","failed","effect_unknown","partial"],{mode:"cooperative",points:["before_admission","before_effect","effect_in_flight","after_commit"]},"durable_effect","required",S2(340))},{operation:"work_attempt_status",operationId:"operation.work.attempt_status",transport:{kind:"http",route:"/application/work/attempt-status",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.work.attempt_status",requestSchema:{schemaId:"schema.work.attempt_status.request",revision:1},resultSchema:{schemaId:"schema.work.attempt_status.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:3e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","partial"],decodeRequest:S2(341),decodeResult:S2(342),decodeSuccess:e=>fu(e,"binding.http.work.attempt_status","schema.work.attempt_status.result",1,["completed","cancelled","timed_out","failed","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(342))},{operation:"work_cancel_attempt",operationId:"operation.work.cancel_attempt",transport:{kind:"http",route:"/application/work/cancel-attempt",method:"POST"},effect:"administrative",idempotency:"required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.work.cancel_attempt",requestSchema:{schemaId:"schema.work.cancel_attempt.request",revision:1},resultSchema:{schemaId:"schema.work.cancel_attempt.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_effect","effect_in_flight","after_commit"]},deadline:{behavior:"return_effect_receipt",maximum_millis:3e4},reconciliation:"required",receipt:"durable_effect",terminalStates:["completed","cancelled","timed_out","failed","effect_unknown","partial"],decodeRequest:S2(343),decodeResult:S2(342),decodeSuccess:e=>fu(e,"binding.http.work.cancel_attempt","schema.work.cancel_attempt.result",1,["completed","cancelled","timed_out","failed","effect_unknown","partial"],{mode:"cooperative",points:["before_admission","before_effect","effect_in_flight","after_commit"]},"durable_effect","required",S2(342))},{operation:"work_compare_proposal",operationId:"operation.work.compare_proposal",transport:{kind:"http",route:"/application/work/compare-proposal",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.work.compare_proposal",requestSchema:{schemaId:"schema.work.compare_proposal.request",revision:1},resultSchema:{schemaId:"schema.work.compare_proposal.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:3e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","partial"],decodeRequest:S2(344),decodeResult:S2(345),decodeSuccess:e=>fu(e,"binding.http.work.compare_proposal","schema.work.compare_proposal.result",1,["completed","cancelled","timed_out","failed","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(345))},{operation:"work_create",operationId:"operation.work.create",transport:{kind:"http",route:"/application/work/create",method:"POST"},effect:"administrative",idempotency:"required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.work.create",requestSchema:{schemaId:"schema.work.create.request",revision:1},resultSchema:{schemaId:"schema.work.create.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_effect","effect_in_flight","after_commit"]},deadline:{behavior:"return_effect_receipt",maximum_millis:3e4},reconciliation:"required",receipt:"durable_effect",terminalStates:["completed","cancelled","timed_out","failed","effect_unknown","partial"],decodeRequest:S2(346),decodeResult:S2(330),decodeSuccess:e=>fu(e,"binding.http.work.create","schema.work.create.result",1,["completed","cancelled","timed_out","failed","effect_unknown","partial"],{mode:"cooperative",points:["before_admission","before_effect","effect_in_flight","after_commit"]},"durable_effect","required",S2(330))},{operation:"work_execution_history",operationId:"operation.work.execution_history",transport:{kind:"http",route:"/application/work/execution-history",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.work.execution_history",requestSchema:{schemaId:"schema.work.execution_history.request",revision:1},resultSchema:{schemaId:"schema.work.execution_history.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:3e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","partial"],decodeRequest:S2(347),decodeResult:S2(348),decodeSuccess:e=>fu(e,"binding.http.work.execution_history","schema.work.execution_history.result",1,["completed","cancelled","timed_out","failed","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(348))},{operation:"work_experience",operationId:"operation.work.experience",transport:{kind:"http",route:"/application/work/experience",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.work.experience",requestSchema:{schemaId:"schema.work.experience.request",revision:1},resultSchema:{schemaId:"schema.work.experience.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:3e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","partial"],decodeRequest:S2(349),decodeResult:S2(350),decodeSuccess:e=>fu(e,"binding.http.work.experience","schema.work.experience.result",1,["completed","cancelled","timed_out","failed","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(350))},{operation:"work_generate_proposal",operationId:"operation.work.generate_proposal",transport:{kind:"http",route:"/application/work/generate-proposal",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.work.generate_proposal",requestSchema:{schemaId:"schema.work.generate_proposal.request",revision:1},resultSchema:{schemaId:"schema.work.generate_proposal.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:3e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","partial"],decodeRequest:S2(351),decodeResult:S2(352),decodeSuccess:e=>fu(e,"binding.http.work.generate_proposal","schema.work.generate_proposal.result",1,["completed","cancelled","timed_out","failed","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(352))},{operation:"work_hydrate_artifacts",operationId:"operation.work.hydrate_artifacts",transport:{kind:"http",route:"/application/work/hydrate-artifacts",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.work.hydrate_artifacts",requestSchema:{schemaId:"schema.work.hydrate_artifacts.request",revision:1},resultSchema:{schemaId:"schema.work.hydrate_artifacts.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:3e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","partial"],decodeRequest:S2(353),decodeResult:S2(354),decodeSuccess:e=>fu(e,"binding.http.work.hydrate_artifacts","schema.work.hydrate_artifacts.result",1,["completed","cancelled","timed_out","failed","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(354))},{operation:"work_list_attempts",operationId:"operation.work.list_attempts",transport:{kind:"http",route:"/application/work/list-attempts",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.work.list_attempts",requestSchema:{schemaId:"schema.work.list_attempts.request",revision:1},resultSchema:{schemaId:"schema.work.list_attempts.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:3e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","partial"],decodeRequest:S2(347),decodeResult:S2(355),decodeSuccess:e=>fu(e,"binding.http.work.list_attempts","schema.work.list_attempts.result",1,["completed","cancelled","timed_out","failed","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(355))},{operation:"work_mutate_graph",operationId:"operation.work.mutate_graph",transport:{kind:"http",route:"/application/work/mutate-graph",method:"POST"},effect:"administrative",idempotency:"required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.work.mutate_graph",requestSchema:{schemaId:"schema.work.mutate_graph.request",revision:1},resultSchema:{schemaId:"schema.work.mutate_graph.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_effect","effect_in_flight","after_commit"]},deadline:{behavior:"return_effect_receipt",maximum_millis:3e4},reconciliation:"required",receipt:"durable_effect",terminalStates:["completed","cancelled","timed_out","failed","effect_unknown","partial"],decodeRequest:S2(356),decodeResult:S2(330),decodeSuccess:e=>fu(e,"binding.http.work.mutate_graph","schema.work.mutate_graph.result",1,["completed","cancelled","timed_out","failed","effect_unknown","partial"],{mode:"cooperative",points:["before_admission","before_effect","effect_in_flight","after_commit"]},"durable_effect","required",S2(330))},{operation:"work_pause_run",operationId:"operation.work.pause_run",transport:{kind:"http",route:"/application/work/pause-run",method:"POST"},effect:"administrative",idempotency:"required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.work.pause_run",requestSchema:{schemaId:"schema.work.pause_run.request",revision:1},resultSchema:{schemaId:"schema.work.pause_run.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_effect","effect_in_flight","after_commit"]},deadline:{behavior:"return_effect_receipt",maximum_millis:3e4},reconciliation:"required",receipt:"durable_effect",terminalStates:["completed","cancelled","timed_out","failed","effect_unknown","partial"],decodeRequest:S2(357),decodeResult:S2(358),decodeSuccess:e=>fu(e,"binding.http.work.pause_run","schema.work.pause_run.result",1,["completed","cancelled","timed_out","failed","effect_unknown","partial"],{mode:"cooperative",points:["before_admission","before_effect","effect_in_flight","after_commit"]},"durable_effect","required",S2(358))},{operation:"work_placement_preflight",operationId:"operation.work.placement_preflight",transport:{kind:"http",route:"/application/work/placement-preflight",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.work.placement_preflight",requestSchema:{schemaId:"schema.work.placement_preflight.request",revision:1},resultSchema:{schemaId:"schema.work.placement_preflight.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:3e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","partial"],decodeRequest:S2(359),decodeResult:S2(360),decodeSuccess:e=>fu(e,"binding.http.work.placement_preflight","schema.work.placement_preflight.result",1,["completed","cancelled","timed_out","failed","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(360))},{operation:"work_placement_status",operationId:"operation.work.placement_status",transport:{kind:"http",route:"/application/work/placement-status",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.work.placement_status",requestSchema:{schemaId:"schema.work.placement_status.request",revision:1},resultSchema:{schemaId:"schema.work.placement_status.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:3e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","partial"],decodeRequest:S2(361),decodeResult:S2(362),decodeSuccess:e=>fu(e,"binding.http.work.placement_status","schema.work.placement_status.result",1,["completed","cancelled","timed_out","failed","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(362))},{operation:"work_prepare_duplicate_adjudication",operationId:"operation.work.prepare_duplicate_adjudication",transport:{kind:"http",route:"/application/work/prepare-duplicate-adjudication",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.work.prepare_duplicate_adjudication",requestSchema:{schemaId:"schema.work.prepare_duplicate_adjudication.request",revision:1},resultSchema:{schemaId:"schema.work.prepare_duplicate_adjudication.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:3e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","partial"],decodeRequest:S2(363),decodeResult:S2(331),decodeSuccess:e=>fu(e,"binding.http.work.prepare_duplicate_adjudication","schema.work.prepare_duplicate_adjudication.result",1,["completed","cancelled","timed_out","failed","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(331))},{operation:"work_prepare_graph_mutation",operationId:"operation.work.prepare_graph_mutation",transport:{kind:"http",route:"/application/work/prepare-graph-mutation",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.work.prepare_graph_mutation",requestSchema:{schemaId:"schema.work.prepare_graph_mutation.request",revision:1},resultSchema:{schemaId:"schema.work.prepare_graph_mutation.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:3e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","partial"],decodeRequest:S2(364),decodeResult:S2(356),decodeSuccess:e=>fu(e,"binding.http.work.prepare_graph_mutation","schema.work.prepare_graph_mutation.result",1,["completed","cancelled","timed_out","failed","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(356))},{operation:"work_release_placement",operationId:"operation.work.release_placement",transport:{kind:"http",route:"/application/work/release-placement",method:"POST"},effect:"administrative",idempotency:"required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.work.release_placement",requestSchema:{schemaId:"schema.work.release_placement.request",revision:1},resultSchema:{schemaId:"schema.work.release_placement.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_effect","effect_in_flight","after_commit"]},deadline:{behavior:"return_effect_receipt",maximum_millis:3e4},reconciliation:"required",receipt:"durable_effect",terminalStates:["completed","cancelled","timed_out","failed","effect_unknown","partial"],decodeRequest:S2(365),decodeResult:S2(338),decodeSuccess:e=>fu(e,"binding.http.work.release_placement","schema.work.release_placement.result",1,["completed","cancelled","timed_out","failed","effect_unknown","partial"],{mode:"cooperative",points:["before_admission","before_effect","effect_in_flight","after_commit"]},"durable_effect","required",S2(338))},{operation:"work_resume_attempts",operationId:"operation.work.resume_attempts",transport:{kind:"http",route:"/application/work/resume-attempts",method:"POST"},effect:"administrative",idempotency:"required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.work.resume_attempts",requestSchema:{schemaId:"schema.work.resume_attempts.request",revision:1},resultSchema:{schemaId:"schema.work.resume_attempts.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_effect","effect_in_flight","after_commit"]},deadline:{behavior:"return_effect_receipt",maximum_millis:3e4},reconciliation:"required",receipt:"durable_effect",terminalStates:["completed","cancelled","timed_out","failed","effect_unknown","partial"],decodeRequest:S2(366),decodeResult:S2(367),decodeSuccess:e=>fu(e,"binding.http.work.resume_attempts","schema.work.resume_attempts.result",1,["completed","cancelled","timed_out","failed","effect_unknown","partial"],{mode:"cooperative",points:["before_admission","before_effect","effect_in_flight","after_commit"]},"durable_effect","required",S2(367))},{operation:"work_resume_run",operationId:"operation.work.resume_run",transport:{kind:"http",route:"/application/work/resume-run",method:"POST"},effect:"administrative",idempotency:"required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.work.resume_run",requestSchema:{schemaId:"schema.work.resume_run.request",revision:1},resultSchema:{schemaId:"schema.work.resume_run.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_effect","effect_in_flight","after_commit"]},deadline:{behavior:"return_effect_receipt",maximum_millis:3e4},reconciliation:"required",receipt:"durable_effect",terminalStates:["completed","cancelled","timed_out","failed","effect_unknown","partial"],decodeRequest:S2(368),decodeResult:S2(358),decodeSuccess:e=>fu(e,"binding.http.work.resume_run","schema.work.resume_run.result",1,["completed","cancelled","timed_out","failed","effect_unknown","partial"],{mode:"cooperative",points:["before_admission","before_effect","effect_in_flight","after_commit"]},"durable_effect","required",S2(358))},{operation:"work_retrieve_evidence",operationId:"operation.work.retrieve_evidence",transport:{kind:"http",route:"/application/work/retrieve-evidence",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.work.retrieve_evidence",requestSchema:{schemaId:"schema.work.retrieve_evidence.request",revision:1},resultSchema:{schemaId:"schema.work.retrieve_evidence.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:3e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","partial"],decodeRequest:S2(369),decodeResult:S2(370),decodeSuccess:e=>fu(e,"binding.http.work.retrieve_evidence","schema.work.retrieve_evidence.result",1,["completed","cancelled","timed_out","failed","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(370))},{operation:"work_retry_attempt",operationId:"operation.work.retry_attempt",transport:{kind:"http",route:"/application/work/retry-attempt",method:"POST"},effect:"administrative",idempotency:"required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.work.retry_attempt",requestSchema:{schemaId:"schema.work.retry_attempt.request",revision:1},resultSchema:{schemaId:"schema.work.retry_attempt.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_effect","effect_in_flight","after_commit"]},deadline:{behavior:"return_effect_receipt",maximum_millis:3e4},reconciliation:"required",receipt:"durable_effect",terminalStates:["completed","cancelled","timed_out","failed","effect_unknown","partial"],decodeRequest:S2(371),decodeResult:S2(372),decodeSuccess:e=>fu(e,"binding.http.work.retry_attempt","schema.work.retry_attempt.result",1,["completed","cancelled","timed_out","failed","effect_unknown","partial"],{mode:"cooperative",points:["before_admission","before_effect","effect_in_flight","after_commit"]},"durable_effect","required",S2(372))},{operation:"work_review_proposal",operationId:"operation.work.review_proposal",transport:{kind:"http",route:"/application/work/review-proposal",method:"POST"},effect:"administrative",idempotency:"required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.work.review_proposal",requestSchema:{schemaId:"schema.work.review_proposal.request",revision:1},resultSchema:{schemaId:"schema.work.review_proposal.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_effect","effect_in_flight","after_commit"]},deadline:{behavior:"return_effect_receipt",maximum_millis:3e4},reconciliation:"required",receipt:"durable_effect",terminalStates:["completed","cancelled","timed_out","failed","effect_unknown","partial"],decodeRequest:S2(373),decodeResult:S2(330),decodeSuccess:e=>fu(e,"binding.http.work.review_proposal","schema.work.review_proposal.result",1,["completed","cancelled","timed_out","failed","effect_unknown","partial"],{mode:"cooperative",points:["before_admission","before_effect","effect_in_flight","after_commit"]},"durable_effect","required",S2(330))},{operation:"work_run_control",operationId:"operation.work.run_control",transport:{kind:"http",route:"/application/work/run-control",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.work.run_control",requestSchema:{schemaId:"schema.work.run_control.request",revision:1},resultSchema:{schemaId:"schema.work.run_control.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:3e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","partial"],decodeRequest:S2(374),decodeResult:S2(375),decodeSuccess:e=>fu(e,"binding.http.work.run_control","schema.work.run_control.result",1,["completed","cancelled","timed_out","failed","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(375))},{operation:"work_start_attempt",operationId:"operation.work.start_attempt",transport:{kind:"http",route:"/application/work/start-attempt",method:"POST"},effect:"administrative",idempotency:"required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.work.start_attempt",requestSchema:{schemaId:"schema.work.start_attempt.request",revision:1},resultSchema:{schemaId:"schema.work.start_attempt.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_effect","effect_in_flight","after_commit"]},deadline:{behavior:"return_effect_receipt",maximum_millis:3e4},reconciliation:"required",receipt:"durable_effect",terminalStates:["completed","cancelled","timed_out","failed","effect_unknown","partial"],decodeRequest:S2(376),decodeResult:S2(342),decodeSuccess:e=>fu(e,"binding.http.work.start_attempt","schema.work.start_attempt.result",1,["completed","cancelled","timed_out","failed","effect_unknown","partial"],{mode:"cooperative",points:["before_admission","before_effect","effect_in_flight","after_commit"]},"durable_effect","required",S2(342))},{operation:"work_synthesize",operationId:"operation.work.synthesize",transport:{kind:"http",route:"/application/work/synthesize",method:"POST"},effect:"administrative",idempotency:"required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.work.synthesize",requestSchema:{schemaId:"schema.work.synthesize.request",revision:1},resultSchema:{schemaId:"schema.work.synthesize.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_effect","effect_in_flight","after_commit"]},deadline:{behavior:"return_effect_receipt",maximum_millis:3e4},reconciliation:"required",receipt:"durable_effect",terminalStates:["completed","cancelled","timed_out","failed","effect_unknown","partial"],decodeRequest:S2(377),decodeResult:S2(378),decodeSuccess:e=>fu(e,"binding.http.work.synthesize","schema.work.synthesize.result",1,["completed","cancelled","timed_out","failed","effect_unknown","partial"],{mode:"cooperative",points:["before_admission","before_effect","effect_in_flight","after_commit"]},"durable_effect","required",S2(378))},{operation:"work_topology",operationId:"operation.work.topology",transport:{kind:"http",route:"/application/work/topology",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.work.topology",requestSchema:{schemaId:"schema.work.topology.request",revision:1},resultSchema:{schemaId:"schema.work.topology.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:3e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","partial"],decodeRequest:S2(379),decodeResult:S2(380),decodeSuccess:e=>fu(e,"binding.http.work.topology","schema.work.topology.result",1,["completed","cancelled","timed_out","failed","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(380))},{operation:"work_topology_metrics",operationId:"operation.work.topology_metrics",transport:{kind:"http",route:"/application/work/topology-metrics",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.work.topology_metrics",requestSchema:{schemaId:"schema.work.topology_metrics.request",revision:1},resultSchema:{schemaId:"schema.work.topology_metrics.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:3e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","partial"],decodeRequest:S2(381),decodeResult:S2(382),decodeSuccess:e=>fu(e,"binding.http.work.topology_metrics","schema.work.topology_metrics.result",1,["completed","cancelled","timed_out","failed","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(382))},{operation:"work_views",operationId:"operation.work.views",transport:{kind:"http",route:"/application/work/views",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.work.views",requestSchema:{schemaId:"schema.work.views.request",revision:1},resultSchema:{schemaId:"schema.work.views.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:3e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","partial"],decodeRequest:S2(383),decodeResult:S2(384),decodeSuccess:e=>fu(e,"binding.http.work.views","schema.work.views.result",1,["completed","cancelled","timed_out","failed","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(384))},{operation:"workflow_activate_definition",operationId:"operation.workflow.activate_definition",transport:{kind:"http",route:"/application/workflow/activate-definition",method:"POST"},effect:"administrative",idempotency:"required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.workflow.activate_definition",requestSchema:{schemaId:"schema.workflow.activate_definition.request",revision:1},resultSchema:{schemaId:"schema.workflow.activate_definition.result",revision:1},cancellation:{mode:"not_cancellable"},deadline:{behavior:"return_effect_receipt",maximum_millis:3e4},reconciliation:"required",receipt:"durable_effect",terminalStates:["completed","timed_out","failed","effect_unknown","partial"],decodeRequest:S2(385),decodeResult:S2(386),decodeSuccess:e=>fu(e,"binding.http.workflow.activate_definition","schema.workflow.activate_definition.result",1,["completed","timed_out","failed","effect_unknown","partial"],{mode:"not_cancellable"},"durable_effect","required",S2(386))},{operation:"workflow_cancel_run",operationId:"operation.workflow.cancel_run",transport:{kind:"http",route:"/application/workflow/cancel-run",method:"POST"},effect:"administrative",idempotency:"required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.workflow.cancel_run",requestSchema:{schemaId:"schema.workflow.cancel_run.request",revision:1},resultSchema:{schemaId:"schema.workflow.cancel_run.result",revision:1},cancellation:{mode:"not_cancellable"},deadline:{behavior:"return_effect_receipt",maximum_millis:3e4},reconciliation:"required",receipt:"durable_effect",terminalStates:["completed","timed_out","failed","effect_unknown","partial"],decodeRequest:S2(387),decodeResult:S2(388),decodeSuccess:e=>fu(e,"binding.http.workflow.cancel_run","schema.workflow.cancel_run.result",1,["completed","timed_out","failed","effect_unknown","partial"],{mode:"not_cancellable"},"durable_effect","required",S2(388))},{operation:"workflow_definition_history",operationId:"operation.workflow.definition_history",transport:{kind:"http",route:"/application/workflow/definition-history",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.workflow.definition_history",requestSchema:{schemaId:"schema.workflow.definition_history.request",revision:1},resultSchema:{schemaId:"schema.workflow.definition_history.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:3e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","partial"],decodeRequest:S2(389),decodeResult:S2(390),decodeSuccess:e=>fu(e,"binding.http.workflow.definition_history","schema.workflow.definition_history.result",1,["completed","cancelled","timed_out","failed","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(390))},{operation:"workflow_diff_definition",operationId:"operation.workflow.diff_definition",transport:{kind:"http",route:"/application/workflow/diff-definition",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.workflow.diff_definition",requestSchema:{schemaId:"schema.workflow.diff_definition.request",revision:1},resultSchema:{schemaId:"schema.workflow.diff_definition.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:3e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","partial"],decodeRequest:S2(391),decodeResult:S2(392),decodeSuccess:e=>fu(e,"binding.http.workflow.diff_definition","schema.workflow.diff_definition.result",1,["completed","cancelled","timed_out","failed","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(392))},{operation:"workflow_get_definition",operationId:"operation.workflow.get_definition",transport:{kind:"http",route:"/application/workflow/get-definition",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.workflow.get_definition",requestSchema:{schemaId:"schema.workflow.get_definition.request",revision:1},resultSchema:{schemaId:"schema.workflow.get_definition.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:3e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","partial"],decodeRequest:S2(393),decodeResult:S2(394),decodeSuccess:e=>fu(e,"binding.http.workflow.get_definition","schema.workflow.get_definition.result",1,["completed","cancelled","timed_out","failed","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(394))},{operation:"workflow_get_run",operationId:"operation.workflow.get_run",transport:{kind:"http",route:"/application/workflow/get-run",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.workflow.get_run",requestSchema:{schemaId:"schema.workflow.get_run.request",revision:1},resultSchema:{schemaId:"schema.workflow.get_run.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:3e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","partial"],decodeRequest:S2(395),decodeResult:S2(388),decodeSuccess:e=>fu(e,"binding.http.workflow.get_run","schema.workflow.get_run.result",1,["completed","cancelled","timed_out","failed","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(388))},{operation:"workflow_handoff_issue",operationId:"operation.workflow.handoff_issue",transport:{kind:"http",route:"/application/workflow/handoff-issue",method:"POST"},effect:"administrative",idempotency:"required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.workflow.handoff_issue",requestSchema:{schemaId:"schema.workflow.handoff_issue.request",revision:1},resultSchema:{schemaId:"schema.workflow.handoff_issue.result",revision:1},cancellation:{mode:"not_cancellable"},deadline:{behavior:"return_effect_receipt",maximum_millis:3e4},reconciliation:"required",receipt:"durable_effect",terminalStates:["completed","timed_out","failed","effect_unknown","partial"],decodeRequest:S2(396),decodeResult:S2(397),decodeSuccess:e=>fu(e,"binding.http.workflow.handoff_issue","schema.workflow.handoff_issue.result",1,["completed","timed_out","failed","effect_unknown","partial"],{mode:"not_cancellable"},"durable_effect","required",S2(397))},{operation:"workflow_handoff_redeem",operationId:"operation.workflow.handoff_redeem",transport:{kind:"http",route:"/application/workflow/handoff-redeem",method:"POST"},effect:"administrative",idempotency:"required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.workflow.handoff_redeem",requestSchema:{schemaId:"schema.workflow.handoff_redeem.request",revision:1},resultSchema:{schemaId:"schema.workflow.handoff_redeem.result",revision:1},cancellation:{mode:"not_cancellable"},deadline:{behavior:"return_effect_receipt",maximum_millis:3e4},reconciliation:"required",receipt:"durable_effect",terminalStates:["completed","timed_out","failed","effect_unknown","partial"],decodeRequest:S2(398),decodeResult:S2(399),decodeSuccess:e=>fu(e,"binding.http.workflow.handoff_redeem","schema.workflow.handoff_redeem.result",1,["completed","timed_out","failed","effect_unknown","partial"],{mode:"not_cancellable"},"durable_effect","required",S2(399))},{operation:"workflow_list_definitions",operationId:"operation.workflow.list_definitions",transport:{kind:"http",route:"/application/workflow/list-definitions",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.workflow.list_definitions",requestSchema:{schemaId:"schema.workflow.list_definitions.request",revision:1},resultSchema:{schemaId:"schema.workflow.list_definitions.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:3e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","partial"],decodeRequest:S2(400),decodeResult:S2(390),decodeSuccess:e=>fu(e,"binding.http.workflow.list_definitions","schema.workflow.list_definitions.result",1,["completed","cancelled","timed_out","failed","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(390))},{operation:"workflow_pause_run",operationId:"operation.workflow.pause_run",transport:{kind:"http",route:"/application/workflow/pause-run",method:"POST"},effect:"administrative",idempotency:"required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.workflow.pause_run",requestSchema:{schemaId:"schema.workflow.pause_run.request",revision:1},resultSchema:{schemaId:"schema.workflow.pause_run.result",revision:1},cancellation:{mode:"not_cancellable"},deadline:{behavior:"return_effect_receipt",maximum_millis:3e4},reconciliation:"required",receipt:"durable_effect",terminalStates:["completed","timed_out","failed","effect_unknown","partial"],decodeRequest:S2(401),decodeResult:S2(388),decodeSuccess:e=>fu(e,"binding.http.workflow.pause_run","schema.workflow.pause_run.result",1,["completed","timed_out","failed","effect_unknown","partial"],{mode:"not_cancellable"},"durable_effect","required",S2(388))},{operation:"workflow_register_definition",operationId:"operation.workflow.register_definition",transport:{kind:"http",route:"/application/workflow/register-definition",method:"POST"},effect:"administrative",idempotency:"required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.workflow.register_definition",requestSchema:{schemaId:"schema.workflow.register_definition.request",revision:1},resultSchema:{schemaId:"schema.workflow.register_definition.result",revision:1},cancellation:{mode:"not_cancellable"},deadline:{behavior:"return_effect_receipt",maximum_millis:3e4},reconciliation:"required",receipt:"durable_effect",terminalStates:["completed","timed_out","failed","effect_unknown","partial"],decodeRequest:S2(402),decodeResult:S2(394),decodeSuccess:e=>fu(e,"binding.http.workflow.register_definition","schema.workflow.register_definition.result",1,["completed","timed_out","failed","effect_unknown","partial"],{mode:"not_cancellable"},"durable_effect","required",S2(394))},{operation:"workflow_reject_definition",operationId:"operation.workflow.reject_definition",transport:{kind:"http",route:"/application/workflow/reject-definition",method:"POST"},effect:"administrative",idempotency:"required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.workflow.reject_definition",requestSchema:{schemaId:"schema.workflow.reject_definition.request",revision:1},resultSchema:{schemaId:"schema.workflow.reject_definition.result",revision:1},cancellation:{mode:"not_cancellable"},deadline:{behavior:"return_effect_receipt",maximum_millis:3e4},reconciliation:"required",receipt:"durable_effect",terminalStates:["completed","timed_out","failed","effect_unknown","partial"],decodeRequest:S2(403),decodeResult:S2(386),decodeSuccess:e=>fu(e,"binding.http.workflow.reject_definition","schema.workflow.reject_definition.result",1,["completed","timed_out","failed","effect_unknown","partial"],{mode:"not_cancellable"},"durable_effect","required",S2(386))},{operation:"workflow_resume_run",operationId:"operation.workflow.resume_run",transport:{kind:"http",route:"/application/workflow/resume-run",method:"POST"},effect:"administrative",idempotency:"required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.workflow.resume_run",requestSchema:{schemaId:"schema.workflow.resume_run.request",revision:1},resultSchema:{schemaId:"schema.workflow.resume_run.result",revision:1},cancellation:{mode:"not_cancellable"},deadline:{behavior:"return_effect_receipt",maximum_millis:3e4},reconciliation:"required",receipt:"durable_effect",terminalStates:["completed","timed_out","failed","effect_unknown","partial"],decodeRequest:S2(404),decodeResult:S2(388),decodeSuccess:e=>fu(e,"binding.http.workflow.resume_run","schema.workflow.resume_run.result",1,["completed","timed_out","failed","effect_unknown","partial"],{mode:"not_cancellable"},"durable_effect","required",S2(388))},{operation:"workflow_retire_definition",operationId:"operation.workflow.retire_definition",transport:{kind:"http",route:"/application/workflow/retire-definition",method:"POST"},effect:"administrative",idempotency:"required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.workflow.retire_definition",requestSchema:{schemaId:"schema.workflow.retire_definition.request",revision:1},resultSchema:{schemaId:"schema.workflow.retire_definition.result",revision:1},cancellation:{mode:"not_cancellable"},deadline:{behavior:"return_effect_receipt",maximum_millis:3e4},reconciliation:"required",receipt:"durable_effect",terminalStates:["completed","timed_out","failed","effect_unknown","partial"],decodeRequest:S2(405),decodeResult:S2(386),decodeSuccess:e=>fu(e,"binding.http.workflow.retire_definition","schema.workflow.retire_definition.result",1,["completed","timed_out","failed","effect_unknown","partial"],{mode:"not_cancellable"},"durable_effect","required",S2(386))},{operation:"workflow_start_run",operationId:"operation.workflow.start_run",transport:{kind:"http",route:"/application/workflow/start-run",method:"POST"},effect:"administrative",idempotency:"required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.workflow.start_run",requestSchema:{schemaId:"schema.workflow.start_run.request",revision:1},resultSchema:{schemaId:"schema.workflow.start_run.result",revision:1},cancellation:{mode:"not_cancellable"},deadline:{behavior:"return_effect_receipt",maximum_millis:3e4},reconciliation:"required",receipt:"durable_effect",terminalStates:["completed","timed_out","failed","effect_unknown","partial"],decodeRequest:S2(406),decodeResult:S2(388),decodeSuccess:e=>fu(e,"binding.http.workflow.start_run","schema.workflow.start_run.result",1,["completed","timed_out","failed","effect_unknown","partial"],{mode:"not_cancellable"},"durable_effect","required",S2(388))},{operation:"workflow_validate_definition",operationId:"operation.workflow.validate_definition",transport:{kind:"http",route:"/application/workflow/validate-definition",method:"POST"},effect:"read",idempotency:"not_required",requestIdControl:"server_minted",resultSemantics:"schema_only",bindingId:"binding.http.workflow.validate_definition",requestSchema:{schemaId:"schema.workflow.validate_definition.request",revision:1},resultSchema:{schemaId:"schema.workflow.validate_definition.result",revision:1},cancellation:{mode:"cooperative",points:["before_admission","before_read","during_read"]},deadline:{behavior:"return_operation_receipt",maximum_millis:3e4},reconciliation:"not_required",receipt:"operation",terminalStates:["completed","cancelled","timed_out","failed","partial"],decodeRequest:S2(407),decodeResult:S2(408),decodeSuccess:e=>fu(e,"binding.http.workflow.validate_definition","schema.workflow.validate_definition.result",1,["completed","cancelled","timed_out","failed","partial"],{mode:"cooperative",points:["before_admission","before_read","during_read"]},"operation","not_required",S2(408))}],S6=new TextEncoder;class S3 extends Error{cause;constructor(e,t){super(e),this.name=new.target.name,this.cause=t}}class S9 extends S3{constructor(e){super("the caller aborted the request",e)}}class S5 extends S3{}class S8 extends S3{status;constructor(e){super(401===e?"the daemon rejected HTTP authentication":"the daemon rejected the HTTP origin"),this.status=e}}class S7 extends Error{status;payload;constructor(e,t={}){super(e),this.name=new.target.name,this.status=t.status,this.payload=t.payload}}class ke extends S7{}class kt extends Error{status;envelope;problem;constructor(e,t){super(`${t.problem.kind}/${t.problem.code}: ${t.problem.message}`),this.name=new.target.name,this.status=e,this.envelope=t,this.problem=t.problem}}class kr extends kt{}class ki extends kt{}class ko extends kt{}class kn extends kt{}class ka extends kt{}class ks extends kt{}class kd extends kt{}class kc extends kt{}class kl extends kt{}class kp extends kt{}class ku extends kt{}let km=new Set(["completed","cancelled","timed_out","failed","unavailable","effect_unknown","partial"]),kf=new TextEncoder;function kh(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}function ky(e){return"number"==typeof e&&Number.isSafeInteger(e)&&e>=0}function kg(e){return"number"==typeof e&&Number.isSafeInteger(e)}function k_(e,t){return"string"==typeof e&&e.length>0&&e.trim()===e&&kf.encode(e).byteLength<=t&&!/\p{Cc}/u.test(e)}function kv(e,t){let r=e.headers.get("content-type");return null!==r&&r.split(";",1)[0]?.trim().toLowerCase()===t}function kb(e){return!!kh(e)&&!!kg(e.started_at)&&!!kg(e.ended_at)&&!(e.ended_at{let o=setTimeout(()=>{t?.removeEventListener("abort",n),r()},e),n=()=>{clearTimeout(o),i(new S9(t?.reason))};t?.addEventListener("abort",n,{once:!0})})}async function*kk(e,t){let r,i=e.getReader(),o=new TextDecoder("utf-8",{fatal:!0}),n=new Uint8Array(65536),a=0,s=0,d=!1,c="",l=0,p=t??"",u=kf.encode(p).byteLength,m=[],f=0,h=!1,y=()=>new ke("the daemon returned an SSE line or frame exceeding 65536 bytes",{payload:{limitBytes:65536}}),g=(e,t)=>{try{return o.decode(e,{stream:t})}catch(e){throw new ke("the daemon returned malformed UTF-8 event-stream data",{payload:e})}},_=e=>{if(""===e){if(h=!1,l=0,0===m.length)return c="",null;let e={event:""===c?"message":c,id:""===p?null:p,data:m.join("\n"),...void 0===r?{}:{retryDelayMs:r}};return c="",m=[],f=0,e}if(e.startsWith(":"))return null;h=!0;let t=e.indexOf(":"),i=t<0?e:e.slice(0,t),o=t<0?"":e.slice(t+1);o.startsWith(" ")&&(o=o.slice(1));let n=kf.encode(o).byteLength;if(("event"===i||"id"===i||"data"===i)&&l+u+f+n+1>65536)throw y();switch(i){case"event":c=o,l=n;break;case"id":o.includes("\0")||(p=o,u=n);break;case"data":f+=n+ +(0!==m.length),m.push(o);break;case"retry":if(/^[0-9]+$/.test(o)){let e=BigInt(o);r=e>2147483647n?0x7fffffff:Number(e)}}return null};try{for(;;){let e=await i.read();if(e.done){g(n.subarray(0,a),!1);break}for(let t=0;t0||h||m.length>0)throw new S5("operation stream ended with an incomplete SSE event")}catch(e){if(e instanceof S7||e instanceof S3)throw e;throw new S5("operation stream transport was interrupted",e)}finally{i.releaseLock()}}class kw{operations;projectRoot;applicationRoot;token;origin;doFetch;mcp;constructor(e){let t=new URL(e.baseUrl);if("http:"!==t.protocol&&"https:"!==t.protocol||""!==t.username||""!==t.password||""!==t.search||""!==t.hash)throw new S7("baseUrl must be an absolute HTTP URL without credentials, query, or fragment");let r=t.toString().replace(/\/+$/u,"");this.projectRoot=`${r}/projects/${encodeURIComponent(e.projectId)}`,this.applicationRoot=`${this.projectRoot}/application`,this.token=e.token,this.origin=e.origin??t.origin,this.doFetch=e.fetch??globalThis.fetch.bind(globalThis),this.mcp=e.mcp;let i={};for(let e of S4)i[e.operation]=(t,r)=>this.#p(e,t,r);this.operations=Object.freeze(i)}headers(e){return new Headers({accept:e,authorization:`Bearer ${this.token}`,origin:this.origin})}operationUrl(e,t){if(t?.size!==void 0&&(!Number.isSafeInteger(t.size)||t.size<1||t.size>1e3))throw new S7("page size must be an integer between 1 and 1000");if(t?.cursor!==void 0&&!k_(t.cursor,4096))throw new S7("page cursor is not a canonical opaque cursor");let r=new URL(`${this.projectRoot}${e}`);return t?.size!==void 0&&r.searchParams.set("page_size",String(t.size)),t?.cursor!==void 0&&r.searchParams.set("cursor",t.cursor),r}lifecycleUrl(e,t){if(!k_(e,512))throw new S7("operationId is not a canonical request handle");return new URL(`${this.applicationRoot}/operations/${encodeURIComponent(e)}/${t}`)}async fetchResponse(e,t,r){try{return await this.doFetch(e,t)}catch(t){if(r?.aborted)throw new S9(r.reason);throw new S5(`transport failure requesting ${e.pathname}`,t)}}async readJson(e,t,r,i){let o,n,a=!1,s=()=>n??=o?.cancel(i?.reason)??e.body?.cancel(i?.reason)??Promise.resolve(),d=()=>{s().catch(()=>void 0)};try{if(i?.aborted)throw new S9(i.reason);if(401===e.status||403===e.status)throw new S8(e.status);if(!kv(e,"application/json"))throw new ke("the daemon returned JSON with an invalid media type",{status:e.status});let n="";try{if(o=e.body?.getReader(),i?.addEventListener("abort",d,{once:!0}),i?.aborted)throw new S9(i.reason);if(void 0!==o){let e=new TextDecoder;for(;;){let{done:t,value:r}=await o.read();if(i?.aborted)throw new S9(i.reason);if(t)break;n+=e.decode(r,{stream:!0})}n+=e.decode()}a=!0}catch(e){if(i?.aborted)throw new S9(i.reason);throw new S5("transport failure reading the daemon response body",e)}let s=k$(n,e.status);if(kh(s)&&"problem"===s.kind){var c;let i=s.value;if(!function(e){var t,r,i;if(!fm(e)||void 0!==e.binding_id&&"string"!=typeof e.binding_id||!(fm(t=e.contract)&&fy(t.schema_id,512)&&ff(t.schema_revision)&&t.schema_revision>0)||!fy(e.request_id,512)||!fm(e.problem))return!1;let o=e.problem,n=Array.isArray(o.legal_actions)?o.legal_actions:null,a="never"===o.retry?null:"same_request"===o.retry||"after_delay"===o.retry?"same_request":"after_revalidate"===o.retry?"fresh_request":"after_reconcile"===o.retry?"same_operation":void 0;if(!(1===o.revision&&"string"==typeof o.kind&&["invalid_request","not_found_or_not_authorized","conflict","partial_effect","stale","unsupported","unavailable","execution_failed","reset_required","saturated","cancelled","timed_out"].includes(o.kind)&&"string"==typeof o.code&&"string"==typeof o.message&&(null===o.diagnostic||f_(o.diagnostic))&&"detail"in o&&(null===o.detail||function(e){if(!fm(e))return!1;switch(e.kind){case"parked":return"string"==typeof e.cause&&"string"==typeof e.remedy&&"boolean"==typeof e.retries_on_wake;case"stale_refresh_frontier":return ff(e.requested)&&ff(e.committed)&&ff(e.active);case"stale_precondition":return"string"==typeof e.field&&ff(e.requested)&&ff(e.current);case"lock_deadline":return"string"==typeof e.resource&&ff(e.deadline_ms);case"diagnostics_unsupported":return(null===e.file||"string"==typeof e.file)&&Array.isArray(e.searched)&&e.searched.every(e=>fm(e)&&"string"==typeof e.path&&"boolean"==typeof e.present);case"diagnostics_pending":return"string"==typeof e.producer&&(null===e.generation||"string"==typeof e.generation);case"code_graph_rewarming":return ff(e.retry_after_millis);case"reset_required":return"string"==typeof e.authority&&(null===e.found_version||fh(e.found_version))&&(null===e.required_version||fh(e.required_version))&&"string"==typeof e.reason&&"string"==typeof e.remedy;default:return!1}}(o.detail))&&"committed_receipt"in o&&"string"==typeof o.owning_layer&&"string"==typeof o.terminality&&"boolean"==typeof o.retryable&&"string"==typeof o.retry&&(null===o.retry_scope||"string"==typeof o.retry_scope)&&(null===o.retry_after_millis||ff(o.retry_after_millis))&&"cancellation_stage"in o&&(null===o.cancellation_stage||"string"==typeof o.cancellation_stage&&["before_admission","before_read","during_read","before_effect","effect_in_flight"].includes(o.cancellation_stage))&&"unavailable_classification"in o&&(null===o.unavailable_classification||"string"==typeof o.unavailable_classification&&["authority","backend_unavailable","backend_disconnected","backend_retryable"].includes(o.unavailable_classification))&&"execution_failure_classification"in o&&(null===o.execution_failure_classification||"string"==typeof o.execution_failure_classification&&["denied","malformed_output","permanent"].includes(o.execution_failure_classification))&&o.request_id===e.request_id&&fy(o.trace_id,512)&&Array.isArray(o.details)&&o.details.every(f_)&&null!==n&&n.every(e=>"string"==typeof e)&&"coverage"in o)||null===n)return!1;let s=null!==o.cancellation_stage&&"before_admission"!==o.cancellation_stage,d=null!==o.unavailable_classification&&"authority"!==o.unavailable_classification,c="partial_effect"===o.kind||"reset_required"===o.kind||"execution_failed"===o.kind||s||d;return o.terminality===(c?"admitted_terminal":"pre_admission")&&"unavailable"===o.kind==(null!==o.unavailable_classification)&&"execution_failed"===o.kind==(null!==o.execution_failure_classification)&&("cancelled"===o.kind||"timed_out"===o.kind)==(null!==o.cancellation_stage)&&null!==o.diagnostic===("string"==typeof o.kind&&["invalid_request","conflict","partial_effect","stale","unsupported","unavailable","execution_failed","reset_required","saturated"].includes(o.kind))&&(null===o.detail||!!("string"==typeof o.kind&&["stale","unsupported","unavailable","reset_required","saturated"].includes(o.kind)))&&o.retryable===("never"!==o.retry)&&void 0!==a&&o.retry_scope===a&&"after_delay"===o.retry==(null!==o.retry_after_millis)&&("partial_effect"===o.kind?"admitted_terminal"===o.terminality&&!1===o.retryable&&"never"===o.retry&&(r=o.committed_receipt,i=e.request_id,fm(r)&&r.request_id===i&&"partial"===r.outcome&&"string"==typeof r.operation&&"string"==typeof r.effect_class&&"string"==typeof r.idempotency_key&&"string"==typeof r.input_digest&&("string"==typeof r.committed_state||"string"==typeof r.external_proof))&&1===n.length&&"reconcile"===n[0]:"reset_required"===o.kind?"admitted_terminal"===o.terminality&&!1===o.retryable&&"never"===o.retry&&null===o.committed_receipt&&1===n.length&&"reset"===n[0]:"unavailable"===o.kind&&"authority"!==o.unavailable_classification?"admitted_terminal"===o.terminality&&!0===o.retryable&&"after_revalidate"===o.retry&&null===o.committed_receipt&&1===n.length&&"retry"===n[0]:"execution_failed"===o.kind?"admitted_terminal"===o.terminality&&!1===o.retryable&&"never"===o.retry&&null===o.committed_receipt&&1===n.length&&"contact_administrator"===n[0]:null===o.committed_receipt)}(i))throw new ke("the daemon returned a malformed problem envelope",{status:e.status,payload:i});let o=void 0===t||(c=[t],"not_found_or_not_authorized"===i.problem.kind?void 0===i.binding_id:c.some(e=>e===i.binding_id));if(e.ok||!o||void 0!==r&&i.request_id!==r||!function(e,t){switch(t){case"invalid_request":return 400===e;case"not_found_or_not_authorized":return 404===e;case"conflict":case"partial_effect":case"stale":return 409===e;case"unsupported":return 422===e;case"unavailable":case"reset_required":return 503===e;case"execution_failed":return 500===e;case"saturated":return 429===e;case"cancelled":return 408===e;case"timed_out":return 504===e;default:return!1}}(e.status,i.problem.kind))throw new ke("the daemon returned a malformed problem envelope",{status:e.status,payload:i});throw function(e,t){switch(t.problem.kind){case"not_found_or_not_authorized":return new kr(e,t);case"unavailable":return new ki(e,t);case"unsupported":return new ko(e,t);case"stale":return new kn(e,t);case"conflict":return new ka(e,t);case"partial_effect":return new ks(e,t);case"reset_required":return new kd(e,t);case"saturated":return new kc(e,t);case"cancelled":return new kl(e,t);case"timed_out":return new kp(e,t);case"invalid_request":return new ku(e,t);default:return new kt(e,t)}}(e.status,i)}return s}finally{i?.removeEventListener("abort",d);try{a||await s()}catch{}finally{o?.releaseLock()}}}async #p(e,t,r={}){var i,o,n,a;let s=e.decodeRequest(t);if("http"!==e.transport.kind){let t;if(void 0!==r.page||void 0!==r.deadlineMicros||void 0!==r.requestId)throw new S7(`${e.operation} does not accept HTTP transport options`);if(void 0===this.mcp)throw new S3(`${e.operation} requires an MCP tool adapter`);try{t=await this.mcp.callTool(e.transport.toolName,s,{signal:r.signal})}catch(t){if(r.signal?.aborted)throw new S9(r.signal.reason??t);throw new S3(`MCP tool ${e.transport.toolName} failed`,t)}try{return e.decodeResult(t)}catch(r){throw new ke(`MCP tool ${e.transport.toolName} returned an invalid ${e.operation} result`,{payload:{response:t,cause:r}})}}let d=this.operationUrl(e.transport.route,r.page),c=JSON.stringify(s);if(void 0===c)throw new S7(`${e.operation} request decoder returned a non-JSON value`);let l=this.headers("application/json");l.set("content-type","application/json");let p=(i=l,o=e,void 0!==(n=r).deadlineMicros&&(!Number.isSafeInteger(n.deadlineMicros)||n.deadlineMicros<=0)?"deadlineMicros must be a positive safe integer":"required"===o.requestIdControl&&void 0===n.requestId?`${o.operation} requires a stable requestId replay handle`:"server_minted"===o.requestIdControl&&void 0!==n.requestId?`${o.operation} uses a server-minted request ID`:void 0===n.requestId||(a=n.requestId).length>0&&a.trim()===a&&S6.encode(a).byteLength<=512&&!/\p{Cc}/u.test(a)?void(void 0!==n.deadlineMicros&&i.set("x-tracedecay-deadline-micros",String(n.deadlineMicros)),void 0!==n.requestId&&i.set("x-tracedecay-request-id",n.requestId)):"requestId is not a canonical request identity");if(void 0!==p)throw new S7(p);let u=await this.fetchResponse(d,{method:e.transport.method,headers:l,body:c,signal:r.signal},r.signal),m=await this.readJson(u,e.bindingId,r.requestId,r.signal);if(!kh(m)||"success"!==m.kind)throw new ke("the daemon returned an unknown HTTP envelope",{status:u.status,payload:m});if(!u.ok)throw new ke("the daemon returned success with a failing HTTP status",{status:u.status,payload:m});try{let t=e.decodeSuccess(m.value);if(!(kh(t)&&kh(t.outcome)&&kh(t.outcome.value)&&"payload"in t.outcome.value&&kb(t.outcome.value.execution))||("evidence"===t.outcome.outcome?"completed"===t.outcome.value.execution.termination&&null===t.outcome.value.payload:"preview"!==t.outcome.outcome&&"effect"!==t.outcome.outcome))throw TypeError("decoded application success invariants are invalid");if(void 0!==r.requestId&&t.request_id!==r.requestId)throw TypeError("daemon returned a different application request ID");if("fact_store_curate_receipt"===e.resultSemantics&&!await async function(e,t){if(!fm(e)||!fm(t)||!fm(t.outcome))return!1;let r=t.outcome,i=fm(r.value)?r.value.payload:void 0;if("effect"!==r.outcome||!fm(i)||!fy(t.request_id,512)||"request_digest,run_id,state,task"!==Object.keys(i).sort().join(",")||i.run_id!==t.request_id||"memory_curator"!==i.task||"started"!==i.state)return!1;let o=e.fact_review_limit??24,n=e.min_confidence_millionths??72e4;return!!ff(o)&&!(o<1)&&!(o>1e3)&&!!ff(n)&&!(n>1e6)&&!!await async function(e){return!!fm(e)&&"project_id,reference,repository_id,scope_digest,worktree_id"===Object.keys(e).sort().join(",")&&!!fy(e.project_id,512)&&!!fy(e.repository_id,512)&&!!fy(e.worktree_id,512)&&(null===e.reference||!!fy(e.reference,512))&&e.scope_digest===await fg(["tracedecay.application.scope.v1",e.project_id,e.repository_id,e.worktree_id,e.reference])}(t.scope)&&i.request_digest===await fg(["tracedecay.automation-run.request-identity.v1",{kind:"memory_curator",options:{fact_review_limit:o,min_confidence_millionths:n}}])}(s,t))throw TypeError("automatic curation receipt invariants are invalid");return t}catch(t){throw new ke(`the daemon returned an invalid ${e.operation} success envelope`,{status:u.status,payload:{envelope:m.value,cause:t}})}}async *streamOperation(e,t={}){let r=t.resume?.resumeToken,i=t.resume?.nextSequence===void 0?void 0:function(e,t){let r;if("number"==typeof e){if(!ky(e))throw new S7(`${t} must be an unsigned safe integer`);r=BigInt(e)}else if("bigint"==typeof e)r=e;else if(/^[0-9]+$/.test(e))r=BigInt(e);else throw new S7(`${t} must be unsigned decimal`);if(r<0n||r>0xffffffffffffffffn)throw new S7(`${t} exceeds the canonical u64 range`);return r.toString()}(t.resume.nextSequence,"resume nextSequence");if(void 0!==r&&!k_(r,4096))throw new S7("resumeToken is not a canonical stream resume token");let o=t.maxReconnects??0;if(!Number.isSafeInteger(o)||o<0)throw new S7("maxReconnects must be a non-negative integer");let n=0,a=0;for(;;){let d;if(t.signal?.aborted)throw new S9(t.signal.reason);let c=this.lifecycleUrl(e,"events");void 0!==i&&c.searchParams.set("next_sequence",i),void 0!==r&&c.searchParams.set("resume_token",r);try{d=await this.fetchResponse(c,{method:"GET",headers:this.headers("text/event-stream"),signal:t.signal},t.signal)}catch(e){if(0===n||n>=o||!(e instanceof S5))throw e;n+=1,await kS(a,t.signal);continue}let l=!1;try{if(!d.ok||null===d.body)throw await this.readJson(d,void 0,void 0,t.signal),new ke("the daemon did not open an SSE stream",{status:d.status});if(!kv(d,"text/event-stream"))throw new ke("the daemon opened an operation stream with an invalid media type",{status:d.status});try{for await(let t of kk(d.body)){void 0!==t.retryDelayMs&&(a=t.retryDelayMs);let o=function(e,t,r){let i=k$(e.data,t);if(!kh(i)||"string"!=typeof i.event||i.event!==e.event||!kh(i.data))throw new ke("the daemon returned a malformed SSE event",{status:t,payload:i});let o=i.event,n=i.data;if("open"===o){let e=n.frontier;if(n.correlation_id!==r||!kh(e)||!ky(e.next_sequence)||!ky(e.retained_from_sequence)||e.retained_from_sequence>e.next_sequence||null!==e.resume_token&&"string"!=typeof e.resume_token)throw new ke("the daemon returned a malformed SSE open frontier",{status:t,payload:i});return{event:{...i,event:o,data:n},frontier:{..."string"==typeof e.resume_token?{resumeToken:e.resume_token}:{}}}}if(!ky(n.sequence)||null===e.id)throw new ke("the daemon returned an SSE event without a valid sequence",{status:t,payload:i});let a=String(n.sequence);if(e.id!==a)throw new ke("the SSE event ID does not match its canonical sequence",{status:t,payload:i});if("item"===o&&!("item"in n))throw new ke("the SSE item payload is missing",{status:t,payload:i});if("progress"===o&&(!ky(n.completed)||null!==n.total&&!ky(n.total)))throw new ke("the SSE progress payload is malformed",{status:t,payload:i});if("resume_gap"===o){let e=n.gap;if(!kh(e)||!ky(e.first_missing_sequence)||!ky(e.last_missing_sequence)||e.first_missing_sequence!==n.sequence||e.first_missing_sequence>e.last_missing_sequence||!kh(e.frontier)||!ky(e.frontier.next_sequence)||!ky(e.frontier.retained_from_sequence)||e.frontier.retained_from_sequence>e.frontier.next_sequence||e.last_missing_sequence>=e.frontier.next_sequence||null!==e.frontier.resume_token&&"string"!=typeof e.frontier.resume_token)throw new ke("the SSE resume gap is malformed",{status:t,payload:i})}if(km.has(o)){let e=n.terminal;if(!kh(e)||!kb(e.receipt))throw new ke("the SSE terminal event is malformed",{status:t,payload:i});if(e.termination!==o||e.receipt.termination!==o)throw new ke("the SSE terminal event is inconsistent",{status:t,payload:i})}let s={...i,event:o,data:n};if("resume_gap"===o){let e=n.gap,t=e.frontier;return{event:s,sequence:a,lastSequence:String(e.last_missing_sequence),frontier:{..."string"==typeof t.resume_token?{resumeToken:t.resume_token}:{}}}}return{event:s,sequence:a}}(t,d.status,e);if(void 0!==o.sequence){var s;let e=i??"0",r=(s=o.lastSequence??o.sequence,(BigInt(s)+1n).toString()),n=km.has(t.event);if(!n&&BigInt(o.sequence)=o){if(e instanceof S5)throw e;throw new S5(`operation stream disconnected after ${n} reconnects`,e)}}}catch(e){throw l=!0,e}finally{try{await d.body?.cancel()}catch(e){if(!l)throw new S5("failed to close operation stream transport",e)}}if(n>=o)throw new S5(`operation stream ended before a terminal event after ${n} reconnects`);if(void 0===i||void 0===r)throw new S5("operation stream ended before exposing a resumable frontier");n+=1,await kS(a,t.signal)}}async cancelOperation(e,t={}){let r=await this.fetchResponse(this.lifecycleUrl(e,"cancel"),{method:"POST",headers:this.headers("application/json"),signal:t.signal},t.signal),i=await this.readJson(r,void 0,void 0,t.signal);if(!kh(i))throw new ke("the daemon returned a malformed cancellation response",{status:r.status,payload:i});let o=i.status,n="requested"===o&&202===r.status||("already_requested"===o||"already_terminal"===o)&&200===r.status;if(!r.ok||"requested"!==o&&"already_requested"!==o&&"already_terminal"!==o||!n)throw new ke("the daemon returned a malformed cancellation response",{status:r.status,payload:i});return{...i,status:o}}}function kP(e){let t=S4.find(t=>t.operation===e);if(void 0===t||"mcp_tool"!==t.transport.kind)throw TypeError(`${e} is not an MCP-backed operation in the canonical catalog`);return t}let kV=kP("project_list"),kR=kP("project_search"),kq=kP("project_context");class kI{#u;constructor(e){this.#u=e}projectList(e,t){return this.#m(kV,e,t)}projectContext(e,t){return this.#m(kq,e,t)}projectSearch(e,t){return this.#m(kR,e,t)}async #m(e,t,r){let i,o=e.transport.toolName,n=e.decodeRequest(t);try{if(r?.aborted||(i=await this.#u(o,n,r),r?.aborted))throw new S9(r.reason)}catch(e){if(r?.aborted)throw new S9(r.reason);throw new S3(`MCP tool ${o} failed`,e)}try{return e.decodeResult(i)}catch(t){throw new ke(`MCP tool ${o} returned an invalid ${e.operation} result`,{payload:{response:i,cause:t}})}}}var kx=Object.create,kj=Object.defineProperty,kC=Object.getOwnPropertyDescriptor,kT=Object.getOwnPropertyNames,kO=Object.getPrototypeOf,kE=Object.prototype.hasOwnProperty,kA=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);let kW=new Set(["https://json-schema.org/draft/2020-12/schema","http://json-schema.org/draft/2020-12/schema"]),kM=new Set(["https://json-schema.org/draft/2019-09/schema","http://json-schema.org/draft/2019-09/schema"]),kN=new Set(["https://json-schema.org/draft-07/schema","http://json-schema.org/draft-07/schema"]),kz=new Set(["https://json-schema.org/draft-06/schema","http://json-schema.org/draft-06/schema"]),kD=Symbol.for("mcp.sdk.errorBrands");function kF(e,t){let r=new Set,i=t;for(;"function"==typeof i;){let e=i.mcpBrand;Object.prototype.hasOwnProperty.call(i,"mcpBrand")&&"string"==typeof e&&r.add(e),i=Object.getPrototypeOf(i)}0!==r.size&&Object.defineProperty(e,kD,{value:r,enumerable:!1,configurable:!0})}function kL(e,t){try{if("object"==typeof t&&null!==t&&Object.prototype.hasOwnProperty.call(e,"mcpBrand")&&"string"==typeof e.mcpBrand&&Object.prototype.hasOwnProperty.call(t,kD)){let r=t[kD];if(r&&"function"==typeof r.has&&r.has(e.mcpBrand))return!0}}catch{}return Function.prototype[Symbol.hasInstance].call(e,t)}(class e extends Error{static{Object.defineProperty(this,"mcpBrand",{value:"mcp.OAuthError"})}static[Symbol.hasInstance](e){return kL(this,e)}static isInstance(e){if("function"!=typeof this)throw TypeError("isInstance must be called on the class (e.g. `SdkError.isInstance(value)`); for callbacks use `v => SdkError.isInstance(v)`");return kL(this,e)}constructor(e,t,r){super(t),this.code=e,this.errorUri=r,this.name="OAuthError",kF(this,new.target)}toResponseObject(){let e={error:this.code,error_description:this.message};return this.errorUri&&(e.error_uri=this.errorUri),e}static fromResponse(t){return new e(t.error,t.error_description??t.error,t.error_uri)}});let kU=((X={}).NotConnected="NOT_CONNECTED",X.AlreadyConnected="ALREADY_CONNECTED",X.NotInitialized="NOT_INITIALIZED",X.CapabilityNotSupported="CAPABILITY_NOT_SUPPORTED",X.RequestTimeout="REQUEST_TIMEOUT",X.ConnectionClosed="CONNECTION_CLOSED",X.SendFailed="SEND_FAILED",X.InvalidResult="INVALID_RESULT",X.UnsupportedResultType="UNSUPPORTED_RESULT_TYPE",X.InputRequiredRoundsExceeded="INPUT_REQUIRED_ROUNDS_EXCEEDED",X.ListPaginationExceeded="LIST_PAGINATION_EXCEEDED",X.MethodNotSupportedByProtocolVersion="METHOD_NOT_SUPPORTED_BY_PROTOCOL_VERSION",X.EraNegotiationFailed="ERA_NEGOTIATION_FAILED",X.ClientHttpNotImplemented="CLIENT_HTTP_NOT_IMPLEMENTED",X.ClientHttpAuthentication="CLIENT_HTTP_AUTHENTICATION",X.ClientHttpForbidden="CLIENT_HTTP_FORBIDDEN",X.ClientHttpUnexpectedContent="CLIENT_HTTP_UNEXPECTED_CONTENT",X.ClientHttpFailedToOpenStream="CLIENT_HTTP_FAILED_TO_OPEN_STREAM",X.ClientHttpFailedToTerminateSession="CLIENT_HTTP_FAILED_TO_TERMINATE_SESSION",X);var kH=class extends Error{static{Object.defineProperty(this,"mcpBrand",{value:"mcp.SdkError"})}static[Symbol.hasInstance](e){return kL(this,e)}static isInstance(e){if("function"!=typeof this)throw TypeError("isInstance must be called on the class (e.g. `SdkError.isInstance(value)`); for callbacks use `v => SdkError.isInstance(v)`");return kL(this,e)}constructor(e,t,r,i){super(t,i),this.code=e,this.data=r,this.name="SdkError",kF(this,new.target)}},kG=class extends kH{static{Object.defineProperty(this,"mcpBrand",{value:"mcp.SdkHttpError"})}constructor(e,t,r,i){super(e,t,r,i),this.name="SdkHttpError"}get status(){return this.data.status}get statusText(){return this.data.statusText}};let kB="2026-07-28",kK=[kB];function kJ(e){return e.filter(e=>!(e>=kB))}function kZ(e){return e.filter(e=>e>=kB)}function kQ(e){let t=e.structuredContent;return void 0===t||!("object"!=typeof t||null===t||Array.isArray(t))||e.content?.some(e=>"text"===e.type)?e:{...e,content:[...e.content??[],{type:"text",text:JSON.stringify(t)}]}}let kX=["task","inputRequests","requestState"];function kY(e){return null===e||"object"!=typeof e||Array.isArray(e)||void 0!==e.content||kX.some(t=>t in e)?e:{...e,content:[]}}function k1(){let e,t,r,i,o,n,a,s,c,l,p,u,m,f,h,y,g,_,v,b,$,S,k,w,P,V,R,q,I,x,j,C,T,O,E,A,W,M,N,z,D,F,L,U,H,G,B,K,J,Z,Q,X,Y,ee,et,er,ei,eo,en,ea,es,ed,ec,el,ep,eu,em,ef,eh,ey,eg,e_,ev,eb,e$,eS,ek,ew,eP,eV,eR,eq,eI,ex,ej,eC,eT,eO,eE,eA,eW,eM,eN,ez,eD,eF,eL,eU,eH,eG,eB,eK,eJ,eZ,eQ,eX,eY,e1,e0,e2,e4,e6,e3,e9,e5,e8,e7,te,tt,tr,ti,to,tn,ta,ts,td,tc,tl,tp,tu,tm,tf,th,ty,tg,t_,tv,tb,t$,tS;return d??=(e=aa(()=>nL([o7(),nP(),nI(),nj(),nJ(o7(),e),nM(e)])),t=nJ(o7(),e),r=nL([o7(),nP().int()]),i=o7(),o=nz({ttl:nP().optional()}),n=nz({taskId:o7()}),c=(s=nz({_meta:(a=nD({progressToken:r.optional(),"io.modelcontextprotocol/related-task":n.optional()})).optional()})).extend({task:o.optional()}),l=nz({method:o7(),params:s.loose().optional()}),p=nz({_meta:a.optional()}),u=nz({method:o7(),params:p.loose().optional()}),m=nD({_meta:a.optional()}),f=nL([o7(),nP().int()]),h=m.strict(),y=p.extend({requestId:f.optional(),reason:o7().optional()}),g=u.extend({method:nY("notifications/cancelled"),params:y}),_=nz({src:o7(),mimeType:o7().optional(),sizes:nM(o7()).optional(),theme:nQ(["light","dark"]).optional()}),v=nz({icons:nM(_).optional()}),$=(b=nz({name:o7(),title:o7().optional()})).extend({...b.shape,...v.shape,version:o7(),websiteUrl:o7().optional(),description:o7().optional()}),S=nB(nz({applyDefaults:nI().optional()}),t),k=ad(e=>e&&"object"==typeof e&&!Array.isArray(e)&&0===Object.keys(e).length?{form:{}}:e,nB(nz({form:S.optional(),url:t.optional()}),t.optional())),w=nD({list:t.optional(),cancel:t.optional(),requests:nD({sampling:nD({createMessage:t.optional()}).optional(),elicitation:nD({create:t.optional()}).optional()}).optional()}),P=nD({list:t.optional(),cancel:t.optional(),requests:nD({tools:nD({call:t.optional()}).optional()}).optional()}),V=nz({experimental:nJ(o7(),t).optional(),sampling:nz({context:t.optional(),tools:t.optional()}).optional(),elicitation:k.optional(),roots:nz({listChanged:nI().optional()}).optional(),tasks:w.optional(),extensions:nJ(o7(),t).optional()}),R=s.extend({protocolVersion:o7(),capabilities:V,clientInfo:$}),q=l.extend({method:nY("initialize"),params:R}),I=nz({experimental:nJ(o7(),t).optional(),logging:t.optional(),completions:t.optional(),prompts:nz({listChanged:nI().optional()}).optional(),resources:nz({subscribe:nI().optional(),listChanged:nI().optional()}).optional(),tools:nz({listChanged:nI().optional()}).optional(),tasks:P.optional(),extensions:nJ(o7(),t).optional()}),x=m.extend({protocolVersion:o7(),capabilities:I,serverInfo:$,instructions:o7().optional()}),j=u.extend({method:nY("notifications/initialized"),params:p.optional()}),C=l.extend({method:nY("ping"),params:s.optional()}),T=nz({progress:nP(),total:n4(nP()),message:n4(o7())}),O=nz({...p.shape,...T.shape,progressToken:r}),E=u.extend({method:nY("notifications/progress"),params:O}),A=s.extend({cursor:i.optional()}),W=l.extend({params:A.optional()}),M=m.extend({nextCursor:i.optional()}),z=(N=nz({uri:o7(),mimeType:n4(o7()),_meta:nJ(o7(),nE()).optional()})).extend({text:o7()}),D=o7().refine(e=>{try{return atob(e),!0}catch{return!1}},{message:"Invalid Base64 string"}),F=N.extend({blob:D}),U=nz({audience:nM(L=nQ(["user","assistant"])).optional(),priority:nP().min(0).max(1).optional(),lastModified:ac({offset:!0}).optional()}),H=nz({...b.shape,...v.shape,uri:o7(),description:n4(o7()),mimeType:n4(o7()),size:n4(nP()),annotations:U.optional(),_meta:n4(nD({}))}),G=nz({...b.shape,...v.shape,uriTemplate:o7(),description:n4(o7()),mimeType:n4(o7()),annotations:U.optional(),_meta:n4(nD({}))}),B=W.extend({method:nY("resources/list")}),K=M.extend({resources:nM(H)}),J=W.extend({method:nY("resources/templates/list")}),Z=M.extend({resourceTemplates:nM(G)}),Q=s.extend({uri:o7()}),X=l.extend({method:nY("resources/read"),params:Q}),Y=m.extend({contents:nM(nL([z,F]))}),ee=u.extend({method:nY("notifications/resources/list_changed"),params:p.optional()}),et=l.extend({method:nY("resources/subscribe"),params:Q}),er=l.extend({method:nY("resources/unsubscribe"),params:Q}),ei=p.extend({uri:o7()}),eo=u.extend({method:nY("notifications/resources/updated"),params:ei}),en=nz({name:o7(),description:n4(o7()),required:n4(nI())}),ea=nz({...b.shape,...v.shape,description:n4(o7()),arguments:n4(nM(en)),_meta:n4(nD({}))}),es=W.extend({method:nY("prompts/list")}),ed=M.extend({prompts:nM(ea)}),ec=s.extend({name:o7(),arguments:nJ(o7(),o7()).optional()}),el=l.extend({method:nY("prompts/get"),params:ec}),ep=nz({type:nY("text"),text:o7(),annotations:U.optional(),_meta:nJ(o7(),nE()).optional()}),eu=nz({type:nY("image"),data:D,mimeType:o7(),annotations:U.optional(),_meta:nJ(o7(),nE()).optional()}),em=nz({type:nY("audio"),data:D,mimeType:o7(),annotations:U.optional(),_meta:nJ(o7(),nE()).optional()}),ef=nz({type:nY("tool_use"),name:o7(),id:o7(),input:nJ(o7(),nE()),_meta:nJ(o7(),nE()).optional()}),eh=nz({type:nY("resource"),resource:nL([z,F]),annotations:U.optional(),_meta:nJ(o7(),nE()).optional()}),e_=nz({role:L,content:eg=nL([ep,eu,em,ey=H.extend({type:nY("resource_link")}),eh])}),ev=m.extend({description:o7().optional(),messages:nM(e_)}),eb=u.extend({method:nY("notifications/prompts/list_changed"),params:p.optional()}),e$=nz({title:o7().optional(),readOnlyHint:nI().optional(),destructiveHint:nI().optional(),idempotentHint:nI().optional(),openWorldHint:nI().optional()}),eS=nz({taskSupport:nQ(["required","optional","forbidden"]).optional()}),ek=nz({...b.shape,...v.shape,description:o7().optional(),inputSchema:nz({type:nY("object"),properties:nJ(o7(),e).optional(),required:nM(o7()).optional()}).catchall(nE()),outputSchema:nz({type:nY("object"),properties:nJ(o7(),e).optional(),required:nM(o7()).optional()}).catchall(nE()).optional(),annotations:e$.optional(),execution:eS.optional(),_meta:nJ(o7(),nE()).optional()}),ew=W.extend({method:nY("tools/list")}),eP=M.extend({tools:nM(ek)}),eV=m.extend({content:nM(eg),structuredContent:nJ(o7(),nE()).optional(),isError:nI().optional()}),eR=c.extend({name:o7(),arguments:nJ(o7(),nE()).optional()}),eq=l.extend({method:nY("tools/call"),params:eR}),eI=u.extend({method:nY("notifications/tools/list_changed"),params:p.optional()}),ex=nQ(["debug","info","notice","warning","error","critical","alert","emergency"]),ej=s.extend({level:ex}),eC=l.extend({method:nY("logging/setLevel"),params:ej}),eT=p.extend({level:ex,logger:o7().optional(),data:nE()}),eO=u.extend({method:nY("notifications/message"),params:eT}),eE=nz({name:o7().optional()}),eA=nz({hints:nM(eE).optional(),costPriority:nP().min(0).max(1).optional(),speedPriority:nP().min(0).max(1).optional(),intelligencePriority:nP().min(0).max(1).optional()}),eW=nz({mode:nQ(["auto","required","none"]).optional()}),eM=nz({type:nY("tool_result"),toolUseId:o7().describe("The unique identifier for the corresponding tool call."),content:nM(eg),structuredContent:nz({}).loose().optional(),isError:nI().optional(),_meta:nJ(o7(),nE()).optional()}),eN=nH("type",[ep,eu,em]),eD=nz({role:L,content:nL([ez=nH("type",[ep,eu,em,ef,eM]),nM(ez)]),_meta:nJ(o7(),nE()).optional()}),eF=c.extend({messages:nM(eD),modelPreferences:eA.optional(),systemPrompt:o7().optional(),includeContext:nQ(["none","thisServer","allServers"]).optional(),temperature:nP().optional(),maxTokens:nP().int(),stopSequences:nM(o7()).optional(),metadata:t.optional(),tools:nM(ek).optional(),toolChoice:eW.optional()}),eL=l.extend({method:nY("sampling/createMessage"),params:eF}),eU=m.extend({model:o7(),stopReason:n4(nQ(["endTurn","stopSequence","maxTokens"]).or(o7())),role:L,content:eN}),eH=m.extend({model:o7(),stopReason:n4(nQ(["endTurn","stopSequence","maxTokens","toolUse"]).or(o7())),role:L,content:nL([ez,nM(ez)])}),eG=nz({type:nY("boolean"),title:o7().optional(),description:o7().optional(),default:nI().optional()}),eB=nz({type:nY("string"),title:o7().optional(),description:o7().optional(),minLength:nP().optional(),maxLength:nP().optional(),format:nQ(["email","uri","date","date-time"]).optional(),default:o7().optional()}),eK=nz({type:nQ(["number","integer"]),title:o7().optional(),description:o7().optional(),minimum:nP().optional(),maximum:nP().optional(),default:nP().optional()}),eJ=nz({type:nY("string"),title:o7().optional(),description:o7().optional(),enum:nM(o7()),default:o7().optional()}),eZ=nz({type:nY("string"),title:o7().optional(),description:o7().optional(),oneOf:nM(nz({const:o7(),title:o7()})),default:o7().optional()}),eQ=nz({type:nY("string"),title:o7().optional(),description:o7().optional(),enum:nM(o7()),enumNames:nM(o7()).optional(),default:o7().optional()}),eX=nL([eJ,eZ]),eY=nz({type:nY("array"),title:o7().optional(),description:o7().optional(),minItems:nP().optional(),maxItems:nP().optional(),items:nz({type:nY("string"),enum:nM(o7())}),default:nM(o7()).optional()}),e0=nL([eY,e1=nz({type:nY("array"),title:o7().optional(),description:o7().optional(),minItems:nP().optional(),maxItems:nP().optional(),items:nz({anyOf:nM(nz({const:o7(),title:o7()}))}),default:nM(o7()).optional()})]),e2=nL([eQ,eX,e0]),e4=nL([e2,eG,eB,eK]),e6=c.extend({mode:nY("form").optional(),message:o7(),requestedSchema:nz({type:nY("object"),properties:nJ(o7(),e4),required:nM(o7()).optional()}).catchall(nE())}),e9=nL([e6,e3=c.extend({mode:nY("url"),message:o7(),elicitationId:o7(),url:o7().url()})]),e5=l.extend({method:nY("elicitation/create"),params:e9}),e8=p.extend({elicitationId:o7()}),e7=u.extend({method:nY("notifications/elicitation/complete"),params:e8}),te=m.extend({action:nQ(["accept","decline","cancel"]),content:ad(e=>null===e?void 0:e,nJ(o7(),nL([o7(),nP(),nI(),nM(o7())])).optional())}),tt=nz({type:nY("ref/resource"),uri:o7()}),tr=nz({type:nY("ref/prompt"),name:o7()}),ti=s.extend({ref:nL([tr,tt]),argument:nz({name:o7(),value:o7()}),context:nz({arguments:nJ(o7(),o7()).optional()}).optional()}),to=l.extend({method:nY("completion/complete"),params:ti}),tn=m.extend({completion:nD({values:nM(o7()).max(100),total:n4(nP().int()),hasMore:n4(nI())})}),ta=nz({uri:o7().startsWith("file://"),name:o7().optional(),_meta:nJ(o7(),nE()).optional()}),ts=l.extend({method:nY("roots/list"),params:s.optional()}),td=m.extend({roots:nM(ta)}),tc=u.extend({method:nY("notifications/roots/list_changed"),params:p.optional()}),tl=nD({ttl:nP().optional(),pollInterval:nP().optional()}),tp=nQ(["working","input_required","completed","failed","cancelled"]),tu=nz({taskId:o7(),status:tp,ttl:nL([nP(),nj()]),createdAt:o7(),lastUpdatedAt:o7(),pollInterval:n4(nP()),statusMessage:n4(o7())}),tm=m.extend({task:tu}),tf=p.merge(tu),th=u.extend({method:nY("notifications/tasks/status"),params:tf}),ty=l.extend({method:nY("tasks/get"),params:s.extend({taskId:o7()})}),tg=m.merge(tu),t_=l.extend({method:nY("tasks/result"),params:s.extend({taskId:o7()})}),tv=m.loose(),tb=W.extend({method:nY("tasks/list")}),t$=M.extend({tasks:nM(tu)}),tS=l.extend({method:nY("tasks/cancel"),params:s.extend({taskId:o7()})}),{JSONValueSchema:e,JSONObjectSchema:t,ProgressTokenSchema:r,CursorSchema:i,TaskMetadataSchema:o,RelatedTaskMetadataSchema:n,RequestMetaSchema:a,BaseRequestParamsSchema:s,TaskAugmentedRequestParamsSchema:c,RequestSchema:l,NotificationsParamsSchema:p,NotificationSchema:u,ResultSchema:m,RequestIdSchema:f,EmptyResultSchema:h,CancelledNotificationParamsSchema:y,CancelledNotificationSchema:g,IconSchema:_,IconsSchema:v,BaseMetadataSchema:b,ImplementationSchema:$,ClientTasksCapabilitySchema:w,ServerTasksCapabilitySchema:P,ClientCapabilitiesSchema:V,InitializeRequestParamsSchema:R,InitializeRequestSchema:q,ServerCapabilitiesSchema:I,InitializeResultSchema:x,InitializedNotificationSchema:j,PingRequestSchema:C,ProgressSchema:T,ProgressNotificationParamsSchema:O,ProgressNotificationSchema:E,PaginatedRequestParamsSchema:A,PaginatedRequestSchema:W,PaginatedResultSchema:M,ResourceContentsSchema:N,TextResourceContentsSchema:z,BlobResourceContentsSchema:F,RoleSchema:L,AnnotationsSchema:U,ResourceSchema:H,ResourceTemplateSchema:G,ListResourcesRequestSchema:B,ListResourcesResultSchema:K,ListResourceTemplatesRequestSchema:J,ListResourceTemplatesResultSchema:Z,ResourceRequestParamsSchema:Q,ReadResourceRequestParamsSchema:Q,ReadResourceRequestSchema:X,ReadResourceResultSchema:Y,ResourceListChangedNotificationSchema:ee,SubscribeRequestParamsSchema:Q,SubscribeRequestSchema:et,UnsubscribeRequestParamsSchema:Q,UnsubscribeRequestSchema:er,ResourceUpdatedNotificationParamsSchema:ei,ResourceUpdatedNotificationSchema:eo,PromptArgumentSchema:en,PromptSchema:ea,ListPromptsRequestSchema:es,ListPromptsResultSchema:ed,GetPromptRequestParamsSchema:ec,GetPromptRequestSchema:el,TextContentSchema:ep,ImageContentSchema:eu,AudioContentSchema:em,ToolUseContentSchema:ef,EmbeddedResourceSchema:eh,ResourceLinkSchema:ey,ContentBlockSchema:eg,PromptMessageSchema:e_,GetPromptResultSchema:ev,PromptListChangedNotificationSchema:eb,ToolAnnotationsSchema:e$,ToolExecutionSchema:eS,ToolSchema:ek,ListToolsRequestSchema:ew,ListToolsResultSchema:eP,CallToolResultSchema:eV,CallToolRequestParamsSchema:eR,CallToolRequestSchema:eq,ToolListChangedNotificationSchema:eI,LoggingLevelSchema:ex,SetLevelRequestParamsSchema:ej,SetLevelRequestSchema:eC,LoggingMessageNotificationParamsSchema:eT,LoggingMessageNotificationSchema:eO,ModelHintSchema:eE,ModelPreferencesSchema:eA,ToolChoiceSchema:eW,ToolResultContentSchema:eM,SamplingContentSchema:eN,SamplingMessageContentBlockSchema:ez,SamplingMessageSchema:eD,CreateMessageRequestParamsSchema:eF,CreateMessageRequestSchema:eL,CreateMessageResultSchema:eU,CreateMessageResultWithToolsSchema:eH,BooleanSchemaSchema:eG,StringSchemaSchema:eB,NumberSchemaSchema:eK,UntitledSingleSelectEnumSchemaSchema:eJ,TitledSingleSelectEnumSchemaSchema:eZ,LegacyTitledEnumSchemaSchema:eQ,SingleSelectEnumSchemaSchema:eX,UntitledMultiSelectEnumSchemaSchema:eY,TitledMultiSelectEnumSchemaSchema:e1,MultiSelectEnumSchemaSchema:e0,EnumSchemaSchema:e2,PrimitiveSchemaDefinitionSchema:e4,ElicitRequestFormParamsSchema:e6,ElicitRequestURLParamsSchema:e3,ElicitRequestParamsSchema:e9,ElicitRequestSchema:e5,ElicitationCompleteNotificationParamsSchema:e8,ElicitationCompleteNotificationSchema:e7,ElicitResultSchema:te,ResourceTemplateReferenceSchema:tt,PromptReferenceSchema:tr,CompleteRequestParamsSchema:ti,CompleteRequestSchema:to,CompleteResultSchema:tn,RootSchema:ta,ListRootsRequestSchema:ts,ListRootsResultSchema:td,RootsListChangedNotificationSchema:tc,TaskCreationParamsSchema:tl,TaskStatusSchema:tp,TaskSchema:tu,CreateTaskResultSchema:tm,TaskStatusNotificationParamsSchema:tf,TaskStatusNotificationSchema:th,GetTaskRequestSchema:ty,GetTaskResultSchema:tg,GetTaskPayloadRequestSchema:t_,GetTaskPayloadResultSchema:tv,ListTasksRequestSchema:tb,ListTasksResultSchema:t$,CancelTaskRequestSchema:tS,CancelTaskResultSchema:m.merge(tu),ClientRequestSchema:nL([C,q,to,eC,el,es,B,J,X,et,er,eq,ew,ty,t_,tb,tS]),ClientNotificationSchema:nL([g,E,j,tc,th]),ClientResultSchema:nL([h,eU,eH,te,td,tg,t$,tm]),ServerRequestSchema:nL([C,eL,e5,ts,ty,t_,tb,tS]),ServerNotificationSchema:nL([g,E,eO,eo,ee,eI,eb,th,e7]),ServerResultSchema:nL([h,x,tn,ev,ed,K,Z,Y,eV,eP,tg,t$,tm]),CallToolResultWireSchema:nE().superRefine((e,t)=>{if(!("object"!=typeof e||null===e||Array.isArray(e))&&void 0===e.content){for(let r of kX)if(r in e)return void t.addIssue({code:"custom",message:`content is required when the body carries '${r}' — another result family cannot default into an empty tools/call success`})}}).transform(kY).pipe(eV)})}function k0(e){return"object"!==e.type}let k2=new Set(["const","enum","default","examples"]),k4=new Set(["properties","patternProperties","$defs","definitions","dependentSchemas","dependencies"]);function k6(e){return void 0!==e&&!("string"==typeof e&&e.startsWith("#"))}let k3={ping:null,initialize:null,"completion/complete":null,"logging/setLevel":null,"prompts/get":null,"prompts/list":null,"resources/list":null,"resources/templates/list":null,"resources/read":null,"resources/subscribe":null,"resources/unsubscribe":null,"tools/call":null,"tools/list":null,"tasks/get":null,"tasks/result":null,"tasks/list":null,"tasks/cancel":null,"sampling/createMessage":null,"elicitation/create":null,"roots/list":null},k9={"notifications/cancelled":null,"notifications/progress":null,"notifications/initialized":null,"notifications/roots/list_changed":null,"notifications/tasks/status":null,"notifications/message":null,"notifications/resources/updated":null,"notifications/resources/list_changed":null,"notifications/tools/list_changed":null,"notifications/prompts/list_changed":null,"notifications/elicitation/complete":null},k5={ping:null,initialize:null,"completion/complete":null,"logging/setLevel":null,"prompts/get":null,"prompts/list":null,"resources/list":null,"resources/templates/list":null,"resources/read":null,"resources/subscribe":null,"resources/unsubscribe":null,"tools/call":null,"tools/list":null,"sampling/createMessage":null,"elicitation/create":null,"roots/list":null};function k8(){if(c)return c;let e=k1();return c={requestSchemas:{ping:e.PingRequestSchema,initialize:e.InitializeRequestSchema,"completion/complete":e.CompleteRequestSchema,"logging/setLevel":e.SetLevelRequestSchema,"prompts/get":e.GetPromptRequestSchema,"prompts/list":e.ListPromptsRequestSchema,"resources/list":e.ListResourcesRequestSchema,"resources/templates/list":e.ListResourceTemplatesRequestSchema,"resources/read":e.ReadResourceRequestSchema,"resources/subscribe":e.SubscribeRequestSchema,"resources/unsubscribe":e.UnsubscribeRequestSchema,"tools/call":e.CallToolRequestSchema,"tools/list":e.ListToolsRequestSchema,"tasks/get":e.GetTaskRequestSchema,"tasks/result":e.GetTaskPayloadRequestSchema,"tasks/list":e.ListTasksRequestSchema,"tasks/cancel":e.CancelTaskRequestSchema,"sampling/createMessage":e.CreateMessageRequestSchema,"elicitation/create":e.ElicitRequestSchema,"roots/list":e.ListRootsRequestSchema},notificationSchemas:{"notifications/cancelled":e.CancelledNotificationSchema,"notifications/progress":e.ProgressNotificationSchema,"notifications/initialized":e.InitializedNotificationSchema,"notifications/roots/list_changed":e.RootsListChangedNotificationSchema,"notifications/tasks/status":e.TaskStatusNotificationSchema,"notifications/message":e.LoggingMessageNotificationSchema,"notifications/resources/updated":e.ResourceUpdatedNotificationSchema,"notifications/resources/list_changed":e.ResourceListChangedNotificationSchema,"notifications/tools/list_changed":e.ToolListChangedNotificationSchema,"notifications/prompts/list_changed":e.PromptListChangedNotificationSchema,"notifications/elicitation/complete":e.ElicitationCompleteNotificationSchema},resultSchemas:{ping:e.EmptyResultSchema,initialize:e.InitializeResultSchema,"completion/complete":e.CompleteResultSchema,"logging/setLevel":e.EmptyResultSchema,"prompts/get":e.GetPromptResultSchema,"prompts/list":e.ListPromptsResultSchema,"resources/list":e.ListResourcesResultSchema,"resources/templates/list":e.ListResourceTemplatesResultSchema,"resources/read":e.ReadResourceResultSchema,"resources/subscribe":e.EmptyResultSchema,"resources/unsubscribe":e.EmptyResultSchema,"tools/call":e.CallToolResultWireSchema,"tools/list":e.ListToolsResultSchema,"sampling/createMessage":e.CreateMessageResultWithToolsSchema,"elicitation/create":e.ElicitResultSchema,"roots/list":e.ListRootsResultSchema}}}function k7(e){return Object.prototype.hasOwnProperty.call(k3,e)}function we(e){return Object.prototype.hasOwnProperty.call(k9,e)}function wt(e){return null!==e&&"object"==typeof e&&!Array.isArray(e)}function wr(e,t){if(void 0===e)return{ok:!1,reason:"not-in-era"};let r=e.safeParse(t);return r.success?{ok:!0,value:r.data}:{ok:!1,reason:"invalid",message:String(r.error)}}Object.keys(k3),Object.keys(k9);let wi={ok:!1,reason:"not-in-era"};function wo(e){return wt(e)&&wt(e.outputSchema)&&k0(e.outputSchema)}let wn={era:"2025-11-25",hasRequestMethod:k7,hasNotificationMethod:we,validateRequest:(e,t)=>wr(k7(e)?k8().requestSchemas[e]:void 0,t),validateResult:(e,t)=>wr(Object.prototype.hasOwnProperty.call(k5,e)?k8().resultSchemas[e]:void 0,t),validateNotification:(e,t)=>wr(we(e)?k8().notificationSchemas[e]:void 0,t),hasInputRequestMethod:()=>!1,validateInputRequest:()=>wi,validateInputResponse:()=>wi,samplingResultVariant:(e,t)=>{let r=k1();return wr(e?r.CreateMessageResultWithToolsSchema:r.CreateMessageResultSchema,t)},outboundEnvelope:e=>void 0,validateEnvelopeMeta:e=>[],projectCallToolResult(e,t){let r=kQ(e),i=r.structuredContent;if(void 0===i)return r;let o="object"!=typeof i||null===i||Array.isArray(i),n=void 0!==t&&k0(t);return o||n?{...r,structuredContent:{result:i}}:r},decodeResult(e,t){if(wt(t)&&"resultType"in t){let e={...t};return delete e.resultType,{kind:"complete",result:e}}return{kind:"complete",result:t}},encodeResult(e,t){if("tools/list"!==e)return t;let r=t.tools;return Array.isArray(r)&&r.some(e=>wo(e))?{...t,tools:r.map(e=>wo(e)?{...e,outputSchema:function(e){var t;let r="string"==typeof e.$schema?e.$schema:void 0;if(k6(e.$id))return{...void 0!==r&&{$schema:r},type:"object",properties:{result:e},required:["result"]};let i="string"==typeof(t=e.$schema)&&kM.has(t.replace(/#$/,""))&&!0!==e.$recursiveAnchor,o=(e,t)=>{if(Array.isArray(e))return e.map(e=>o(e,!1));if(null===e||"object"!=typeof e||!t&&k6(e.$id))return e;let r={},n=!1;for(let[a,s]of Object.entries(e))t?r[a]=o(s,!1):("$ref"===a||"$dynamicRef"===a)&&"string"==typeof s?r[a]="#"===s?"#/properties/result":s.startsWith("#/")?`#/properties/result${s.slice(1)}`:s:"$recursiveRef"===a&&"#"===s&&i?n=!0:k2.has(a)?r[a]=s:k4.has(a)?r[a]=o(s,!0):r[a]=o(s,!1);return n&&("$ref"in r?r.allOf=[...Array.isArray(r.allOf)?r.allOf:[],{$ref:"#/properties/result"}]:r.$ref="#/properties/result"),r};return{...void 0!==r&&{$schema:r},type:"object",properties:{result:o(e,!1)},required:["result"]}}(e.outputSchema)}:e)}:t},encodeErrorCode:e=>-32002===e?-32602:e,checkInboundEnvelope:e=>void 0};function wa(){return l??=function(){let e=aa(()=>nL([o7(),nP(),nI(),nj(),nJ(o7(),e),nM(e)])),t=nJ(o7(),e),r=nL([o7(),nP().int()]),i=o7(),o=nL([o7(),nP().int()]),n=nQ(["user","assistant"]),a=nQ(["debug","info","notice","warning","error","critical","alert","emergency"]),s=o7().refine(e=>{try{return atob(e),!0}catch{return!1}},{message:"Invalid Base64 string"}),d=nz({ttl:nP().optional()}),c=nz({taskId:o7()}),l=nD({progressToken:r.optional(),"io.modelcontextprotocol/related-task":c.optional()}),p=nz({_meta:l.optional()}),u=p.extend({task:d.optional()}),m=nz({_meta:l.optional()}),f=nz({method:o7(),params:m.loose().optional()}),h=nz({src:o7(),mimeType:o7().optional(),sizes:nM(o7()).optional(),theme:nQ(["light","dark"]).optional()}),y=nz({icons:nM(h).optional()}),g=nz({name:o7(),title:o7().optional()}),_=g.extend({...g.shape,...y.shape,version:o7(),websiteUrl:o7().optional(),description:o7().optional()}),v=nB(nz({applyDefaults:nI().optional()}),t),b=ad(e=>e&&"object"==typeof e&&!Array.isArray(e)&&0===Object.keys(e).length?{form:{}}:e,nB(nz({form:v.optional(),url:t.optional()}),t.optional())),$=nD({list:t.optional(),cancel:t.optional(),requests:nD({sampling:nD({createMessage:t.optional()}).optional(),elicitation:nD({create:t.optional()}).optional()}).optional()}),S=nD({list:t.optional(),cancel:t.optional(),requests:nD({tools:nD({call:t.optional()}).optional()}).optional()}),k=nz({experimental:nJ(o7(),t).optional(),sampling:nz({context:t.optional(),tools:t.optional()}).optional(),elicitation:b.optional(),roots:nz({listChanged:nI().optional()}).optional(),tasks:$.optional(),extensions:nJ(o7(),t).optional()}),w=nz({experimental:nJ(o7(),t).optional(),logging:t.optional(),completions:t.optional(),prompts:nz({listChanged:nI().optional()}).optional(),resources:nz({subscribe:nI().optional(),listChanged:nI().optional()}).optional(),tools:nz({listChanged:nI().optional()}).optional(),tasks:S.optional(),extensions:nJ(o7(),t).optional()}),P=nz({progress:nP(),total:n4(nP()),message:n4(o7())}),V=nz({...m.shape,...P.shape,progressToken:r}),R=f.extend({method:nY("notifications/progress"),params:V}),q=m.extend({level:a,logger:o7().optional(),data:nE()}),I=f.extend({method:nY("notifications/message"),params:q}),x=nz({uri:o7(),mimeType:n4(o7()),_meta:nJ(o7(),nE()).optional()}),j=x.extend({text:o7()}),C=x.extend({blob:s}),T=nz({audience:nM(n).optional(),priority:nP().min(0).max(1).optional(),lastModified:ac({offset:!0}).optional()}),O=nz({...g.shape,...y.shape,uri:o7(),description:n4(o7()),mimeType:n4(o7()),size:n4(nP()),annotations:T.optional(),_meta:n4(nD({}))}),E=nz({...g.shape,...y.shape,uriTemplate:o7(),description:n4(o7()),mimeType:n4(o7()),annotations:T.optional(),_meta:n4(nD({}))}),A=f.extend({method:nY("notifications/resources/list_changed"),params:m.optional()}),W=m.extend({uri:o7()}),M=f.extend({method:nY("notifications/resources/updated"),params:W}),N=nz({name:o7(),description:n4(o7()),required:n4(nI())}),z=nz({...g.shape,...y.shape,description:n4(o7()),arguments:n4(nM(N)),_meta:n4(nD({}))}),D=f.extend({method:nY("notifications/prompts/list_changed"),params:m.optional()}),F=nz({type:nY("text"),text:o7(),annotations:T.optional(),_meta:nJ(o7(),nE()).optional()}),L=nz({type:nY("image"),data:s,mimeType:o7(),annotations:T.optional(),_meta:nJ(o7(),nE()).optional()}),U=nz({type:nY("audio"),data:s,mimeType:o7(),annotations:T.optional(),_meta:nJ(o7(),nE()).optional()}),H=nz({type:nY("tool_use"),name:o7(),id:o7(),input:nJ(o7(),nE()),_meta:nJ(o7(),nE()).optional()}),G=nz({type:nY("resource"),resource:nL([j,C]),annotations:T.optional(),_meta:nJ(o7(),nE()).optional()}),B=O.extend({type:nY("resource_link")}),K=nL([F,L,U,B,G]),J=nz({role:n,content:K}),Z=nz({title:o7().optional(),readOnlyHint:nI().optional(),destructiveHint:nI().optional(),idempotentHint:nI().optional(),openWorldHint:nI().optional()}),Q=f.extend({method:nY("notifications/tools/list_changed"),params:m.optional()}),X=nz({name:o7().optional()}),Y=nz({hints:nM(X).optional(),costPriority:nP().min(0).max(1).optional(),speedPriority:nP().min(0).max(1).optional(),intelligencePriority:nP().min(0).max(1).optional()}),ee=nz({mode:nQ(["auto","required","none"]).optional()}),et=nz({type:nY("boolean"),title:o7().optional(),description:o7().optional(),default:nI().optional()}),er=nz({type:nY("string"),title:o7().optional(),description:o7().optional(),minLength:nP().optional(),maxLength:nP().optional(),format:nQ(["email","uri","date","date-time"]).optional(),default:o7().optional()}),ei=nz({type:nQ(["number","integer"]),title:o7().optional(),description:o7().optional(),minimum:nP().optional(),maximum:nP().optional(),default:nP().optional()}),eo=nz({type:nY("string"),title:o7().optional(),description:o7().optional(),enum:nM(o7()),default:o7().optional()}),en=nz({type:nY("string"),title:o7().optional(),description:o7().optional(),oneOf:nM(nz({const:o7(),title:o7()})),default:o7().optional()}),ea=nz({type:nY("string"),title:o7().optional(),description:o7().optional(),enum:nM(o7()),enumNames:nM(o7()).optional(),default:o7().optional()}),es=nL([eo,en]),ed=nz({type:nY("array"),title:o7().optional(),description:o7().optional(),minItems:nP().optional(),maxItems:nP().optional(),items:nz({type:nY("string"),enum:nM(o7())}),default:nM(o7()).optional()}),ec=nz({type:nY("array"),title:o7().optional(),description:o7().optional(),minItems:nP().optional(),maxItems:nP().optional(),items:nz({anyOf:nM(nz({const:o7(),title:o7()}))}),default:nM(o7()).optional()}),el=nL([ed,ec]),ep=nL([ea,es,el]),eu=nL([ep,et,er,ei]),em=u.extend({mode:nY("form").optional(),message:o7(),requestedSchema:nz({type:nY("object"),properties:nJ(o7(),eu),required:nM(o7()).optional()}).catchall(nE())}),ef=nz({type:nY("ref/resource"),uri:o7()}),eh=nz({type:nY("ref/prompt"),name:o7()}),ey=nz({uri:o7().startsWith("file://"),name:o7().optional(),_meta:nJ(o7(),nE()).optional()}),eg=k.shape,e_=nz({experimental:eg.experimental,sampling:eg.sampling,elicitation:eg.elicitation,roots:eg.roots,extensions:eg.extensions}),ev=w.shape,eb=nz({experimental:ev.experimental,logging:ev.logging,completions:ev.completions,prompts:ev.prompts,resources:ev.resources,tools:ev.tools,extensions:ev.extensions}),e$=nD({progressToken:r.optional(),[au]:o7(),[am]:_.optional(),[ah]:e_,[ag]:a.optional()}),eS=nz({...g.shape,...y.shape,description:o7().optional(),inputSchema:nD({$schema:o7().optional(),type:nY("object")}),outputSchema:nD({$schema:o7().optional()}).optional(),annotations:Z.optional(),_meta:nJ(o7(),nE()).optional()}),ek=nz({type:nY("tool_result"),toolUseId:o7(),content:nM(K),structuredContent:nE().optional(),isError:nI().optional(),_meta:nJ(o7(),nE()).optional()}),ew=nL([F,L,U,H,ek]),eP=nz({role:n,content:nL([ew,nM(ew)]),_meta:nJ(o7(),nE()).optional()}),eV=o7(),eR=nD({[af]:_.optional().catch(void 0)}),eq=eR.optional();function eI(e){return nD({_meta:eq,resultType:eV.default("complete"),...e})}let ex=eI({}),ej=eI({nextCursor:i.optional()}),eC=eI({content:nM(K),structuredContent:nE().optional(),isError:nI().optional()}),eT=eI({ttlMs:nP().int().min(0),cacheScope:nQ(["public","private"]),tools:nM(eS),nextCursor:i.optional()}),eO=eI({ttlMs:nP().int().min(0),cacheScope:nQ(["public","private"]),prompts:nM(z),nextCursor:i.optional()}),eE=eI({description:o7().optional(),messages:nM(J)}),eA=eI({ttlMs:nP().int().min(0),cacheScope:nQ(["public","private"]),resources:nM(O),nextCursor:i.optional()}),eW=eI({ttlMs:nP().int().min(0),cacheScope:nQ(["public","private"]),resourceTemplates:nM(E),nextCursor:i.optional()}),eM=eI({ttlMs:nP().int().min(0),cacheScope:nQ(["public","private"]),contents:nM(nL([j,C]))}),eN=eI({completion:nz({values:nM(o7()).max(100),total:nP().int().optional(),hasMore:nI().optional()}).loose()}),ez=eI({ttlMs:nP().int().min(0),cacheScope:nQ(["public","private"])}),eD=eI({ttlMs:nP().int().min(0).catch(0),cacheScope:nQ(["public","private"]).catch("private"),supportedVersions:nM(o7()),capabilities:eb,instructions:o7().optional()}),eF=nz({messages:nM(eP),modelPreferences:Y.optional(),systemPrompt:o7().optional(),includeContext:nQ(["none","thisServer","allServers"]).optional(),temperature:nP().optional(),maxTokens:nP().int(),stopSequences:nM(o7()).optional(),metadata:t.optional(),tools:nM(eS).optional(),toolChoice:ee.optional()}),eL=nz({method:nY("sampling/createMessage"),params:eF}),eU=nz({method:nY("roots/list"),params:nz({_meta:nJ(o7(),nE()).optional()}).optional()}),eH=nz({...eP.shape,model:o7(),stopReason:o7().optional()}),eG=nz({roots:nM(ey)}),eB=nz({action:nQ(["accept","decline","cancel"]),content:nJ(o7(),nL([o7(),nP(),nI(),nM(o7())])).optional()}),eK=nz({mode:nY("url"),message:o7(),url:o7().url()}),eJ=nL([em,eK]),eZ=nz({method:nY("elicitation/create"),params:eJ}),eQ=nL([eL,eU,eZ]),eX=nL([eH,eG,eB]),eY=nJ(o7(),eQ),e1=nJ(o7(),eX),e0=eI({inputRequests:eY.optional(),requestState:o7().optional()}),e2={inputResponses:e1.optional(),requestState:o7().optional()},e4=nz({_meta:e$,...e2}),e6=nD({progressToken:r.optional()});function e3(e,t){return nz({method:nY(e),params:nz({_meta:e$,...t})})}function e9(e,t){return nz({method:nY(e),params:nz({_meta:e6.optional(),...t}).optional()})}let e5={name:o7(),arguments:nJ(o7(),nE()).optional(),...e2},e8={cursor:i.optional()},e7=e3("tools/call",e5),te=e3("tools/list",e8),tt=e3("prompts/list",e8),tr=e3("prompts/get",{name:o7(),arguments:nJ(o7(),o7()).optional(),...e2}),ti=e3("resources/list",e8),to=e3("resources/templates/list",e8),tn=e3("resources/read",{uri:o7(),...e2}),ta={ref:nL([eh,ef]),argument:nz({name:o7(),value:o7()}),context:nz({arguments:nJ(o7(),o7()).optional()}).optional()},ts=e3("completion/complete",ta),td=e3("server/discover",{}),tc=nz({toolsListChanged:nI().optional(),promptsListChanged:nI().optional(),resourcesListChanged:nI().optional(),resourceSubscriptions:nM(o7()).optional()}),tl={notifications:tc},tp=e3("subscriptions/listen",tl),tu=eR.extend({"io.modelcontextprotocol/subscriptionId":o}),tm=nD({_meta:tu,resultType:eV.default("complete")}),tf={"tools/call":e9("tools/call",e5),"tools/list":e9("tools/list",e8),"prompts/get":e9("prompts/get",{name:o7(),arguments:nJ(o7(),o7()).optional()}),"prompts/list":e9("prompts/list",e8),"resources/list":e9("resources/list",e8),"resources/templates/list":e9("resources/templates/list",e8),"resources/read":e9("resources/read",{uri:o7()}),"completion/complete":e9("completion/complete",ta),"server/discover":e9("server/discover",{}),"subscriptions/listen":e9("subscriptions/listen",tl)};function th(e){return nD({_meta:eq,...e})}let ty={"tools/call":th({content:nM(K),structuredContent:nE().optional(),isError:nI().optional()}),"tools/list":th({ttlMs:nP().int().min(0),cacheScope:nQ(["public","private"]),tools:nM(eS),nextCursor:i.optional()}),"prompts/get":th({description:o7().optional(),messages:nM(J)}),"prompts/list":th({ttlMs:nP().int().min(0),cacheScope:nQ(["public","private"]),prompts:nM(z),nextCursor:i.optional()}),"resources/list":th({ttlMs:nP().int().min(0),cacheScope:nQ(["public","private"]),resources:nM(O),nextCursor:i.optional()}),"resources/templates/list":th({ttlMs:nP().int().min(0),cacheScope:nQ(["public","private"]),resourceTemplates:nM(E),nextCursor:i.optional()}),"resources/read":th({ttlMs:nP().int().min(0),cacheScope:nQ(["public","private"]),contents:nM(nL([j,C]))}),"completion/complete":th({completion:nz({values:nM(o7()).max(100),total:nP().int().optional(),hasMore:nI().optional()}).loose()}),"server/discover":th({ttlMs:nP().int().min(0).catch(0),cacheScope:nQ(["public","private"]).catch("private"),supportedVersions:nM(o7()),capabilities:eb,instructions:o7().optional()}),"subscriptions/listen":th({})},tg=nD({"io.modelcontextprotocol/subscriptionId":o.optional()}),t_=nz({method:nY("notifications/subscriptions/acknowledged"),params:nz({_meta:tg.optional(),notifications:tc})}),tv=nz({_meta:tg.optional(),requestId:o,reason:o7().optional()}),tb=nz({method:nY("notifications/cancelled"),params:tv}),t$=e=>nz({jsonrpc:nY("2.0"),id:nL([o7(),nP().int()]),result:e}).strict();return{JSONValueSchema:e,JSONObjectSchema:t,ProgressTokenSchema:r,CursorSchema:i,RequestIdSchema:o,RoleSchema:n,LoggingLevelSchema:a,TaskMetadataSchema:d,RelatedTaskMetadataSchema:c,RequestMetaSchema:l,BaseRequestParamsSchema:p,TaskAugmentedRequestParamsSchema:u,NotificationsParamsSchema:m,NotificationSchema:f,IconSchema:h,IconsSchema:y,BaseMetadataSchema:g,ImplementationSchema:_,ClientTasksCapabilitySchema:$,ServerTasksCapabilitySchema:S,ClientCapabilitiesSchema:k,ServerCapabilitiesSchema:w,ProgressSchema:P,ProgressNotificationParamsSchema:V,ProgressNotificationSchema:R,LoggingMessageNotificationParamsSchema:q,LoggingMessageNotificationSchema:I,ResourceContentsSchema:x,TextResourceContentsSchema:j,BlobResourceContentsSchema:C,AnnotationsSchema:T,ResourceSchema:O,ResourceTemplateSchema:E,ResourceListChangedNotificationSchema:A,ResourceUpdatedNotificationParamsSchema:W,ResourceUpdatedNotificationSchema:M,PromptArgumentSchema:N,PromptSchema:z,PromptListChangedNotificationSchema:D,TextContentSchema:F,ImageContentSchema:L,AudioContentSchema:U,ToolUseContentSchema:H,EmbeddedResourceSchema:G,ResourceLinkSchema:B,ContentBlockSchema:K,PromptMessageSchema:J,ToolAnnotationsSchema:Z,ToolListChangedNotificationSchema:Q,ModelHintSchema:X,ModelPreferencesSchema:Y,ToolChoiceSchema:ee,BooleanSchemaSchema:et,StringSchemaSchema:er,NumberSchemaSchema:ei,UntitledSingleSelectEnumSchemaSchema:eo,TitledSingleSelectEnumSchemaSchema:en,LegacyTitledEnumSchemaSchema:ea,SingleSelectEnumSchemaSchema:es,UntitledMultiSelectEnumSchemaSchema:ed,TitledMultiSelectEnumSchemaSchema:ec,MultiSelectEnumSchemaSchema:el,EnumSchemaSchema:ep,PrimitiveSchemaDefinitionSchema:eu,ElicitRequestFormParamsSchema:em,ResourceTemplateReferenceSchema:ef,PromptReferenceSchema:eh,RootSchema:ey,ClientCapabilities2026Schema:e_,ServerCapabilities2026Schema:eb,RequestMetaEnvelopeSchema:e$,ToolSchema:eS,ToolResultContentSchema:ek,SamplingMessageContentBlockSchema:ew,SamplingMessageSchema:eP,ResultTypeSchema:eV,ResultMetaSchema:eR,ResultSchema:ex,PaginatedResultSchema:ej,CallToolResultSchema:eC,ListToolsResultSchema:eT,ListPromptsResultSchema:eO,GetPromptResultSchema:eE,ListResourcesResultSchema:eA,ListResourceTemplatesResultSchema:eW,ReadResourceResultSchema:eM,CompleteResultSchema:eN,CacheableResultSchema:ez,DiscoverResultSchema:eD,CreateMessageRequestParamsSchema:eF,CreateMessageRequestSchema:eL,ListRootsRequestSchema:eU,CreateMessageResultSchema:eH,ListRootsResultSchema:eG,ElicitResultSchema:eB,ElicitRequestURLParamsSchema:eK,ElicitRequestParamsSchema:eJ,ElicitRequestSchema:eZ,InputRequestSchema:eQ,InputResponseSchema:eX,InputRequestsSchema:eY,InputResponsesSchema:e1,InputRequiredResultSchema:e0,InputResponseRequestParamsSchema:e4,CallToolRequestSchema:e7,ListToolsRequestSchema:te,ListPromptsRequestSchema:tt,GetPromptRequestSchema:tr,ListResourcesRequestSchema:ti,ListResourceTemplatesRequestSchema:to,ReadResourceRequestSchema:tn,CompleteRequestSchema:ts,DiscoverRequestSchema:td,SubscriptionFilterSchema:tc,SubscriptionsListenRequestSchema:tp,SubscriptionsListenResultMetaSchema:tu,SubscriptionsListenResultSchema:tm,dispatchRequestSchemas:tf,dispatchResultSchemas:ty,NotificationMetaSchema:tg,SubscriptionsAcknowledgedNotificationSchema:t_,CancelledNotificationParamsSchema:tv,CancelledNotificationSchema:tb,notificationSchemas2026:{"notifications/cancelled":tb,"notifications/progress":R,"notifications/message":I,"notifications/resources/updated":M,"notifications/resources/list_changed":A,"notifications/tools/list_changed":Q,"notifications/prompts/list_changed":D,"notifications/subscriptions/acknowledged":t_},JSONRPCResultResponseSchema:t$(ex),CallToolResultResponseSchema:t$(nL([eC,e0])),ListToolsResultResponseSchema:t$(eT),ListPromptsResultResponseSchema:t$(eO),GetPromptResultResponseSchema:t$(nL([eE,e0])),ListResourcesResultResponseSchema:t$(eA),ListResourceTemplatesResultResponseSchema:t$(eW),ReadResourceResultResponseSchema:t$(nL([eM,e0])),CompleteResultResponseSchema:t$(eN),DiscoverResultResponseSchema:t$(eD),SubscriptionsListenResultResponseSchema:t$(tm)}}()}let ws=["tools/list","prompts/list","resources/list","resources/templates/list","resources/read","server/discover"],wd=Symbol("modelcontextprotocol.resultCacheHintFallback");function wc(e){return"number"==typeof e&&Number.isSafeInteger(e)&&e>=0}function wl(e){return"public"===e||"private"===e}let wp=((Y={})[Y.ParseError=-32700]="ParseError",Y[Y.InvalidRequest=-32600]="InvalidRequest",Y[Y.MethodNotFound=-32601]="MethodNotFound",Y[Y.InvalidParams=-32602]="InvalidParams",Y[Y.InternalError=-32603]="InternalError",Y[Y.ResourceNotFound=-32002]="ResourceNotFound",Y[Y.MissingRequiredClientCapability=-32021]="MissingRequiredClientCapability",Y[Y.UnsupportedProtocolVersion=-32022]="UnsupportedProtocolVersion",Y[Y.UrlElicitationRequired=-32042]="UrlElicitationRequired",Y);var wu=class e extends Error{static{Object.defineProperty(this,"mcpBrand",{value:"mcp.ProtocolError"})}static[Symbol.hasInstance](e){return kL(this,e)}static isInstance(e){if("function"!=typeof this)throw TypeError("isInstance must be called on the class (e.g. `SdkError.isInstance(value)`); for callbacks use `v => SdkError.isInstance(v)`");return kL(this,e)}constructor(e,t,r){super(t),this.code=e,this.data=r,this.name="ProtocolError",kF(this,new.target)}static fromError(t,r,i){return t===wp.UrlElicitationRequired&&i&&i.elicitations?new wf(i.elicitations,r):t===wp.UnsupportedProtocolVersion&&i&&Array.isArray(i.supported)&&"string"==typeof i.requested?new wh({supported:i.supported,requested:i.requested},r):(t===wp.InvalidParams||t===wp.ResourceNotFound)&&"string"==typeof i?.uri&&(t===wp.ResourceNotFound||1===Object.keys(i).length)?new wm(i.uri,r):t===wp.MissingRequiredClientCapability&&i&&null!==i.requiredCapabilities&&"object"==typeof i.requiredCapabilities&&!Array.isArray(i.requiredCapabilities)?new wy({requiredCapabilities:i.requiredCapabilities},r):new e(t,r,i)}},wm=class extends wu{static{Object.defineProperty(this,"mcpBrand",{value:"mcp.ResourceNotFoundError"})}constructor(e,t=`Resource not found: ${e}`){super(wp.InvalidParams,t,{uri:e})}get uri(){return this.data.uri}},wf=class extends wu{static{Object.defineProperty(this,"mcpBrand",{value:"mcp.UrlElicitationRequiredError"})}constructor(e,t=`URL elicitation${e.length>1?"s":""} required`){super(wp.UrlElicitationRequired,t,{elicitations:e})}get elicitations(){return this.data?.elicitations??[]}},wh=class extends wu{static{Object.defineProperty(this,"mcpBrand",{value:"mcp.UnsupportedProtocolVersionError"})}constructor(e,t=`Unsupported protocol version: ${e.requested}`){super(wp.UnsupportedProtocolVersion,t,e)}get supported(){return this.data.supported}get requested(){return this.data.requested}},wy=class extends wu{static{Object.defineProperty(this,"mcpBrand",{value:"mcp.MissingRequiredClientCapabilityError"})}constructor(e,t=`Missing required client capabilities: ${Object.keys(e.requiredCapabilities).join(", ")}`){super(wp.MissingRequiredClientCapability,t,e)}get requiredCapabilities(){return this.data.requiredCapabilities}};let wg=["tools/call","prompts/get","resources/read"],w_=["elicitation/create","sampling/createMessage","roots/list"];function wv(){if(p)return p;let e=wa();return p={request:{"elicitation/create":nz({method:nY("elicitation/create"),params:e.ElicitRequestParamsSchema}),"sampling/createMessage":nz({method:nY("sampling/createMessage"),params:e.CreateMessageRequestParamsSchema}),"roots/list":nz({method:nY("roots/list"),params:nD({}).optional()})},response:{"elicitation/create":e.ElicitResultSchema,"sampling/createMessage":e.CreateMessageResultSchema,"roots/list":e.ListRootsResultSchema}}}function wb(e){return w_.includes(e)}function w$(e){return wb(e)?wv().request[e]:void 0}let wS={"tools/call":null,"tools/list":null,"prompts/get":null,"prompts/list":null,"resources/list":null,"resources/templates/list":null,"resources/read":null,"completion/complete":null,"server/discover":null,"subscriptions/listen":null},wk={"notifications/cancelled":null,"notifications/progress":null,"notifications/message":null,"notifications/resources/updated":null,"notifications/resources/list_changed":null,"notifications/tools/list_changed":null,"notifications/prompts/list_changed":null,"notifications/subscriptions/acknowledged":null};function ww(e){return Object.prototype.hasOwnProperty.call(wS,e)}function wP(e){return Object.prototype.hasOwnProperty.call(wk,e)}function wV(e){return null!==e&&"object"==typeof e&&!Array.isArray(e)}function wR(e,t){if(void 0===e)return{ok:!1,reason:"not-in-era"};let r=e.safeParse(t);return r.success?{ok:!0,value:r.data}:{ok:!1,reason:"invalid",message:String(r.error)}}Object.keys(wS),Object.keys(wk);let wq={ok:!1,reason:"not-in-era"},wI=[au,ah],wx={era:"2026-07-28",hasRequestMethod:ww,hasNotificationMethod:wP,hasInputRequestMethod:e=>void 0!==w$(e),validateRequest:(e,t)=>wR(ww(e)?wa().dispatchRequestSchemas[e]:void 0,t),validateResult:(e,t)=>wR(Object.prototype.hasOwnProperty.call(wS,e)?wa().dispatchResultSchemas[e]:void 0,t),validateNotification:(e,t)=>wR(wP(e)?wa().notificationSchemas2026[e]:void 0,t),validateInputRequest:(e,t)=>wR(w$(e),t),validateInputResponse:(e,t)=>wR(wb(e)?wv().response[e]:void 0,t),samplingResultVariant:()=>wq,outboundEnvelope:e=>({[au]:e.protocolVersion,[am]:e.clientInfo,[ah]:e.clientCapabilities,...void 0!==e.logLevel&&{[ag]:e.logLevel}}),validateEnvelopeMeta(e){let t=[];for(let r of wI)r in e||t.push({key:r,problem:"missing"});let r=wa().RequestMetaEnvelopeSchema.safeParse(e);if(!r.success)for(let e of r.error.issues){let r=e.path.map(String),i=r.length>0?r.join("."):"_meta";1===r.length&&t.some(e=>e.key===i&&"missing"===e.problem)||t.push({key:i,problem:e.message})}return t},projectCallToolResult:e=>kQ(e),inputRequestSchema:w$,decodeResult(e,t){if(!wV(t))return{kind:"invalid",error:new kH(kU.InvalidResult,`Invalid result for ${e}: not an object`,{method:e})};let r=t.resultType;if(void 0===r)return{kind:"invalid",error:new kH(kU.InvalidResult,`Invalid result for ${e}: missing required resultType — servers implementing protocol revision 2026-07-28 MUST include it (the absent-means-complete bridge applies only to earlier-revision servers)`,{method:e,violation:"missing-resultType"})};if("string"!=typeof r)return{kind:"invalid",error:new kH(kU.InvalidResult,`Invalid result for ${e}: non-string resultType`,{method:e,resultType:r})};if("input_required"===r){let r=t.inputRequests,i=wV(r)?r:{},o=t.requestState,n=void 0===t._meta?void 0:wa().ResultMetaSchema.safeParse(t._meta),a=n?.success?n.data:void 0;return 0===Object.keys(i).length&&"string"!=typeof o?{kind:"invalid",error:new kH(kU.InvalidResult,`Invalid result for ${e}: input_required carries neither inputRequests nor requestState (every input_required result must include at least one of the two)`,{method:e,violation:"input-required-missing-both"})}:{kind:"input_required",inputRequests:i,..."string"==typeof o&&{requestState:o},...void 0!==a&&{_meta:a}}}if("complete"!==r)return{kind:"invalid",error:new kH(kU.UnsupportedResultType,`Unsupported result type '${r}' for ${e}`,{resultType:r,method:e})};let i=function(){if(u)return u;let e=wa();return u={"tools/call":e.CallToolResultSchema,"tools/list":e.ListToolsResultSchema,"prompts/get":e.GetPromptResultSchema,"prompts/list":e.ListPromptsResultSchema,"resources/list":e.ListResourcesResultSchema,"resources/templates/list":e.ListResourceTemplatesResultSchema,"resources/read":e.ReadResourceResultSchema,"completion/complete":e.CompleteResultSchema,"server/discover":e.DiscoverResultSchema}}(),o=Object.hasOwn(i,e)?i[e]:void 0;if(void 0!==o){let r=o.safeParse(t);if(!r.success)return{kind:"invalid",error:new kH(kU.InvalidResult,`Invalid result for ${e}: ${r.error}`,{method:e})}}let n={...t};return delete n.resultType,{kind:"complete",result:n}},encodeResult:(e,t,r)=>(function(e,t){if(void 0===t)return e;let r=e._meta;return void 0===r?{...e,_meta:{[af]:t}}:null===r||"object"!=typeof r||Array.isArray(r)||void 0!==r[af]?e:{...e,_meta:{...r,[af]:t}}})(function(e,t){var r,i;let o=t[wd];if("complete"!==t.resultType||!ws.includes(e)){let e;return void 0===o?t:(e={...t},delete e[wd],e)}let n=wc(t.ttlMs)?t.ttlMs:void 0!==(r=o)&&wc(r.ttlMs)?r.ttlMs:0,a=wl(t.cacheScope)?t.cacheScope:void 0!==(i=o)&&wl(i.cacheScope)?i.cacheScope:"private",s={...t,ttlMs:n,cacheScope:a};return delete s[wd],s}(e,function(e,t){let r=t.resultType;if(void 0===r)return{...t,resultType:"complete"};if("complete"===r||wg.includes(e))return t;throw new wu(wp.InternalError,`Handler for ${e} returned resultType '${String(r)}', but results of ${e} only support 'complete' on protocol revision 2026-07-28`)}(e,function(e,t){let r=t,i=!1,o=()=>(i||(r={...r},i=!0),r),n=t.tools;"tools/list"===e&&Array.isArray(n)&&n.some(e=>wV(e)&&"execution"in e)&&(o().tools=n.map(e=>{if(!wV(e)||!("execution"in e))return e;let t={...e};return delete t.execution,t}));let a=t.capabilities;if(wV(a)&&"tasks"in a){let e={...a};delete e.tasks,o().capabilities=e}return r}(e,t))),r),encodeErrorCode:e=>-32002===e?-32602:e,checkInboundEnvelope(e){if(void 0===e.envelope)return"Request is missing the required _meta envelope for protocol revision 2026-07-28 (io.modelcontextprotocol/protocolVersion, io.modelcontextprotocol/clientCapabilities)";let t=wa().RequestMetaEnvelopeSchema.safeParse(e.envelope);if(!t.success)return`Invalid _meta envelope for protocol revision 2026-07-28: ${t.error.issues.map(e=>e.message).join("; ")}`}},wj="2026-07-28";function wC(e){return void 0!==e&&e>=kB?wx:wn}function wT(e){return void 0!==e.revision?wC(e.revision).era:"modern"===e.era?wx.era:wn.era}function wO(e){return wW.some(t=>t.hasRequestMethod(e))}function wE(e){return wW.some(t=>t.hasNotificationMethod(e))}function wA(e){return"tasks/get"===e||"tasks/cancel"===e}let wW=[wn,wx];var wM=(e=>{let t={};for(var r in e)kj(t,r,{get:e[r],enumerable:!0});return t})({AnnotationsSchema:()=>ss,AudioContentSchema:()=>sW,BaseMetadataSchema:()=>aH,BaseRequestParamsSchema:()=>aV,BlobResourceContentsSchema:()=>sn,BooleanSchemaSchema:()=>dc,CallToolRequestParamsSchema:()=>sX,CallToolRequestSchema:()=>sY,CallToolResultSchema:()=>sZ,CancelTaskRequestSchema:()=>dJ,CancelTaskResultSchema:()=>dZ,CancelledNotificationParamsSchema:()=>aD,CancelledNotificationSchema:()=>aF,ClientCapabilitiesSchema:()=>aQ,ClientNotificationSchema:()=>dX,ClientRequestSchema:()=>dQ,ClientResultSchema:()=>dY,ClientTasksCapabilitySchema:()=>aJ,CompatibilityCallToolResultSchema:()=>sQ,CompleteRequestParamsSchema:()=>dx,CompleteRequestSchema:()=>dj,CompleteResultSchema:()=>dC,ContentBlockSchema:()=>sD,CreateMessageRequestParamsSchema:()=>dn,CreateMessageRequestSchema:()=>da,CreateMessageResultSchema:()=>ds,CreateMessageResultWithToolsSchema:()=>dd,CreateTaskResultSchema:()=>dz,CursorSchema:()=>aS,DiscoverRequestSchema:()=>a4,DiscoverResultSchema:()=>a6,ElicitRequestFormParamsSchema:()=>d$,ElicitRequestParamsSchema:()=>dk,ElicitRequestSchema:()=>dw,ElicitRequestURLParamsSchema:()=>dS,ElicitResultSchema:()=>dR,ElicitationCompleteNotificationParamsSchema:()=>dP,ElicitationCompleteNotificationSchema:()=>dV,EmbeddedResourceSchema:()=>sN,EmptyResultSchema:()=>az,EnumSchemaSchema:()=>dv,GetPromptRequestParamsSchema:()=>sT,GetPromptRequestSchema:()=>sO,GetPromptResultSchema:()=>sL,GetTaskPayloadRequestSchema:()=>dH,GetTaskPayloadResultSchema:()=>dG,GetTaskRequestSchema:()=>dL,GetTaskResultSchema:()=>dU,IconSchema:()=>aL,IconsSchema:()=>aU,ImageContentSchema:()=>sA,ImplementationSchema:()=>aG,InitializeRequestParamsSchema:()=>aX,InitializeRequestSchema:()=>aY,InitializeResultSchema:()=>a0,InitializedNotificationSchema:()=>a2,JSONArraySchema:()=>ab,JSONObjectSchema:()=>av,JSONRPCErrorResponseSchema:()=>aW,JSONRPCMessageSchema:()=>aM,JSONRPCNotificationSchema:()=>aE,JSONRPCRequestSchema:()=>aO,JSONRPCResponseSchema:()=>aN,JSONRPCResultResponseSchema:()=>aA,JSONValueSchema:()=>a_,LegacyTitledEnumSchemaSchema:()=>df,ListChangedOptionsBaseSchema:()=>s0,ListPromptsRequestSchema:()=>sj,ListPromptsResultSchema:()=>sC,ListResourceTemplatesRequestSchema:()=>su,ListResourceTemplatesResultSchema:()=>sm,ListResourcesRequestSchema:()=>sl,ListResourcesResultSchema:()=>sp,ListRootsRequestSchema:()=>dO,ListRootsResultSchema:()=>dE,ListTasksRequestSchema:()=>dB,ListTasksResultSchema:()=>dK,ListToolsRequestSchema:()=>sK,ListToolsResultSchema:()=>sJ,LoggingLevelSchema:()=>s2,LoggingMessageNotificationParamsSchema:()=>s3,LoggingMessageNotificationSchema:()=>s9,ModelHintSchema:()=>s5,ModelPreferencesSchema:()=>s8,MultiSelectEnumSchemaSchema:()=>d_,NotificationSchema:()=>ax,NotificationsParamsSchema:()=>aI,NumberSchemaSchema:()=>dp,PaginatedRequestParamsSchema:()=>a7,PaginatedRequestSchema:()=>se,PaginatedResultSchema:()=>st,PingRequestSchema:()=>a3,PrimitiveSchemaDefinitionSchema:()=>db,ProgressNotificationParamsSchema:()=>a5,ProgressNotificationSchema:()=>a8,ProgressSchema:()=>a9,ProgressTokenSchema:()=>a$,PromptArgumentSchema:()=>sI,PromptListChangedNotificationSchema:()=>sU,PromptMessageSchema:()=>sF,PromptReferenceSchema:()=>dI,PromptSchema:()=>sx,ReadResourceRequestParamsSchema:()=>sf,ReadResourceRequestSchema:()=>sh,ReadResourceResultSchema:()=>sy,RelatedTaskMetadataSchema:()=>aw,RequestIdSchema:()=>aT,RequestMetaSchema:()=>aP,RequestSchema:()=>aq,ResourceContentsSchema:()=>sr,ResourceLinkSchema:()=>sz,ResourceListChangedNotificationSchema:()=>sg,ResourceRequestParamsSchema:()=>sf,ResourceSchema:()=>sd,ResourceTemplateReferenceSchema:()=>dq,ResourceTemplateSchema:()=>sc,ResourceUpdatedNotificationParamsSchema:()=>sR,ResourceUpdatedNotificationSchema:()=>sq,ResultMetaObjectSchema:()=>aj,ResultSchema:()=>aC,RoleSchema:()=>sa,RootSchema:()=>dT,RootsListChangedNotificationSchema:()=>dA,SamplingContentSchema:()=>dt,SamplingMessageContentBlockSchema:()=>dr,SamplingMessageSchema:()=>di,ServerCapabilitiesSchema:()=>a1,ServerNotificationSchema:()=>d0,ServerRequestSchema:()=>d1,ServerResultSchema:()=>d2,ServerTasksCapabilitySchema:()=>aZ,SetLevelRequestParamsSchema:()=>s4,SetLevelRequestSchema:()=>s6,SingleSelectEnumSchemaSchema:()=>dh,StringSchemaSchema:()=>dl,SubscribeRequestParamsSchema:()=>sf,SubscribeRequestSchema:()=>s_,SubscriptionFilterSchema:()=>sb,SubscriptionsAcknowledgedNotificationParamsSchema:()=>sk,SubscriptionsAcknowledgedNotificationSchema:()=>sw,SubscriptionsListenRequestParamsSchema:()=>s$,SubscriptionsListenRequestSchema:()=>sS,SubscriptionsListenResultMetaSchema:()=>sP,SubscriptionsListenResultSchema:()=>sV,TaskAugmentedRequestParamsSchema:()=>aR,TaskCreationParamsSchema:()=>dW,TaskMetadataSchema:()=>ak,TaskSchema:()=>dN,TaskStatusNotificationParamsSchema:()=>dD,TaskStatusNotificationSchema:()=>dF,TaskStatusSchema:()=>dM,TextContentSchema:()=>sE,TextResourceContentsSchema:()=>si,TitledMultiSelectEnumSchemaSchema:()=>dg,TitledSingleSelectEnumSchemaSchema:()=>dm,ToolAnnotationsSchema:()=>sH,ToolChoiceSchema:()=>s7,ToolExecutionSchema:()=>sG,ToolListChangedNotificationSchema:()=>s1,ToolResultContentSchema:()=>de,ToolSchema:()=>sB,ToolUseContentSchema:()=>sM,UnsubscribeRequestParamsSchema:()=>sf,UnsubscribeRequestSchema:()=>sv,UntitledMultiSelectEnumSchemaSchema:()=>dy,UntitledSingleSelectEnumSchemaSchema:()=>du});let wN=e=>"object"==typeof e&&null!==e&&!Array.isArray(e)&&"input_required"===e.resultType,wz="x-mcp-header",wD=/^[!#$%&'*+\-.^_`|~0-9A-Za-z]+$/,wF=new Set(["string","integer","boolean"]);function wL(e){let t,r=[],i=new Map,o=(e,n,a)=>{if(null===e||"object"!=typeof e)return;if(wz in e){if(!a||0===n.length)return`${wG(n)}: x-mcp-header is only permitted on properties statically reachable via a chain of 'properties' keys (not under items, additionalProperties, oneOf/anyOf/allOf/not, if/then/else, or $ref)`;let o=e[wz];if("string"!=typeof o||0===o.length)return`${wG(n)}: x-mcp-header MUST be a non-empty string`;if(!wD.test(o))return`${wG(n)}: x-mcp-header '${o}' is not a valid RFC 9110 token (no spaces, control characters or HTTP delimiters)`;let s="string"==typeof e.type?e.type:void 0;if(void 0===s||!wF.has(s)){let e=`${wG(n)}: x-mcp-header is only permitted on primitive-typed properties (string, integer, boolean); got ${s??""}`;if("number"!==s)return e;t??=e}let d=o.toLowerCase(),c=i.get(d);if(void 0!==c)return`x-mcp-header '${o}' is not case-insensitively unique (also declared as '${c}')`;i.set(d,o),r.push({path:n,headerName:o,type:s})}let s=e.properties;if(null!==s&&"object"==typeof s)for(let[e,t]of Object.entries(s)){let r=o(t,[...n,e],a);if(void 0!==r)return r}for(let t of wU){let r=e[t];if(void 0!==r)for(let e of Array.isArray(r)?r:null!==r&&"object"==typeof r&&wH.has(t)?Object.values(r):[r]){let r=o(e,[...n,`<${t}>`],!1);if(void 0!==r)return r}}},n=o(e,[],!0);return void 0!==n?{valid:!1,reason:t??n}:void 0===t?{valid:!0,declarations:r}:{valid:!1,reason:t,declarations:r}}let wU=["items","prefixItems","contains","additionalProperties","unevaluatedProperties","unevaluatedItems","propertyNames","patternProperties","dependentSchemas","oneOf","anyOf","allOf","not","if","then","else","$defs","definitions"],wH=new Set(["patternProperties","dependentSchemas","$defs","definitions"]);function wG(e){return 0===e.length?"":e.join(".")}let wB="=?base64?";function wK(e){return new Set(e.flatMap(e=>Object.keys(e.shape)))}function wJ(e){if(null==e)return!1;let t=typeof e;return("object"===t||"function"===t)&&"~standard"in e&&"function"==typeof e["~standard"]?.validate}wp.InvalidRequest,wp.UnsupportedProtocolVersion,wp.InvalidParams,wp.MethodNotFound,wp.InvalidParams,wp.MissingRequiredClientCapability,wp.ParseError,wp.InvalidRequest,wp.MethodNotFound,wp.UnsupportedProtocolVersion,wp.MissingRequiredClientCapability;let wZ=!1,wQ="draft-2020-12",wX=/^#\/(\$defs|definitions)\/([^/~%]+)$/;async function wY(e,t){let r=await e["~standard"].validate(t);return r.issues&&r.issues.length>0?{success:!1,error:r.issues.map(e=>e.path?.length?`${e.path.map(e=>String("object"==typeof e?e.key:e)).join(".")}: ${e.message}`:e.message).join(", ")}:{success:!0,data:r.value}}let w1=/\\\.\\d\{(\d+)\}/;function w0(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}let w2=new Set(["$comment","deprecated","description","examples","readOnly","title","writeOnly"]);function w4(e){return w2.has(e)||e.startsWith("x-")}let w6=new Set(["$schema",...Object.keys(d$.shape.requestedSchema.shape)]),w3={string:wK([dl,du,dm,df]),number:wK([dp]),integer:wK([dp]),boolean:wK([dc]),array:wK([dy,dg])},w9=new Set(dl.shape.format.unwrap().options);Object.assign(function(e){let t=void 0!==e.inputRequests&&Object.keys(e.inputRequests).length>0,r="string"==typeof e.requestState;if(!t&&!r)throw TypeError("inputRequired() requires at least one of inputRequests (with at least one entry) or requestState (spec: every InputRequiredResult MUST include at least one of the two)");return{resultType:"input_required",...void 0!==e.inputRequests&&{inputRequests:e.inputRequests},...void 0!==e.requestState&&{requestState:e.requestState}}},{elicit(e){try{return{method:"elicitation/create",params:function(e){var t;if(!wJ(e.requestedSchema))return{...e,mode:"form",requestedSchema:e.requestedSchema};let r=e.requestedSchema["~standard"].vendor,i=function(e,t){let r={},i=[];for(let[o,n]of Object.entries(e))"properties"===o&&w0(n)?r[o]=Object.fromEntries(Object.entries(n).map(([e,r])=>[e,function(e,t,r,i){if(!w0(e))return e;let o="string"==typeof e.type&&Object.hasOwn(w3,e.type)?w3[e.type]:void 0;if(void 0===o)return e;let n={};for(let[s,d]of Object.entries(e))if(o.has(s)||w4(s))n[s]=d;else if("pattern"===s&&"string"===e.type&&"string"==typeof e.format)if(w9.has(e.format)){var a;"string"==typeof d&&(a=e.format,"zod"!==r||(function(e,t){let r;switch(e){case"email":r=[iw(nn,void 0)];break;case"uri":r=[iP(nd,void 0)];break;case"date":r=[iR(nr,void 0)];break;case"date-time":let i,o;i=w1.exec(t),o=[void 0,-1,0],i&&o.push(Number(i[1])),r=[!1,!0].flatMap(e=>[!1,!0].flatMap(t=>o.map(r=>ac({local:e,offset:t,precision:r}))))}return new Set(r.map(e=>{let t;return t=ox(e,{target:wQ,io:"input"}),"string"==typeof t.pattern?t.pattern:void 0}).filter(e=>void 0!==e))})(a,d).has(d))||i.push(`${t}.${s}`)}else n[s]=d;else i.push(`${t}.${s}`);return n}(r,`properties.${e}`,t,i)])):w6.has(o)?r[o]=n:w4(o)||i.push(o);if(i.length>0)throw new wu(wp.InvalidParams,`Elicitation requestedSchema contains unsupported JSON Schema constraint(s) after Standard Schema conversion: ${i.join(", ")}`);return r}(function(e){try{return function(e,t="input"){let r,i=e["~standard"];if(i.jsonSchema)r=i.jsonSchema[t]({target:wQ});else if("zod"===i.vendor){if(!("_zod"in e))throw Error("Schema appears to be from zod 3, which the SDK cannot convert to JSON Schema. Upgrade to zod >=4.2.0, or wrap your JSON Schema with fromJsonSchema().");wZ||(wZ=!0,console.warn("[mcp-sdk] Your zod version does not implement `~standard.jsonSchema` (added in zod 4.2.0). Falling back to z.toJSONSchema(). Upgrade to zod >=4.2.0 to silence this warning.")),r=ox(e,{target:wQ,io:t})}else throw Error(`Schema library "${i.vendor}" does not implement StandardJSONSchemaV1 (\`~standard.jsonSchema\`). Upgrade to a version that does, or wrap your JSON Schema with fromJsonSchema().`);if("output"===t)return void 0!==r.type||!function e(t,r=t){if("properties"in t||"patternProperties"in t||"additionalProperties"in t||"required"in t)return!0;let i="string"==typeof t.$ref&&wX.exec(t.$ref);if(i&&r[i[1]]?.[i[2]]?.type==="object")return!0;for(let i of["oneOf","anyOf","allOf"]){let o=t[i];if(Array.isArray(o)&&o.length>0)return o.every(t=>null!==t&&"object"==typeof t&&("object"===t.type||e(t,"$id"in t?{}:r)))}return!1}(r)?r:{type:"object",...r};if(void 0!==r.type&&"object"!==r.type)throw Error(`MCP tool and prompt schemas must describe objects (got type: ${JSON.stringify(r.type)}). Wrap your schema in z.object({...}) or equivalent.`);return{type:"object",...r}}(e,"input")}catch(t){let e=t instanceof Error?t.message:String(t);throw new wu(wp.InvalidParams,`Elicitation requestedSchema must describe an object with flat primitive properties: ${e}`)}}(e.requestedSchema),r),o=(t=d$.shape.requestedSchema,oJ(t,i));if(!o.success)throw new wu(wp.InvalidParams,`Elicitation requestedSchema only supports flat primitive properties (string, number, integer, boolean, and string enums): ${function(e,t){if(!w0(e.properties))return t;let r=Object.entries(e.properties).filter(([,e])=>!oJ(db,e).success).map(([e])=>`properties.${e}`);return r.length>0?r.join(", "):t}(i,o.error.message)}`);let n=function e(t,r,i=""){return Array.isArray(t)&&Array.isArray(r)?t.flatMap((t,o)=>e(t,r[o],`${i}[${o}]`)):w0(t)&&w0(r)?Object.entries(t).flatMap(([t,o])=>{let n=i?`${i}.${t}`:t;return Object.prototype.hasOwnProperty.call(r,t)?e(o,r[t],n):w4(t)?[]:[n]}):[]}(i,o.data);if(n.length>0)throw new wu(wp.InvalidParams,`Elicitation requestedSchema contains unsupported JSON Schema constraint(s) after Standard Schema conversion: ${n.join(", ")}`);let a=(o.data.required??[]).filter(e=>!Object.prototype.hasOwnProperty.call(o.data.properties,e));if(a.length>0)throw new wu(wp.InvalidParams,`Elicitation requestedSchema lists required properties that are not defined in properties: ${a.join(", ")}`);return{...e,mode:"form",requestedSchema:o.data}}(e)}}catch(e){throw e instanceof wu?TypeError(e.message,{cause:e}):e}},elicitUrl:e=>({method:"elicitation/create",params:{...e,mode:"url"}}),createMessage:e=>({method:"sampling/createMessage",params:e}),listRoots:()=>({method:"roots/list"})});let w5={},w8={};function w7(e,t){let r=e.slice(0,-6);w5[r]=t,w8[r]=e=>t.safeParse(e).success}for(let e of["AnnotationsSchema","AudioContentSchema","BaseMetadataSchema","BlobResourceContentsSchema","BooleanSchemaSchema","CallToolRequestSchema","CallToolRequestParamsSchema","CallToolResultSchema","CancelledNotificationSchema","CancelledNotificationParamsSchema","CancelTaskRequestSchema","CancelTaskResultSchema","ClientCapabilitiesSchema","ClientNotificationSchema","ClientRequestSchema","ClientResultSchema","CompatibilityCallToolResultSchema","CompleteRequestSchema","CompleteRequestParamsSchema","CompleteResultSchema","ContentBlockSchema","CreateMessageRequestSchema","CreateMessageRequestParamsSchema","CreateMessageResultSchema","CreateMessageResultWithToolsSchema","CreateTaskResultSchema","CursorSchema","DiscoverRequestSchema","DiscoverResultSchema","ElicitationCompleteNotificationSchema","ElicitationCompleteNotificationParamsSchema","ElicitRequestSchema","ElicitRequestFormParamsSchema","ElicitRequestParamsSchema","ElicitRequestURLParamsSchema","ElicitResultSchema","EmbeddedResourceSchema","EmptyResultSchema","EnumSchemaSchema","GetPromptRequestSchema","GetPromptRequestParamsSchema","GetPromptResultSchema","GetTaskPayloadRequestSchema","GetTaskPayloadResultSchema","GetTaskRequestSchema","GetTaskResultSchema","IconSchema","IconsSchema","ImageContentSchema","ImplementationSchema","InitializedNotificationSchema","InitializeRequestSchema","InitializeRequestParamsSchema","InitializeResultSchema","JSONArraySchema","JSONObjectSchema","JSONRPCErrorResponseSchema","JSONRPCMessageSchema","JSONRPCNotificationSchema","JSONRPCRequestSchema","JSONRPCResponseSchema","JSONRPCResultResponseSchema","JSONValueSchema","LegacyTitledEnumSchemaSchema","ListPromptsRequestSchema","ListPromptsResultSchema","ListResourcesRequestSchema","ListResourcesResultSchema","ListResourceTemplatesRequestSchema","ListResourceTemplatesResultSchema","ListRootsRequestSchema","ListRootsResultSchema","ListTasksRequestSchema","ListTasksResultSchema","ListToolsRequestSchema","ListToolsResultSchema","LoggingLevelSchema","LoggingMessageNotificationSchema","LoggingMessageNotificationParamsSchema","ModelHintSchema","ModelPreferencesSchema","MultiSelectEnumSchemaSchema","NotificationSchema","NumberSchemaSchema","PaginatedRequestSchema","PaginatedRequestParamsSchema","PaginatedResultSchema","PingRequestSchema","PrimitiveSchemaDefinitionSchema","ProgressSchema","ProgressNotificationSchema","ProgressNotificationParamsSchema","ProgressTokenSchema","PromptSchema","PromptArgumentSchema","PromptListChangedNotificationSchema","PromptMessageSchema","PromptReferenceSchema","ReadResourceRequestSchema","ReadResourceRequestParamsSchema","ReadResourceResultSchema","RelatedTaskMetadataSchema","RequestSchema","RequestIdSchema","RequestMetaSchema","ResourceSchema","ResourceContentsSchema","ResourceLinkSchema","ResourceListChangedNotificationSchema","ResourceRequestParamsSchema","ResourceTemplateSchema","ResourceTemplateReferenceSchema","ResourceUpdatedNotificationSchema","ResourceUpdatedNotificationParamsSchema","ResultMetaObjectSchema","ResultSchema","RoleSchema","RootSchema","RootsListChangedNotificationSchema","SamplingContentSchema","SamplingMessageSchema","SamplingMessageContentBlockSchema","ServerCapabilitiesSchema","ServerNotificationSchema","ServerRequestSchema","ServerResultSchema","SetLevelRequestSchema","SetLevelRequestParamsSchema","SingleSelectEnumSchemaSchema","StringSchemaSchema","SubscribeRequestSchema","SubscribeRequestParamsSchema","SubscriptionFilterSchema","SubscriptionsAcknowledgedNotificationSchema","SubscriptionsAcknowledgedNotificationParamsSchema","SubscriptionsListenRequestSchema","SubscriptionsListenRequestParamsSchema","SubscriptionsListenResultSchema","SubscriptionsListenResultMetaSchema","TaskAugmentedRequestParamsSchema","TaskCreationParamsSchema","TaskMetadataSchema","TaskSchema","TaskStatusSchema","TaskStatusNotificationSchema","TaskStatusNotificationParamsSchema","TextContentSchema","TextResourceContentsSchema","TitledMultiSelectEnumSchemaSchema","TitledSingleSelectEnumSchemaSchema","ToolSchema","ToolAnnotationsSchema","ToolChoiceSchema","ToolExecutionSchema","ToolListChangedNotificationSchema","ToolResultContentSchema","ToolUseContentSchema","UnsubscribeRequestSchema","UnsubscribeRequestParamsSchema","UntitledMultiSelectEnumSchemaSchema","UntitledSingleSelectEnumSchemaSchema"])w7(e,wM[e]);for(let[e,t]of Object.entries({IdJagTokenExchangeResponseSchema:ct,OAuthClientInformationFullSchema:ca,OAuthClientInformationSchema:cn,OAuthClientMetadataSchema:co,OAuthClientRegistrationErrorSchema:cs,OAuthErrorResponseSchema:cr,OAuthMetadataSchema:d5,OAuthProtectedResourceMetadataSchema:d9,OAuthTokenRevocationRequestSchema:cd,OAuthTokensSchema:ce,OpenIdProviderDiscoveryMetadataSchema:d7,OpenIdProviderMetadataSchema:d8}))w7(e,t);Object.freeze(w5);let Pe=Object.freeze(w8),Pt=[au,am,ah,ag],Pr=["inputResponses","requestState"];function Pi(e,t){let r=e.params;if(!Ps(r))return{message:e,lifted:{}};let i=r._meta,o=Ps(i)?Pt.filter(e=>e in i):[],n="request"===t?Pr.filter(e=>e in r):[];if(0===o.length&&0===n.length)return{message:e,lifted:{}};let a={},s={...r};if(o.length>0&&Ps(i)){let e={},t={...i};for(let r of o)e[r]=i[r],delete t[r];a.envelope=e,Object.keys(t).length>0?s._meta=t:delete s._meta}for(let e of n)"inputResponses"===e&&(a.inputResponses=s[e]),"requestState"===e&&(a.requestState=s[e]),delete s[e];return{message:{...e,params:s},lifted:a}}function Po(e,t){let r=e.validateResult(t,void 0);if(r.ok||"not-in-era"!==r.reason)return{"~standard":{version:1,vendor:"mcp-wire-codec",validate(r){let i=e.validateResult(t,r);return i.ok?{value:i.value}:{issues:[{message:"invalid"===i.reason?i.message:`not-in-era: ${t}`}]}}}}}let Pn=(ee=void 0,()=>ee);var Pa=class{_transport;_requestMessageId=0;_requestHandlers=new Map;_customSchemaRequestMethods=new Set;_requestHandlerAbortControllers=new Map;_notificationHandlers=new Map;_responseHandlers=new Map;_progressHandlers=new Map;_timeoutInfo=new Map;_pendingDebouncedNotifications=new Set;_negotiatedProtocolVersion;_supportedProtocolVersions;onclose;onerror;fallbackRequestHandler;fallbackNotificationHandler;constructor(e){this._options=e,this._supportedProtocolVersions=e?.supportedProtocolVersions??ap,this.setNotificationHandler("notifications/cancelled",e=>{this._oncancel(e)}),this.setNotificationHandler("notifications/progress",e=>{this._onprogress(e)}),this.setRequestHandler("ping",e=>({}))}_shouldDropInbound(e){}_outboundMetaEnvelope(){}_envelopeOutbound(e){let t=this._outboundMetaEnvelope();if(void 0===t)return e;let r=e.params??{};return{...e,params:{...r,_meta:{...t,...r._meta}}}}_resolveNonCompleteResult(e,t){return Promise.reject(new kH(kU.UnsupportedResultType,`Unsupported result type '${e.kind}' for ${t.request.method}`,{resultType:e.kind,method:t.request.method}))}_getRequestHandler(e){return this._requestHandlers.get(e)}async _oncancel(e){void 0!==e.params.requestId&&this._requestHandlerAbortControllers.get(e.params.requestId)?.abort(e.params.reason)}_setupTimeout(e,t,r,i,o=!1){this._timeoutInfo.set(e,{timeoutId:setTimeout(i,t),startTime:Date.now(),timeout:t,maxTotalTimeout:r,resetTimeoutOnProgress:o,onTimeout:i})}_resetTimeout(e){let t=this._timeoutInfo.get(e);if(!t)return!1;let r=Date.now()-t.startTime;if(t.maxTotalTimeout&&r>=t.maxTotalTimeout)throw this._timeoutInfo.delete(e),new kH(kU.RequestTimeout,"Maximum total timeout exceeded",{maxTotalTimeout:t.maxTotalTimeout,totalElapsed:r});return clearTimeout(t.timeoutId),t.timeoutId=setTimeout(t.onTimeout,t.timeout),!0}_cleanupTimeout(e){let t=this._timeoutInfo.get(e);t&&(clearTimeout(t.timeoutId),this._timeoutInfo.delete(e))}async connect(e){this._transport=e;let t=this.transport?.onclose;this._transport.onclose=()=>{try{t?.()}finally{this._onclose()}};let r=this.transport?.onerror;this._transport.onerror=e=>{r?.(e),this._onerror(e)};let i=this._transport?.onmessage;this._transport.onmessage=(e,t)=>{if(i?.(e,t),aA.safeParse(e).success||aW.safeParse(e).success)this._onresponse(e);else if(aO.safeParse(e).success)this._onrequest(e,t);else aE.safeParse(e).success?this._onnotification(e,t):this._onerror(Error(`Unknown message type: ${JSON.stringify(e)}`))},e.setSupportedProtocolVersions?.(this._supportedProtocolVersions),await this._transport.start()}_onclose(){let e=this._responseHandlers;for(let e of(this._responseHandlers=new Map,this._progressHandlers.clear(),this._pendingDebouncedNotifications.clear(),this._timeoutInfo.values()))clearTimeout(e.timeoutId);this._timeoutInfo.clear();let t=this._requestHandlerAbortControllers;this._requestHandlerAbortControllers=new Map;let r=new kH(kU.ConnectionClosed,"Connection closed");this._transport=void 0;try{this.onclose?.()}finally{for(let t of e.values())t(r);for(let e of t.values())e.abort(r)}}_onerror(e){this.onerror?.(e)}_onnotification(e,t){let{message:r}=Pi(e,"notification"),i=this._negotiatedWireCodec();if(t?.classification===void 0&&"drop"===this._shouldDropInbound(e))return;if(t?.classification!==void 0){let e=wT(t.classification);if(e!==i.era)return void this._onerror(Error(`Era mismatch on inbound notification '${r.method}': classified as ${e} but this instance serves ${i.era}`))}if(wE(r.method)&&!i.hasNotificationMethod(r.method))return;let o=this._notificationHandlers.get(r.method),n=this.fallbackNotificationHandler;(void 0!==o||void 0!==n)&&Promise.resolve().then(()=>void 0===o?n(r):o(r,i)).catch(e=>this._onerror(Error(`Uncaught error in notification handler: ${e}`)))}_onrequest(e,t){var r;let{message:i,lifted:o}=Pi(e,"request"),n=this._negotiatedWireCodec();if(t?.classification===void 0&&"drop"===this._shouldDropInbound(e))return void this._onerror(Error(`Dropped inbound request '${e.method}': not servable on this connection's protocol era`));let a=this._transport,s=(e,t,r)=>{let o={jsonrpc:"2.0",id:i.id,error:{code:e,message:t,...void 0!==r&&{data:r}}};a?.send(o).catch(e=>this._onerror(Error(`Failed to send an error response: ${e}`)))};if(t?.classification!==void 0){let e=wT(t.classification);if(e!==n.era){this._onerror(Error(`Era mismatch on inbound request '${i.method}': classified as ${e} but this instance serves ${n.era}`));let r=t.classification.revision??e;s(wp.UnsupportedProtocolVersion,`Unsupported protocol version: ${r}`,{supported:this._supportedProtocolVersions,requested:r});return}}if(wO(i.method)&&!n.hasRequestMethod(i.method)&&!(wA(i.method)&&this._customSchemaRequestMethods.has(i.method)))return void s(wp.MethodNotFound,"Method not found");let d=this._requestHandlers.get(i.method)??this.fallbackRequestHandler;if(void 0===d)return void s(wp.MethodNotFound,"Method not found");let c=n.checkInboundEnvelope(o);if(void 0!==c)return void s(wp.InvalidParams,c);let l=(e,t)=>this._notificationViaCodec(this._resolveOutboundCodec(e.method),e,{...t,relatedRequestId:i.id}),p=(e,t,r)=>this._requestWithSchemaViaCodec(this._resolveOutboundCodec(e.method),e,t,{...r,relatedRequestId:i.id}),u=new AbortController;this._requestHandlerAbortControllers.set(i.id,u);let m=void 0===o.inputResponses?void 0:function(e){let t={},r=[];if(!Pd(e))return{accepted:t,droppedKeys:r};for(let[i,o]of Object.entries(e)){if(!Pd(o)||"method"in o||"result"in o){r.push(i);continue}t[i]=o}return{accepted:t,droppedKeys:r}}(o.inputResponses),f={sessionId:a?.sessionId,mcpReq:{id:i.id,method:i.method,_meta:i.params?._meta,...void 0!==o.envelope&&{envelope:o.envelope},...void 0!==m&&{inputResponses:m.accepted},...void 0!==m&&m.droppedKeys.length>0&&{droppedInputResponseKeys:m.droppedKeys},requestState:void 0===o.requestState?Pn:(r=o.requestState,()=>r),signal:u.signal,send:(e,t,r)=>{let i=this._resolveOutboundCodec(e.method);if(this._assertOutboundRequestInEra(i,e.method),wJ(t))return p(e,t,r);let o=Po(i,e.method);if(void 0===o)throw TypeError(`'${e.method}' is not a spec method; pass a result schema as the second argument to ctx.mcpReq.send().`);return p(e,o,t)},notify:l},http:t?.authInfo?{authInfo:t.authInfo}:void 0},h=this.buildContext(f,t);Promise.resolve().then(()=>d(i,h)).then(async e=>{let t;if(u.signal.aborted)return;try{t=n.encodeResult(i.method,e,this._outboundServerInfo())}catch(e){this._onerror(Error(`Failed to encode result for ${i.method}: ${e}`)),s(wp.InternalError,"Internal error");return}let r={result:t,jsonrpc:"2.0",id:i.id};await a?.send(r)},async e=>{if(u.signal.aborted)return;let t=Number.isSafeInteger(e.code)?e.code:wp.InternalError,r={jsonrpc:"2.0",id:i.id,error:{code:n.encodeErrorCode(t),message:e.message??"Internal error",...void 0!==e.data&&{data:e.data}}};await a?.send(r)}).catch(e=>this._onerror(Error(`Failed to send response: ${e}`))).finally(()=>{this._requestHandlerAbortControllers.get(i.id)===u&&this._requestHandlerAbortControllers.delete(i.id)})}_onprogress(e){let{progressToken:t,...r}=e.params,i=Number(t),o=this._progressHandlers.get(i);if(!o)return void this._onerror(Error(`Received a progress notification for an unknown token: ${JSON.stringify(e)}`));let n=this._responseHandlers.get(i),a=this._timeoutInfo.get(i);if(a&&n&&a.resetTimeoutOnProgress)try{this._resetTimeout(i)}catch(e){this._responseHandlers.delete(i),this._progressHandlers.delete(i),this._cleanupTimeout(i),n(e);return}o(r)}_onresponse(e){let t=Number(e.id),r=this._responseHandlers.get(t);void 0===r?this._onerror(Error(`Received a response for an unknown message ID: ${JSON.stringify(e)}`)):(this._responseHandlers.delete(t),this._cleanupTimeout(t),this._progressHandlers.delete(t),r(aA.safeParse(e).success?e:wu.fromError(e.error.code,e.error.message,e.error.data)))}get transport(){return this._transport}async close(){await this._transport?.close()}request(e,t,r){let i=this._resolveOutboundCodec(e.method);if(wJ(t))return wA(e.method)||this._assertOutboundRequestInEra(i,e.method),this._requestWithSchemaViaCodec(i,e,t,r);this._assertOutboundRequestInEra(i,e.method);let o=Po(i,e.method);if(void 0===o)throw TypeError(`'${e.method}' is not a spec method; pass a result schema as the second argument to request().`);return this._requestWithSchemaViaCodec(i,e,o,t)}_negotiatedWireCodec(){return wC(this._negotiatedProtocolVersion)}_wireCodec(){return this._negotiatedWireCodec()}_resolveOutboundCodec(e){if(void 0===this._negotiatedProtocolVersion){let t=function(e){switch(e){case"initialize":case"notifications/initialized":return wC(void 0);case"server/discover":return wC(wj);default:return}}(e);if(t)return t}return this._negotiatedWireCodec()}_assertOutboundRequestInEra(e,t){if(wO(t)&&!e.hasRequestMethod(t))throw new kH(kU.MethodNotSupportedByProtocolVersion,`Method '${t}' is not supported by the negotiated protocol version (wire era ${e.era})`,{method:t,era:e.era})}_requestWithSchema(e,t,r){let i=this._resolveOutboundCodec(e.method);return this._assertOutboundRequestInEra(i,e.method),this._requestWithSchemaViaCodec(i,e,t,r)}_requestWithSchemaViaCodec(e,t,r,i){let o,n,{relatedRequestId:a,resumptionToken:s,onresumptiontoken:d,headers:c}=i??{},l=Date.now();return new Promise((p,u)=>{let m=e=>{u(e)};if(!this._transport)return void m(Error("Not connected"));if(this._options?.enforceStrictCapabilities===!0)try{this.assertCapabilityForMethod(t.method)}catch(e){m(e);return}if(i?.signal?.aborted){let e=i.signal.reason;throw e instanceof kH?e:new kH(kU.RequestTimeout,String(e))}let f=e.era===wj&&!0===this._transport.hasPerRequestStream?new AbortController:void 0,h=this._requestMessageId++;n=h;let y={...t,jsonrpc:"2.0",id:h};i?.onprogress&&(this._progressHandlers.set(h,i.onprogress),y.params={...t.params,_meta:{...t.params?._meta,progressToken:h}});let g=this._envelopeOutbound(y),_=!1,v=e=>{_||(this._progressHandlers.delete(h),void 0===f?"initialize"!==t.method&&this._transport?.send(this._envelopeOutbound({jsonrpc:"2.0",method:"notifications/cancelled",params:{requestId:h,reason:String(e)}}),{relatedRequestId:a,resumptionToken:s,onresumptiontoken:d}).catch(e=>this._onerror(Error(`Failed to send cancellation: ${e}`))):f.abort(),u(e instanceof kH?e:new kH(kU.RequestTimeout,String(e))))};this._responseHandlers.set(h,o=>{let n;if(!i?.signal?.aborted){if(_=!0,o instanceof Error)return u(o);try{n=e.decodeResult(t.method,o.result)}catch(e){return u(e instanceof Error?e:Error(String(e)))}if("invalid"===n.kind)return u(n.error);if("input_required"===n.kind){var a;return i?.allowInputRequired===!0?p({resultType:"input_required",inputRequests:(a=n).inputRequests,...void 0!==a.requestState&&{requestState:a.requestState},...void 0!==a._meta&&{_meta:a._meta}}):p(this._resolveNonCompleteResult(n,{codec:e,request:t,resultSchema:r,options:i,flowStartedAt:l,retry:(i,o)=>this._requestWithSchemaViaCodec(e,void 0===i?{method:t.method}:{method:t.method,params:i},r,o)}))}wY(r,n.result).then(e=>{e.success?p(e.data):u(new kH(kU.InvalidResult,`Invalid result for ${t.method}: ${e.error}`))},u)}}),o=()=>v(i?.signal?.reason),i?.signal?.addEventListener("abort",o,{once:!0});let b=i?.timeout??6e4;this._setupTimeout(h,b,i?.maxTotalTimeout,()=>v(new kH(kU.RequestTimeout,"Request timed out",{timeout:b})),i?.resetTimeoutOnProgress??!1),this._transport.send(g,{relatedRequestId:a,resumptionToken:s,onresumptiontoken:d,headers:c,requestSignal:f?.signal}).catch(e=>{this._progressHandlers.delete(h),u(e)})}).finally(()=>{o&&i?.signal?.removeEventListener("abort",o),void 0!==n&&(this._responseHandlers.delete(n),this._cleanupTimeout(n))})}async notification(e,t){return await this._notificationViaCodec(this._resolveOutboundCodec(e.method),e,t)}async _notificationViaCodec(e,t,r){if(!this._transport)throw new kH(kU.NotConnected,"Not connected");if(wE(t.method)&&!e.hasNotificationMethod(t.method))throw new kH(kU.MethodNotSupportedByProtocolVersion,`Notification '${t.method}' is not supported by the negotiated protocol version (wire era ${e.era})`,{method:t.method,era:e.era});this.assertNotificationCapability(t.method);let i=this._envelopeOutbound({jsonrpc:"2.0",...t});if((this._options?.debouncedNotificationMethods??[]).includes(t.method)&&!t.params&&r?.relatedRequestId===void 0){if(this._pendingDebouncedNotifications.has(t.method))return;this._pendingDebouncedNotifications.add(t.method),Promise.resolve().then(()=>{this._pendingDebouncedNotifications.delete(t.method),this._transport&&this._transport?.send(i,r).catch(e=>this._onerror(e))});return}await this._transport.send(i,r)}setRequestHandler(e,t,r){let i;if(this.assertRequestHandlerCapability(e),"function"==typeof t){if(!wO(e))throw TypeError(`'${e}' is not a spec request method; pass schemas as the second argument to setRequestHandler().`);i=(r,i)=>{let o=this._negotiatedWireCodec(),n=o.validateRequest(e,r);if(n.ok||"not-in-era"!==n.reason||(n=o.validateInputRequest(e,r)),!n.ok){if("not-in-era"===n.reason)throw new wu(wp.InternalError,`No wire schema for ${e} in the resolved era`);throw Error(n.message)}return Promise.resolve(t(n.value,i))}}else if(r)i=async(i,o)=>{let n=await wY(t.params,{...i.params});if(!n.success)throw new wu(wp.InvalidParams,`Invalid params for ${e}: ${n.error}`);return r(n.data,o)};else throw TypeError("setRequestHandler: handler is required");"function"==typeof t?this._customSchemaRequestMethods.delete(e):this._customSchemaRequestMethods.add(e),this._requestHandlers.set(e,this._wrapHandler(e,i))}_wrapHandler(e,t){return t}_outboundServerInfo(){}removeRequestHandler(e){this._requestHandlers.delete(e),this._customSchemaRequestMethods.delete(e)}assertCanSetRequestHandler(e){if(this._requestHandlers.has(e))throw Error(`A request handler for ${e} already exists, which would be overridden`)}setNotificationHandler(e,t,r){if("function"==typeof t){if(!wE(e))throw TypeError(`'${e}' is not a spec notification method; pass schemas as the second argument to setNotificationHandler().`);this._notificationHandlers.set(e,(r,i)=>{let o=i.validateNotification(e,r);if(!o.ok){if("not-in-era"===o.reason)throw new wu(wp.InternalError,`No wire schema for ${e} in the resolved era`);throw Error(o.message)}return Promise.resolve(t(o.value))});return}if(!r)throw TypeError("setNotificationHandler: handler is required");this._notificationHandlers.set(e,async i=>{let o=await wY(t.params,{...i.params});if(!o.success)throw new wu(wp.InvalidParams,`Invalid params for notification ${e}: ${o.error}`);await r(o.data,i)})}removeNotificationHandler(e){this._notificationHandlers.delete(e)}};function Ps(e){return null!==e&&"object"==typeof e&&!Array.isArray(e)}function Pd(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}function Pc(e){throw new kH(kU.SendFailed,`ctx.mcpReq.${e} is not available while fulfilling an embedded input request: the request is fulfilled locally and has no related peer request`)}(kA(e=>{var t=/; *([!#$%&'*+.^_`|~0-9A-Za-z-]+) *= *("(?:[\u000b\u0020\u0021\u0023-\u005b\u005d-\u007e\u0080-\u00ff]|\\[\u000b\u0020-\u00ff])*"|[!#$%&'*+.^_`|~0-9A-Za-z-]+) */g,r=/\\([\u000b\u0020-\u00ff])/g,i=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+\/[!#$%&'*+.^_`|~0-9A-Za-z-]+$/;function o(e){this.parameters=Object.create(null),this.type=e}e.parse=function(e){if(!e)throw TypeError("argument string is required");var n,a,s,d="object"==typeof e?function(e){var t;if("function"==typeof e.getHeader?t=e.getHeader("content-type"):"object"==typeof e.headers&&(t=e.headers&&e.headers["content-type"]),"string"!=typeof t)throw TypeError("content-type header is missing from object");return t}(e):e;if("string"!=typeof d)throw TypeError("argument string is required to be a string");var c=d.indexOf(";"),l=-1!==c?d.slice(0,c).trim():d.trim();if(!i.test(l))throw TypeError("invalid media type");var p=new o(l.toLowerCase());if(-1!==c){for(t.lastIndex=c;a=t.exec(d);){if(a.index!==c)throw TypeError("invalid parameter format");c+=a[0].length,n=a[1].toLowerCase(),34===(s=a[2]).charCodeAt(0)&&-1!==(s=s.slice(1,-1)).indexOf("\\")&&(s=s.replace(r,"$1")),p.parameters[n]=s}if(c!==d.length)throw TypeError("invalid parameter format")}return p}}))();var Pl=class{_buffer;_maxBufferSize;constructor(e){this._maxBufferSize=e?.maxBufferSize??0xa00000}append(e){if((this._buffer?.length??0)+e.length>this._maxBufferSize)throw this.clear(),Error(`ReadBuffer exceeded maximum size of ${this._maxBufferSize} bytes`);this._buffer=this._buffer?Buffer.concat([this._buffer,e]):e}readMessage(){for(;this._buffer;){let t=this._buffer.indexOf("\n");if(-1===t)break;let r=this._buffer.toString("utf8",0,t).replace(/\r$/,"");this._buffer=this._buffer.subarray(t+1);try{var e;return e=r,aM.parse(JSON.parse(e))}catch(e){if(e instanceof SyntaxError)continue;throw e}}return null}clear(){this._buffer=void 0}};let Pp=el("../../node_modules/.pnpm/cross-spawn@7.0.6/node_modules/cross-spawn/index.js"),Pu="win32"===N.platform?["APPDATA","COMSPEC","HOMEDRIVE","HOMEPATH","LOCALAPPDATA","PATH","PATHEXT","PROCESSOR_ARCHITECTURE","PROGRAMDATA","PROGRAMFILES","PROGRAMFILES(X86)","PROGRAMW6432","SYSTEMDRIVE","SYSTEMROOT","TEMP","USERNAME","USERPROFILE","WINDIR"]:["HOME","LOGNAME","PATH","SHELL","TERM","USER"];var Pm=class{_process;_readBuffer;_serverParams;_stderrStream=null;onclose;onerror;onmessage;constructor(e){this._serverParams=e,this._readBuffer=new Pl({maxBufferSize:e.maxBufferSize}),("pipe"===e.stderr||"overlapped"===e.stderr)&&(this._stderrStream=new F)}async start(){if(this._process)throw Error("StdioClientTransport already started! If using Client class, note that connect() calls start() automatically.");return new Promise((e,t)=>{this._process=Pp(this._serverParams.command,this._serverParams.args??[],{env:{...function(){let e={};for(let t of Pu){let r=N.env[t];void 0!==r&&(r.startsWith("()")||(e[t]=r))}return e}(),...this._serverParams.env},stdio:["pipe","pipe",this._serverParams.stderr??"inherit"],shell:!1,windowsHide:"win32"===N.platform,cwd:this._serverParams.cwd}),this._process.on("error",e=>{t(e),this.onerror?.(e)}),this._process.on("spawn",()=>{e()}),this._process.on("close",e=>{this._process=void 0,this.onclose?.()}),this._process.stdin?.on("error",e=>{this.onerror?.(e)}),this._process.stdout?.on("data",e=>{try{this._readBuffer.append(e),this.processReadBuffer()}catch(e){this.onerror?.(e),this.close().catch(()=>{})}}),this._process.stdout?.on("error",e=>{this.onerror?.(e)}),this._stderrStream&&this._process.stderr&&this._process.stderr.pipe(this._stderrStream)})}get stderr(){return this._stderrStream?this._stderrStream:this._process?.stderr??null}get pid(){return this._process?.pid??null}processReadBuffer(){for(;;)try{let e=this._readBuffer.readMessage();if(null===e)break;this.onmessage?.(e)}catch(e){this.onerror?.(e)}}async _dispose(){let e=this._process;if(this._process=void 0,e&&null===e.exitCode&&null===e.signalCode){let t=new Promise(t=>e.once("exit",()=>t()));try{e.stdin?.end()}catch{}try{e.kill("SIGTERM")}catch{}if(await Promise.race([t,new Promise(e=>setTimeout(e,1e3).unref())]),null===e.exitCode&&null===e.signalCode)try{e.kill("SIGKILL")}catch{}await t}try{e?.stdout?.destroy()}catch{}try{e?.stdin?.destroy()}catch{}try{e?.stderr?.destroy()}catch{}this._readBuffer.clear()}async close(){if(this._process){let e=this._process;this._process=void 0;let t=new Promise(t=>{e.once("close",()=>{t()})});try{e.stdin?.end()}catch{}if(await Promise.race([t,new Promise(e=>setTimeout(e,2e3).unref())]),null===e.exitCode){try{e.kill("SIGTERM")}catch{}await Promise.race([t,new Promise(e=>setTimeout(e,2e3).unref())])}if(null===e.exitCode)try{e.kill("SIGKILL")}catch{}}this._readBuffer.clear()}send(e){return new Promise(t=>{if(!this._process?.stdin)throw new kH(kU.NotConnected,"Not connected");let r=JSON.stringify(e)+"\n";this._process.stdin.write(r)?t():this._process.stdin.once("drain",t)})}};let Pf=new TextEncoder,Ph=new TextDecoder,Py=new TextDecoder("utf-8",{fatal:!0});function Pg(...e){let t=new Uint8Array(e.reduce((e,{length:t})=>e+t,0)),r=0;for(let i of e)t.set(i,r),r+=i.length;return t}function P_(e,t,r){if(t<0||t>=0x100000000)throw RangeError(`value must be >= 0 and <= 4294967295. Received ${t}`);e.set([t>>>24,t>>>16,t>>>8,255&t],r)}function Pv(e){let t=Math.floor(e/0x100000000),r=new Uint8Array(8);return P_(r,t,0),P_(r,e%0x100000000,4),r}function Pb(e){let t=new Uint8Array(4);return P_(t,e),t}let P$=/[^\x00-\x7f]/;function PS(e){if("string"==typeof e&&e.length>=128){if(P$.test(e))throw TypeError("non-ASCII string encountered in encode()");return Pf.encode(e)}let t=new Uint8Array(e.length);for(let r=0;r127)throw TypeError("non-ASCII string encountered in encode()");t[r]=i}return t}function Pk(e,t=!1){if(Uint8Array.prototype.toBase64)return e.toBase64({alphabet:t?"base64url":"base64",omitPadding:t});let r=[];for(let t=0;t"string"!=typeof e)))throw TypeError(`"${e}" option must be an array of strings`);return void 0===t?void 0:new Set(t)}function P1(e,t){let{crit:r}=t??{};if(Array.isArray(r)&&new Set(r).size!==r.length)throw new e('"crit" (Critical) Header Parameter MUST NOT contain duplicate values')}function P0(e,t,r,i,o){if(void 0!==o.crit&&i?.crit===void 0)throw new e('"crit" (Critical) Header Parameter MUST be integrity protected');if(!i||void 0===i.crit)return[];if(!Array.isArray(i.crit)||0===i.crit.length||i.crit.some(e=>"string"!=typeof e||0===e.length))throw new e('"crit" (Critical) Header Parameter MUST be an array of non-empty strings when present');let n=void 0===r?t:{__proto__:null,...r,...t};for(let t of i.crit){if(!(t in n))throw new Px(`Extension Header Parameter "${t}" is not recognized`);if(!Object.hasOwn(o,t)||void 0===o[t])throw new e(`Extension Header Parameter "${t}" is missing`);if(n[t]&&(!Object.hasOwn(i,t)||void 0===i[t]))throw new e(`Extension Header Parameter "${t}" MUST be integrity protected`)}return i.crit}function P2(e,t){if(t.includes("b64")){let t=e.b64;if("boolean"!=typeof t)throw new PT('The "b64" (base64url-encode payload) Header Parameter must be a boolean');return t}return!0}function P4(e,t){let r,i;try{r=JSON.stringify(t),i=JSON.parse(r)}catch(t){throw new e("JOSE Header is not valid JSON",{cause:t})}if(!PU(i))throw new e("JOSE Header is not a JSON object");return[i,r]}async function P6(e,t,r){let i,o,{alg:n,secret:a}=e,s="decrypt"===r||"sign"===r;if(a&&t instanceof Uint8Array)return t;if(PU(t)){if("string"!=typeof(i=Vd(t)).kty)throw Vr(n,t,a);if(!(a?"oct"===i.kty&&"string"==typeof i.k:"oct"!==i.kty&&(s?"AKP"===i.kty&&"string"==typeof i.priv||"string"==typeof i.d:void 0===i.d&&void 0===i.priv)))throw TypeError(a?'JSON Web Key for symmetric algorithms must have JWK "kty" (Key Type) equal to "oct" and the JWK "k" (Key Value) present':`JSON Web Key for this operation must be a ${s?"private":"public"} JWK`);if(((e,t,r)=>{let{alg:i}=e;if(void 0!==t.use){let e="sign"===r||"verify"===r?"sig":"enc";if(t.use!==e)throw TypeError(`Invalid key for this operation, its "use" must be "${e}" when present`)}if(void 0!==t.alg&&t.alg!==i)throw TypeError(`Invalid key for this operation, its "alg" must be "${i}" when present`);if(Array.isArray(t.key_ops)){let i="encrypt"===r||"decrypt"===r?e.ops?.[+("encrypt"!==r)]:r;if(i&&!t.key_ops.includes(i))throw TypeError(`Invalid key for this operation, its "key_ops" must include "${i}" when present`)}})(e,i,r),"oct"===i.kty)return PD(i.k);if(!Object.isFrozen(t)){let{key_ops:e}=t;Array.isArray(e)&&Object.freeze(e),Object.freeze(t)}}else{if(!P7(t))throw Vr(n,t,a);let e=a?"secret":s?"private":"public";if(t.type!==e&&(a||["secret","public","private"].includes(t.type)))throw TypeError(`${t[Symbol.toStringTag]} instances must be of type "${e}" for the ${n} algorithm`);if(P5(t))return t;if("secret"===(o=t).type)return o.export()}let d=(m||=new WeakMap).get(t);if(d?.[n])return d[n];if(d||m.set(t,d={}),o&&"function"==typeof o.toCryptoKey){let t="public"===o.type,r=P3[o.asymmetricKeyDetails?.namedCurve],i=e.resolve?.({crv:r,asymmetricKeyType:o.asymmetricKeyType})??e.subtle;return d[n]=o.toCryptoKey(i,t,e.usages[+!t])}return(i??=o.export({format:"jwk"})).alg=n,d[n]=await Vl(e,i)}let P3={__proto__:null,prime256v1:"P-256",secp384r1:"P-384",secp521r1:"P-521"};function P9(e){if(!P5(e))throw Error("CryptoKey instance expected")}let P5=e=>{if(e?.[Symbol.toStringTag]==="CryptoKey")return!0;try{return e instanceof CryptoKey}catch{return!1}},P8=e=>e?.[Symbol.toStringTag]==="KeyObject",P7=e=>P5(e)||P8(e);function Ve(e,t,...r){if(r.length>2){let t=r.pop();e+=`one of type ${r.join(", ")}, or ${t}.`}else 2===r.length?e+=`one of type ${r[0]} or ${r[1]}.`:e+=`of type ${r[0]}.`;return null==t?e+=` Received ${t}`:"function"==typeof t&&t.name?e+=` Received function ${t.name}`:"object"==typeof t&&null!=t&&t.constructor?.name&&(e+=` Received an instance of ${t.constructor.name}`),e}let Vt=(e,...t)=>Ve("Key must be ",e,...t);function Vr(e,t,r){let i=["CryptoKey","KeyObject","JSON Web Key"];return r&&i.push("Uint8Array"),TypeError(Ve(`Key for the ${e} algorithm must be `,t,...i))}let Vi=(e,t="algorithm.name")=>TypeError(`CryptoKey does not support this operation, its ${t} must be ${e}`);function Vo(e,t){if(t&&!e.usages.includes(t))throw TypeError(`CryptoKey does not support this operation, its usages must include ${t}.`)}function Vn(e,t){let{modulusLength:r}=t.algorithm;if("number"!=typeof r||r<2048)throw TypeError(`${e} requires key modulusLength to be 2048 bits or larger`)}function Va(e,t,r){let i=e.algorithm;if(i.name!==t.name)throw Vi(t.name);if(t.hash&&i.hash?.name!==t.hash)throw Vi(t.hash,"algorithm.hash");if(t.namedCurve&&i.namedCurve!==t.namedCurve)throw Vi(t.namedCurve,"algorithm.namedCurve");if(void 0!==t.length&&i.length!==t.length)throw Vi(t.length,"algorithm.length");Vo(e,r)}function Vs(e){return{__proto__:null,...e}}function Vd(e){let t=Vs(e);if(void 0!==t.ext&&"boolean"!=typeof t.ext)throw TypeError('"ext" (Extractable) Parameter must be a boolean');if(void 0!==t.key_ops){let e=t.key_ops,r=Array.isArray(e)?[...e]:void 0;if(!r||r.some(e=>"string"!=typeof e)||new Set(r).size!==r.length)throw TypeError('"key_ops" (Key Operations) Parameter must be an array of unique strings');t.key_ops=r}return t}function Vc(e){if(void 0!==e&&"boolean"!=typeof e)throw TypeError('"extractable" option must be a boolean');return e}async function Vl(e,t,r){if(!e.kty.includes(t.kty))throw new Px('Invalid or unsupported JWK "alg" (Algorithm) Parameter value');let i=e.resolve?.({kty:t.kty,crv:t.crv})??e.subtle,o=!!(t.d||t.priv),n={...t,ext:r??t.ext};return"AKP"!==n.kty&&delete n.alg,delete n.use,crypto.subtle.importKey("jwk",n,i,n.ext??!o,t.key_ops??e.usages[+!!o])}async function Vp(e,t,r,i=!1){return e instanceof Uint8Array&&(e=await crypto.subtle.importKey("raw",e,t,i,[r])),Va(e,t,r),e}let Vu=e=>crypto.getRandomValues(new Uint8Array(e.cekBits>>3));function Vm(e,t){let r=e.byteLength<<3;if(r!==t)throw new PC(`Invalid Content Encryption Key length. Expected ${t} bits, got ${r} bits`)}function Vf(e,t){if(t.length<<3!==e.ivBits)throw new PC("Invalid Initialization Vector length")}async function Vh(e,t,r){if(!(t instanceof Uint8Array))throw TypeError(Vt(t,"Uint8Array"));let i=e.cekBits>>1;return[await crypto.subtle.importKey("raw",t.subarray(i>>3),"AES-CBC",!1,[r]),await crypto.subtle.importKey("raw",t.subarray(0,i>>3),{hash:`SHA-${i<<1}`,name:"HMAC"},!1,["sign"]),i]}async function Vy(e,t,r){return new Uint8Array((await crypto.subtle.sign("HMAC",e,t)).slice(0,r>>3))}async function Vg(e,t,r,i,o){if(!P5(r)&&!(r instanceof Uint8Array))throw TypeError(Vt(r,"CryptoKey","KeyObject","Uint8Array","JSON Web Key"));if(i?Vf(e,i):i=crypto.getRandomValues(new Uint8Array(e.ivBits>>3)),r instanceof Uint8Array&&Vm(r,e.cekBits),e.cbc)return async function(e,t,r,i,o){let[n,a,s]=await Vh(e,r,"encrypt"),d=new Uint8Array(await crypto.subtle.encrypt({iv:i,name:"AES-CBC"},n,t)),c=Pg(o,i,d,Pv(8*o.length));return{ciphertext:d,tag:await Vy(a,c,s),iv:i}}(e,t,r,i,o);let n=await Vp(r,e.subtle,"encrypt"),a=new Uint8Array(await crypto.subtle.encrypt({additionalData:o,iv:i,name:"AES-GCM",tagLength:128},n,t));return{ciphertext:a.subarray(0,-16),tag:a.subarray(-16),iv:i}}async function V_(e,t,r,i,o,n){if(!P5(t)&&!(t instanceof Uint8Array))throw TypeError(Vt(t,"CryptoKey","KeyObject","Uint8Array","JSON Web Key"));if(!i)throw new PC("JWE Initialization Vector missing");if(!o)throw new PC("JWE Authentication Tag missing");if(!e.cbc&&16!==o.length)throw new PC("Invalid Authentication Tag length");if(Vf(e,i),t instanceof Uint8Array&&Vm(t,e.cekBits),e.cbc)return async function(e,t,r,i,o,n){let[a,s,d]=await Vh(e,t,"decrypt"),c=Pg(n,i,r,Pv(8*n.length)),l=await Vy(s,c,d);try{if(await async function(e,t){let r={name:"HMAC",hash:"SHA-256"},i=await crypto.subtle.generateKey(r,!1,["sign","verify"]),o=await crypto.subtle.sign(r,i,e);return crypto.subtle.verify(r,i,o,t)}(o,l))return new Uint8Array(await crypto.subtle.decrypt({iv:i,name:"AES-CBC"},a,r))}catch{}throw new Pj}(e,t,r,i,o,n);let a=await Vp(t,e.subtle,"decrypt");try{return new Uint8Array(await crypto.subtle.decrypt({additionalData:n,iv:i,name:"AES-GCM",tagLength:128},a,Pg(r,o)))}catch{throw new Pj}}function Vv(e){let t={__proto__:null};for(let r in e)t[r]={...e[r],alg:r};return t}let Vb=[["encrypt","wrapKey"],["decrypt","unwrapKey"]],V$=[[],["deriveBits"]],VS=[[],[]];function Vk(e){return{kty:["RSA"],mode:"key-encryption",subtle:{name:"RSA-OAEP",hash:`SHA-${e}`},usages:Vb,ops:["wrapKey","unwrapKey"]}}function Vw(e){return{kty:["EC","OKP"],mode:e,subtle:{name:"ECDH"},resolve:({kty:e,crv:t,asymmetricKeyType:r})=>{if("X25519"===t||"x25519"===r)return{name:"X25519"};if("OKP"===e)throw new Px('Invalid or unsupported JWK "alg" (Algorithm) Parameter value');return{name:"ECDH",namedCurve:t}},usages:V$,ops:[void 0,"deriveBits"]}}function VP(e,t=!1){return{kty:["oct"],mode:"key-wrapping",secret:!0,subtle:{name:t?"AES-GCM":"AES-KW",length:e},usages:VS,ops:t?["encrypt","decrypt"]:["wrapKey","unwrapKey"]}}function VV(){return{kty:["oct"],mode:"key-wrapping",secret:!0,subtle:{name:"PBKDF2"},usages:VS,ops:["deriveBits","deriveBits"]}}let VR=Vv({dir:{kty:["oct"],mode:"direct-encryption",secret:!0,subtle:{name:"AES-GCM"},usages:VS,ops:["encrypt","decrypt"]},"RSA-OAEP":Vk(1),"RSA-OAEP-256":Vk(256),"RSA-OAEP-384":Vk(384),"RSA-OAEP-512":Vk(512),"ECDH-ES":Vw("direct-key-agreement"),"ECDH-ES+A128KW":Vw("key-agreement-with-key-wrapping"),"ECDH-ES+A192KW":Vw("key-agreement-with-key-wrapping"),"ECDH-ES+A256KW":Vw("key-agreement-with-key-wrapping"),A128KW:VP(128),A192KW:VP(192),A256KW:VP(256),A128GCMKW:VP(128,!0),A192GCMKW:VP(192,!0),A256GCMKW:VP(256,!0),"PBES2-HS256+A128KW":VV(),"PBES2-HS384+A192KW":VV(),"PBES2-HS512+A256KW":VV()}),Vq=["encrypt","decrypt"];function VI(e,t=!1){return{kty:["oct"],secret:!0,subtle:{name:t?"AES-CBC":"AES-GCM",length:e},usages:VS,ops:Vq,cekBits:e,ivBits:t?128:96,cbc:t}}let Vx=Vv({A128GCM:VI(128),A192GCM:VI(192),A256GCM:VI(256),"A128CBC-HS256":VI(256,!0),"A192CBC-HS384":VI(384,!0),"A256CBC-HS512":VI(512,!0)});function Vj(e,t){throw new Px(`Invalid or unsupported "${e}" (JWE ${t}) header value`)}function VC(e){return("string"==typeof e?VR[e]:void 0)??Vj("alg","Algorithm")}function VT(e){return"key-wrapping"===e.mode||"key-encryption"===e.mode||"key-agreement-with-key-wrapping"===e.mode}function VO(e){return("string"==typeof e?Vx[e]:void 0)??Vj("enc","Encryption Algorithm")}function VE(e,t){if("ECDH"!==e.algorithm.name&&"X25519"!==e.algorithm.name)throw TypeError("CryptoKey does not support this operation, its algorithm.name must be ECDH or X25519");Vo(e,t)}function VA(e,t,r){Va(t,VC(e).subtle,r),Vn(e,t)}async function VW(e,t,r,i){if(!(e instanceof Uint8Array)||e.length<8)throw new PC("PBES2 Salt Input must be 8 or more octets");if(!Number.isSafeInteger(r)||1!==Math.sign(r))throw new PC("PBES2 Count Input must be a positive integer");let o=Pg(PS(t),Uint8Array.of(0),e),n=parseInt(t.slice(13,16),10),a={hash:`SHA-${t.slice(8,11)}`,iterations:r,name:"PBKDF2",salt:o},s=await Vp(i,VC(t).subtle,"deriveBits");return new Uint8Array(await crypto.subtle.deriveBits(a,s,n))}function VM(e){return Pg(Pb(e.length),e)}async function VN(e,t,r,i,o=new Uint8Array,n=new Uint8Array){VE(e),VE(t,"deriveBits");let a=Pg(VM(PS(r)),VM(o),VM(n),Pb(i));return async function(e,t,r){let i=t>>3,o=Math.ceil(i/32),n=new Uint8Array(32*o);for(let t=1;t<=o;t++){let i=await PP("sha256",Pg(Pb(t),e,r));n.set(i,(t-1)*32)}return n.slice(0,i)}(new Uint8Array(await crypto.subtle.deriveBits({name:e.algorithm.name,public:e},t,"X25519"===e.algorithm.name?256:Math.ceil(parseInt(e.algorithm.namedCurve.slice(-3),10)/8)<<3)),i,a)}function Vz(e){P9(e);let t=e.algorithm.namedCurve;if("P-256"!==t&&"P-384"!==t&&"P-521"!==t&&"X25519"!==e.algorithm.name)throw new Px("ECDH with the provided key is not allowed or not supported by your javascript runtime")}function VD(e,t){let r=e[t];if(void 0!==r){if("string"!=typeof r)throw new PC(`JOSE Header "${t}" (Agreement Party${"apu"===t?"U":"V"}Info) invalid`);return PK(r,t,PC)}}function VF(e,t){if(void 0!==e&&void 0!==t&&e.byteLength===t.byteLength){for(let r=0;r"u")throw new Px(`JWE "zip" (Compression Algorithm) Header Parameter requires the ${e} API.`)}async function VB(e,t,r=1/0){let i=e.writable.getWriter();i.write(t).catch(()=>{}),i.close().catch(()=>{});let o=[],n=0,a=e.readable.getReader();for(;;){let{value:e,done:t}=await a.read();if(t)break;if(o.push(e),n+=e.byteLength,1/0!==r&&n>r)throw new PC("Decompressed plaintext exceeded the configured limit")}return Pg(...o)}function VK(e){let{aad:t,ciphertext:r,iv:i,protected:o,tag:n,unprotected:a}=e;if(void 0!==i&&("string"!=typeof i||!i))throw new PC("JWE Initialization Vector incorrect type");if("string"!=typeof r)throw new PC("JWE Ciphertext missing or incorrect type");if(void 0!==n&&("string"!=typeof n||!n))throw new PC("JWE Authentication Tag incorrect type");if(void 0!==o&&"string"!=typeof o)throw new PC("JWE Protected Header incorrect type");if(void 0!==t&&("string"!=typeof t||!t))throw new PC("JWE AAD incorrect type");if(void 0!==a&&!PU(a))throw new PC("JWE Shared Unprotected Header incorrect type");return{aad:t,ciphertext:r,iv:i,protected:o,tag:n,unprotected:void 0===a?void 0:{...a}}}function VJ(e){let t,r;try{let{header:i}=e;if(PU(i)){r=i.alg;let e=Object.keys(i);e.includes("alg")||(r=void 0),t=Object.fromEntries(e.map(e=>[e,"alg"===e?r:i[e]]))}else t=i;let{encrypted_key:o}=e;return[{encrypted_key:o,header:t},r]}catch(e){return[void 0,r,e]}}function VZ(e){let{encrypted_key:t,header:r}=e;if(void 0!==t&&"string"!=typeof t)throw new PC("JWE Encrypted Key incorrect type");if(void 0!==r&&!PU(r))throw new PC("JWE Per-Recipient Unprotected Header incorrect type");if(void 0===e.protected&&void 0===r&&void 0===e.unprotected)throw new PC("JOSE Header missing")}function VQ(e){let t,{protected:r,ciphertext:i,iv:o,tag:n,aad:a}=e;return void 0!==r&&(t=PZ(r,PC,"JWE Protected Header is invalid")),[t,PK(i,"ciphertext",PC),void 0!==o?PK(o,"iv",PC):void 0,void 0!==n?PK(n,"tag",PC):void 0,PJ((r??"")+(void 0!==a?`.${a}`:""),"aad",PC)]}function VX(e){return[e&&PY("keyManagementAlgorithms",e.keyManagementAlgorithms),e&&PY("contentEncryptionAlgorithms",e.contentEncryptionAlgorithms),e?.crit,e?.maxPBES2Count,e?.maxDecompressedLength]}async function VY(e,t,r,i=VQ(e)){let o,n,a,s,[d,c,l,p,u]=i,{header:m,unprotected:f,aad:h}=e;if(void 0!==m||void 0!==f){if(!PG(d,m,f))throw new PC("JWE Protected, JWE Unprotected Header, and JWE Per-Recipient Unprotected Header Parameter names must be disjoint");o={...d,...m,...f}}else o=d??{};let[y,g,_,v,b]=t,{encrypted_key:$}=e;P0(PC,PX,_,d,o),VH(o,d);let{alg:S,enc:k}=o;if("string"!=typeof S||!S)throw new PC("missing JWE Algorithm (alg) in JWE Header");let w=VR[S];if(""===$&&(!w||!VT(w)))throw new PC("JWE Encrypted Key incorrect type");let P=w?.mode==="integrated-encryption";if(!P&&("string"!=typeof k||!k))throw new PC("missing JWE Encryption Algorithm (enc) in JWE Header");if(y&&!y.has(S)||!y&&S.startsWith("PBES2"))throw new PI('"alg" (Algorithm) Header Parameter value not allowed');if(P){if(void 0!==k)throw new PC('JWE "enc" (Encryption Algorithm) Header Parameter must not be present for integrated encryption');if(l?.byteLength)throw new PC("JWE Initialization Vector must be empty for integrated encryption");if(p?.byteLength)throw new PC("JWE Authentication Tag must be empty for integrated encryption")}else{if(g&&!g.has(k))throw new PI('"enc" (Encryption Algorithm) Header Parameter value not allowed');n=VO(k)}if(void 0!==$)try{a=PK($,"encrypted_key",PC)}catch(e){if(!w||!VT(w))throw e;a=new Uint8Array}let V=!1;"function"==typeof r&&(r=await r(d,e),V=!0);let R=w??VC(S);VT(R)&&void 0===a&&(a=new Uint8Array);let q=await P6("direct-encryption"===R.mode?n:R,r,"decrypt");if("integrated-encryption"===R.mode)s=await R.decrypt(q,a,c,u,d,o);else{let e,t=n;try{e=await async function(e,t,r,i,o,n){let{alg:a}=e,s=e.mode;if("direct-encryption"===s)return VL(i),r;let d="direct-key-agreement"===s;switch(d?VL(i):function(e){if(void 0===e)throw new PC("JWE Encrypted Key missing")}(i),e.subtle.name){case"ECDH":{let{epk:i}=o;if(!PU(i)||["d","k","p","q","dp","dq","qi","oth","priv"].some(e=>Object.hasOwn(i,e)))throw new PC('JOSE Header "epk" (Ephemeral Public Key) missing or invalid');Vz(r);let n=await Vl(e,i),s=VD(o,"apu"),c=VD(o,"apv");VF(s,c);let l=await VN(n,r,d?t.alg:a,d?t.cekBits:parseInt(a.slice(-5,-2),10),s,c);if(d)return l;r=l;break}case"RSA-OAEP":return P9(r),VA(a,r,"decrypt"),new Uint8Array(await crypto.subtle.decrypt("RSA-OAEP",r,i));case"PBKDF2":{if("number"!=typeof o.p2c)throw new PC('JOSE Header "p2c" (PBES2 Count) missing or invalid');if(void 0!==n&&1/0!==n&&(!Number.isSafeInteger(n)||n<1))throw TypeError("maxPBES2Count must be a positive safe integer or Infinity");if(o.p2c>(n??1e4))throw new PC('JOSE Header "p2c" (PBES2 Count) out is of acceptable bounds');if("string"!=typeof o.p2s)throw new PC('JOSE Header "p2s" (PBES2 Salt) missing or invalid');let e=PK(o.p2s,"p2s",PC);r=await VW(e,a,o.p2c,r);break}case"AES-GCM":{if("string"!=typeof o.iv)throw new PC('JOSE Header "iv" (Initialization Vector) missing or invalid');if("string"!=typeof o.tag)throw new PC('JOSE Header "tag" (Authentication Tag) missing or invalid');let e=PK(o.iv,"iv",PC),t=PK(o.tag,"tag",PC);if(12!==e.byteLength)throw new PC("Invalid Initialization Vector length");if(16!==t.byteLength)throw new PC("Invalid Authentication Tag length");return V_(VO(a.slice(0,-2)),r,i,e,t,new Uint8Array)}}return async function(e,t,r){let i=await Vp(t,VC(e).subtle,"unwrapKey",!0),o=await crypto.subtle.unwrapKey("raw",r,i,"AES-KW",{hash:"SHA-256",name:"HMAC"},!0,["sign"]);return new Uint8Array(await crypto.subtle.exportKey("raw",o))}(a.slice(-6),r,i)}(R,t,q,a,o,v),VT(R)&&e instanceof Uint8Array&&e.byteLength<<3!==t.cekBits&&(e=Vu(t))}catch(r){if(r instanceof TypeError||r instanceof PC||r instanceof Px)throw r;e=Vu(t)}s=await V_(t,e,c,l,p,u)}if("DEF"===o.zip){let e=b??25e4;if(0===e)throw new Px('JWE "zip" (Compression Algorithm) Header Parameter is not supported.');if(1/0!==e&&(!Number.isSafeInteger(e)||e<1))throw TypeError("maxDecompressedLength must be 0, a positive safe integer, or Infinity");s=await (async function(e,t){return VG("DecompressionStream"),VB(new DecompressionStream("deflate-raw"),e,t)})(s,e).catch(e=>{throw e instanceof PC?e:new PC("Failed to decompress plaintext",{cause:e})})}return{plaintext:s,...d&&{protectedHeader:d},...void 0!==h&&{additionalAuthenticatedData:PK(h,"aad",PC)},...f&&{sharedUnprotectedHeader:f},...m&&{unprotectedHeader:m},...V&&{key:q}}}async function V1(e,t,r){if(e instanceof Uint8Array&&(e=Ph.decode(e)),"string"!=typeof e)throw new PC("Compact JWE must be a string or Uint8Array");let{0:i,1:o,2:n,3:a,4:s,length:d}=e.split(".");if(5!==d)throw new PC("Invalid Compact JWE");return VY({ciphertext:a,iv:n||void 0,protected:i,tag:s||void 0,encrypted_key:o||void 0},t,r)}async function V0(e,t,r){return V1(e,VX(r),t)}async function V2(e,t,r){if(!PU(e))throw new PC("Flattened JWE must be an object");let i=VK(e),[o,,n]=VJ(e);if(!o)throw n;let a={...i,...o};return VZ(a),VY(a,VX(r),t)}async function V4(e,t,r){let i,o,n;if(!PU(e))throw new PC("General JWE must be an object");let a=e.recipients;if(!Array.isArray(a))throw new PC("JWE Recipients missing or incorrect type");let s=Array.from(a);if(!s.every(PU))throw new PC("JWE Recipients missing or incorrect type");if(!s.length)throw new PC("JWE Recipients has no members");try{i=VX(r),o=VK(e),n=VQ(o)}catch{throw new Pj}let d=s.map(e=>VJ(e));if(s.length>1)for(let[,e]of d){let t=n[0]?.alg??e??o.unprotected?.alg,r="string"==typeof t?VR[t]:void 0;if(r&&!VT(r))throw new PC(`"${t}" alg may only have a single recipient`)}for(let[e]of d)if(e)try{let r={...o,...e};return VZ(r),await VY(r,i,t,n)}catch{}throw new Pj}function V6(e,t,r){if(!PG(e,t,r))throw new PC("JWE Protected, JWE Shared Unprotected and JWE Per-Recipient Header Parameter names must be disjoint")}function V3(e,t,r=!1){if(!e[1]&&!e[2]&&!e[3])throw new PC("either setProtectedHeader, setUnprotectedHeader, or sharedUnprotectedHeader must be called before #encrypt()");void 0!==t&&(e[8]=t?.crit);let[,i,o,n,a,s,d,c,l]=e;if(void 0!==a&&PL(a,"JWE Additional Authenticated Data"),void 0!==s&&PL(s,"JWE Content Encryption Key"),void 0!==d&&PL(d,"JWE Initialization Vector"),r||void 0===i||(i=P4(PC,i)[0],e[1]=i),void 0!==o&&(o=P4(PC,o)[0],e[2]=o),r||void 0===n||(n=P4(PC,n)[0],e[3]=n),void 0!==c&&!PU(c))throw TypeError("JWE Key Management Parameters must be an object");V6(i,o,n);let p={...i,...o,...n};P1(PC,i),P0(PC,PX,l,i,p),VH(p,i);let{alg:u,enc:m}=p;if("string"!=typeof u||!u)throw new PC('JWE "alg" (Algorithm) Header Parameter missing or invalid');let f=VR[u];if(f?.mode==="integrated-encryption"){if(void 0!==m)throw new PC('JWE "enc" (Encryption Algorithm) Header Parameter must not be present for integrated encryption');if(void 0!==s)throw TypeError(`setContentEncryptionKey cannot be called with JWE "alg" (Algorithm) Header ${u}`);if(void 0!==d)throw TypeError(`setInitializationVector cannot be called with JWE "alg" (Algorithm) Header ${u}`);return[p,void 0,f]}if("string"!=typeof m||!m)throw new PC('JWE "enc" (Encryption Algorithm) Header Parameter missing or invalid');return[p,VO(m),f]}async function V9(e,t,r){let i,o,n,a,s,d,[c,l,p]=t,[u,m,f,h,y,g,_,v,,b]=e,$=m,S=f,k=p??VC(c.alg);"integrated-encryption"===k.mode?n=await P6(k,r,"encrypt"):[n,i,o]=await VU(k,l,r,c,g,v),o&&(b?S=S?{...S,...o}:o:$=$?{...$,...o}:o,V6($,S,h));let w=$?PF(JSON.stringify($)):"",P=y?.byteLength?PF(y):void 0,V=PS(P?`${w}.${P}`:w),R=u;"DEF"===c.zip&&(R=await (async function(e){return VG("CompressionStream"),VB(new CompressionStream("deflate-raw"),e)})(R).catch(e=>{throw new PC("Failed to compress plaintext",{cause:e})})),"integrated-encryption"===k.mode?[i,a]=await k.encrypt(n,R,V,$,c,v):{ciphertext:a,tag:s,iv:d}=await Vg(l,R,n,_,V);let q={ciphertext:PF(a)};return d&&(q.iv=PF(d)),s&&(q.tag=PF(s)),i?.byteLength&&(q.encrypted_key=PF(i)),P&&(q.aad=P),$&&(q.protected=w),h&&(q.unprotected=h),S&&(q.header=S),q}async function V5(e,t,r){return V9(e,V3(e,r),t)}function V8(e){return[e.protected,e.encrypted_key,e.iv,e.ciphertext,e.tag].join(".")}class V7{#f;state;constructor(e,t,r){this.#f=e,this.state=[void 0,void 0,t,r]}setUnprotectedHeader(e){return PB(this.state[0],"setUnprotectedHeader"),this.state[0]=e,this}setKeyManagementParameters(e){return PB(this.state[1],"setKeyManagementParameters"),this.state[1]=e,this}addRecipient(...e){return this.#f.addRecipient(...e)}encrypt(...e){return this.#f.encrypt(...e)}done(){return this.#f}}class Re{#h;#y=[];#g;#_;#v;constructor(e){this.#h=e}addRecipient(e,t){let r=new V7(this,e,t?.crit);return this.#y.push(r),r}setProtectedHeader(e){return PB(this.#g,"setProtectedHeader"),this.#g=e,this}setSharedUnprotectedHeader(e){return PB(this.#_,"setSharedUnprotectedHeader"),this.#_=e,this}setAdditionalAuthenticatedData(e){return this.#v=e,this}async encrypt(){if(!this.#y.length)throw new PC("at least one recipient must be added");PL(this.#h,"plaintext");let e=this.#y.length>1,t,r=this.#g,i=this.#_,o=[];for(let n of this.#y){let[a,s,d,c]=n.state,l=[this.#h,r,a,i,this.#v,void 0,void 0,s,c,e],p=V3(l,void 0,o.length>0);o.length||(r=l[1],i=l[3]),o.push([l,p,d]);let[{alg:u,enc:m},,f]=p;if(e&&f&&!VT(f))throw new PC(`"${u}" alg may only have a single recipient`);if(t){if(t!==m)throw new PC('JWE "enc" (Encryption Algorithm) Header Parameter must be the same for all recipients')}else t=m}for(let[,e]of o)e[2]??=VC(e[0].alg);let[n,a,s]=o[0],d=e?Vu(a[1]):void 0;n[5]=d;let{encrypted_key:c,header:l,...p}=await V9(n,a,s),u={...p,recipients:[{}]};c&&(u.recipients[0].encrypted_key=c),l&&(u.recipients[0].header=l);for(let e=1;e(function(e,t){try{let r=Rc(e,[t]),i=Rp(r.protected),{b64:o,crit:n}=i;return[r,i,Array.isArray(n)&&n.includes("b64")?"boolean"==typeof o?o?1:2:0:1]}catch{return}})(e,s)).filter(e=>void 0!==e),c=0;for(let[,,e]of d)if(3==(c|=e))throw new PT("inconsistent use of JWS Unencoded Payload (RFC7797)");for(let e of d)try{let[r]=await Rf(e[0],i,t,Ru,e[1]);return r}catch{}throw new Pz}let Rv=e=>Math.floor(e.getTime()/1e3),Rb={s:1,m:60,h:3600,d:86400,w:604800,y:0x1e187e0},R$=/^(\+|\-)? ?(\d+|\d+\.\d+) ?(seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)(?: (ago|from now))?$/i,RS="check_failed";function Rk(){throw TypeError("Invalid time period format")}function Rw(e){"string"!=typeof e&&Rk();let t=R$.exec(e);(!t||t[4]&&t[1])&&Rk();let r=Math.round(parseFloat(t[2])*Rb[t[3][0].toLowerCase()]);return Number.isFinite(r)||Rk(),"-"===t[1]||"ago"===t[4]?-r:r}function RP(e,t){if(!Number.isFinite(t))throw TypeError(`Invalid ${e} input`);return t}function RV(e,t){if("string"!=typeof t)throw TypeError(`"${e}" claim must be a string`)}function RR(e,t){return"number"==typeof e?RP(t,e):e instanceof Date?RP(t,Rv(e)):Rv(new Date)+Rw(e)}let Rq=e=>{let t=e.toLowerCase();return e.includes("/")?t:`application/${t}`};function RI(e,t,r=!1){let i=e[t];if(!(void 0===i&&!r)){if("number"!=typeof i)throw new PR(`"${t}" claim must be a number`,e,t,"invalid");return i}}function Rx(e,t){throw new PR(`unexpected "${t}" claim value`,e,t,RS)}function Rj(e,t,r={}){let i,o,n;try{i=JSON.parse(Py.decode(t))}catch{}if(!PU(i))throw new PO("JWT Claims Set must be a top-level JSON object");let{typ:a}=r;if(void 0!==a&&("string"!=typeof e.typ||Rq(e.typ)!==Rq(a)))throw new PR('unexpected "typ" JWT header value',i,"typ",RS);let{requiredClaims:s=[],issuer:d,subject:c,audience:l,maxTokenAge:p}=r,u=[...s];for(let e of(void 0!==p&&u.push("iat"),void 0!==l&&u.push("aud"),void 0!==c&&u.push("sub"),void 0!==d&&u.push("iss"),new Set(u.reverse())))if(!Object.hasOwn(i,e))throw new PR(`missing required "${e}" claim`,i,e,"missing");void 0===d||(Array.isArray(d)?d:[d]).includes(i.iss)||Rx(i,"iss"),void 0!==c&&i.sub!==c&&Rx(i,"sub"),void 0===l||(o=i.aud,n="string"==typeof l?[l]:l,"string"==typeof o?n.includes(o):!!Array.isArray(o)&&n.some(e=>o.includes(e)))||Rx(i,"aud");let{clockTolerance:m}=r,f=0;if("string"==typeof m)f=Rw(m);else if(void 0!==m){if("number"!=typeof m)throw TypeError("Invalid clockTolerance option type");f=m}RP("clockTolerance option",f);let{currentDate:h}=r,y=RP("currentDate option",Rv(void 0===h?new Date:h)),g=RI(i,"iat",void 0!==p),_=RI(i,"nbf");if(void 0!==_&&_>y+f)throw new PR('"nbf" claim timestamp check failed',i,"nbf",RS);let v=RI(i,"exp");if(void 0!==v&&v<=y-f)throw new Pq('"exp" claim timestamp check failed',i,"exp",RS);if(void 0!==p){let e=y-g;if(e-f>RP("maxTokenAge option","number"==typeof p?p:Rw(p)))throw new Pq('"iat" claim timestamp check failed (too far in the past)',i,"iat",RS);if(e<-f)throw new PR('"iat" claim timestamp check failed (it should be in the past)',i,"iat",RS)}return i}function RC(e){return f.get(e)}function RT(e){let t=RC(e);for(let e of["iat","nbf","exp"]){let r=t[e];if("number"==typeof r&&!Number.isFinite(r))throw TypeError(`"${e}" claim must be a finite number`)}return Pf.encode(JSON.stringify(t))}class RO{constructor(e={}){if(!PU(e))throw TypeError("JWT Claims Set MUST be an object");(f||=new WeakMap).set(this,structuredClone(e))}setIssuer(e){return RV("iss",e),RC(this).iss=e,this}setSubject(e){return RV("sub",e),RC(this).sub=e,this}setAudience(e){return function(e){if("string"!=typeof e&&(!Array.isArray(e)||Array.from(e).some(e=>"string"!=typeof e)))throw TypeError('"aud" claim must be a string or an array of strings')}(e),RC(this).aud=e,this}setJti(e){return RV("jti",e),RC(this).jti=e,this}setNotBefore(e){return RC(this).nbf=RR(e,"setNotBefore"),this}setExpirationTime(e){return RC(this).exp=RR(e,"setExpirationTime"),this}setIssuedAt(e){let t=RC(this);return void 0===e?t.iat=Rv(new Date):"string"==typeof e?t.iat=RP("setIssuedAt",Rv(new Date)+Rw(e)):t.iat=RR(e,"setIssuedAt"),this}}async function RE(e,t,r){let[i,o]=await Rh(e,Rl(r),t);if(!o)throw new PO("JWTs MUST NOT use unencoded payload");let n=Rj(i.protectedHeader,i.payload,r);return{...i,payload:n}}async function RA(e,t,r){let{plaintext:i,...o}=await V1(e,VX(r),t),{protectedHeader:n}=o,a=Rj(n,i,r);for(let e of["iss","sub","aud"])if(void 0!==n[e]&&("aud"===e?JSON.stringify(n.aud)!==JSON.stringify(a.aud):n[e]!==a[e]))throw new PR(`replicated "${e}" claim header parameter mismatch`,a,e,"mismatch");return{payload:a,...o}}class RW{#b;constructor(e){PL(e,"plaintext"),this.#b=[e]}setContentEncryptionKey(e){return PB(this.#b[5],"setContentEncryptionKey"),this.#b[5]=e,this}setInitializationVector(e){return PB(this.#b[6],"setInitializationVector"),this.#b[6]=e,this}setProtectedHeader(e){return PB(this.#b[1],"setProtectedHeader"),this.#b[1]=e,this}setKeyManagementParameters(e){return PB(this.#b[7],"setKeyManagementParameters"),this.#b[7]=e,this}async encrypt(e,t){return V8(await V5([...this.#b],e,t))}}class RM{#b;constructor(e){PL(e,"plaintext"),this.#b=[e]}setKeyManagementParameters(e){return PB(this.#b[7],"setKeyManagementParameters"),this.#b[7]=e,this}setProtectedHeader(e){return PB(this.#b[1],"setProtectedHeader"),this.#b[1]=e,this}setSharedUnprotectedHeader(e){return PB(this.#b[3],"setSharedUnprotectedHeader"),this.#b[3]=e,this}setUnprotectedHeader(e){return PB(this.#b[2],"setUnprotectedHeader"),this.#b[2]=e,this}setAdditionalAuthenticatedData(e){return this.#b[4]=e,this}setContentEncryptionKey(e){return PB(this.#b[5],"setContentEncryptionKey"),this.#b[5]=e,this}setInitializationVector(e){return PB(this.#b[6],"setInitializationVector"),this.#b[6]=e,this}async encrypt(e,t){return V5([...this.#b],e,t)}}async function RN(e,t,r){let[i,o,n,a]=e,s="";if(void 0!==o){let e=P4(PT,o);o=e[0],s=PF(e[1])}if(void 0!==n&&(n=P4(PT,n)[0]),!o&&!n)throw new PT("either setProtectedHeader or setUnprotectedHeader must be called before #sign()");if(!PG(o,n))throw new PT("JWS Protected and JWS Unprotected Header Parameter names must be disjoint");let d={...o,...n};P1(PT,o);let c=P2(o,P0(PT,PQ,a,o,d));c||r?.();let{alg:l}=d;if("string"!=typeof l||!l)throw new PT('JWS "alg" (Algorithm) Header Parameter missing or invalid');let p=Rd(l),u="",m=i,f;if(c){let t=e[4];t?(u=t[0]??=PF(i),m=t[1]??=PS(u)):(u=PF(i),f=Pf.encode(`${s}.${u}`))}f??=Pg(PS(s),PS("."),m);let h=await Vp(await P6(p,t,"sign"),p.subtle,"sign");p.minRsaBits&&Vn(p.alg,h);let y={signature:PF(new Uint8Array(await crypto.subtle.sign(p.signing,h,f))),payload:u};return o&&(y.protected=s),n&&(y.header=n),[y,c]}async function Rz(e,t,r,i,o){let[n]=await RN([e,t,void 0,r],i,o);return`${n.protected}.${n.payload}.${n.signature}`}class RD{#$;#g;constructor(e){PL(e,"payload"),this.#$=e}setProtectedHeader(e){return PB(this.#g,"setProtectedHeader"),this.#g=e,this}async sign(e,t){return Rz(this.#$,this.#g,t?.crit,e,()=>{throw TypeError("use the flattened module for creating JWS with b64: false")})}}class RF{#b;constructor(e){PL(e,"payload"),this.#b=[e]}setProtectedHeader(e){return PB(this.#b[1],"setProtectedHeader"),this.#b[1]=e,this}setUnprotectedHeader(e){return PB(this.#b[2],"setUnprotectedHeader"),this.#b[2]=e,this}async sign(e,t){let r=[...this.#b];r[3]=t?.crit;let[i]=await RN(r,e);return i}}class RL{#f;state;constructor(e,t,r){this.#f=e,this.state=[void 0,void 0,t,r?.crit]}setProtectedHeader(e){return PB(this.state[0],"setProtectedHeader"),this.state[0]=e,this}setUnprotectedHeader(e){return PB(this.state[1],"setUnprotectedHeader"),this.state[1]=e,this}addSignature(...e){return this.#f.addSignature(...e)}sign(...e){return this.#f.sign(...e)}done(){return this.#f}}class RU{#$;#S=[];constructor(e){this.#$=e}addSignature(e,t){let r=new RL(this,e,t);return this.#S.push(r),r}async sign(){let e;if(!this.#S.length)throw new PT("at least one signature must be added");PL(this.#$,"payload");let t={signatures:[],payload:""},r=[];for(let i of this.#S){let[o,n,a,s]=i.state,[{payload:d,...c},l]=await RN([this.#$,o,n,s,r],a);if(void 0===e)e=l,t.payload=d;else if(e!==l)throw new PT("inconsistent use of JWS Unencoded Payload (RFC7797)");t.signatures.push(c)}return t}}let RH=RO;class RG extends RH{#g;setProtectedHeader(e){return PB(this.#g,"setProtectedHeader"),this.#g=e,this}async sign(e,t){return Rz(RT(this),this.#g,t?.crit,e,()=>{throw new PO("JWTs MUST NOT use unencoded payload")})}}let RB=RO;class RK extends RB{#b=[void 0];#k;#w;#P;setProtectedHeader(e){return PB(this.#b[1],"setProtectedHeader"),this.#b[1]=e,this}setKeyManagementParameters(e){return PB(this.#b[7],"setKeyManagementParameters"),this.#b[7]=e,this}setContentEncryptionKey(e){return PB(this.#b[5],"setContentEncryptionKey"),this.#b[5]=e,this}setInitializationVector(e){return PB(this.#b[6],"setInitializationVector"),this.#b[6]=e,this}replicateIssuerAsHeader(){return this.#k=!0,this}replicateSubjectAsHeader(){return this.#w=!0,this}replicateAudienceAsHeader(){return this.#P=!0,this}async encrypt(e,t){let r=RT(this);this.#b[1]&&(this.#k||this.#w||this.#P)&&(this.#b[1]={...this.#b[1],iss:this.#k?RC(this).iss:void 0,sub:this.#w?RC(this).sub:void 0,aud:this.#P?RC(this).aud:void 0});let i=[...this.#b];return i[0]=r,V8(await V5(i,e,t))}}let RJ='"alg" (Algorithm)';function RZ(e='JWK "alg" (Algorithm) Parameter'){throw new Px(`Invalid or unsupported ${e} value`)}function RQ(e,t){return("string"==typeof e?Rs[e]??VR[e]:void 0)??RZ(t)}let RX=async(e,t,r)=>{var i,o;let n;if(P8(r)){if(r.type!==e)throw TypeError(`key is not a ${e} key`);return r.export({format:"pem",type:t})}if(!P5(r))throw TypeError(Vt(r,"CryptoKey","KeyObject"));if(!r.extractable)throw TypeError("CryptoKey is not extractable");if(r.type!==e)throw TypeError(`key is not a ${e} key`);return i=Pk(new Uint8Array(await crypto.subtle.exportKey(t,r))),o=`${e.toUpperCase()} KEY`,n=(i.match(/.{1,64}/g)||[]).join(` `),`-----BEGIN ${o}----- ${n} -----END ${o}-----`},RY=(e,t)=>{if(e.byteLength!==t.length)return!1;for(let r=0;r({data:e,pos:0}),R0=e=>{let t=e.data[e.pos++];if(void 0===t)throw Error("Unexpected end of ASN.1 input");return t},R2=e=>{let t=R0(e);if(128&t){let r=127&t,i=0;for(let t=0;t{for(;t-- >0;){e.pos++;let t=R2(e);e.pos+=t}},R6=(e,t,r)=>{if(R0(e)!==t)throw Error(r)},R3=(e,t)=>{if(t<0||e.pos+t>e.data.length)throw Error("Unexpected end of ASN.1 input");let r=e.data.subarray(e.pos,e.pos+t);return e.pos+=t,r},R9=async(e,t,r,i)=>{let o,n=Vc(i?.extractable),a=RQ(r,RJ);a.secret&&RZ(RJ);let s="spki"===e;if(a.resolve)try{let r=R1(t);(function(e,t){if(R6(e,48,`Invalid ${"spki"===t?"SPKI":"PKCS#8"} structure`),R2(e),"pkcs8"===t){R6(e,2,"Expected version field");let t=R2(e);e.pos+=t}R6(e,48,"Expected algorithm identifier"),R2(e)})(r,e),o=a.resolve({crv:(e=>{let t,r=(R6(e,6,"Expected algorithm OID"),t=R2(e),R3(e,t));if(RY(r,[43,101,110]))return"X25519";if(!RY(r,[42,134,72,206,61,2,1]))throw Error("Unsupported key algorithm");R6(e,6,"Expected curve OID");let i=R2(e),o=R3(e,i);if(RY(o,[42,134,72,206,61,3,1,7]))return"P-256";if(RY(o,[43,129,4,0,34]))return"P-384";if(RY(o,[43,129,4,0,35]))return"P-521";throw Error("Unsupported named curve")})(r)})}catch{throw new Px("Invalid or unsupported key format")}else o=a.subtle;return crypto.subtle.importKey(e,t,o,n??s,a.usages[+!s])},R5=(e,t)=>Pw(e.replace(t,""));function R8(e){return RX("public","spki",e)}function R7(e){return RX("private","pkcs8",e)}async function qe(e){if(P8(e))if("secret"!==e.type)return e.export({format:"jwk"});else e=e.export();if(e instanceof Uint8Array)return{kty:"oct",k:PF(e)};if(!P5(e))throw TypeError(Vt(e,"CryptoKey","KeyObject","Uint8Array"));if(!e.extractable)throw TypeError("non-extractable CryptoKey cannot be exported as a JWK");let t=await crypto.subtle.exportKey("jwk",e);for(let e of(delete t.ext,delete t.key_ops,delete t.use,"AKP"!==t.kty&&delete t.alg,Object.keys(t)))void 0===t[e]&&delete t[e];return t}let qt=(e,t)=>{if("string"!=typeof e||!e)throw new PE(`${t} missing or invalid`)};async function qr(e,t){let r,i;if(PU(e)){if("string"!=typeof(r=Vs(e)).kty)throw TypeError(Vt(e,"CryptoKey","KeyObject","JSON Web Key"))}else if(P7(e))r=Vs(await qe(e));else throw TypeError(Vt(e,"CryptoKey","KeyObject","JSON Web Key"));if("sha256"!==(t??="sha256")&&"sha384"!==t&&"sha512"!==t)throw TypeError('digestAlgorithm must one of "sha256", "sha384", or "sha512"');switch(r.kty){case"AKP":qt(r.alg,'"alg" (Algorithm) Parameter'),qt(r.pub,'"pub" (Public key) Parameter'),i={alg:r.alg,kty:r.kty,pub:r.pub};break;case"EC":qt(r.crv,'"crv" (Curve) Parameter'),qt(r.x,'"x" (X Coordinate) Parameter'),qt(r.y,'"y" (Y Coordinate) Parameter'),i={crv:r.crv,kty:r.kty,x:r.x,y:r.y};break;case"OKP":qt(r.crv,'"crv" (Subtype of Key Pair) Parameter'),qt(r.x,'"x" (Public Key) Parameter'),i={crv:r.crv,kty:r.kty,x:r.x};break;case"RSA":qt(r.e,'"e" (Exponent) Parameter'),qt(r.n,'"n" (Modulus) Parameter'),i={e:r.e,kty:r.kty,n:r.n};break;case"oct":if("string"!=typeof r.k)throw new PE('"k" (Key Value) Parameter missing or invalid');i={k:r.k,kty:r.kty};break;default:throw new Px('"kty" (Key Type) Parameter missing or unsupported')}let o=PS(JSON.stringify(i));return PF(await PP(t,o))}async function qi(e,t){t??="sha256";let r=await qr(e,t);return`urn:ietf:params:oauth:jwk-thumbprint:sha-${t.slice(-3)}:${r}`}async function qo(e,t){let r,i={...e,...t?.header};if(!PU(i.jwk))throw new PT('"jwk" (JSON Web Key) Header Parameter must be a JSON object');try{r=Vd(i.jwk)}catch(e){throw new PT("Invalid Embedded JWK",{cause:e})}let o=Rd(i.alg);if(void 0!==r.use&&"sig"!==r.use)throw new PT('Invalid Embedded JWK, its "use" must be "sig" when present');if(void 0!==r.alg&&r.alg!==o.alg)throw new PT(`Invalid Embedded JWK, its "alg" must be "${o.alg}" when present`);let n=await Vl(o,r,!0);if("public"!==n.type)throw new PT('"jwk" (JSON Web Key) Header Parameter must be a public key');return n}async function qn(e,t,r){let i=e.get(t)||e.set(t,{}).get(t),{alg:o}=r;if(void 0===i[o]){let e=Vl(r,t,!0).then(e=>{if("public"!==e.type)throw new PA("JSON Web Key Set members must be public keys");return i[o]=e,e}).catch(t=>{throw i[o]===e&&delete i[o],t});i[o]=e}return i[o]}function qa(e){let t;try{t=structuredClone(e)}catch{}if(!PH(t))throw new PA("JSON Web Key Set malformed");let r=t.keys.map(e=>{let t=Vs(e);return Array.isArray(t.key_ops)&&(t.key_ops=[...t.key_ops]),t}),i=new WeakMap;return Object.defineProperty(async(e,o)=>{let{alg:n,kid:a}={...e,...o?.header},s="string"==typeof n?Rs[n]:void 0;if(!s||s.secret)throw new Px('Unsupported "alg" value for a JSON Web Key Set');let d=t.keys.filter((e,t)=>(function(e,t,r,i){let{kty:o,key_ops:n,ext:a,kid:s,alg:d,use:c,crv:l}=e;return(void 0===a||"boolean"==typeof a)&&(void 0===n||Array.isArray(n)&&n.every((e,t)=>"string"==typeof e&&n.indexOf(e)===t)&&n.includes("verify"))&&t.kty.includes(o)&&(void 0===i||"string"==typeof i&&i===s)&&(void 0===d?"AKP"!==o:r===d)&&(void 0===c||"sig"===c)&&(!t.crv||l===t.crv)})(r[t],s,n,a)),{0:c,length:l}=d;if(!l)throw new PW;if(1!==l){let e=new PM;throw e[Symbol.asyncIterator]=async function*(){for(let e of d)try{yield await qn(i,e,s)}catch{}},e}return qn(i,c,s)},"jwks",{value:()=>structuredClone(t)})}(typeof navigator>"u"||!navigator.userAgent?.startsWith?.("Mozilla/5.0 "))&&(h="jose/v6.2.12");let qs=Symbol(),qd=Symbol();function qc(e,t){return Number.isFinite(e)&&Date.now(){if(u&&("u">typeof WebSocketPair||"u">typeof navigator&&"Cloudflare-Workers"===navigator.userAgent||"u">typeof EdgeRuntime&&"vercel"===EdgeRuntime)&&(u=void 0),!u){let e=++m,t=u=(async function(e,t,r,i=fetch){let o=await i(e,{method:"GET",signal:r,redirect:"manual",headers:t}).catch(e=>{throw"TimeoutError"===e.name?new PN:e});if(200!==o.status)throw new PV("Expected 200 OK from the JSON Web Key Set HTTP response");try{return await o.json()}catch{throw new PV("Failed to parse the JSON Web Key Set HTTP response as JSON")}})(r,d,AbortSignal.timeout(n),c).then(t=>{let r=qa(t);if(e<=f)return;y=r;let i=Date.now();l&&(l.uat=i,l.jwks=t),p=i,f=e}).finally(()=>{u===t&&(u=void 0)})}await u};return Object.defineProperties(async(e,t)=>{y&&qc(p,s)||await g();try{return await y(e,t)}catch(r){if(r instanceof PW&&!qc(p,a))return await g(),y(e,t);throw r}},{coolingDown:{get:()=>qc(p,a),enumerable:!0},fresh:{get:()=>qc(p,s),enumerable:!0},reload:{value:g,enumerable:!0},reloading:{get:()=>!!u,enumerable:!0},jwks:{value:()=>y?.jwks(),enumerable:!0}})}let qu=RO;class qm extends qu{encode(){let e=PF(JSON.stringify({alg:"none"})),t=PF(RT(this));return`${e}.${t}.`}static decode(e,t){let r,i;if("string"!=typeof e)throw new PO("Unsecured JWT must be a string");let{0:o,1:n,2:a,length:s}=e.split(".");if(3!==s||""!==a)throw new PO("Invalid Unsecured JWT");try{r=PZ(o,PT,"JWS Protected Header is invalid");let e=P0(PT,PQ,void 0,r,r);i=P2(r,e)}catch(e){throw e instanceof PT?new PO("Invalid Unsecured JWT",{cause:e}):e}if("none"!==r.alg)throw new PO("Invalid Unsecured JWT");if(!i)throw new PO("JWTs MUST NOT use unencoded payload");return{payload:Rj(r,PK(n,"payload",PO),t),header:r}}}async function qf(e,t,r){if("string"!=typeof e||0!==e.indexOf("-----BEGIN PUBLIC KEY-----"))throw TypeError('"spki" must be SPKI formatted string');return R9("spki",R5(e,/(?:-----(?:BEGIN|END) PUBLIC KEY-----|\s)/g),t,r)}async function qh(e,t,r){let i;if("string"!=typeof e||0!==e.indexOf("-----BEGIN CERTIFICATE-----"))throw TypeError('"x509" must be X.509 formatted string');try{let t=R5(e,/(?:-----(?:BEGIN|END) CERTIFICATE-----|\s)/g);i=function(e){let t=R1(e);R6(t,48,"Invalid certificate structure");let r=R2(t);if(r<0||t.pos+r>t.data.length)throw Error("Unexpected end of ASN.1 input");R6(t,48,"Invalid tbsCertificate structure"),R2(t),160===e[t.pos]?R4(t,6):R4(t,5);let i=t.pos;R6(t,48,"Invalid SPKI structure");let o=R2(t);return e.subarray(i,i+o+(t.pos-i))}(t)}catch(e){throw TypeError("Failed to parse the X.509 certificate",{cause:e})}return R9("spki",i,t,r)}async function qy(e,t,r){if("string"!=typeof e||0!==e.indexOf("-----BEGIN PRIVATE KEY-----"))throw TypeError('"pkcs8" must be PKCS#8 formatted string');return R9("pkcs8",R5(e,/(?:-----(?:BEGIN|END) PRIVATE KEY-----|\s)/g),t,r)}async function qg(e,t,r){if(!PU(e))throw TypeError("JWK must be an object");let i=Vd(e),o=Vc(r?.extractable),{alg:n}=i;if(t??=n,"oct"!==i.kty&&!t)throw TypeError('"alg" argument is required when "jwk.alg" is not present');switch(i.kty){case"oct":if("string"!=typeof i.k)throw TypeError('missing "k" (Key Value) Parameter value');return PD(i.k);case"AKP":if("string"!=typeof n||!n)throw TypeError('missing "alg" (Algorithm) Parameter value');if(t!==n)throw TypeError("JWK alg and alg option value mismatch");return Vl(RQ(t),i,o);case"RSA":case"EC":case"OKP":return Vl(RQ(t),i,o);default:throw new Px('Unsupported "kty" (Key Type) Parameter value')}}function q_(e){let t;if("string"==typeof e){let r=e.split(".");(3===r.length||5===r.length)&&([t]=r)}else if("object"==typeof e&&e)if("protected"in e)t=e.protected;else throw TypeError("Token does not contain a Protected Header");let r="Invalid Token or Protected Header formatting";if("string"!=typeof t||!t)throw TypeError(r);return PZ(t,TypeError,r)}function qv(e){let t,r;if("string"!=typeof e)throw new PO("JWTs must use Compact JWS serialization, JWT must be a string");let{1:i,length:o}=e.split(".");if(5===o)throw new PO("Only JWTs using Compact JWS serialization can be decoded");if(3!==o)throw new PO("Invalid JWT");if(!i)throw new PO("JWTs must contain a payload");try{t=PD(i)}catch{throw new PO("Failed to base64url decode the payload")}try{r=JSON.parse(Py.decode(t))}catch{throw new PO("Failed to parse the decoded payload as JSON")}if(!PU(r))throw new PO("Invalid JWT Claims Set");return r}async function qb(e,t){let r,i=Vc(t?.extractable),o=RQ(e,RJ);if(o.secret&&RZ(RJ),o.resolve){let e=t?.crv??"P-256";if(!["P-256","P-384","P-521","X25519"].includes(e))throw new Px("Invalid or unsupported crv option provided, supported values are P-256, P-384, P-521, and X25519");r=o.resolve({crv:e})}else{if(void 0!==o.crv&&t?.crv!==void 0&&t.crv!==o.crv)throw new Px(`Invalid or unsupported crv option provided, the only supported value for ${e} is ${o.crv}`);r="RSA"===o.kty[0]?{...o.subtle,publicExponent:Uint8Array.of(1,0,1),modulusLength:function(e){let t=e?.modulusLength??2048;if("number"!=typeof t||!Number.isInteger(t)||t<2048)throw new Px("Invalid or unsupported modulusLength option provided, 2048 bits or larger keys must be used");return t}(t)}:o.subtle}return crypto.subtle.generateKey(r,i??!1,[...o.usages[1],...o.usages[0]])}async function q$(e,t){let r,i,o,n=Vc(t?.extractable);switch(e){case"HS256":case"HS384":case"HS512":r=+e.slice(-3),i={name:"HMAC",hash:`SHA-${r}`,length:r},o=["sign","verify"];break;case"A128CBC-HS256":case"A192CBC-HS384":case"A256CBC-HS512":return crypto.getRandomValues(new Uint8Array(e.slice(-3)>>3));case"A128KW":case"A192KW":case"A256KW":i={name:"AES-KW",length:r=+e.slice(1,4)},o=["wrapKey","unwrapKey"];break;case"A128GCMKW":case"A192GCMKW":case"A256GCMKW":case"A128GCM":case"A192GCM":case"A256GCM":i={name:"AES-GCM",length:r=+e.slice(1,4)},o=["encrypt","decrypt"];break;default:RZ(RJ)}return crypto.subtle.generateKey(i,n??!1,o)}let qS="WebCryptoAPI";var qk=kA(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.regexpCode=e.getEsmExportName=e.getProperty=e.safeStringify=e.stringify=e.strConcat=e.addCodeArg=e.str=e._=e.nil=e._Code=e.Name=e.IDENTIFIER=e._CodeOrName=void 0;var t=class{};e._CodeOrName=t,e.IDENTIFIER=/^[a-z$_][a-z$_0-9]*$/i;var r=class extends t{constructor(t){if(super(),!e.IDENTIFIER.test(t))throw Error("CodeGen: name must be a valid identifier");this.str=t}toString(){return this.str}emptyStr(){return!1}get names(){return{[this.str]:1}}};e.Name=r;var i=class extends t{constructor(e){super(),this._items="string"==typeof e?[e]:e}toString(){return this.str}emptyStr(){if(this._items.length>1)return!1;let e=this._items[0];return""===e||'""'===e}get str(){var e;return null!=(e=this._str)?e:this._str=this._items.reduce((e,t)=>`${e}${t}`,"")}get names(){var e;return null!=(e=this._names)?e:this._names=this._items.reduce((e,t)=>(t instanceof r&&(e[t.str]=(e[t.str]||0)+1),e),{})}};function o(e,...t){let r=[e[0]],n=0;for(;n{Object.defineProperty(e,"__esModule",{value:!0}),e.ValueScope=e.ValueScopeName=e.Scope=e.varKinds=e.UsedValueState=void 0;let t=qk();var r,i,o=class extends Error{constructor(e){super(`CodeGen: "code" for ${e} not defined`),this.value=e.value}};(r=i||(e.UsedValueState=i={}))[r.Started=0]="Started",r[r.Completed=1]="Completed",e.varKinds={const:new t.Name("const"),let:new t.Name("let"),var:new t.Name("var")};var n=class{constructor({prefixes:e,parent:t}={}){this._names={},this._prefixes=e,this._parent=t}toName(e){return e instanceof t.Name?e:this.name(e)}name(e){return new t.Name(this._newName(e))}_newName(e){let t=this._names[e]||this._nameGroup(e);return`${e}${t.index++}`}_nameGroup(e){var t,r;if((null==(r=null==(t=this._parent)?void 0:t._prefixes)?void 0:r.has(e))||this._prefixes&&!this._prefixes.has(e))throw Error(`CodeGen: prefix "${e}" is not allowed in this scope`);return this._names[e]={prefix:e,index:0}}};e.Scope=n;var a=class extends t.Name{constructor(e,t){super(t),this.prefix=e}setValue(e,{property:r,itemIndex:i}){this.value=e,this.scopePath=(0,t._)`.${new t.Name(r)}[${i}]`}};e.ValueScopeName=a;let s=(0,t._)`\n`;var d=class extends n{constructor(e){super(e),this._values={},this._scope=e.scope,this.opts={...e,_n:e.lines?s:t.nil}}get(){return this._scope}name(e){return new a(e,this._newName(e))}value(e,t){var r;if(void 0===t.ref)throw Error("CodeGen: ref must be passed in value");let i=this.toName(e),{prefix:o}=i,n=null!=(r=t.key)?r:t.ref,a=this._values[o];if(a){let e=a.get(n);if(e)return e}else a=this._values[o]=new Map;a.set(n,i);let s=this._scope[o]||(this._scope[o]=[]),d=s.length;return s[d]=t.ref,i.setValue(t,{property:o,itemIndex:d}),i}getValue(e,t){let r=this._values[e];if(r)return r.get(t)}scopeRefs(e,r=this._values){return this._reduceValues(r,r=>{if(void 0===r.scopePath)throw Error(`CodeGen: name "${r}" has no value`);return(0,t._)`${e}${r.scopePath}`})}scopeCode(e=this._values,t,r){return this._reduceValues(e,e=>{if(void 0===e.value)throw Error(`CodeGen: name "${e}" has no value`);return e.value.code},t,r)}_reduceValues(r,n,a={},s){let d=t.nil;for(let c in r){let l=r[c];if(!l)continue;let p=a[c]=a[c]||new Map;l.forEach(r=>{if(p.has(r))return;p.set(r,i.Started);let a=n(r);if(a){let i=this.opts.es5?e.varKinds.var:e.varKinds.const;d=(0,t._)`${d}${i} ${r} = ${a};${this.opts._n}`}else if(a=null==s?void 0:s(r))d=(0,t._)`${d}${a}${this.opts._n}`;else throw new o(r);p.set(r,i.Completed)})}return d}};e.ValueScope=d}),qP=kA(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.or=e.and=e.not=e.CodeGen=e.operators=e.varKinds=e.ValueScopeName=e.ValueScope=e.Scope=e.Name=e.regexpCode=e.stringify=e.getProperty=e.nil=e.strConcat=e.str=e._=void 0;let t=qk(),r=qw();var i=qk();Object.defineProperty(e,"_",{enumerable:!0,get:function(){return i._}}),Object.defineProperty(e,"str",{enumerable:!0,get:function(){return i.str}}),Object.defineProperty(e,"strConcat",{enumerable:!0,get:function(){return i.strConcat}}),Object.defineProperty(e,"nil",{enumerable:!0,get:function(){return i.nil}}),Object.defineProperty(e,"getProperty",{enumerable:!0,get:function(){return i.getProperty}}),Object.defineProperty(e,"stringify",{enumerable:!0,get:function(){return i.stringify}}),Object.defineProperty(e,"regexpCode",{enumerable:!0,get:function(){return i.regexpCode}}),Object.defineProperty(e,"Name",{enumerable:!0,get:function(){return i.Name}});var o=qw();Object.defineProperty(e,"Scope",{enumerable:!0,get:function(){return o.Scope}}),Object.defineProperty(e,"ValueScope",{enumerable:!0,get:function(){return o.ValueScope}}),Object.defineProperty(e,"ValueScopeName",{enumerable:!0,get:function(){return o.ValueScopeName}}),Object.defineProperty(e,"varKinds",{enumerable:!0,get:function(){return o.varKinds}}),e.operators={GT:new t._Code(">"),GTE:new t._Code(">="),LT:new t._Code("<"),LTE:new t._Code("<="),EQ:new t._Code("==="),NEQ:new t._Code("!=="),NOT:new t._Code("!"),OR:new t._Code("||"),AND:new t._Code("&&"),ADD:new t._Code("+")};var n=class{optimizeNodes(){return this}optimizeNames(e,t){return this}},a=class extends n{constructor(e,t,r){super(),this.varKind=e,this.name=t,this.rhs=r}render({es5:e,_n:t}){let i=e?r.varKinds.var:this.varKind,o=void 0===this.rhs?"":` = ${this.rhs}`;return`${i} ${this.name}${o};`+t}optimizeNames(e,t){if(e[this.name.str])return this.rhs&&(this.rhs=x(this.rhs,e,t)),this}get names(){return this.rhs instanceof t._CodeOrName?this.rhs.names:{}}},s=class extends n{constructor(e,t,r){super(),this.lhs=e,this.rhs=t,this.sideEffects=r}render({_n:e}){return`${this.lhs} = ${this.rhs};`+e}optimizeNames(e,r){if(!(this.lhs instanceof t.Name)||e[this.lhs.str]||this.sideEffects)return this.rhs=x(this.rhs,e,r),this}get names(){return I(this.lhs instanceof t.Name?{}:{...this.lhs.names},this.rhs)}},d=class extends s{constructor(e,t,r,i){super(e,r,i),this.op=t}render({_n:e}){return`${this.lhs} ${this.op}= ${this.rhs};`+e}},c=class extends n{constructor(e){super(),this.label=e,this.names={}}render({_n:e}){return`${this.label}:`+e}},l=class extends n{constructor(e){super(),this.label=e,this.names={}}render({_n:e}){return`break${this.label?` ${this.label}`:""};`+e}},p=class extends n{constructor(e){super(),this.error=e}render({_n:e}){return`throw ${this.error};`+e}get names(){return this.error.names}},u=class extends n{constructor(e){super(),this.code=e}render({_n:e}){return`${this.code};`+e}optimizeNodes(){return`${this.code}`?this:void 0}optimizeNames(e,t){return this.code=x(this.code,e,t),this}get names(){return this.code instanceof t._CodeOrName?this.code.names:{}}},m=class extends n{constructor(e=[]){super(),this.nodes=e}render(e){return this.nodes.reduce((t,r)=>t+r.render(e),"")}optimizeNodes(){let{nodes:e}=this,t=e.length;for(;t--;){let r=e[t].optimizeNodes();Array.isArray(r)?e.splice(t,1,...r):r?e[t]=r:e.splice(t,1)}return e.length>0?this:void 0}optimizeNames(e,t){let{nodes:r}=this,i=r.length;for(;i--;){let o=r[i];o.optimizeNames(e,t)||(function(e,t){for(let r in t)e[r]=(e[r]||0)-(t[r]||0)}(e,o.names),r.splice(i,1))}return r.length>0?this:void 0}get names(){return this.nodes.reduce((e,t)=>q(e,t.names),{})}},f=class extends m{render(e){return"{"+e._n+super.render(e)+"}"+e._n}},h=class extends m{},y=class extends f{};y.kind="else";var g=class e extends f{constructor(e,t){super(t),this.condition=e}render(e){let t=`if(${this.condition})`+super.render(e);return this.else&&(t+="else "+this.else.render(e)),t}optimizeNodes(){super.optimizeNodes();let t=this.condition;if(!0===t)return this.nodes;let r=this.else;if(r){let e=r.optimizeNodes();r=this.else=Array.isArray(e)?new y(e):e}return r?!1===t?r instanceof e?r:r.nodes:this.nodes.length?this:new e(j(t),r instanceof e?[r]:r.nodes):!1!==t&&this.nodes.length?this:void 0}optimizeNames(e,t){var r;if(this.else=null==(r=this.else)?void 0:r.optimizeNames(e,t),super.optimizeNames(e,t)||this.else)return this.condition=x(this.condition,e,t),this}get names(){let e=super.names;return I(e,this.condition),this.else&&q(e,this.else.names),e}};g.kind="if";var _=class extends f{};_.kind="for";var v=class extends _{constructor(e){super(),this.iteration=e}render(e){return`for(${this.iteration})`+super.render(e)}optimizeNames(e,t){if(super.optimizeNames(e,t))return this.iteration=x(this.iteration,e,t),this}get names(){return q(super.names,this.iteration.names)}},b=class extends _{constructor(e,t,r,i){super(),this.varKind=e,this.name=t,this.from=r,this.to=i}render(e){let t=e.es5?r.varKinds.var:this.varKind,{name:i,from:o,to:n}=this;return`for(${t} ${i}=${o}; ${i}<${n}; ${i}++)`+super.render(e)}get names(){return I(I(super.names,this.from),this.to)}},$=class extends _{constructor(e,t,r,i){super(),this.loop=e,this.varKind=t,this.name=r,this.iterable=i}render(e){return`for(${this.varKind} ${this.name} ${this.loop} ${this.iterable})`+super.render(e)}optimizeNames(e,t){if(super.optimizeNames(e,t))return this.iterable=x(this.iterable,e,t),this}get names(){return q(super.names,this.iterable.names)}},S=class extends f{constructor(e,t,r){super(),this.name=e,this.args=t,this.async=r}render(e){return`${this.async?"async ":""}function ${this.name}(${this.args})`+super.render(e)}};S.kind="func";var k=class extends m{render(e){return"return "+super.render(e)}};k.kind="return";var w=class extends f{render(e){let t="try"+super.render(e);return this.catch&&(t+=this.catch.render(e)),this.finally&&(t+=this.finally.render(e)),t}optimizeNodes(){var e,t;return super.optimizeNodes(),null==(e=this.catch)||e.optimizeNodes(),null==(t=this.finally)||t.optimizeNodes(),this}optimizeNames(e,t){var r,i;return super.optimizeNames(e,t),null==(r=this.catch)||r.optimizeNames(e,t),null==(i=this.finally)||i.optimizeNames(e,t),this}get names(){let e=super.names;return this.catch&&q(e,this.catch.names),this.finally&&q(e,this.finally.names),e}},P=class extends f{constructor(e){super(),this.error=e}render(e){return`catch(${this.error})`+super.render(e)}};P.kind="catch";var V=class extends f{render(e){return"finally"+super.render(e)}};V.kind="finally";var R=class{constructor(e,t={}){this._values={},this._blockStarts=[],this._constants={},this.opts={...t,_n:t.lines?"\n":""},this._extScope=e,this._scope=new r.Scope({parent:e}),this._nodes=[new h]}toString(){return this._root.render(this.opts)}name(e){return this._scope.name(e)}scopeName(e){return this._extScope.name(e)}scopeValue(e,t){let r=this._extScope.value(e,t);return(this._values[r.prefix]||(this._values[r.prefix]=new Set)).add(r),r}getScopeValue(e,t){return this._extScope.getValue(e,t)}scopeRefs(e){return this._extScope.scopeRefs(e,this._values)}scopeCode(){return this._extScope.scopeCode(this._values)}_def(e,t,r,i){let o=this._scope.toName(t);return void 0!==r&&i&&(this._constants[o.str]=r),this._leafNode(new a(e,o,r)),o}const(e,t,i){return this._def(r.varKinds.const,e,t,i)}let(e,t,i){return this._def(r.varKinds.let,e,t,i)}var(e,t,i){return this._def(r.varKinds.var,e,t,i)}assign(e,t,r){return this._leafNode(new s(e,t,r))}add(t,r){return this._leafNode(new d(t,e.operators.ADD,r))}code(e){return"function"==typeof e?e():e!==t.nil&&this._leafNode(new u(e)),this}object(...e){let r=["{"];for(let[i,o]of e)r.length>1&&r.push(","),r.push(i),(i!==o||this.opts.es5)&&(r.push(":"),(0,t.addCodeArg)(r,o));return r.push("}"),new t._Code(r)}if(e,t,r){if(this._blockNode(new g(e)),t&&r)this.code(t).else().code(r).endIf();else if(t)this.code(t).endIf();else if(r)throw Error('CodeGen: "else" body without "then" body');return this}elseIf(e){return this._elseNode(new g(e))}else(){return this._elseNode(new y)}endIf(){return this._endBlockNode(g,y)}_for(e,t){return this._blockNode(e),t&&this.code(t).endFor(),this}for(e,t){return this._for(new v(e),t)}forRange(e,t,i,o,n=this.opts.es5?r.varKinds.var:r.varKinds.let){let a=this._scope.toName(e);return this._for(new b(n,a,t,i),()=>o(a))}forOf(e,i,o,n=r.varKinds.const){let a=this._scope.toName(e);if(this.opts.es5){let e=i instanceof t.Name?i:this.var("_arr",i);return this.forRange("_i",0,(0,t._)`${e}.length`,r=>{this.var(a,(0,t._)`${e}[${r}]`),o(a)})}return this._for(new $("of",n,a,i),()=>o(a))}forIn(e,i,o,n=this.opts.es5?r.varKinds.var:r.varKinds.const){if(this.opts.ownProperties)return this.forOf(e,(0,t._)`Object.keys(${i})`,o);let a=this._scope.toName(e);return this._for(new $("in",n,a,i),()=>o(a))}endFor(){return this._endBlockNode(_)}label(e){return this._leafNode(new c(e))}break(e){return this._leafNode(new l(e))}return(e){let t=new k;if(this._blockNode(t),this.code(e),1!==t.nodes.length)throw Error('CodeGen: "return" should have one node');return this._endBlockNode(k)}try(e,t,r){if(!t&&!r)throw Error('CodeGen: "try" without "catch" and "finally"');let i=new w;if(this._blockNode(i),this.code(e),t){let e=this.name("e");this._currNode=i.catch=new P(e),t(e)}return r&&(this._currNode=i.finally=new V,this.code(r)),this._endBlockNode(P,V)}throw(e){return this._leafNode(new p(e))}block(e,t){return this._blockStarts.push(this._nodes.length),e&&this.code(e).endBlock(t),this}endBlock(e){let t=this._blockStarts.pop();if(void 0===t)throw Error("CodeGen: not in self-balancing block");let r=this._nodes.length-t;if(r<0||void 0!==e&&r!==e)throw Error(`CodeGen: wrong number of nodes: ${r} vs ${e} expected`);return this._nodes.length=t,this}func(e,r=t.nil,i,o){return this._blockNode(new S(e,r,i)),o&&this.code(o).endFunc(),this}endFunc(){return this._endBlockNode(S)}optimize(e=1){for(;e-- >0;)this._root.optimizeNodes(),this._root.optimizeNames(this._root.names,this._constants)}_leafNode(e){return this._currNode.nodes.push(e),this}_blockNode(e){this._currNode.nodes.push(e),this._nodes.push(e)}_endBlockNode(e,t){let r=this._currNode;if(r instanceof e||t&&r instanceof t)return this._nodes.pop(),this;throw Error(`CodeGen: not in block "${t?`${e.kind}/${t.kind}`:e.kind}"`)}_elseNode(e){let t=this._currNode;if(!(t instanceof g))throw Error('CodeGen: "else" without "if"');return this._currNode=t.else=e,this}get _root(){return this._nodes[0]}get _currNode(){let e=this._nodes;return e[e.length-1]}set _currNode(e){let t=this._nodes;t[t.length-1]=e}};function q(e,t){for(let r in t)e[r]=(e[r]||0)+(t[r]||0);return e}function I(e,r){return r instanceof t._CodeOrName?q(e,r.names):e}function x(e,r,i){var o;if(e instanceof t.Name)return n(e);if(!((o=e)instanceof t._Code&&o._items.some(e=>e instanceof t.Name&&1===r[e.str]&&void 0!==i[e.str])))return e;return new t._Code(e._items.reduce((e,r)=>(r instanceof t.Name&&(r=n(r)),r instanceof t._Code?e.push(...r._items):e.push(r),e),[]));function n(e){let t=i[e.str];return void 0===t||1!==r[e.str]?e:(delete r[e.str],t)}}function j(e){return"boolean"==typeof e||"number"==typeof e||null===e?!e:(0,t._)`!${E(e)}`}e.CodeGen=R,e.not=j;let C=O(e.operators.AND);e.and=function(...e){return e.reduce(C)};let T=O(e.operators.OR);function O(e){return(r,i)=>r===t.nil?i:i===t.nil?r:(0,t._)`${E(r)} ${e} ${E(i)}`}function E(e){return e instanceof t.Name?e:(0,t._)`(${e})`}e.or=function(...e){return e.reduce(T)}}),qV=kA(e=>{var t,r;Object.defineProperty(e,"__esModule",{value:!0}),e.checkStrictMode=e.getErrorPath=e.Type=e.useFunc=e.setEvaluated=e.evaluatedPropsToName=e.mergeEvaluated=e.eachItem=e.unescapeJsonPointer=e.escapeJsonPointer=e.escapeFragment=e.unescapeFragment=e.schemaRefOrVal=e.schemaHasRulesButRef=e.schemaHasRules=e.checkUnknownRules=e.alwaysValidSchema=e.toHash=void 0;let i=qP(),o=qk();function n(e,t=e.schema){let{opts:r,self:i}=e;if(!r.strictSchema||"boolean"==typeof t)return;let o=i.RULES.keywords;for(let r in t)o[r]||m(e,`unknown keyword: "${r}"`)}function a(e,t){if("boolean"==typeof e)return!e;for(let r in e)if(t[r])return!0;return!1}function s(e){return"number"==typeof e?`${e}`:e.replace(/~/g,"~0").replace(/\//g,"~1")}function d(e){return e.replace(/~1/g,"/").replace(/~0/g,"~")}function c({mergeNames:e,mergeToName:t,mergeValues:r,resultToName:o}){return(n,a,s,d)=>{let c=void 0===s?a:s instanceof i.Name?(a instanceof i.Name?e(n,a,s):t(n,a,s),s):a instanceof i.Name?(t(n,s,a),a):r(a,s);return d!==i.Name||c instanceof i.Name?c:o(n,c)}}function l(e,t){if(!0===t)return e.var("props",!0);let r=e.var("props",(0,i._)`{}`);return void 0!==t&&p(e,r,t),r}function p(e,t,r){Object.keys(r).forEach(r=>e.assign((0,i._)`${t}${(0,i.getProperty)(r)}`,!0))}e.toHash=function(e){let t={};for(let r of e)t[r]=!0;return t},e.alwaysValidSchema=function(e,t){return"boolean"==typeof t?t:0===Object.keys(t).length||(n(e,t),!a(t,e.self.RULES.all))},e.checkUnknownRules=n,e.schemaHasRules=a,e.schemaHasRulesButRef=function(e,t){if("boolean"==typeof e)return!e;for(let r in e)if("$ref"!==r&&t.all[r])return!0;return!1},e.schemaRefOrVal=function({topSchemaRef:e,schemaPath:t},r,o,n){if(!n){if("number"==typeof r||"boolean"==typeof r)return r;if("string"==typeof r)return(0,i._)`${r}`}return(0,i._)`${e}${t}${(0,i.getProperty)(o)}`},e.unescapeFragment=function(e){return d(decodeURIComponent(e))},e.escapeFragment=function(e){return encodeURIComponent(s(e))},e.escapeJsonPointer=s,e.unescapeJsonPointer=d,e.eachItem=function(e,t){if(Array.isArray(e))for(let r of e)t(r);else t(e)},e.mergeEvaluated={props:c({mergeNames:(e,t,r)=>e.if((0,i._)`${r} !== true && ${t} !== undefined`,()=>{e.if((0,i._)`${t} === true`,()=>e.assign(r,!0),()=>e.assign(r,(0,i._)`${r} || {}`).code((0,i._)`Object.assign(${r}, ${t})`))}),mergeToName:(e,t,r)=>e.if((0,i._)`${r} !== true`,()=>{!0===t?e.assign(r,!0):(e.assign(r,(0,i._)`${r} || {}`),p(e,r,t))}),mergeValues:(e,t)=>!0===e||{...e,...t},resultToName:l}),items:c({mergeNames:(e,t,r)=>e.if((0,i._)`${r} !== true && ${t} !== undefined`,()=>e.assign(r,(0,i._)`${t} === true ? true : ${r} > ${t} ? ${r} : ${t}`)),mergeToName:(e,t,r)=>e.if((0,i._)`${r} !== true`,()=>e.assign(r,!0===t||(0,i._)`${r} > ${t} ? ${r} : ${t}`)),mergeValues:(e,t)=>!0===e||Math.max(e,t),resultToName:(e,t)=>e.var("items",t)})},e.evaluatedPropsToName=l,e.setEvaluated=p;let u={};function m(e,t,r=e.opts.strictSchema){if(r){if(t=`strict mode: ${t}`,!0===r)throw Error(t);e.self.logger.warn(t)}}e.useFunc=function(e,t){return e.scopeValue("func",{ref:t,code:u[t.code]||(u[t.code]=new o._Code(t.code))})},(r=t||(e.Type=t={}))[r.Num=0]="Num",r[r.Str=1]="Str",e.getErrorPath=function(e,r,o){if(e instanceof i.Name){let n=r===t.Num;return o?n?(0,i._)`"[" + ${e} + "]"`:(0,i._)`"['" + ${e} + "']"`:n?(0,i._)`"/" + ${e}`:(0,i._)`"/" + ${e}.replace(/~/g, "~0").replace(/\\//g, "~1")`}return o?(0,i.getProperty)(e).toString():"/"+s(e)},e.checkStrictMode=m}),qR=kA(e=>{Object.defineProperty(e,"__esModule",{value:!0});let t=qP();e.default={data:new t.Name("data"),valCxt:new t.Name("valCxt"),instancePath:new t.Name("instancePath"),parentData:new t.Name("parentData"),parentDataProperty:new t.Name("parentDataProperty"),rootData:new t.Name("rootData"),dynamicAnchors:new t.Name("dynamicAnchors"),vErrors:new t.Name("vErrors"),errors:new t.Name("errors"),this:new t.Name("this"),self:new t.Name("self"),scope:new t.Name("scope"),json:new t.Name("json"),jsonPos:new t.Name("jsonPos"),jsonLen:new t.Name("jsonLen"),jsonPart:new t.Name("jsonPart")}}),qq=kA(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.extendErrors=e.resetErrorsCount=e.reportExtraError=e.reportError=e.keyword$DataError=e.keywordError=void 0;let t=qP(),r=qV(),i=qR();function o(e,r){let o=e.const("err",r);e.if((0,t._)`${i.default.vErrors} === null`,()=>e.assign(i.default.vErrors,(0,t._)`[${o}]`),(0,t._)`${i.default.vErrors}.push(${o})`),e.code((0,t._)`${i.default.errors}++`)}function n(e,r){let{gen:i,validateName:o,schemaEnv:n}=e;n.$async?i.throw((0,t._)`new ${e.ValidationError}(${r})`):(i.assign((0,t._)`${o}.errors`,r),i.return(!1))}e.keywordError={message:({keyword:e})=>(0,t.str)`must pass "${e}" keyword validation`},e.keyword$DataError={message:({keyword:e,schemaType:r})=>r?(0,t.str)`"${e}" keyword must be ${r} ($data)`:(0,t.str)`"${e}" keyword is invalid ($data)`},e.reportError=function(r,i=e.keywordError,a,d){let{it:c}=r,{gen:l,compositeRule:p,allErrors:u}=c,m=s(r,i,a);(null!=d?d:p||u)?o(l,m):n(c,(0,t._)`[${m}]`)},e.reportExtraError=function(t,r=e.keywordError,a){let{it:d}=t,{gen:c,compositeRule:l,allErrors:p}=d;o(c,s(t,r,a)),l||p||n(d,i.default.vErrors)},e.resetErrorsCount=function(e,r){e.assign(i.default.errors,r),e.if((0,t._)`${i.default.vErrors} !== null`,()=>e.if(r,()=>e.assign((0,t._)`${i.default.vErrors}.length`,r),()=>e.assign(i.default.vErrors,null)))},e.extendErrors=function({gen:e,keyword:r,schemaValue:o,data:n,errsCount:a,it:s}){if(void 0===a)throw Error("ajv implementation error");let d=e.name("err");e.forRange("i",a,i.default.errors,a=>{e.const(d,(0,t._)`${i.default.vErrors}[${a}]`),e.if((0,t._)`${d}.instancePath === undefined`,()=>e.assign((0,t._)`${d}.instancePath`,(0,t.strConcat)(i.default.instancePath,s.errorPath))),e.assign((0,t._)`${d}.schemaPath`,(0,t.str)`${s.errSchemaPath}/${r}`),s.opts.verbose&&(e.assign((0,t._)`${d}.schema`,o),e.assign((0,t._)`${d}.data`,n))})};let a={keyword:new t.Name("keyword"),schemaPath:new t.Name("schemaPath"),params:new t.Name("params"),propertyName:new t.Name("propertyName"),message:new t.Name("message"),schema:new t.Name("schema"),parentSchema:new t.Name("parentSchema")};function s(e,o,n){let{createErrors:s}=e.it;return!1===s?(0,t._)`{}`:function(e,o,n={}){let{gen:s,it:d}=e,c=[function({errorPath:e},{instancePath:o}){let n=o?(0,t.str)`${e}${(0,r.getErrorPath)(o,r.Type.Str)}`:e;return[i.default.instancePath,(0,t.strConcat)(i.default.instancePath,n)]}(d,n),function({keyword:e,it:{errSchemaPath:i}},{schemaPath:o,parentSchema:n}){let s=n?i:(0,t.str)`${i}/${e}`;return o&&(s=(0,t.str)`${s}${(0,r.getErrorPath)(o,r.Type.Str)}`),[a.schemaPath,s]}(e,n)];return function(e,{params:r,message:o},n){let{keyword:s,data:d,schemaValue:c,it:l}=e,{opts:p,propertyName:u,topSchemaRef:m,schemaPath:f}=l;n.push([a.keyword,s],[a.params,"function"==typeof r?r(e):r||(0,t._)`{}`]),p.messages&&n.push([a.message,"function"==typeof o?o(e):o]),p.verbose&&n.push([a.schema,c],[a.parentSchema,(0,t._)`${m}${f}`],[i.default.data,d]),u&&n.push([a.propertyName,u])}(e,o,c),s.object(...c)}(e,o,n)}}),qI=kA(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.boolOrEmptySchema=e.topBoolOrEmptySchema=void 0;let t=qq(),r=qP(),i=qR(),o={message:"boolean schema is false"};function n(e,r){let{gen:i,data:n}=e;(0,t.reportError)({gen:i,keyword:"false schema",data:n,schema:!1,schemaCode:!1,schemaValue:!1,params:{},it:e},o,void 0,r)}e.topBoolOrEmptySchema=function(e){let{gen:t,schema:o,validateName:a}=e;!1===o?n(e,!1):"object"==typeof o&&!0===o.$async?t.return(i.default.data):(t.assign((0,r._)`${a}.errors`,null),t.return(!0))},e.boolOrEmptySchema=function(e,t){let{gen:r,schema:i}=e;!1===i?(r.var(t,!1),n(e)):r.var(t,!0)}}),qx=kA(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.getRules=e.isJSONType=void 0;let t=new Set(["string","number","integer","boolean","null","object","array"]);e.isJSONType=function(e){return"string"==typeof e&&t.has(e)},e.getRules=function(){let e={number:{type:"number",rules:[]},string:{type:"string",rules:[]},array:{type:"array",rules:[]},object:{type:"object",rules:[]}};return{types:{...e,integer:!0,boolean:!0,null:!0},rules:[{rules:[]},e.number,e.string,e.array,e.object],post:{rules:[]},all:{},keywords:{}}}}),qj=kA(e=>{function t(e,t){return t.rules.some(t=>r(e,t))}function r(e,t){var r;return void 0!==e[t.keyword]||(null==(r=t.definition.implements)?void 0:r.some(t=>void 0!==e[t]))}Object.defineProperty(e,"__esModule",{value:!0}),e.shouldUseRule=e.shouldUseGroup=e.schemaHasRulesForType=void 0,e.schemaHasRulesForType=function({schema:e,self:r},i){let o=r.RULES.types[i];return o&&!0!==o&&t(e,o)},e.shouldUseGroup=t,e.shouldUseRule=r}),qC=kA(e=>{var t,r;Object.defineProperty(e,"__esModule",{value:!0}),e.reportTypeError=e.checkDataTypes=e.checkDataType=e.coerceAndCheckDataType=e.getJSONTypes=e.getSchemaTypes=e.DataType=void 0;let i=qx(),o=qj(),n=qq(),a=qP(),s=qV();function d(e){let t=Array.isArray(e)?e:e?[e]:[];if(t.every(i.isJSONType))return t;throw Error("type must be JSONType or JSONType[]: "+t.join(","))}(r=t||(e.DataType=t={}))[r.Correct=0]="Correct",r[r.Wrong=1]="Wrong",e.getSchemaTypes=function(e){let t=d(e.type);if(t.includes("null")){if(!1===e.nullable)throw Error("type: null contradicts nullable: false")}else{if(!t.length&&void 0!==e.nullable)throw Error('"nullable" cannot be used without "type"');!0===e.nullable&&t.push("null")}return t},e.getJSONTypes=d,e.coerceAndCheckDataType=function(e,r){var i,n;let{gen:s,data:d,opts:l}=e,u=(i=r,(n=l.coerceTypes)?i.filter(e=>c.has(e)||"array"===n&&"array"===e):[]),f=r.length>0&&!(0===u.length&&1===r.length&&(0,o.schemaHasRulesForType)(e,r[0]));if(f){let i=p(r,d,l.strictNumbers,t.Wrong);s.if(i,()=>{u.length?function(e,t,r){let{gen:i,data:o,opts:n}=e,s=i.let("dataType",(0,a._)`typeof ${o}`),d=i.let("coerced",(0,a._)`undefined`);for(let e of("array"===n.coerceTypes&&i.if((0,a._)`${s} == 'object' && Array.isArray(${o}) && ${o}.length == 1`,()=>i.assign(o,(0,a._)`${o}[0]`).assign(s,(0,a._)`typeof ${o}`).if(p(t,o,n.strictNumbers),()=>i.assign(d,o))),i.if((0,a._)`${d} !== undefined`),r))(c.has(e)||"array"===e&&"array"===n.coerceTypes)&&function(e){switch(e){case"string":i.elseIf((0,a._)`${s} == "number" || ${s} == "boolean"`).assign(d,(0,a._)`"" + ${o}`).elseIf((0,a._)`${o} === null`).assign(d,(0,a._)`""`);return;case"number":i.elseIf((0,a._)`${s} == "boolean" || ${o} === null diff --git a/sdks/typescript/src/operations.ts b/sdks/typescript/src/operations.ts index 15442630c6..f8e105b2fc 100644 --- a/sdks/typescript/src/operations.ts +++ b/sdks/typescript/src/operations.ts @@ -249,8 +249,6 @@ export type ConfigurationIdempotencyKey = string; export type ConfigurationLayerIdV1 = { readonly kind: "default"; readonly [key: string]: unknown } | { readonly kind: "user_profile"; readonly profile_id: UserProfileId; readonly [key: string]: unknown } | { readonly kind: "project"; readonly project_id: ProjectId; readonly [key: string]: unknown } | { readonly collection_id: QueryCollectionId; readonly kind: "collection"; readonly [key: string]: unknown }; export type ConfigurationReceiptId = string; export type ConfigurationRevisionId = string; -export type ConfigurationSettingActionV1 = "set" | "unset"; -export type ConfigurationSettingFindingV1 = { readonly kind: "invalid_index_path_pattern"; readonly legal_actions: readonly ConfigurationSettingActionV1[]; readonly message: string; readonly pattern: string }; export type ConfigurationSettlementAuthorityV1 = { readonly policy_digest: AccessPolicyDigest; readonly policy_epoch: number; readonly revalidated_at: UtcMicros }; export type ConfigurationSnapshotId = string; export type ConfigurationValueV1 = { readonly kind: "boolean"; readonly value: boolean; readonly [key: string]: unknown } | { readonly kind: "unsigned"; readonly value: number; readonly [key: string]: unknown } | { readonly kind: "code_index_worker_selection"; readonly value: CodeIndexWorkerSelectionV1; readonly [key: string]: unknown } | { readonly kind: "text"; readonly value: string; readonly [key: string]: unknown } | { readonly kind: "string_list"; readonly value: readonly string[]; readonly [key: string]: unknown } | { readonly kind: "source_bindings"; readonly value: readonly ScopeSourceBinding[]; readonly [key: string]: unknown } | { readonly kind: "access_rules"; readonly value: readonly ScopeAccessRule[]; readonly [key: string]: unknown } | { readonly kind: "analyzer_settings"; readonly value: AnalyzerSettingsV1; readonly [key: string]: unknown } | { readonly kind: "work_topology_policy"; readonly value: WorkTopologyPolicyV1; readonly [key: string]: unknown } | { readonly kind: "work_executable_bindings"; readonly value: readonly WorkExecutableBindingV1[]; readonly [key: string]: unknown } | { readonly kind: "work_expertise_consent"; readonly value: WorkExpertiseConsentV1; readonly [key: string]: unknown } | { readonly kind: "context_scout_settings"; readonly value: ContextScoutSettingsV1; readonly [key: string]: unknown } | { readonly kind: "automation_settings"; readonly value: AutomationSettingsV1; readonly [key: string]: unknown } | { readonly kind: "lcm_summarizer_executables"; readonly value: LcmSummarizerExecutablesV1; readonly [key: string]: unknown }; @@ -1435,7 +1433,7 @@ export type OperationApplicationConfigurationAuditResult = { readonly events: re export type OperationApplicationConfigurationBatchRequest = { readonly expected_revision: ConfigurationRevisionId; readonly idempotency_key: ConfigurationIdempotencyKey; readonly mutations: readonly ConfigurationDirectMutationRequestV1[] }; export type OperationApplicationConfigurationBatchResult = { readonly base_revision_id: ConfigurationRevisionId; readonly created_at: UtcMicros; readonly effective_deadline_at: UtcMicros; readonly operation_digest: ManifestDigest; readonly receipt_id: ConfigurationReceiptId; readonly result_revision_id: ConfigurationRevisionId; readonly settlement_authority: ConfigurationSettlementAuthorityV1; readonly snapshot_id: ConfigurationSnapshotId; readonly [key: string]: unknown }; export type OperationApplicationConfigurationGetRequest = { readonly key: SettingKey }; -export type OperationApplicationConfigurationGetResult = { readonly candidates: readonly ConfigurationCandidateV1[]; readonly effective_behavior_digest: ManifestDigest; readonly effective_value: ConfigurationValueV1; readonly findings: readonly ConfigurationSettingFindingV1[]; readonly key: SettingKey; readonly resolution_provenance_digest: ManifestDigest; readonly revision_id: ConfigurationRevisionId; readonly snapshot_id: ConfigurationSnapshotId; readonly [key: string]: unknown }; +export type OperationApplicationConfigurationGetResult = { readonly candidates: readonly ConfigurationCandidateV1[]; readonly effective_behavior_digest: ManifestDigest; readonly effective_value: ConfigurationValueV1; readonly key: SettingKey; readonly resolution_provenance_digest: ManifestDigest; readonly revision_id: ConfigurationRevisionId; readonly snapshot_id: ConfigurationSnapshotId; readonly [key: string]: unknown }; export type OperationApplicationConfigurationListRequest = { }; export type OperationApplicationConfigurationListResult = readonly SettingSummary[]; export type OperationApplicationConfigurationObservedStateRequest = { }; @@ -2055,8 +2053,6 @@ const DEFINITIONS = { ConfigurationLayerIdV1: {"description":"A typed configuration layer identity. The default layer intentionally has\nno caller-controlled identifier.","oneOf":[{"properties":{"kind":{"const":"default","type":"string"}},"required":["kind"],"type":"object"},{"properties":{"kind":{"const":"user_profile","type":"string"},"profile_id":{"$ref":"#/$defs/UserProfileId"}},"required":["kind","profile_id"],"type":"object"},{"properties":{"kind":{"const":"project","type":"string"},"project_id":{"$ref":"#/$defs/ProjectId"}},"required":["kind","project_id"],"type":"object"},{"properties":{"collection_id":{"$ref":"#/$defs/QueryCollectionId"},"kind":{"const":"collection","type":"string"}},"required":["kind","collection_id"],"type":"object"}]}, ConfigurationReceiptId: {"description":"Strongly typed canonical identity: `ConfigurationReceiptId`.","type":"string"}, ConfigurationRevisionId: {"description":"Strongly typed canonical identity: `ConfigurationRevisionId`.","type":"string"}, - ConfigurationSettingActionV1: {"enum":["set","unset"],"type":"string"}, - ConfigurationSettingFindingV1: {"description":"A stored value the running release keeps but does not apply. The value\nstays readable so `legal_actions` on the same key can replace it.","oneOf":[{"additionalProperties":false,"description":"An `index.exclude.v1` / `index.include.v1` pattern that does not\ncompile. An earlier release stored it unchecked; indexing runs\nwithout it.","properties":{"kind":{"const":"invalid_index_path_pattern","type":"string"},"legal_actions":{"items":{"$ref":"#/$defs/ConfigurationSettingActionV1"},"type":"array"},"message":{"type":"string"},"pattern":{"type":"string"}},"required":["kind","pattern","message","legal_actions"],"type":"object"}]}, ConfigurationSettlementAuthorityV1: {"additionalProperties":false,"description":"Original authorization evidence pinned to a durable configuration effect.\nA retry reauthorizes access separately without replacing these fields.","properties":{"policy_digest":{"$ref":"#/$defs/AccessPolicyDigest"},"policy_epoch":{"format":"uint64","minimum":0,"type":"integer"},"revalidated_at":{"$ref":"#/$defs/UtcMicros"}},"required":["policy_epoch","policy_digest","revalidated_at"],"type":"object"}, ConfigurationSnapshotId: {"description":"Strongly typed canonical identity: `ConfigurationSnapshotId`.","type":"string"}, ConfigurationValueV1: {"description":"Values that the typed registry can accept.","oneOf":[{"properties":{"kind":{"const":"boolean","type":"string"},"value":{"type":"boolean"}},"required":["kind","value"],"type":"object"},{"properties":{"kind":{"const":"unsigned","type":"string"},"value":{"format":"uint64","minimum":0,"type":"integer"}},"required":["kind","value"],"type":"object"},{"properties":{"kind":{"const":"code_index_worker_selection","type":"string"},"value":{"$ref":"#/$defs/CodeIndexWorkerSelectionV1"}},"required":["kind","value"],"type":"object"},{"properties":{"kind":{"const":"text","type":"string"},"value":{"type":"string"}},"required":["kind","value"],"type":"object"},{"properties":{"kind":{"const":"string_list","type":"string"},"value":{"items":{"type":"string"},"type":"array"}},"required":["kind","value"],"type":"object"},{"properties":{"kind":{"const":"source_bindings","type":"string"},"value":{"items":{"$ref":"#/$defs/ScopeSourceBinding"},"type":"array"}},"required":["kind","value"],"type":"object"},{"properties":{"kind":{"const":"access_rules","type":"string"},"value":{"items":{"$ref":"#/$defs/ScopeAccessRule"},"type":"array"}},"required":["kind","value"],"type":"object"},{"properties":{"kind":{"const":"analyzer_settings","type":"string"},"value":{"$ref":"#/$defs/AnalyzerSettingsV1"}},"required":["kind","value"],"type":"object"},{"properties":{"kind":{"const":"work_topology_policy","type":"string"},"value":{"$ref":"#/$defs/WorkTopologyPolicyV1"}},"required":["kind","value"],"type":"object"},{"properties":{"kind":{"const":"work_executable_bindings","type":"string"},"value":{"items":{"$ref":"#/$defs/WorkExecutableBindingV1"},"type":"array"}},"required":["kind","value"],"type":"object"},{"properties":{"kind":{"const":"work_expertise_consent","type":"string"},"value":{"$ref":"#/$defs/WorkExpertiseConsentV1"}},"required":["kind","value"],"type":"object"},{"properties":{"kind":{"const":"context_scout_settings","type":"string"},"value":{"$ref":"#/$defs/ContextScoutSettingsV1"}},"required":["kind","value"],"type":"object"},{"properties":{"kind":{"const":"automation_settings","type":"string"},"value":{"$ref":"#/$defs/AutomationSettingsV1"}},"required":["kind","value"],"type":"object"},{"properties":{"kind":{"const":"lcm_summarizer_executables","type":"string"},"value":{"$ref":"#/$defs/LcmSummarizerExecutablesV1"}},"required":["kind","value"],"type":"object"}]}, @@ -2163,7 +2159,7 @@ const DEFINITIONS = { DoctorFamilyConsultationV1: {"description":"Whether a family was consulted from an observed source or is unavailable.","oneOf":[{"description":"A source produced observed evidence for this family.","properties":{"status":{"const":"consulted","type":"string"}},"required":["status"],"type":"object"},{"description":"Complete family coverage was unavailable. Storage may still carry\nfindings from resolved producers when an independent producer failed.","properties":{"reason":{"$ref":"#/$defs/DoctorFamilyUnavailableReasonV1"},"status":{"const":"unavailable","type":"string"}},"required":["status","reason"],"type":"object"}]}, DoctorFamilyCoverageV1: {"description":"The consultation status of one finding family within a report.","properties":{"consultation":{"$ref":"#/$defs/DoctorFamilyConsultationV1"},"family":{"$ref":"#/$defs/DoctorFindingFamilyV1"}},"required":["family","consultation"],"type":"object"}, DoctorFamilyUnavailableReasonV1: {"description":"Why complete coverage of a finding family was unavailable.","oneOf":[{"const":"unwired","description":"No source port is wired for this family in this composition.","type":"string"},{"const":"unsupported","description":"The source is unsupported on this build/platform.","type":"string"},{"const":"absent","description":"The source is supported but produced nothing.","type":"string"},{"const":"denied","description":"The source read was denied.","type":"string"},{"const":"unknown","description":"The source state could not be determined.","type":"string"},{"const":"unavailable","description":"The source could not be reached. Named separately from `Unknown`: the\nsource is identified and its unreachability is an observation, not an\nundetermined state.","type":"string"},{"const":"reset_required","description":"The source must be rebuilt before it can be read again.","type":"string"},{"const":"corrupt","description":"The source was read and found corrupt.","type":"string"}]}, - DoctorFindingFamilyV1: {"description":"Stable Doctor finding families.\n\nThe initial list covers advisory findings from\nBrain, Explorer, Loom, Code, and Observatory, plus the legacy\n`core_doctor` checks (graph quick-check, temporal/migration health,\nconfiguration compatibility drift, code-index mount state, session ingest).\nEach family maps to one audited typed input surface. The set is kept small\nand honest; new families are added through a future versioned enum rather\nthan by widening the meaning of an existing variant.","oneOf":[{"const":"advisory","description":"advisory/scout findings (GitHub review, CI localization,\nproximity, context scout): `crate::advisory` / domain feedback.","type":"string"},{"const":"configuration","description":"Desired-versus-effective configuration and compatibility drift from\n`ProjectConfigurationRuntime` / `ConfigurationControlPlane`.","type":"string"},{"const":"storage_runtime","description":"Store, graph, and temporal runtime health plus migration coverage\n(`RuntimeReadOperationV1` health family, `StoreRuntimeClientLease`).","type":"string"},{"const":"storage","description":"Storage retention, size, and efficiency over canonical observability\nread models. Distinct from [`Self::StorageRuntime`] health: this\nfamily surfaces over-budget stores, identity-drift orphans, incident\ndebris, and retention backlog. The typed\nsubclass vocabulary is [`DoctorStorageFindingKindV1`].","type":"string"},{"const":"language_server","description":"Language-server / analyzer engine status from the LSP gateway's\n`AnalyzerState`.","type":"string"},{"const":"code_index","description":"Code index mount state (mounted, indexing, stale, unmounted,\nincompatible, parked).","type":"string"},{"const":"observability","description":"Denominator-safe measurement and telemetry health from analytics,\naccounting read models, and session ingest.","type":"string"},{"const":"memory","description":"Retained daemon memory as the resident-memory inventory reports it:\nRSS against the admission limit and pressure line, and each retained\nowner's bytes.","type":"string"}]}, + DoctorFindingFamilyV1: {"description":"Stable Doctor finding families.\n\nThe initial list covers advisory findings from\nBrain, Explorer, Loom, Code, and Observatory, plus the daemon\ncore doctor checks (graph quick-check, temporal health, configuration\ndrift, code-index mount state, session ingest).\nEach family maps to one audited typed input surface. The set is kept small\nand honest; new families are added through a future versioned enum rather\nthan by widening the meaning of an existing variant.","oneOf":[{"const":"advisory","description":"advisory/scout findings (GitHub review, CI localization,\nproximity, context scout): `crate::advisory` / domain feedback.","type":"string"},{"const":"configuration","description":"Desired-versus-effective configuration and compatibility drift from\n`ProjectConfigurationRuntime` / `ConfigurationControlPlane`.","type":"string"},{"const":"storage_runtime","description":"Store, graph, and temporal runtime health plus migration coverage\n(`RuntimeReadOperationV1` health family, `StoreRuntimeClientLease`).","type":"string"},{"const":"storage","description":"Storage retention, size, and efficiency over canonical observability\nread models. Distinct from [`Self::StorageRuntime`] health: this\nfamily surfaces over-budget stores, identity-drift orphans, incident\ndebris, and retention backlog. The typed\nsubclass vocabulary is [`DoctorStorageFindingKindV1`].","type":"string"},{"const":"language_server","description":"Language-server / analyzer engine status from the LSP gateway's\n`AnalyzerState`.","type":"string"},{"const":"code_index","description":"Code index mount state (mounted, indexing, stale, unmounted,\nincompatible, parked).","type":"string"},{"const":"observability","description":"Denominator-safe measurement and telemetry health from analytics,\naccounting read models, and session ingest.","type":"string"},{"const":"memory","description":"Retained daemon memory as the resident-memory inventory reports it:\nRSS against the admission limit and pressure line, and each retained\nowner's bytes.","type":"string"}]}, DoctorFindingV1: {"description":"One canonical Doctor finding.\n\nA finding pins its diagnosis `family`, its evidence `state`, the typed\nevidence it composed, and a coverage statement. Construction enforces the\ninvariants that keep unknown/partial evidence from collapsing into a\nhealthy or clean result.","properties":{"coverage":{"$ref":"#/$defs/DoctorCoverageStatementV1"},"evidence":{"items":{"$ref":"#/$defs/DoctorEvidenceRefV1"},"type":"array"},"family":{"$ref":"#/$defs/DoctorFindingFamilyV1"},"state":{"$ref":"#/$defs/DoctorEvidenceStateV1"}},"required":["family","state","evidence","coverage"],"type":"object"}, DoctorReportCoverageV1: {"description":"The report-wide coverage statement: which families were consulted versus\nunavailable, plus an overall completeness and a bounded human statement.","properties":{"completeness":{"$ref":"#/$defs/DoctorCoverageCompletenessV1"},"families":{"items":{"$ref":"#/$defs/DoctorFamilyCoverageV1"},"type":"array"},"statement":{"$ref":"#/$defs/DoctorCoverageStatementV1"}},"required":["families","completeness","statement"],"type":"object"}, DoctorReportEntryV1: {"description":"One entry in a Doctor report: a canonical finding plus, for the storage\nfamily, its typed subclass. The subclass is present only for storage findings\n(a non-storage entry never carries one).","properties":{"finding":{"$ref":"#/$defs/DoctorFindingV1"},"storage_kind":{"anyOf":[{"$ref":"#/$defs/DoctorStorageFindingKindV1"},{"type":"null"}]}},"required":["finding"],"type":"object"}, @@ -3235,7 +3231,7 @@ const SCHEMAS: readonly CanonicalJsonSchema[] = [ {"$defs":{"AccessRuleId":DEFINITIONS.AccessRuleId,"ActorId":DEFINITIONS.ActorId,"AnalyzerEnvironmentVariable":DEFINITIONS.AnalyzerEnvironmentVariable,"AnalyzerExecutableId":DEFINITIONS.AnalyzerExecutableId,"AnalyzerExecutableReferenceV1":DEFINITIONS.AnalyzerExecutableReferenceV1,"AnalyzerLanguageId":DEFINITIONS.AnalyzerLanguageId,"AnalyzerLanguageSelectionV1":DEFINITIONS.AnalyzerLanguageSelectionV1,"AnalyzerPrivacyClassV1":DEFINITIONS.AnalyzerPrivacyClassV1,"AnalyzerResourceLimitsV1":DEFINITIONS.AnalyzerResourceLimitsV1,"AnalyzerRestartPolicyV1":DEFINITIONS.AnalyzerRestartPolicyV1,"AnalyzerSettingsV1":DEFINITIONS.AnalyzerSettingsV1,"AnalyzerStructuredValueV1":DEFINITIONS.AnalyzerStructuredValueV1,"AuthorityRef":DEFINITIONS.AuthorityRef,"AutomaticWorktreeGcV1":DEFINITIONS.AutomaticWorktreeGcV1,"AutomationBackendV1":DEFINITIONS.AutomationBackendV1,"AutomationHostModeV1":DEFINITIONS.AutomationHostModeV1,"AutomationSettingsV1":DEFINITIONS.AutomationSettingsV1,"AutomationTaskSetV1":DEFINITIONS.AutomationTaskSetV1,"AutomationTaskSettingsV1":DEFINITIONS.AutomationTaskSettingsV1,"BranchCollisionPolicyV1":DEFINITIONS.BranchCollisionPolicyV1,"BranchNameComponentV1":DEFINITIONS.BranchNameComponentV1,"BranchNameSeparatorV1":DEFINITIONS.BranchNameSeparatorV1,"BranchNamingPolicyV1":DEFINITIONS.BranchNamingPolicyV1,"BranchTopologyKindV1":DEFINITIONS.BranchTopologyKindV1,"BranchTopologyPolicyV1":DEFINITIONS.BranchTopologyPolicyV1,"CanonicalGitRefNameV1":DEFINITIONS.CanonicalGitRefNameV1,"CanonicalGitRefPrefix":DEFINITIONS.CanonicalGitRefPrefix,"CapabilityId":DEFINITIONS.CapabilityId,"CodeIndexWorkerSelectionV1":DEFINITIONS.CodeIndexWorkerSelectionV1,"ConfigurationDirectMutationRequestV1":DEFINITIONS.ConfigurationDirectMutationRequestV1,"ConfigurationIdempotencyKey":DEFINITIONS.ConfigurationIdempotencyKey,"ConfigurationLayerIdV1":DEFINITIONS.ConfigurationLayerIdV1,"ConfigurationRevisionId":DEFINITIONS.ConfigurationRevisionId,"ConfigurationValueV1":DEFINITIONS.ConfigurationValueV1,"ContextScoutConfigurationLimitsV1":DEFINITIONS.ContextScoutConfigurationLimitsV1,"ContextScoutConfigurationModeV1":DEFINITIONS.ContextScoutConfigurationModeV1,"ContextScoutConfigurationStateV1":DEFINITIONS.ContextScoutConfigurationStateV1,"ContextScoutConfiguredModelPathV1":DEFINITIONS.ContextScoutConfiguredModelPathV1,"ContextScoutIntentKindV1":DEFINITIONS.ContextScoutIntentKindV1,"ContextScoutIntentSettingsV1":DEFINITIONS.ContextScoutIntentSettingsV1,"ContextScoutSettingsV1":DEFINITIONS.ContextScoutSettingsV1,"CredentialReferenceId":DEFINITIONS.CredentialReferenceId,"CrossMergeModeV1":DEFINITIONS.CrossMergeModeV1,"CrossMergePolicyV1":DEFINITIONS.CrossMergePolicyV1,"DecisionEngineSettingsV1":DEFINITIONS.DecisionEngineSettingsV1,"GitHubStackedPullRequestPolicyV1":DEFINITIONS.GitHubStackedPullRequestPolicyV1,"HistoryRewritePolicyV1":DEFINITIONS.HistoryRewritePolicyV1,"IntentQuestionSettingsV1":DEFINITIONS.IntentQuestionSettingsV1,"IntentWindowSettingsV1":DEFINITIONS.IntentWindowSettingsV1,"LcmSummarizerExecutableV1":DEFINITIONS.LcmSummarizerExecutableV1,"LcmSummarizerExecutablesV1":DEFINITIONS.LcmSummarizerExecutablesV1,"LocatorDigest":DEFINITIONS.LocatorDigest,"ManifestDigest":DEFINITIONS.ManifestDigest,"ProjectId":DEFINITIONS.ProjectId,"ProtectedRefDispositionV1":DEFINITIONS.ProtectedRefDispositionV1,"ProtectedRefRuleV1":DEFINITIONS.ProtectedRefRuleV1,"ProtectedRefSelectorV1":DEFINITIONS.ProtectedRefSelectorV1,"ProviderId":DEFINITIONS.ProviderId,"QueryCollectionId":DEFINITIONS.QueryCollectionId,"RepositoryId":DEFINITIONS.RepositoryId,"RepositoryPlacementScopeV1":DEFINITIONS.RepositoryPlacementScopeV1,"RequiredCheckExpectationV1":DEFINITIONS.RequiredCheckExpectationV1,"RequiredCheckV1":DEFINITIONS.RequiredCheckV1,"ReviewRequirementV1":DEFINITIONS.ReviewRequirementV1,"ReviewTopologyKindV1":DEFINITIONS.ReviewTopologyKindV1,"ReviewTopologyPolicyV1":DEFINITIONS.ReviewTopologyPolicyV1,"RuleEffect":DEFINITIONS.RuleEffect,"ScopeAccessRule":DEFINITIONS.ScopeAccessRule,"ScopeAccessSubjectV1":DEFINITIONS.ScopeAccessSubjectV1,"ScopeControlOperationV1":DEFINITIONS.ScopeControlOperationV1,"ScopeSourceBinding":DEFINITIONS.ScopeSourceBinding,"SensitiveFilesystemLocatorV1":DEFINITIONS.SensitiveFilesystemLocatorV1,"SettingKey":DEFINITIONS.SettingKey,"SourceBindingId":DEFINITIONS.SourceBindingId,"SourceKindV1":DEFINITIONS.SourceKindV1,"TopologyConcurrencyPolicyV1":DEFINITIONS.TopologyConcurrencyPolicyV1,"TopologyEscalationPolicyV1":DEFINITIONS.TopologyEscalationPolicyV1,"TopologyGatePolicyV1":DEFINITIONS.TopologyGatePolicyV1,"TopologyNotificationLevelV1":DEFINITIONS.TopologyNotificationLevelV1,"UserProfileId":DEFINITIONS.UserProfileId,"UtcMicros":DEFINITIONS.UtcMicros,"WorkApprovalPolicy":DEFINITIONS.WorkApprovalPolicy,"WorkContentLocationClassV1":DEFINITIONS.WorkContentLocationClassV1,"WorkEffortClassV1":DEFINITIONS.WorkEffortClassV1,"WorkEgressPolicy":DEFINITIONS.WorkEgressPolicy,"WorkExecutableBindingV1":DEFINITIONS.WorkExecutableBindingV1,"WorkExecutableCapabilityV1":DEFINITIONS.WorkExecutableCapabilityV1,"WorkExecutableReference":DEFINITIONS.WorkExecutableReference,"WorkExecutionLimits":DEFINITIONS.WorkExecutionLimits,"WorkExpertiseCategoryV1":DEFINITIONS.WorkExpertiseCategoryV1,"WorkExpertiseConsentV1":DEFINITIONS.WorkExpertiseConsentV1,"WorkFallbackTopology":DEFINITIONS.WorkFallbackTopology,"WorkFilesystemPolicy":DEFINITIONS.WorkFilesystemPolicy,"WorkOrdinalBandV1":DEFINITIONS.WorkOrdinalBandV1,"WorkProviderRouteId":DEFINITIONS.WorkProviderRouteId,"WorkProviderRouteV1":DEFINITIONS.WorkProviderRouteV1,"WorkRouteCandidateV1":DEFINITIONS.WorkRouteCandidateV1,"WorkRouteExecutionProfileV1":DEFINITIONS.WorkRouteExecutionProfileV1,"WorkSandboxPolicy":DEFINITIONS.WorkSandboxPolicy,"WorkTopologyPolicyV1":DEFINITIONS.WorkTopologyPolicyV1,"WorktreeCleanlinessRequirementV1":DEFINITIONS.WorktreeCleanlinessRequirementV1,"WorktreePlacementModeV1":DEFINITIONS.WorktreePlacementModeV1,"WorktreeRetentionPolicyV1":DEFINITIONS.WorktreeRetentionPolicyV1,"WorktreeRootPolicyV1":DEFINITIONS.WorktreeRootPolicyV1},"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false,"properties":{"expected_revision":{"$ref":"#/$defs/ConfigurationRevisionId"},"idempotency_key":{"$ref":"#/$defs/ConfigurationIdempotencyKey"},"mutations":{"items":{"$ref":"#/$defs/ConfigurationDirectMutationRequestV1"},"type":"array"}},"required":["mutations","expected_revision","idempotency_key"],"title":"ConfigurationBatchRequestV1","type":"object"}, {"$defs":{"AccessPolicyDigest":DEFINITIONS.AccessPolicyDigest,"ConfigurationReceiptId":DEFINITIONS.ConfigurationReceiptId,"ConfigurationRevisionId":DEFINITIONS.ConfigurationRevisionId,"ConfigurationSettlementAuthorityV1":DEFINITIONS.ConfigurationSettlementAuthorityV1,"ConfigurationSnapshotId":DEFINITIONS.ConfigurationSnapshotId,"ManifestDigest":DEFINITIONS.ManifestDigest,"UtcMicros":DEFINITIONS.UtcMicros},"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"base_revision_id":{"$ref":"#/$defs/ConfigurationRevisionId"},"created_at":{"$ref":"#/$defs/UtcMicros"},"effective_deadline_at":{"$ref":"#/$defs/UtcMicros"},"operation_digest":{"$ref":"#/$defs/ManifestDigest"},"receipt_id":{"$ref":"#/$defs/ConfigurationReceiptId"},"result_revision_id":{"$ref":"#/$defs/ConfigurationRevisionId"},"settlement_authority":{"$ref":"#/$defs/ConfigurationSettlementAuthorityV1"},"snapshot_id":{"$ref":"#/$defs/ConfigurationSnapshotId"}},"required":["receipt_id","base_revision_id","result_revision_id","snapshot_id","operation_digest","settlement_authority","created_at","effective_deadline_at"],"title":"ConfigurationMutationReceipt","type":"object"}, {"$defs":{"SettingKey":DEFINITIONS.SettingKey},"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false,"properties":{"key":{"$ref":"#/$defs/SettingKey"}},"required":["key"],"title":"ConfigurationGetRequestV1","type":"object"}, - {"$defs":{"AccessRuleId":DEFINITIONS.AccessRuleId,"ActorId":DEFINITIONS.ActorId,"AnalyzerEnvironmentVariable":DEFINITIONS.AnalyzerEnvironmentVariable,"AnalyzerExecutableId":DEFINITIONS.AnalyzerExecutableId,"AnalyzerExecutableReferenceV1":DEFINITIONS.AnalyzerExecutableReferenceV1,"AnalyzerLanguageId":DEFINITIONS.AnalyzerLanguageId,"AnalyzerLanguageSelectionV1":DEFINITIONS.AnalyzerLanguageSelectionV1,"AnalyzerPrivacyClassV1":DEFINITIONS.AnalyzerPrivacyClassV1,"AnalyzerResourceLimitsV1":DEFINITIONS.AnalyzerResourceLimitsV1,"AnalyzerRestartPolicyV1":DEFINITIONS.AnalyzerRestartPolicyV1,"AnalyzerSettingsV1":DEFINITIONS.AnalyzerSettingsV1,"AnalyzerStructuredValueV1":DEFINITIONS.AnalyzerStructuredValueV1,"AuthorityRef":DEFINITIONS.AuthorityRef,"AutomaticWorktreeGcV1":DEFINITIONS.AutomaticWorktreeGcV1,"AutomationBackendV1":DEFINITIONS.AutomationBackendV1,"AutomationHostModeV1":DEFINITIONS.AutomationHostModeV1,"AutomationSettingsV1":DEFINITIONS.AutomationSettingsV1,"AutomationTaskSetV1":DEFINITIONS.AutomationTaskSetV1,"AutomationTaskSettingsV1":DEFINITIONS.AutomationTaskSettingsV1,"BranchCollisionPolicyV1":DEFINITIONS.BranchCollisionPolicyV1,"BranchNameComponentV1":DEFINITIONS.BranchNameComponentV1,"BranchNameSeparatorV1":DEFINITIONS.BranchNameSeparatorV1,"BranchNamingPolicyV1":DEFINITIONS.BranchNamingPolicyV1,"BranchTopologyKindV1":DEFINITIONS.BranchTopologyKindV1,"BranchTopologyPolicyV1":DEFINITIONS.BranchTopologyPolicyV1,"CandidateDispositionV1":DEFINITIONS.CandidateDispositionV1,"CanonicalGitRefNameV1":DEFINITIONS.CanonicalGitRefNameV1,"CanonicalGitRefPrefix":DEFINITIONS.CanonicalGitRefPrefix,"CapabilityId":DEFINITIONS.CapabilityId,"CodeIndexWorkerSelectionV1":DEFINITIONS.CodeIndexWorkerSelectionV1,"ConfigurationCandidateV1":DEFINITIONS.ConfigurationCandidateV1,"ConfigurationLayerIdV1":DEFINITIONS.ConfigurationLayerIdV1,"ConfigurationRevisionId":DEFINITIONS.ConfigurationRevisionId,"ConfigurationSettingActionV1":DEFINITIONS.ConfigurationSettingActionV1,"ConfigurationSettingFindingV1":DEFINITIONS.ConfigurationSettingFindingV1,"ConfigurationSnapshotId":DEFINITIONS.ConfigurationSnapshotId,"ConfigurationValueV1":DEFINITIONS.ConfigurationValueV1,"ContextScoutConfigurationLimitsV1":DEFINITIONS.ContextScoutConfigurationLimitsV1,"ContextScoutConfigurationModeV1":DEFINITIONS.ContextScoutConfigurationModeV1,"ContextScoutConfigurationStateV1":DEFINITIONS.ContextScoutConfigurationStateV1,"ContextScoutConfiguredModelPathV1":DEFINITIONS.ContextScoutConfiguredModelPathV1,"ContextScoutIntentKindV1":DEFINITIONS.ContextScoutIntentKindV1,"ContextScoutIntentSettingsV1":DEFINITIONS.ContextScoutIntentSettingsV1,"ContextScoutSettingsV1":DEFINITIONS.ContextScoutSettingsV1,"CredentialReferenceId":DEFINITIONS.CredentialReferenceId,"CrossMergeModeV1":DEFINITIONS.CrossMergeModeV1,"CrossMergePolicyV1":DEFINITIONS.CrossMergePolicyV1,"DecisionEngineSettingsV1":DEFINITIONS.DecisionEngineSettingsV1,"GitHubStackedPullRequestPolicyV1":DEFINITIONS.GitHubStackedPullRequestPolicyV1,"HistoryRewritePolicyV1":DEFINITIONS.HistoryRewritePolicyV1,"IntentQuestionSettingsV1":DEFINITIONS.IntentQuestionSettingsV1,"IntentWindowSettingsV1":DEFINITIONS.IntentWindowSettingsV1,"LcmSummarizerExecutableV1":DEFINITIONS.LcmSummarizerExecutableV1,"LcmSummarizerExecutablesV1":DEFINITIONS.LcmSummarizerExecutablesV1,"LocatorDigest":DEFINITIONS.LocatorDigest,"ManifestDigest":DEFINITIONS.ManifestDigest,"ProjectId":DEFINITIONS.ProjectId,"ProtectedRefDispositionV1":DEFINITIONS.ProtectedRefDispositionV1,"ProtectedRefRuleV1":DEFINITIONS.ProtectedRefRuleV1,"ProtectedRefSelectorV1":DEFINITIONS.ProtectedRefSelectorV1,"ProviderId":DEFINITIONS.ProviderId,"QueryCollectionId":DEFINITIONS.QueryCollectionId,"RepositoryId":DEFINITIONS.RepositoryId,"RepositoryPlacementScopeV1":DEFINITIONS.RepositoryPlacementScopeV1,"RequiredCheckExpectationV1":DEFINITIONS.RequiredCheckExpectationV1,"RequiredCheckV1":DEFINITIONS.RequiredCheckV1,"ReviewRequirementV1":DEFINITIONS.ReviewRequirementV1,"ReviewTopologyKindV1":DEFINITIONS.ReviewTopologyKindV1,"ReviewTopologyPolicyV1":DEFINITIONS.ReviewTopologyPolicyV1,"RuleEffect":DEFINITIONS.RuleEffect,"ScopeAccessRule":DEFINITIONS.ScopeAccessRule,"ScopeAccessSubjectV1":DEFINITIONS.ScopeAccessSubjectV1,"ScopeControlOperationV1":DEFINITIONS.ScopeControlOperationV1,"ScopeSourceBinding":DEFINITIONS.ScopeSourceBinding,"SensitiveFilesystemLocatorV1":DEFINITIONS.SensitiveFilesystemLocatorV1,"SettingKey":DEFINITIONS.SettingKey,"SourceBindingId":DEFINITIONS.SourceBindingId,"SourceKindV1":DEFINITIONS.SourceKindV1,"TopologyConcurrencyPolicyV1":DEFINITIONS.TopologyConcurrencyPolicyV1,"TopologyEscalationPolicyV1":DEFINITIONS.TopologyEscalationPolicyV1,"TopologyGatePolicyV1":DEFINITIONS.TopologyGatePolicyV1,"TopologyNotificationLevelV1":DEFINITIONS.TopologyNotificationLevelV1,"UserProfileId":DEFINITIONS.UserProfileId,"UtcMicros":DEFINITIONS.UtcMicros,"WorkApprovalPolicy":DEFINITIONS.WorkApprovalPolicy,"WorkContentLocationClassV1":DEFINITIONS.WorkContentLocationClassV1,"WorkEffortClassV1":DEFINITIONS.WorkEffortClassV1,"WorkEgressPolicy":DEFINITIONS.WorkEgressPolicy,"WorkExecutableBindingV1":DEFINITIONS.WorkExecutableBindingV1,"WorkExecutableCapabilityV1":DEFINITIONS.WorkExecutableCapabilityV1,"WorkExecutableReference":DEFINITIONS.WorkExecutableReference,"WorkExecutionLimits":DEFINITIONS.WorkExecutionLimits,"WorkExpertiseCategoryV1":DEFINITIONS.WorkExpertiseCategoryV1,"WorkExpertiseConsentV1":DEFINITIONS.WorkExpertiseConsentV1,"WorkFallbackTopology":DEFINITIONS.WorkFallbackTopology,"WorkFilesystemPolicy":DEFINITIONS.WorkFilesystemPolicy,"WorkOrdinalBandV1":DEFINITIONS.WorkOrdinalBandV1,"WorkProviderRouteId":DEFINITIONS.WorkProviderRouteId,"WorkProviderRouteV1":DEFINITIONS.WorkProviderRouteV1,"WorkRouteCandidateV1":DEFINITIONS.WorkRouteCandidateV1,"WorkRouteExecutionProfileV1":DEFINITIONS.WorkRouteExecutionProfileV1,"WorkSandboxPolicy":DEFINITIONS.WorkSandboxPolicy,"WorkTopologyPolicyV1":DEFINITIONS.WorkTopologyPolicyV1,"WorktreeCleanlinessRequirementV1":DEFINITIONS.WorktreeCleanlinessRequirementV1,"WorktreePlacementModeV1":DEFINITIONS.WorktreePlacementModeV1,"WorktreeRetentionPolicyV1":DEFINITIONS.WorktreeRetentionPolicyV1,"WorktreeRootPolicyV1":DEFINITIONS.WorktreeRootPolicyV1},"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"candidates":{"items":{"$ref":"#/$defs/ConfigurationCandidateV1"},"type":"array"},"effective_behavior_digest":{"$ref":"#/$defs/ManifestDigest"},"effective_value":{"$ref":"#/$defs/ConfigurationValueV1"},"findings":{"description":"Parts of the stored value this release does not apply. Empty when the\neffective value applies in full.","items":{"$ref":"#/$defs/ConfigurationSettingFindingV1"},"type":"array"},"key":{"$ref":"#/$defs/SettingKey"},"resolution_provenance_digest":{"$ref":"#/$defs/ManifestDigest"},"revision_id":{"$ref":"#/$defs/ConfigurationRevisionId","description":"Current configuration revision accepted by mutation `expected_revision` CAS."},"snapshot_id":{"$ref":"#/$defs/ConfigurationSnapshotId","description":"Content identity of the fully resolved configuration snapshot."}},"required":["key","effective_value","revision_id","snapshot_id","effective_behavior_digest","resolution_provenance_digest","candidates","findings"],"title":"ResolvedSetting","type":"object"}, + {"$defs":{"AccessRuleId":DEFINITIONS.AccessRuleId,"ActorId":DEFINITIONS.ActorId,"AnalyzerEnvironmentVariable":DEFINITIONS.AnalyzerEnvironmentVariable,"AnalyzerExecutableId":DEFINITIONS.AnalyzerExecutableId,"AnalyzerExecutableReferenceV1":DEFINITIONS.AnalyzerExecutableReferenceV1,"AnalyzerLanguageId":DEFINITIONS.AnalyzerLanguageId,"AnalyzerLanguageSelectionV1":DEFINITIONS.AnalyzerLanguageSelectionV1,"AnalyzerPrivacyClassV1":DEFINITIONS.AnalyzerPrivacyClassV1,"AnalyzerResourceLimitsV1":DEFINITIONS.AnalyzerResourceLimitsV1,"AnalyzerRestartPolicyV1":DEFINITIONS.AnalyzerRestartPolicyV1,"AnalyzerSettingsV1":DEFINITIONS.AnalyzerSettingsV1,"AnalyzerStructuredValueV1":DEFINITIONS.AnalyzerStructuredValueV1,"AuthorityRef":DEFINITIONS.AuthorityRef,"AutomaticWorktreeGcV1":DEFINITIONS.AutomaticWorktreeGcV1,"AutomationBackendV1":DEFINITIONS.AutomationBackendV1,"AutomationHostModeV1":DEFINITIONS.AutomationHostModeV1,"AutomationSettingsV1":DEFINITIONS.AutomationSettingsV1,"AutomationTaskSetV1":DEFINITIONS.AutomationTaskSetV1,"AutomationTaskSettingsV1":DEFINITIONS.AutomationTaskSettingsV1,"BranchCollisionPolicyV1":DEFINITIONS.BranchCollisionPolicyV1,"BranchNameComponentV1":DEFINITIONS.BranchNameComponentV1,"BranchNameSeparatorV1":DEFINITIONS.BranchNameSeparatorV1,"BranchNamingPolicyV1":DEFINITIONS.BranchNamingPolicyV1,"BranchTopologyKindV1":DEFINITIONS.BranchTopologyKindV1,"BranchTopologyPolicyV1":DEFINITIONS.BranchTopologyPolicyV1,"CandidateDispositionV1":DEFINITIONS.CandidateDispositionV1,"CanonicalGitRefNameV1":DEFINITIONS.CanonicalGitRefNameV1,"CanonicalGitRefPrefix":DEFINITIONS.CanonicalGitRefPrefix,"CapabilityId":DEFINITIONS.CapabilityId,"CodeIndexWorkerSelectionV1":DEFINITIONS.CodeIndexWorkerSelectionV1,"ConfigurationCandidateV1":DEFINITIONS.ConfigurationCandidateV1,"ConfigurationLayerIdV1":DEFINITIONS.ConfigurationLayerIdV1,"ConfigurationRevisionId":DEFINITIONS.ConfigurationRevisionId,"ConfigurationSnapshotId":DEFINITIONS.ConfigurationSnapshotId,"ConfigurationValueV1":DEFINITIONS.ConfigurationValueV1,"ContextScoutConfigurationLimitsV1":DEFINITIONS.ContextScoutConfigurationLimitsV1,"ContextScoutConfigurationModeV1":DEFINITIONS.ContextScoutConfigurationModeV1,"ContextScoutConfigurationStateV1":DEFINITIONS.ContextScoutConfigurationStateV1,"ContextScoutConfiguredModelPathV1":DEFINITIONS.ContextScoutConfiguredModelPathV1,"ContextScoutIntentKindV1":DEFINITIONS.ContextScoutIntentKindV1,"ContextScoutIntentSettingsV1":DEFINITIONS.ContextScoutIntentSettingsV1,"ContextScoutSettingsV1":DEFINITIONS.ContextScoutSettingsV1,"CredentialReferenceId":DEFINITIONS.CredentialReferenceId,"CrossMergeModeV1":DEFINITIONS.CrossMergeModeV1,"CrossMergePolicyV1":DEFINITIONS.CrossMergePolicyV1,"DecisionEngineSettingsV1":DEFINITIONS.DecisionEngineSettingsV1,"GitHubStackedPullRequestPolicyV1":DEFINITIONS.GitHubStackedPullRequestPolicyV1,"HistoryRewritePolicyV1":DEFINITIONS.HistoryRewritePolicyV1,"IntentQuestionSettingsV1":DEFINITIONS.IntentQuestionSettingsV1,"IntentWindowSettingsV1":DEFINITIONS.IntentWindowSettingsV1,"LcmSummarizerExecutableV1":DEFINITIONS.LcmSummarizerExecutableV1,"LcmSummarizerExecutablesV1":DEFINITIONS.LcmSummarizerExecutablesV1,"LocatorDigest":DEFINITIONS.LocatorDigest,"ManifestDigest":DEFINITIONS.ManifestDigest,"ProjectId":DEFINITIONS.ProjectId,"ProtectedRefDispositionV1":DEFINITIONS.ProtectedRefDispositionV1,"ProtectedRefRuleV1":DEFINITIONS.ProtectedRefRuleV1,"ProtectedRefSelectorV1":DEFINITIONS.ProtectedRefSelectorV1,"ProviderId":DEFINITIONS.ProviderId,"QueryCollectionId":DEFINITIONS.QueryCollectionId,"RepositoryId":DEFINITIONS.RepositoryId,"RepositoryPlacementScopeV1":DEFINITIONS.RepositoryPlacementScopeV1,"RequiredCheckExpectationV1":DEFINITIONS.RequiredCheckExpectationV1,"RequiredCheckV1":DEFINITIONS.RequiredCheckV1,"ReviewRequirementV1":DEFINITIONS.ReviewRequirementV1,"ReviewTopologyKindV1":DEFINITIONS.ReviewTopologyKindV1,"ReviewTopologyPolicyV1":DEFINITIONS.ReviewTopologyPolicyV1,"RuleEffect":DEFINITIONS.RuleEffect,"ScopeAccessRule":DEFINITIONS.ScopeAccessRule,"ScopeAccessSubjectV1":DEFINITIONS.ScopeAccessSubjectV1,"ScopeControlOperationV1":DEFINITIONS.ScopeControlOperationV1,"ScopeSourceBinding":DEFINITIONS.ScopeSourceBinding,"SensitiveFilesystemLocatorV1":DEFINITIONS.SensitiveFilesystemLocatorV1,"SettingKey":DEFINITIONS.SettingKey,"SourceBindingId":DEFINITIONS.SourceBindingId,"SourceKindV1":DEFINITIONS.SourceKindV1,"TopologyConcurrencyPolicyV1":DEFINITIONS.TopologyConcurrencyPolicyV1,"TopologyEscalationPolicyV1":DEFINITIONS.TopologyEscalationPolicyV1,"TopologyGatePolicyV1":DEFINITIONS.TopologyGatePolicyV1,"TopologyNotificationLevelV1":DEFINITIONS.TopologyNotificationLevelV1,"UserProfileId":DEFINITIONS.UserProfileId,"UtcMicros":DEFINITIONS.UtcMicros,"WorkApprovalPolicy":DEFINITIONS.WorkApprovalPolicy,"WorkContentLocationClassV1":DEFINITIONS.WorkContentLocationClassV1,"WorkEffortClassV1":DEFINITIONS.WorkEffortClassV1,"WorkEgressPolicy":DEFINITIONS.WorkEgressPolicy,"WorkExecutableBindingV1":DEFINITIONS.WorkExecutableBindingV1,"WorkExecutableCapabilityV1":DEFINITIONS.WorkExecutableCapabilityV1,"WorkExecutableReference":DEFINITIONS.WorkExecutableReference,"WorkExecutionLimits":DEFINITIONS.WorkExecutionLimits,"WorkExpertiseCategoryV1":DEFINITIONS.WorkExpertiseCategoryV1,"WorkExpertiseConsentV1":DEFINITIONS.WorkExpertiseConsentV1,"WorkFallbackTopology":DEFINITIONS.WorkFallbackTopology,"WorkFilesystemPolicy":DEFINITIONS.WorkFilesystemPolicy,"WorkOrdinalBandV1":DEFINITIONS.WorkOrdinalBandV1,"WorkProviderRouteId":DEFINITIONS.WorkProviderRouteId,"WorkProviderRouteV1":DEFINITIONS.WorkProviderRouteV1,"WorkRouteCandidateV1":DEFINITIONS.WorkRouteCandidateV1,"WorkRouteExecutionProfileV1":DEFINITIONS.WorkRouteExecutionProfileV1,"WorkSandboxPolicy":DEFINITIONS.WorkSandboxPolicy,"WorkTopologyPolicyV1":DEFINITIONS.WorkTopologyPolicyV1,"WorktreeCleanlinessRequirementV1":DEFINITIONS.WorktreeCleanlinessRequirementV1,"WorktreePlacementModeV1":DEFINITIONS.WorktreePlacementModeV1,"WorktreeRetentionPolicyV1":DEFINITIONS.WorktreeRetentionPolicyV1,"WorktreeRootPolicyV1":DEFINITIONS.WorktreeRootPolicyV1},"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"candidates":{"items":{"$ref":"#/$defs/ConfigurationCandidateV1"},"type":"array"},"effective_behavior_digest":{"$ref":"#/$defs/ManifestDigest"},"effective_value":{"$ref":"#/$defs/ConfigurationValueV1"},"key":{"$ref":"#/$defs/SettingKey"},"resolution_provenance_digest":{"$ref":"#/$defs/ManifestDigest"},"revision_id":{"$ref":"#/$defs/ConfigurationRevisionId","description":"Current configuration revision accepted by mutation `expected_revision` CAS."},"snapshot_id":{"$ref":"#/$defs/ConfigurationSnapshotId","description":"Content identity of the fully resolved configuration snapshot."}},"required":["key","effective_value","revision_id","snapshot_id","effective_behavior_digest","resolution_provenance_digest","candidates"],"title":"ResolvedSetting","type":"object"}, {"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false,"description":"Typed input for the configuration list read through the daemon\ninvocation boundary.","title":"ConfigurationListRequestV1","type":"object"}, {"$defs":{"RestartRequirementV1":DEFINITIONS.RestartRequirementV1,"SettingKey":DEFINITIONS.SettingKey,"SettingSensitivityV1":DEFINITIONS.SettingSensitivityV1,"SettingSummary":DEFINITIONS.SettingSummary},"$schema":"https://json-schema.org/draft/2020-12/schema","items":{"$ref":"#/$defs/SettingSummary"},"title":"Array_of_SettingSummary","type":"array"}, {"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false,"title":"ConfigurationObservedStateRequestV1","type":"object"}, From f5487208f86a9633f92e2a01c6198e010ae6f09d Mon Sep 17 00:00:00 2001 From: Zack Jackson <25274700+ScriptedAlchemy@users.noreply.github.com> Date: Thu, 29 Oct 2026 01:27:25 -0700 Subject: [PATCH 10/13] refactor(code-index): drop retention reclaim and runtime remnants (U8) Items removed: L034, L035, L036, L037. - L034: delete is_retired_read_bundle_file and the read-bundle-* reclaim in code-index generation retention. - L035: delete RETIRED_BINDING_CLEANUP_INTENT_FILE and its removal in recover_scope_root_retention. - L036: delete seat_retained_generation_on_empty_serving, retained_empty_seat_settles_source, the mount.rs legacy-graph-recovery branch, CodeTextGenerationSharedV1.sealed_format_revision, the bind_text parameter and uses_partitioned_manifest(); the partitioned-manifest guards collapse to their true arm. - L037: delete the five always-zero retired fields of CodeGraphBuildBoundV1. Callers migrated: mount.rs guards, bind_text and restore call sites; the three tests that asserted uses_partitioned_manifest now assert the owner exists. Tests deleted: maintenance_reclaims_retired_read_bundle_files, scope_recovery_deletes_a_retired_binding_cleanup_intent, equal_metadata_without_a_decoded_generation_does_not_settle_the_seat. Upgrade impact: stores from older builds keep leftover read-bundle-* files and the .code-index-scope-binding-cleanup-intent-v1.json marker as inert files on disk. Nothing decodes differently. The code_index_graph_build_bound tracing event's Debug field loses five zero fields. Co-Authored-By: Claude Opus 5.5 --- .../src/code_index_generations.rs | 30 --- .../src/code_index_generations/scope_roots.rs | 11 +- .../src/code_index_generations/tests.rs | 80 ------ .../code_index_scheduler/graph_activation.rs | 2 +- .../src/code_index_scheduler/query_runtime.rs | 2 +- .../src/code_index_scheduler/reconcile.rs | 233 ++++-------------- .../code_index_scheduler/registry/mount.rs | 44 +--- .../src/code_index_scheduler/serving.rs | 6 - .../tests/deferred_mount_tests.rs | 9 +- .../tests/retained_configuration_tests.rs | 10 +- .../tests/code_index_scheduler/reconcile.rs | 8 +- .../src/production/graph_build_bound.rs | 33 +-- 12 files changed, 71 insertions(+), 397 deletions(-) diff --git a/crates/tracedecay-code-index-retention/src/code_index_generations.rs b/crates/tracedecay-code-index-retention/src/code_index_generations.rs index 9d62815f68..1634c5971f 100644 --- a/crates/tracedecay-code-index-retention/src/code_index_generations.rs +++ b/crates/tracedecay-code-index-retention/src/code_index_generations.rs @@ -1297,14 +1297,6 @@ pub fn plan_code_generation_retention_with_verification_budgeted_cancellable( }) } -/// Seals once wrote a read bundle (a manifest beside the generation and a -/// catalog artifact beside the segments) that copied the graph store's -/// symbol, file, and import records. The graph store is their only owner -/// now, so any file of that shape is unreferenced and reclaimable. -fn is_retired_read_bundle_file(file_name: &str) -> bool { - file_name.starts_with("read-bundle-") || file_name.starts_with(".read-bundle-") -} - fn generation_file_digest(file_name: &str) -> Option<&str> { file_name .strip_prefix("generation-")? @@ -1362,7 +1354,6 @@ fn sweep_unreferenced_generation_segments( let manifest_directories = segment_manifest_directories(store_root, &mut remaining_entries, is_cancelled)?; let mut live_segments = BTreeSet::new(); - let mut retired_read_bundle_manifests = Vec::new(); let mut mark_root = |root: &Path, replay_pool: bool| -> Result<(), CodeGenerationRetentionErrorV1> { @@ -1397,14 +1388,6 @@ fn sweep_unreferenced_generation_segments( })? .to_owned() } else { - if path - .file_name() - .and_then(|name| name.to_str()) - .is_some_and(is_retired_read_bundle_file) - { - retired_read_bundle_manifests.push(path); - continue; - } let Some(file_name) = generation_file_name(&path) else { continue; }; @@ -1468,18 +1451,6 @@ fn sweep_unreferenced_generation_segments( let mut found = false; let mut reclaimed = 0_u64; - for path in retired_read_bundle_manifests { - let metadata = path.symlink_metadata().map_err(deferred_if_absent)?; - found = true; - if !apply { - return Ok((true, false)); - } - std::fs::remove_file(&path).map_err(storage)?; - reclaimed = reclaimed.saturating_add(metadata.len()); - if let Some(parent) = path.parent() { - sync_directory(parent)?; - } - } let mut reclaimed_segments = 0_usize; for entry in entries { if is_cancelled() { @@ -1545,7 +1516,6 @@ fn sweep_unreferenced_generation_segments( .and_then(|name| name.strip_suffix(".json")) .filter(|digest| is_lowercase_hex(digest, 64)) .map(|digest| format!("sha256:{digest}")) - .or_else(|| is_retired_read_bundle_file(file_name).then(|| file_name.to_owned())) else { continue; }; diff --git a/crates/tracedecay-code-index-retention/src/code_index_generations/scope_roots.rs b/crates/tracedecay-code-index-retention/src/code_index_generations/scope_roots.rs index 69dceeb897..f048ee0d7b 100644 --- a/crates/tracedecay-code-index-retention/src/code_index_generations/scope_roots.rs +++ b/crates/tracedecay-code-index-retention/src/code_index_generations/scope_roots.rs @@ -25,7 +25,6 @@ use super::SCOPE_RETENTION_QUARANTINE_DIRECTORY; use super::generation_transactions::entry_exists; use super::journal::{ BoundedJournalSpec, clear_journal, journal_path, load_journal, persist_journal, - remove_journal_file, }; use super::locking::{ acquire_scope_retention_lock, try_acquire_code_generation_store_lock_during_scope_retention, @@ -55,12 +54,6 @@ pub(super) const SCOPE_RECEIPT_STORE: ReceiptStoreSpec = ReceiptStoreSpec { label: "scope reconciliation receipt", }; -/// A binding-cleanup intent promised to remove one binding of the retired -/// dense-embedding authority after a scope collection. Nothing can replay -/// it, so it is an inert marker that recovery deletes. -pub(super) const RETIRED_BINDING_CLEANUP_INTENT_FILE: &str = - ".code-index-scope-binding-cleanup-intent-v1.json"; - /// The scope's canonical project root, recorded by the scheduler that opened /// it. The scope directory name is only the root's hash, so without this /// record reconciliation cannot tell a checkout that was deleted from one it @@ -728,8 +721,7 @@ pub fn execute_scope_root_retention( }) } -/// Finish or undo an interrupted scope-reconciliation transaction, and -/// delete a retired binding-cleanup intent. +/// Finish or undo an interrupted scope-reconciliation transaction. #[tracing::instrument(name = "usecases.retention.recover_scope", level = "trace", skip_all)] pub fn recover_scope_root_retention( store_root: &Path, @@ -738,7 +730,6 @@ pub fn recover_scope_root_retention( return Ok(()); } let _pass_lock = acquire_scope_retention_lock(store_root)?; - remove_journal_file(store_root, RETIRED_BINDING_CLEANUP_INTENT_FILE)?; recover_pending_scope_transaction_unlocked(store_root) } diff --git a/crates/tracedecay-code-index-retention/src/code_index_generations/tests.rs b/crates/tracedecay-code-index-retention/src/code_index_generations/tests.rs index 757f7bde49..6bb8d444bb 100644 --- a/crates/tracedecay-code-index-retention/src/code_index_generations/tests.rs +++ b/crates/tracedecay-code-index-retention/src/code_index_generations/tests.rs @@ -1870,53 +1870,6 @@ fn maintenance_preparation_wakes_for_an_unreferenced_final_segment() { ); } -/// Earlier seals wrote a read bundle beside the generation and its segments. -/// No reader names those files any more, so ordinary maintenance reclaims -/// every file of that shape and leaves other names in the roots alone. -#[test] -fn maintenance_reclaims_retired_read_bundle_files() { - let store = tempfile::TempDir::new().expect("create unpublished store"); - let generations_root = store.path().join(GENERATIONS_DIRECTORY); - let segments_root = store.path().join(GENERATION_SEGMENTS_DIRECTORY); - std::fs::create_dir_all(&generations_root).expect("create generation root"); - std::fs::create_dir_all(&segments_root).expect("create segment root"); - let hex = "ab".repeat(32); - let retired = [ - generations_root.join(format!("read-bundle-{hex}.json")), - generations_root.join(format!(".read-bundle-{hex}.4242.1.tmp")), - segments_root.join(format!("read-bundle-artifact-{hex}.bin")), - ]; - for path in &retired { - std::fs::write(path, b"retired read bundle bytes").expect("write retired bundle file"); - } - let unrelated = segments_root.join("unrelated.txt"); - std::fs::write(&unrelated, b"not a retention shape").expect("write unrelated file"); - - let plan = prepare_next_code_generation_retention_cancellable( - store.path(), - &BTreeSet::new(), - &|| false, - None, - ) - .expect("prepare retired bundle retention unit"); - assert!(plan.has_collectable_work()); - let report = execute_code_generation_retention( - store.path(), - plan, - CodeGenerationRetentionModeV1::Apply, - UtcMicros(99), - None, - ) - .expect("execute retired bundle retention unit"); - - assert_eq!( - retired.iter().map(|path| path.exists()).collect::>(), - vec![false, false, false] - ); - assert!(unrelated.exists()); - assert!(report.deleted_generations.is_empty()); -} - #[test] fn collectable_maintenance_preparation_escalates_to_full_verification() { let (store, _generations) = fixture_store(8); @@ -2621,39 +2574,6 @@ fn scope_recovery_restores_quarantined_scopes_without_a_durable_receipt() { assert!(!staged_root.exists()); } -#[test] -fn scope_recovery_deletes_a_retired_binding_cleanup_intent() { - let (store, live, stranded) = fixture_scope_store(); - let intent = store - .path() - .join(".code-index-scope-binding-cleanup-intent-v1.json"); - std::fs::write( - &intent, - format!( - r#"{{"schema":"tracedecay.code-index-scope-binding-cleanup-intent.v1","scope_hash":"{stranded}"}}"# - ), - ) - .expect("write a binding-cleanup intent from before its authority was retired"); - - recover_scope_root_retention(store.path()).expect("recover the scope store"); - - let mut entries: Vec = std::fs::read_dir(store.path()) - .expect("list the scope store") - .map(|entry| entry.unwrap().file_name().to_string_lossy().into_owned()) - .collect(); - entries.sort(); - let mut expected = vec![ - ".code-index-scope-retention.lock".to_owned(), - live, - stranded, - ]; - expected.sort(); - assert_eq!( - entries, expected, - "recovery deletes the inert intent and keeps every scope" - ); -} - #[test] fn scope_recovery_completes_collection_once_the_receipt_is_durable() { let (store, live, stranded) = fixture_scope_store(); diff --git a/crates/tracedecay-code-index-runtime/src/code_index_scheduler/graph_activation.rs b/crates/tracedecay-code-index-runtime/src/code_index_scheduler/graph_activation.rs index db0d121cba..fa98d4517a 100644 --- a/crates/tracedecay-code-index-runtime/src/code_index_scheduler/graph_activation.rs +++ b/crates/tracedecay-code-index-runtime/src/code_index_scheduler/graph_activation.rs @@ -303,7 +303,7 @@ impl CodeGraphActivationAuthorityV1 { *seated.write().unwrap_or_else(PoisonError::into_inner) = Some(generation); } - /// Validate and seat an already-published revision-7 graph directly from + /// Validate and seat an already-published graph directly from /// its durable verified head. `Ok(false)` is an explicit abstention for /// non-persistent or disabled authorities; every persistent mismatch is a /// typed error so the scheduler can retain pending coverage and replay. diff --git a/crates/tracedecay-code-index-runtime/src/code_index_scheduler/query_runtime.rs b/crates/tracedecay-code-index-runtime/src/code_index_scheduler/query_runtime.rs index 133469b49d..b0a4184a82 100644 --- a/crates/tracedecay-code-index-runtime/src/code_index_scheduler/query_runtime.rs +++ b/crates/tracedecay-code-index-runtime/src/code_index_scheduler/query_runtime.rs @@ -771,7 +771,7 @@ where // Graph activation state is owned per sealed generation and shared by // every handle bound to it, so the text owner answers for its own // generation when no decoded complete generation accompanies it. A - // clean restart whose retained revision-7 head recovered serves graph + // clean restart whose retained head recovered serves graph // reads from exactly that owner and deliberately leaves the sealed // seat empty; resolving the lane only through the seat reported the // recovered graph as `retriever_unavailable` until the next publish. diff --git a/crates/tracedecay-code-index-runtime/src/code_index_scheduler/reconcile.rs b/crates/tracedecay-code-index-runtime/src/code_index_scheduler/reconcile.rs index 5086ec661c..6421383b36 100644 --- a/crates/tracedecay-code-index-runtime/src/code_index_scheduler/reconcile.rs +++ b/crates/tracedecay-code-index-runtime/src/code_index_scheduler/reconcile.rs @@ -1077,14 +1077,12 @@ impl HistoricalCodeIndexGenerationOwnerV1 { fn bind_text( &self, metadata: VerifiedSealedTextGenerationMetadataV1, - sealed_format_revision: u32, ) -> LatestCodeTextGenerationV1 { let generation_id = metadata.manifest().generation_id.clone(); let mut progress_slot = CodeIndexBuildProgressSlotStateV1::default(); let text_progress_owner_epoch = progress_slot.replace_generation(generation_id); LatestCodeTextGenerationV1::from_shared(super::serving::CodeTextGenerationSharedV1 { metadata: Arc::new(metadata), - sealed_format_revision, query_owners: Arc::new(RwLock::new(None)), graph_activation: Arc::new(RwLock::new(CodeGraphActivationStateV1::Pending)), text_projection_build: Arc::new(CodeTextProjectionStateV1::new()), @@ -1120,7 +1118,6 @@ impl HistoricalCodeIndexGenerationOwnerV1 { let generation_id = generation.manifest().generation_id.clone(); let text = self.bind_text( VerifiedSealedTextGenerationMetadataV1::from_published_generation(&generation), - tracedecay_code_index::production::SEALED_GENERATION_FORMAT_REVISION_V1, ); let latest = LatestCompleteCodeIndexV1 { generation, @@ -1156,12 +1153,7 @@ impl HistoricalCodeIndexGenerationOwnerV1 { })?; Ok(self .text_metadata_in(&pointer, generation_id)? - .map(|metadata| { - self.bind_text( - metadata, - tracedecay_code_index::production::SEALED_GENERATION_FORMAT_REVISION_V1, - ) - })) + .map(|metadata| self.bind_text(metadata))) } /// Whether a durable publication pointer names a sealed generation, read @@ -2010,93 +2002,6 @@ impl CodeIndexWorktreeSchedulerV1 { ))) } - /// Seat the already-sealed active generation when the serving slot is empty. - /// - /// Quiet remounts persist a freshness witness through - /// [`Self::activate_retained_generation_from_frontier`]. A dirty remount - /// (cancelled mid-batch, uncommitted files, overflow) fails that witness - /// check, and falling through into a successor rebuild left restart - /// remounts warming with `last_reconcile_micros` unset and no - /// `code_index_serving_generation_seated` event. Historical convergence and - /// the dirty-tree rebuild stay later passes; this pass only makes the - /// retained artifact serve. - /// - /// Does not claim source freshness or persist a restore witness. It leaves - /// an overflow wake behind so the next pass must still observe the dirty - /// tree and publish its successor. - pub(super) fn seat_retained_generation_on_empty_serving( - &mut self, - ) -> Result, CodeIndexSchedulerErrorV1> { - if let Some(outcome) = self.activate_retained_generation_from_frontier()? { - return Ok(Some(outcome)); - } - if self.shutting_down.load(Ordering::Acquire) { - return Err(cancelled_code_index_reconcile()); - } - let Some(pointer) = self - .publication - .read_publication_pointer() - .map_err(CodeIndexProductionErrorV1::Publication)? - else { - return Ok(None); - }; - let decoded = self - .publication - .active_already_decoded() - .map_err(CodeIndexProductionErrorV1::Publication)?; - let configuration_changed = if let Some(generation) = decoded.as_ref() { - self.validate_generation_identity(generation.manifest(), generation.snapshot())?; - let compatibility = self.observe_generation_compatibility(generation); - if !compatibility.may_serve_while_rebuilding() { - self.request_background_reconcile(); - return Ok(None); - } - !compatibility.is_reusable() - } else { - false - }; - // Equal metadata is not currency. A quiet Noop is only honest when - // this pass decoded the generation and re-derived every sealed digest. - // Otherwise return None so the caller runs the content proof now; - // a later wake is not a substitute, because this empty-slot seat is - // the first branch and would keep swallowing the pass. - let content_matches = decoded.as_ref().is_some_and(|generation| { - self.retained_frontier_stat_sweep(&pointer) - && self.sources_match_manifest(&SourceContentManifestV1::for_snapshot( - generation.snapshot(), - )) - }); - if !retained_empty_seat_settles_source(decoded.is_some(), content_matches) { - return Ok(None); - } - let Some(generation) = decoded else { - return Ok(None); - }; - let dirty = { - let hints = self - .hints - .lock() - .unwrap_or_else(std::sync::PoisonError::into_inner); - hints.overflow || !hints.paths.is_empty() - } || configuration_changed; - if dirty { - self.request_background_reconcile(); - } - // Graph prepare decodes without the scheduler mutex. Joining - // `load_active_shared` here parked remount on the publication - // barrier while activation owned it, so the seated event never - // published and the dirty successor extract never started. - self.adopt_ignored_source_roster(generation.ignored_source_admissions()); - let snapshot_content_identity = generation.snapshot().content_identity.clone(); - self.latest_content_identity = Some(snapshot_content_identity.clone()); - Ok(Some(CodeIndexReconcileOutcomeV1::Noop( - CodeIndexNoopEvidenceV1 { - snapshot_content_identity, - overflow_reconciled: false, - }, - ))) - } - /// Witness + git/stat fence that does not read sealed generation bytes. /// `true` is the negative cache only: the metadata the witness recorded /// has not moved, and the caller still settles currency against the @@ -2706,63 +2611,54 @@ impl CodeIndexWorktreeSchedulerV1 { .ok() .flatten() }); - let (metadata, sealed_format_revision, preopened_source) = - if let Some(metadata) = partitioned_metadata { - ( - metadata, - tracedecay_code_index::production::SEALED_GENERATION_FORMAT_REVISION_V1, - None, - ) - } else { - let source = text_artifact_store - .open_sealed_source_with_progress( - &sealed_identity, - &text_control, - move |scanned, total| { - let elapsed_micros = progress_state - .lock() - .unwrap_or_else(std::sync::PoisonError::into_inner) - .elapsed_micros(); - let snapshot = CodeIndexBuildProgressV1 { - generation_id: progress_generation.as_str().to_owned(), - daemon_incarnation: progress_daemon_incarnation, - producer_incarnation: progress_producer_incarnation, - progress_epoch: 0, - sealed_source_digest: progress_digest.clone(), - phase: CodeIndexBuildPhaseV1::SourceScan, - committed_pages: 0, - committed_chunks: 0, - committed_imports: 0, - committed_payload_bytes: 0, - completed_files: 0, - total_files: 0, - completed_lexical_units: scanned, - total_lexical_units: total, - current_batch_pages: 0, - current_batch_payload_bytes: 0, - elapsed_micros, - last_commit_latency_micros: None, - files_per_second: None, - lexical_units_per_second: None, - estimated_remaining_seconds: None, - last_progress_micros: now_micros().0, - blocked_reason: None, - }; - let _ = try_publish_build_progress( - &progress_slot, - &progress_generation, - text_progress_owner_epoch, - snapshot, - ); - }, - ) - .ok()?; - ( - source.metadata().clone(), - source.format_revision(), - Some(source), + let (metadata, preopened_source) = if let Some(metadata) = partitioned_metadata { + (metadata, None) + } else { + let source = text_artifact_store + .open_sealed_source_with_progress( + &sealed_identity, + &text_control, + move |scanned, total| { + let elapsed_micros = progress_state + .lock() + .unwrap_or_else(std::sync::PoisonError::into_inner) + .elapsed_micros(); + let snapshot = CodeIndexBuildProgressV1 { + generation_id: progress_generation.as_str().to_owned(), + daemon_incarnation: progress_daemon_incarnation, + producer_incarnation: progress_producer_incarnation, + progress_epoch: 0, + sealed_source_digest: progress_digest.clone(), + phase: CodeIndexBuildPhaseV1::SourceScan, + committed_pages: 0, + committed_chunks: 0, + committed_imports: 0, + committed_payload_bytes: 0, + completed_files: 0, + total_files: 0, + completed_lexical_units: scanned, + total_lexical_units: total, + current_batch_pages: 0, + current_batch_payload_bytes: 0, + elapsed_micros, + last_commit_latency_micros: None, + files_per_second: None, + lexical_units_per_second: None, + estimated_remaining_seconds: None, + last_progress_micros: now_micros().0, + blocked_reason: None, + }; + let _ = try_publish_build_progress( + &progress_slot, + &progress_generation, + text_progress_owner_epoch, + snapshot, + ); + }, ) - }; + .ok()?; + (source.metadata().clone(), Some(source)) + }; if metadata.manifest().project_id != self.project_id || metadata.manifest().generation_id != generation_id || metadata.snapshot().repository != self.repository_id @@ -2800,7 +2696,6 @@ impl CodeIndexWorktreeSchedulerV1 { Some(RetainedTextGenerationRestoreV1::Servable( LatestCodeTextGenerationV1::from_shared(super::serving::CodeTextGenerationSharedV1 { metadata, - sealed_format_revision, query_owners: Arc::new(RwLock::new(None)), graph_activation: Arc::new(RwLock::new(CodeGraphActivationStateV1::Pending)), text_projection_build: Arc::new(CodeTextProjectionStateV1::new()), @@ -3586,7 +3481,7 @@ impl CodeIndexWorktreeSchedulerV1 { /// hint, observed-change marker, or cancellation epoch is minted for it. /// Fabricating that overflow made the restart's own verifying pass skip /// the sealed-digest witness a quiet tree would have satisfied and fall - /// into the full sealed-generation replay the revision-7 verified-head + /// into the full sealed-generation replay the verified-head /// recovery exists to avoid. pub fn request_fresh_for_query_background(&mut self) -> bool { let verdict = self.freshness_probe_verdict(); @@ -3842,8 +3737,6 @@ impl CodeIndexWorktreeSchedulerV1 { let text = retained_text.cloned().unwrap_or_else(|| { LatestCodeTextGenerationV1::from_shared(super::serving::CodeTextGenerationSharedV1 { metadata, - sealed_format_revision: - tracedecay_code_index::production::SEALED_GENERATION_FORMAT_REVISION_V1, query_owners, graph_activation: Arc::clone(&graph_activation), text_projection_build, @@ -4465,18 +4358,6 @@ fn changed_paths_between_trees( (!invalid_path).then_some(paths) } -/// A quiet empty-slot seat may end the pass only when the generation was -/// decoded and its sealed file digests still match the bytes on disk. -/// -/// Equal stat metadata with no decoded generation is not currency. Callers -/// that treat `false` as a settled Noop will skip the content proof. -pub(crate) fn retained_empty_seat_settles_source( - generation_decoded: bool, - content_matches: bool, -) -> bool { - generation_decoded && content_matches -} - pub(super) fn cancelled_code_index_reconcile() -> CodeIndexSchedulerErrorV1 { CodeIndexProductionErrorV1::Interrupted( tracedecay_code_index::production::CodeIndexInterruptionV1::Cancelled, @@ -4628,19 +4509,3 @@ impl SchedulerWorkerRuntimeV1 { } } } - -#[cfg(test)] -mod retained_empty_seat_tests { - use super::retained_empty_seat_settles_source; - - #[test] - fn equal_metadata_without_a_decoded_generation_does_not_settle_the_seat() { - assert!( - !retained_empty_seat_settles_source(false, true), - "a matching stat sweep is not a content proof" - ); - assert!(!retained_empty_seat_settles_source(true, false)); - assert!(!retained_empty_seat_settles_source(false, false)); - assert!(retained_empty_seat_settles_source(true, true)); - } -} diff --git a/crates/tracedecay-code-index-runtime/src/code_index_scheduler/registry/mount.rs b/crates/tracedecay-code-index-runtime/src/code_index_scheduler/registry/mount.rs index cc635fd540..6b4c127ddf 100644 --- a/crates/tracedecay-code-index-runtime/src/code_index_scheduler/registry/mount.rs +++ b/crates/tracedecay-code-index-runtime/src/code_index_scheduler/registry/mount.rs @@ -834,7 +834,7 @@ impl CodeIndexSchedulerRegistryV1 { CodeIndexArrivalV1, CodeIndexCadenceTriggerV1, )> = None; - // A retained revision-7 graph gets one verified-head attempt + // A retained graph gets one verified-head attempt // before ordinary source reconciliation owns any repair. A failed // verification falls through to one canonical replay of the same // sealed generation rather than repeating the head read forever. @@ -1498,10 +1498,7 @@ impl CodeIndexSchedulerRegistryV1 { .read() .unwrap_or_else(std::sync::PoisonError::into_inner) .is_none(); - let retained_text_uses_partitioned_manifest = retained_text - .as_ref() - .is_some_and(LatestCodeTextGenerationV1::uses_partitioned_manifest); - // A revision-7 owner can restore its retained persistent graph + // A retained owner can restore its retained persistent graph // directly from the verified head. Give that recovery exactly // one empty-slot *mount* pass before the dirty source capture // creates its successor. Once the retained graph is Ready, this @@ -1519,9 +1516,9 @@ impl CodeIndexSchedulerRegistryV1 { && serving_empty && !retained_graph_head_recovery_attempted && trigger == CodeIndexCadenceTriggerV1::Mount - && retained_text.as_ref().is_some_and(|text| { - text.uses_partitioned_manifest() && text.interactive_graph_store().is_err() - }); + && retained_text + .as_ref() + .is_some_and(|text| text.interactive_graph_store().is_err()); let retained_text_metadata = retained_text .as_ref() .map(|text| text.metadata().clone()) @@ -1574,23 +1571,6 @@ impl CodeIndexSchedulerRegistryV1 { { return Ok(outcome); } - // Legacy graph recovery requires a decoded complete - // generation in the serving slot before a dirty-tree - // rebuild. Revision 7 deliberately leaves that slot - // empty: the retained manifest owner validates and - // seats Grafeo below without opening partition bytes. - // Graph-off and deferred passes also fall through to - // retained text reconciliation. - if graph_activation_enabled - && !graph_activation_deferred - && serving_empty - && text_serving_ready - && !retained_text_uses_partitioned_manifest - && let Some(outcome) = - scheduler.seat_retained_generation_on_empty_serving()? - { - return Ok(outcome); - } if retained_partitioned_graph_recovery_pending && let Some(metadata) = retained_text_metadata.as_ref() { @@ -2063,10 +2043,7 @@ impl CodeIndexSchedulerRegistryV1 { && !published_pass && !graph_already_serves && !retained_graph_head_recovery_attempted - && let Some(retained) = graph_text - .as_ref() - .filter(|retained| retained.uses_partitioned_manifest()) - .cloned() + && let Some(retained) = graph_text.clone() { // Every outcome of this attempt schedules one successor. // Stamp it before the recovery await, while the pass is @@ -2224,7 +2201,7 @@ impl CodeIndexSchedulerRegistryV1 { // another retained-recovery Noop. The successor was // stamped before this await. } - // A recovered revision-7 verified head already serves its + // A recovered verified head already serves its // native graph from the retained text owner, and that owner // is the authority every graph route reads. Preparing the // same generation again buys nothing but the O(store) @@ -2235,14 +2212,11 @@ impl CodeIndexSchedulerRegistryV1 { // sealed slot unseated until an explicit complete-generation // consumer asks for it, exactly as graph-only // `sealed_decode_count() == 0` requires. A publication seats - // its own product as usual, and a legacy (non-partitioned) - // owner still takes the seat. + // its own product as usual. if prepare_graph && !published_pass && graph_already_serves - && graph_text - .as_ref() - .is_some_and(LatestCodeTextGenerationV1::uses_partitioned_manifest) + && graph_text.is_some() && !worker_complete_generation_requested.load(Ordering::Acquire) { prepare_graph = false; diff --git a/crates/tracedecay-code-index-runtime/src/code_index_scheduler/serving.rs b/crates/tracedecay-code-index-runtime/src/code_index_scheduler/serving.rs index 058a8be976..9e97c134a1 100644 --- a/crates/tracedecay-code-index-runtime/src/code_index_scheduler/serving.rs +++ b/crates/tracedecay-code-index-runtime/src/code_index_scheduler/serving.rs @@ -392,7 +392,6 @@ pub(super) type ParkedGraphReleaseCallback = Arc; pub struct CodeTextGenerationSharedV1 { pub(super) metadata: Arc, - pub(super) sealed_format_revision: u32, pub(super) query_owners: Arc>>>, /// Native-graph readiness for this exact sealed text generation. Status /// reads this authority even while an older generation still owns the @@ -1831,11 +1830,6 @@ impl LatestCodeTextGenerationV1 { self.metadata.source_commitments() } - pub fn uses_partitioned_manifest(&self) -> bool { - self.sealed_format_revision - == tracedecay_code_index::production::SEALED_GENERATION_FORMAT_REVISION_V1 - } - pub fn artifact_occurrence_by_chunk( &self, chunk: &tracedecay_domain::CodeSearchChunkId, diff --git a/crates/tracedecay-code-index-runtime/src/code_index_scheduler/tests/deferred_mount_tests.rs b/crates/tracedecay-code-index-runtime/src/code_index_scheduler/tests/deferred_mount_tests.rs index 7f0c30caa3..a91448ccd5 100644 --- a/crates/tracedecay-code-index-runtime/src/code_index_scheduler/tests/deferred_mount_tests.rs +++ b/crates/tracedecay-code-index-runtime/src/code_index_scheduler/tests/deferred_mount_tests.rs @@ -213,15 +213,10 @@ async fn deferred_query_authority_wakes_after_pre_mount_subscribe_on_partitioned .await .expect("initial mount"); let sealed = wait_for_initial_generation(&first, fixture.path()).await; - let partitioned = first + first .retained_text_owner_for_root(fixture.path()) .await - .expect("retained text owner") - .uses_partitioned_manifest(); - assert!( - partitioned, - "fixture must retain a partitioned generation so remount takes the Noop path" - ); + .expect("fixture must retain a text owner so remount takes the Noop path"); first.shutdown().await; let restarted = CodeIndexSchedulerRegistryV1::new(1); diff --git a/crates/tracedecay-code-index-runtime/src/code_index_scheduler/tests/retained_configuration_tests.rs b/crates/tracedecay-code-index-runtime/src/code_index_scheduler/tests/retained_configuration_tests.rs index 895e7c1616..327a5265ed 100644 --- a/crates/tracedecay-code-index-runtime/src/code_index_scheduler/tests/retained_configuration_tests.rs +++ b/crates/tracedecay-code-index-runtime/src/code_index_scheduler/tests/retained_configuration_tests.rs @@ -35,13 +35,9 @@ async fn partitioned_restart_rebuilds_incompatible_retained_generation() { ); let generation = published(seed.reconcile_now().expect("seed retained generation")).generation_id; - assert!( - seed.servable_retained_text_generation() - .expect("publication store") - .expect("seeded text generation") - .uses_partitioned_manifest(), - "the restart fixture must use the lightweight partitioned restore path" - ); + seed.servable_retained_text_generation() + .expect("publication store") + .expect("the restart fixture must retain a text generation"); generation }; rewrite_active_rust_extractor_revision(&scoped_store, "extractor.rust.v3"); diff --git a/crates/tracedecay-code-index-runtime/tests/code_index_scheduler/reconcile.rs b/crates/tracedecay-code-index-runtime/tests/code_index_scheduler/reconcile.rs index 5cc5227ece..f25818e4b7 100644 --- a/crates/tracedecay-code-index-runtime/tests/code_index_scheduler/reconcile.rs +++ b/crates/tracedecay-code-index-runtime/tests/code_index_scheduler/reconcile.rs @@ -10812,7 +10812,7 @@ async fn reopened_current_text_generation_resolves_publication_identity_without_ // A 5s `changed()` cut-off reports a late seat as a lost wake. The // registry signal has no such wall-clock bound; the ceiling only // distinguishes a seat that never arrives. - let current = wait_until_serving_seat( + wait_until_serving_seat( ®istry, fixture.path(), SERVING_SEAT_FAILURE_CEILING, @@ -10827,10 +10827,6 @@ async fn reopened_current_text_generation_resolves_publication_identity_without_ }, ) .await; - assert!( - current.uses_partitioned_manifest(), - "the retained text owner is the partitioned generation authority" - ); assert!( registry .latest_complete_serving_for_scope(&scope) @@ -11486,7 +11482,7 @@ fn moved_git_metadata_keeps_the_sealed_generation_until_bytes_move() { /// cancellation epoch, because nothing was observed to move. The fabricated /// overflow made the graph-on restart's own verifying pass skip the /// sealed-digest witness a quiet tree satisfies and fall into the full sealed -/// replay (`sealed_decode_count` 1) that the revision-7 verified-head recovery +/// replay (`sealed_decode_count` 1) that the verified-head recovery /// exists to avoid. Proven movement still posts the observed change. #[test] fn unverified_restart_probe_requests_a_pass_without_fabricating_an_observed_change() { diff --git a/crates/tracedecay-code-index/src/production/graph_build_bound.rs b/crates/tracedecay-code-index/src/production/graph_build_bound.rs index 5c514536a6..0f4435d025 100644 --- a/crates/tracedecay-code-index/src/production/graph_build_bound.rs +++ b/crates/tracedecay-code-index/src/production/graph_build_bound.rs @@ -34,16 +34,6 @@ const GRAPH_ROW_SAMPLE_FILES_V1: usize = 256; pub struct CodeGraphBuildBoundV1 { /// The segment buffers and the largest window of decoded pages. pub decode_window_bytes: u64, - /// Retired graph-time resolution state; always zero for page builds. - pub resolution_file_bytes: u64, - /// Retired graph-time binding state; always zero for page builds. - pub binding_bytes: u64, - /// Retired graph-time bound set; always zero for page builds. - pub bound_set_bytes: u64, - /// Retired graph-time derived state; always zero for page builds. - pub derived_bytes: u64, - /// Page builds do not retain pending emission batches; always zero. - pub emit_batch_bytes: u64, /// At the emission peak: rows buffered in the spill and the entity /// identities it keeps. pub emit_spill_bytes: u64, @@ -54,23 +44,16 @@ pub struct CodeGraphBuildBoundV1 { } impl CodeGraphBuildBoundV1 { - /// Page acquisition holds one bounded decode window. The other terms are - /// retained for the public receipt shape and are zero for page builds. + /// Page acquisition holds one bounded decode window. #[must_use] pub fn resolve_bytes(&self) -> u64 { - self.resolution_file_bytes - .saturating_add(self.binding_bytes) - .saturating_add(self.bound_set_bytes) - .saturating_add(self.decode_window_bytes.max(self.derived_bytes)) + self.decode_window_bytes } /// Emission holds the spill and the page currently emitted as rows. #[must_use] pub fn emit_bytes(&self) -> u64 { - self.bound_set_bytes - .saturating_add(self.derived_bytes) - .saturating_add(self.emit_batch_bytes) - .saturating_add(self.emit_spill_bytes) + self.emit_spill_bytes .saturating_add(self.emit_window_bytes) .saturating_add(self.decode_window_bytes) } @@ -260,11 +243,6 @@ pub(crate) fn layered_page_graph_build_bound<'a>( .saturating_mul(2); CodeGraphBuildBoundV1 { decode_window_bytes: decode_window, - resolution_file_bytes: 0, - binding_bytes: 0, - bound_set_bytes: 0, - derived_bytes: 0, - emit_batch_bytes: 0, emit_spill_bytes: emit_peak, emit_window_bytes: emit_window, store_bytes: identity_store.saturating_add(row_index_records), @@ -551,11 +529,6 @@ impl CodeIndexPublishedGenerationV1 { Ok(CodeGraphBuildBoundV1 { decode_window_bytes: bytes(decode_window), - resolution_file_bytes: 0, - binding_bytes: 0, - bound_set_bytes: 0, - derived_bytes: 0, - emit_batch_bytes: 0, emit_spill_bytes: bytes(emit.0), emit_window_bytes: bytes(emit.1), store_bytes: bytes(store), From eb10a6d4af570b94a354e9b185373ea263bd5280 Mon Sep 17 00:00:00 2001 From: Zack Jackson <25274700+ScriptedAlchemy@users.noreply.github.com> Date: Thu, 29 Oct 2026 02:28:05 -0700 Subject: [PATCH 11/13] test(compat): drop absence guards, oracles and error-text sniffing (U9) Items removed: L031, L038, L039, L041, L042, L045, L047. - L041: ToolResult.semantic_error is a plain bool set by the handler. Delete plain_text_tool_failure, value_has_semantic_error and the rendered-text fallback in tool_result_has_semantic_error and semantic_failure_reason. No production handler emitted the sniffed shapes (top-level success:false, error, failed>0, exit_code, "git error:" text): refusals go through problem_tool_result and edit/graph results set the marker. - L042: delete the former split fusion pipeline oracle (mod same_source_fusion_tests, legacy_compose). The duplicate-accounting test now asserts current behaviour directly: one compact sort, the duplicate collapse decision, the same admitted anchors under every lane order, and cursor pages that cover the ranked set exactly. - L038: the request-identity restart test no longer carries legacy id strings and is renamed every_process_local_surface_mints_a_fresh_identity_ after_restart. - L031, L039, L045, L047: delete tests that only assert the absence of retired features, routes, aliases and wire shapes. Callers migrated: with_semantic_error(false) calls dropped; semantic_error() tests assert a bool. Tests deleted: legacy_opencode_lsp_entries_do_not_disable_diagnostic_engines, doctor_routes_expose_diagnostics_without_mutation_endpoints, retired_file_metadata_is_absent_and_refused_by_public_dispatch, the retired-counter, worldwide, selector-alias and relation-table assertions, three dashboard retired-shape tests, the retired fact-state loop and the superseded diagnostics assert. Upgrade impact: none. Test and internal result-classification changes only. Co-Authored-By: Claude Opus 5.5 --- .../src/dashboard_diagnostics.rs | 80 ------ .../src/request_identity.rs | 82 ++---- .../src/authority_tests.rs | 29 -- crates/tracedecay-mcp/src/handlers/edit.rs | 2 +- .../tracedecay-mcp/src/handlers/git/branch.rs | 6 +- crates/tracedecay-mcp/src/handlers/support.rs | 2 +- crates/tracedecay-mcp/src/tool_analytics.rs | 5 +- crates/tracedecay-mcp/src/tool_errors.rs | 77 +----- crates/tracedecay-mcp/src/tools/mod.rs | 19 +- .../src/tools/tool_definition_tests.rs | 6 - .../tracedecay-query/src/retrieval/fusion.rs | 256 ------------------ .../src/retrieval/tests/composition_order.rs | 57 ++-- .../tracedecay-store/src/diagnostics/codec.rs | 4 - crates/tracedecay-store/src/memory/tests.rs | 6 - .../src/daemon/store_runtime_tests.rs | 22 -- .../daemon/tests/multi_root_execute_mcp.rs | 4 +- crates/tracedecay/src/doctor/tests.rs | 8 - crates/tracedecay/src/mcp/server/ledger.rs | 15 +- .../handlers/configuration_dispatch_tests.rs | 6 +- .../context_scout_control_dispatch_tests.rs | 2 +- .../src/mcp/tools/handlers/dispatch_tests.rs | 47 +--- .../mcp/tools/handlers/work_dispatch_tests.rs | 4 +- .../tools/handlers/workflow_dispatch_tests.rs | 2 +- .../ast_grep_rewrite_behavior_test.rs | 22 +- .../source_edit_reconcile_test.rs | 2 +- crates/tracedecay/tests/mcp_suite/support.rs | 2 +- dashboard/src/data/query/automation.test.ts | 50 ---- 27 files changed, 98 insertions(+), 719 deletions(-) diff --git a/crates/tracedecay-application/src/dashboard_diagnostics.rs b/crates/tracedecay-application/src/dashboard_diagnostics.rs index 340caa18af..3d80032c49 100644 --- a/crates/tracedecay-application/src/dashboard_diagnostics.rs +++ b/crates/tracedecay-application/src/dashboard_diagnostics.rs @@ -646,84 +646,4 @@ mod tests { "a project that never configured analyzer settings is not degraded" ); } - - #[tokio::test] - async fn legacy_opencode_lsp_entries_do_not_disable_diagnostic_engines() { - let home = tempfile::tempdir().expect("isolated home"); - let profile = tracedecay_runtime_core::config::ProfileRoot::under_home(home.path()); - let opencode_dir = home.path().join(".config").join("opencode"); - tokio::fs::create_dir_all(&opencode_dir) - .await - .expect("home opencode config dir"); - tokio::fs::write( - opencode_dir.join("opencode.json"), - serde_json::json!({ - "lsp": { - "tracedecay": { - "initialization": { - "tracedecay": { - "duplicateAnalyzerAvoidance": true, - "analyzerOwnership": { - "retainedByExtension": { ".ts": ["typescript"] } - } - } - } - } - } - }) - .to_string(), - ) - .await - .expect("write home opencode.json"); - let project_root = tempfile::tempdir().expect("project root"); - tokio::fs::write( - project_root.path().join("opencode.json"), - serde_json::json!({ - "lsp": { - "tracedecay": { - "initialization": { - "tracedecay": { - "duplicateAnalyzerAvoidance": true, - "analyzerOwnership": { - "retainedByExtension": { ".rs": ["rust-analyzer"] } - } - } - } - } - } - }) - .to_string(), - ) - .await - .expect("write project opencode.json"); - - let broker = open_diagnostic_broker( - Some(&profile), - project_root.path().to_path_buf(), - project_root.path(), - ) - .await; - - let snapshot = broker.lock().await.snapshot(); - for language in ["rust", "typescript"] { - let engine = snapshot - .engines - .iter() - .find(|engine| engine.language == language) - .unwrap_or_else(|| panic!("missing built-in {language} engine")); - assert_ne!( - engine.state, - EngineState::Disabled, - "an obsolete OpenCode LSP entry must not suppress the {language} engine" - ); - assert!( - engine - .last_error - .as_deref() - .is_none_or(|error| !error.contains("host analyzer")), - "obsolete OpenCode ownership leaked into {language}: {:?}", - engine.last_error - ); - } - } } diff --git a/crates/tracedecay-contracts/src/request_identity.rs b/crates/tracedecay-contracts/src/request_identity.rs index 4486e0539b..0fc7ce5370 100644 --- a/crates/tracedecay-contracts/src/request_identity.rs +++ b/crates/tracedecay-contracts/src/request_identity.rs @@ -367,73 +367,31 @@ mod tests { use super::*; #[test] - fn every_process_local_surface_survives_restart_with_reused_legacy_inputs() { - let collisions = [ - (GlobalRequestSurface::Cli, "request.cli.100.42.1"), - (GlobalRequestSurface::Http, "request.http.100.1"), - ( - GlobalRequestSurface::DashboardSettings, - "request.dashboard.settings.100.1", - ), - ( - GlobalRequestSurface::DashboardStorageTelemetry, - "request.dashboard.storage-telemetry.100000000", - ), - (GlobalRequestSurface::McpFallback, "request.mcp.100.1"), - ( - GlobalRequestSurface::ManagedTestRun, - "request.managed-test-run.1", - ), - ( - GlobalRequestSurface::FeedbackObservation, - "request.feedback-observe.100000000", - ), - ( - GlobalRequestSurface::ProjectOpenFeedbackCycle, - "request.project-open.cycle.100000000", - ), - ( - GlobalRequestSurface::ProjectOpenGithubDiscovery, - "request.project-open.github-discovery.commit-a", - ), - ( - GlobalRequestSurface::DaemonDoctor, - "request.daemon.doctor.42.100000000.0", - ), - ( - GlobalRequestSurface::DaemonStorageTelemetry, - "request.daemon.storage-telemetry.42.100000000.0", - ), - ( - GlobalRequestSurface::LspFeedbackDiagnostics, - "lsp-feedback-diagnostics-1", - ), - (GlobalRequestSurface::LspFeedbackGet, "lsp-feedback-get-1"), - ( - GlobalRequestSurface::LspFeedbackExpand, - "lsp-feedback-expand-1", - ), - (GlobalRequestSurface::SessionRefresh, "mcp.session-refresh"), - ( - GlobalRequestSurface::AutomationSessionRetrieval, - "automation.session-evidence", - ), - ( - GlobalRequestSurface::McpSessionRetrieval, - "mcp.message-search", - ), + fn every_process_local_surface_mints_a_fresh_identity_after_restart() { + let surfaces = [ + GlobalRequestSurface::Cli, + GlobalRequestSurface::Http, + GlobalRequestSurface::DashboardSettings, + GlobalRequestSurface::DashboardStorageTelemetry, + GlobalRequestSurface::McpFallback, + GlobalRequestSurface::ManagedTestRun, + GlobalRequestSurface::FeedbackObservation, + GlobalRequestSurface::ProjectOpenFeedbackCycle, + GlobalRequestSurface::ProjectOpenGithubDiscovery, + GlobalRequestSurface::DaemonDoctor, + GlobalRequestSurface::DaemonStorageTelemetry, + GlobalRequestSurface::LspFeedbackDiagnostics, + GlobalRequestSurface::LspFeedbackGet, + GlobalRequestSurface::LspFeedbackExpand, + GlobalRequestSurface::SessionRefresh, + GlobalRequestSurface::AutomationSessionRetrieval, + GlobalRequestSurface::McpSessionRetrieval, ]; - for (index, (surface, legacy)) in collisions.into_iter().enumerate() { + for (index, surface) in surfaces.into_iter().enumerate() { let first = ProcessUniqueIdentityAuthority::from_instance_nonce([1; 16]); let second_nonce = u8::try_from(index + 2).unwrap(); let second = ProcessUniqueIdentityAuthority::from_instance_nonce([second_nonce; 16]); - let legacy_first_process = legacy.to_owned(); - let legacy_restarted_process = legacy.to_owned(); - assert_eq!( - legacy_first_process, legacy_restarted_process, - "the pre-fix pair reused {legacy}" - ); assert_ne!( first.mint_string(surface.prefix()).unwrap(), second.mint_string(surface.prefix()).unwrap(), diff --git a/crates/tracedecay-dashboard-api/src/authority_tests.rs b/crates/tracedecay-dashboard-api/src/authority_tests.rs index 8d33dd958f..4941d72b5e 100644 --- a/crates/tracedecay-dashboard-api/src/authority_tests.rs +++ b/crates/tracedecay-dashboard-api/src/authority_tests.rs @@ -1123,35 +1123,6 @@ async fn standalone_dashboard_reports_native_integration_authority_unmounted() { assert_eq!(body["reason"], "authority_unmounted"); } -#[tokio::test] -async fn doctor_routes_expose_diagnostics_without_mutation_endpoints() { - let fixture = DashboardStateFixture::open("project.dashboard-doctor-read-only").await; - let app = router_with_active_application(fixture.state, None, Router::new()); - - for (method, path) in [ - (Method::POST, "/api/doctor/remediations/preview"), - (Method::POST, "/api/doctor/remediations/apply"), - (Method::GET, "/api/doctor/remediations/operation"), - ] { - let response = app - .clone() - .oneshot( - Request::builder() - .method(method) - .uri(path) - .body(Body::empty()) - .expect("legacy Doctor mutation request"), - ) - .await - .expect("legacy Doctor mutation response"); - assert_eq!( - response.status(), - StatusCode::NOT_FOUND, - "{path} is not mounted" - ); - } -} - /// A router served without [`with_dashboard_http_admission`] has no request /// control. That is a wiring fault, and every canonical read must answer it /// the same way: one 503 with the shared admission problem body, never a diff --git a/crates/tracedecay-mcp/src/handlers/edit.rs b/crates/tracedecay-mcp/src/handlers/edit.rs index 1094786976..e5aea2bfec 100644 --- a/crates/tracedecay-mcp/src/handlers/edit.rs +++ b/crates/tracedecay-mcp/src/handlers/edit.rs @@ -494,7 +494,7 @@ mod tests { ) .await .expect("a refused source edit renders as a tool result"); - assert_eq!(result.semantic_error(), Some(true), "{}", result.value); + assert!(result.semantic_error(), "{}", result.value); result.value["structuredContent"]["problem"].clone() } diff --git a/crates/tracedecay-mcp/src/handlers/git/branch.rs b/crates/tracedecay-mcp/src/handlers/git/branch.rs index 7aebdeffac..e7cbb30982 100644 --- a/crates/tracedecay-mcp/src/handlers/git/branch.rs +++ b/crates/tracedecay-mcp/src/handlers/git/branch.rs @@ -760,7 +760,7 @@ mod tests { .expect("an unadmitted executor returns a typed result, not an error"), ); - assert_eq!(result.semantic_error(), Some(true)); + assert!(result.semantic_error()); let message = result.failure_message().unwrap_or_default(); assert!( message.contains("search is unavailable") && message.contains("code_index_unavailable"), @@ -783,7 +783,7 @@ mod tests { .expect("an unadmitted executor returns a typed result, not an error"), ); - assert_eq!(result.semantic_error(), Some(true)); + assert!(result.semantic_error()); let message = result.failure_message().unwrap_or_default(); assert!( message.contains("branch diff main..feature is unavailable") @@ -817,7 +817,7 @@ mod tests { .await .expect("the context's active branch resolves head"), ); - assert_eq!(with_branch.semantic_error(), Some(true)); + assert!(with_branch.semantic_error()); } #[test] diff --git a/crates/tracedecay-mcp/src/handlers/support.rs b/crates/tracedecay-mcp/src/handlers/support.rs index e779f6ec66..a8113f91e0 100644 --- a/crates/tracedecay-mcp/src/handlers/support.rs +++ b/crates/tracedecay-mcp/src/handlers/support.rs @@ -84,7 +84,7 @@ pub fn rendered_tool_result String>( pub fn owner_envelope_result(envelope: &HttpJsonEnvelope) -> Result { let payload = serde_json::to_value(envelope)?; match envelope { - HttpJsonEnvelope::Success(_) => Ok(json_result(&payload).with_semantic_error(false)), + HttpJsonEnvelope::Success(_) => Ok(json_result(&payload)), HttpJsonEnvelope::Problem(problem) => { problem_tool_result(&payload.to_string(), &problem.application.problem) } diff --git a/crates/tracedecay-mcp/src/tool_analytics.rs b/crates/tracedecay-mcp/src/tool_analytics.rs index 7792c52917..cf68329c74 100644 --- a/crates/tracedecay-mcp/src/tool_analytics.rs +++ b/crates/tracedecay-mcp/src/tool_analytics.rs @@ -39,9 +39,8 @@ pub struct McpToolAnalyticsEvent<'a> { pub mcp_instance_id: Option<&'a str>, /// Bounded, sanitized (no argument bodies) reason for a `outcome == /// "error"` call, e.g. a structural edit-tool failure message or a - /// dispatch error's `Display` text. `None` falls back to a generic - /// marker so pre-existing callers that have not been migrated to supply - /// a real reason keep working. + /// dispatch error's `Display` text. `None` records the generic + /// `tool_dispatch_error` marker. pub failure_reason: Option<&'a str>, /// What the call cost its stores, when its read was metered. pub cost: Option<&'a tracedecay_contracts::RequestCostReceiptV1>, diff --git a/crates/tracedecay-mcp/src/tool_errors.rs b/crates/tracedecay-mcp/src/tool_errors.rs index 2841641114..0d2fbe443b 100644 --- a/crates/tracedecay-mcp/src/tool_errors.rs +++ b/crates/tracedecay-mcp/src/tool_errors.rs @@ -23,42 +23,6 @@ pub const TOOL_ARGUMENTS_INVALID: &str = "tool_arguments_invalid"; pub const SESSION_SYNC_CANCELLED_BEFORE_ADMISSION: &str = "session_sync_cancelled_before_admission"; pub const SESSION_SYNC_DEADLINE_EXCEEDED: &str = "session_sync_deadline_exceeded"; -fn plain_text_tool_failure(text: &str) -> bool { - text.starts_with("git error:") || text.starts_with("git diff failed:") -} - -fn value_has_semantic_error(value: &Value) -> bool { - value - .get("content") - .and_then(Value::as_array) - .is_some_and(|content| { - content.iter().any(|item| { - let Some(text) = item.get("text").and_then(Value::as_str) else { - return false; - }; - let trimmed = text.trim_start(); - if plain_text_tool_failure(trimmed) { - return true; - } - if !trimmed.starts_with('{') { - return false; - } - let Ok(payload) = serde_json::from_str::(trimmed) else { - return false; - }; - payload.get("success").and_then(Value::as_bool) == Some(false) - || payload.get("error").is_some_and(|error| !error.is_null()) - || payload - .get("failed") - .and_then(Value::as_u64) - .is_some_and(|failed| failed > 0) - || payload - .get("exit_code") - .is_some_and(|code| !code.is_null() && code.as_i64() != Some(0)) - }) - }) -} - /// Projects a hook-runtime error's typed context for test assertions. /// /// The status is whatever the admission authority reported, carried through @@ -81,46 +45,23 @@ pub(crate) fn structured_hook_error_data(error: &TraceDecayError) -> Option bool { - result - .semantic_error() - .unwrap_or_else(|| value_has_semantic_error(&result.value)) + result.semantic_error() } /// Reason to record for a semantically-failed tool result, for the -/// `failure_reason` analytics field. Prefers the handler-supplied structural +/// `failure_reason` analytics field: the handler-supplied structural /// [`ToolResult::failure_message`] (e.g. an edit result's `message`, such as -/// "`old_str` not found"); falls back to the rendered response's first text -/// block for handlers that only signal failure via `value_has_semantic_error` -/// text heuristics. Callers must only invoke this once the result is already -/// known to be a semantic failure, it does not itself re-check that. +/// "`old_str` not found"). Callers must only invoke this once the result is +/// already known to be a semantic failure, it does not itself re-check that. #[must_use] pub fn semantic_failure_reason(result: &ToolResult) -> Option { - if let Some(message) = result.failure_message() { - return Some(message.to_string()); - } - result - .value - .get("content") - .and_then(Value::as_array) - .and_then(|content| { - content - .iter() - .find_map(|item| item.get("text").and_then(Value::as_str)) - }) - .map(|text| text.trim_start().to_string()) + result.failure_message().map(str::to_owned) } /// The MCP `structuredContent` member of a tool result that refuses with diff --git a/crates/tracedecay-mcp/src/tools/mod.rs b/crates/tracedecay-mcp/src/tools/mod.rs index d96a9ecdf4..3d9cabff3a 100644 --- a/crates/tracedecay-mcp/src/tools/mod.rs +++ b/crates/tracedecay-mcp/src/tools/mod.rs @@ -25,14 +25,11 @@ pub struct ToolResult { internal_analytics: Option, /// Structural signal that the handler itself determined this call failed /// semantically (e.g. an edit whose `success` field is `false`), set by - /// the handler rather than inferred later from rendered response text. - /// `None` means the handler did not classify outcome structurally, so - /// callers should fall back to text-based heuristics; `Some(true)`/ - /// `Some(false)` are authoritative and skip those heuristics. - semantic_error: Option, + /// the handler and never inferred from rendered response text. + semantic_error: bool, /// Handler-provided human-readable reason for a structural semantic /// failure (e.g. an edit result's `message`, such as "`old_str` not - /// found"). Only meaningful when `semantic_error == Some(true)`; used to + /// found"). Only meaningful when `semantic_error` is set; used to /// populate analytics `failure_reason` without re-deriving it from /// rendered response text. failure_message: Option, @@ -54,7 +51,7 @@ impl ToolResult { value, touched_files, internal_analytics: None, - semantic_error: None, + semantic_error: false, failure_message: None, token_accounting: None, cost: None, @@ -91,15 +88,15 @@ impl ToolResult { /// Record a handler-determined semantic outcome for this call. Pass /// `true` when the handler knows the operation failed (e.g. an edit's - /// `success: false`), `false` when the handler knows it succeeded. + /// `success: false`). #[must_use] pub fn with_semantic_error(mut self, is_error: bool) -> Self { - self.semantic_error = Some(is_error); + self.semantic_error = is_error; self } - /// The handler-determined semantic outcome, if the handler set one. - pub fn semantic_error(&self) -> Option { + /// Whether the handler determined this call failed semantically. + pub fn semantic_error(&self) -> bool { self.semantic_error } diff --git a/crates/tracedecay-mcp/src/tools/tool_definition_tests.rs b/crates/tracedecay-mcp/src/tools/tool_definition_tests.rs index 2413d260f1..fe7fc7860d 100644 --- a/crates/tracedecay-mcp/src/tools/tool_definition_tests.rs +++ b/crates/tracedecay-mcp/src/tools/tool_definition_tests.rs @@ -42,12 +42,6 @@ fn terminal_application_definitions_project_canonical_request_schemas() { properties.remove("project_selector").is_some(), "{tool_name} must expose project_selector.project_id", ); - for alias in ["project_id", "project_path", "project_root", "root"] { - assert!( - !properties.contains_key(alias), - "{tool_name} must not expose legacy selector alias {alias}", - ); - } } assert_eq!( projected, diff --git a/crates/tracedecay-query/src/retrieval/fusion.rs b/crates/tracedecay-query/src/retrieval/fusion.rs index 2d6247a2eb..c4017e129a 100644 --- a/crates/tracedecay-query/src/retrieval/fusion.rs +++ b/crates/tracedecay-query/src/retrieval/fusion.rs @@ -1463,259 +1463,3 @@ fn current_utc_micros() -> Result { .map_err(|_| RetrievalError::InvalidRequest("system clock overflowed".to_owned()))?; Ok(UtcMicros(micros)) } - -#[cfg(test)] -pub(super) mod same_source_fusion_tests { - use super::*; - use crate::retrieval::dedupe::DedupeStageError; - - // Preserve the former split pipeline as an independent oracle. It keeps - // pre-calibration duplicate accounting, first-survivor attachment, and - // refusal ordering observable while production owns them inside fusion. - fn legacy_collapse_compact_candidates( - mut candidates: Vec, - ) -> Result<(Vec, Vec), DedupeStageError> { - candidates.sort_by(|left, right| { - left.source_occurrence_id - .cmp(&right.source_occurrence_id) - .then_with(|| { - left.retriever_evidence_anchor - .cmp(&right.retriever_evidence_anchor) - }) - .then_with(|| left.anchor_id.cmp(&right.anchor_id)) - .then_with(|| left.logical_evidence_id.cmp(&right.logical_evidence_id)) - .then_with(|| left.retriever.cmp(&right.retriever)) - }); - let mut decisions = Vec::new(); - let mut index = 0; - while index < candidates.len() { - let first = &candidates[index]; - let mut end = index + 1; - while end < candidates.len() - && candidates[end].source_occurrence_id == first.source_occurrence_id - && candidates[end].retriever_evidence_anchor == first.retriever_evidence_anchor - && candidates[end].anchor_id == first.anchor_id - && candidates[end].logical_evidence_id == first.logical_evidence_id - { - end += 1; - } - let selected = &candidates[index]; - if end - index > 1 { - let decision = RankingDecision { - kind: RankingDecisionKind::SameSourceDuplicateCollapse, - retriever: None, - policy_anchor: None, - evidence_anchor: Some(selected.retriever_evidence_anchor.clone()), - detail: format!( - "collapsed {} duplicate occurrence rows for {}; retained every retriever contribution", - end - index - 1, - selected.source_occurrence_id - ), - }; - decisions.push(DedupeDecisionV1 { - kept_occurrence: selected.source_occurrence_id.clone(), - collapsed_occurrences: candidates[index + 1..end] - .iter() - .map(|candidate| candidate.source_occurrence_id.clone()) - .collect(), - collapsed_candidates: Vec::new(), - copy_cluster: selected.logical_copy_cluster_id.clone(), - decision, - }); - } - index = end; - } - Ok((candidates, decisions)) - } - fn legacy_fuse_compact( - profile: &FusionProfile, - mut candidates: Vec, - ) -> Result, FusionStageError> { - candidates.sort_by(compact_candidate_cmp); - let mut fused = BTreeMap::<(RetrievalAnchorId, LogicalEvidenceId), FusedCandidate>::new(); - - for candidate in candidates { - let calibration_profile_id = profile - .calibrations - .get(&candidate.retriever) - .cloned() - .ok_or(FusionStageError::ProfileLaneMismatch)?; - let weight_micros = *profile - .weights_micros - .get(&candidate.retriever) - .ok_or(FusionStageError::ProfileLaneMismatch)?; - let calibration = profile - .score_domain_calibrations - .get(&candidate.score_domain) - .ok_or(FusionStageError::ProfileLaneMismatch)?; - if calibration.calibration_profile_id != calibration_profile_id - || calibration.score_domain != candidate.score_domain - { - return Err(FusionStageError::ProfileLaneMismatch); - } - let calibrated_feature_micros = calibration.calibrate(candidate.raw_score)?; - let minimum_calibrated_feature_micros = profile - .minimum_calibrated_feature_micros - .get(&candidate.retriever) - .copied() - .unwrap_or(0); - if minimum_calibrated_feature_micros > 1_000_000 { - return Err(FusionStageError::InvalidCalibratedFeature); - } - if calibrated_feature_micros < minimum_calibrated_feature_micros { - continue; - } - let weighted_contribution_micros = - FixedPointScore(u64::from(calibrated_feature_micros)) - .checked_weight(weight_micros)?; - let exact_class = candidate.exact_class(); - let occurrence = occurrence_from(&candidate); - let contribution = CandidateContribution { - retriever: candidate.retriever, - retriever_revision: candidate.retriever_revision.clone(), - source_occurrence_id: candidate.source_occurrence_id.clone(), - ordinal_rank: candidate.ordinal_rank, - raw_score: candidate.raw_score, - score_domain: candidate.score_domain.clone(), - calibration_profile_id, - calibrated_feature_micros, - weight_micros, - weighted_contribution_micros, - }; - let key = ( - candidate.anchor_id.clone(), - candidate.logical_evidence_id.clone(), - ); - let entry = fused.entry(key).or_insert_with(|| FusedCandidate { - anchor_id: candidate.anchor_id.clone(), - logical_evidence_id: candidate.logical_evidence_id.clone(), - occurrences: Vec::new(), - exact_class, - source_role: candidate.source_role, - utility_micros: 0, - contributions: Vec::new(), - freshness: Vec::new(), - decisions: Vec::new(), - }); - entry.exact_class = strongest_exact_class(entry.exact_class, exact_class); - if candidate.source_role.admission_rank() < entry.source_role.admission_rank() { - entry.source_role = candidate.source_role; - } - entry.occurrences.push(occurrence); - entry.contributions.push(contribution); - entry.freshness.push(candidate.freshness.clone()); - if exact_class != ExactClass::Approximate { - entry.decisions.push(RankingDecision { - kind: RankingDecisionKind::ExactTierAdmission, - retriever: Some(RetrieverKind::ExactLiteral), - policy_anchor: Some(profile.evaluation_result_anchor.clone()), - evidence_anchor: Some(candidate.retriever_evidence_anchor.clone()), - detail: "validated exact admission proof".to_owned(), - }); - } - } - - let mut fused = fused.into_values().collect::>(); - for candidate in &mut fused { - candidate.utility_micros = lane_saturated_utility_micros(&candidate.contributions)?; - candidate.occurrences.sort_by(occurrence_cmp); - candidate.occurrences.dedup(); - candidate.contributions.sort_by(contribution_cmp); - candidate.freshness.sort_by(freshness_cmp); - candidate.freshness.dedup(); - candidate.decisions.sort_by(decision_cmp); - candidate.decisions.dedup(); - candidate.validate()?; - } - Ok(fused) - } - fn legacy_attach_same_source_decisions( - candidates: &mut [FusedCandidate], - decisions: &[DedupeDecisionV1], - ) -> Result<(), FusionStageError> { - // Index occurrences by their `(source_occurrence_id, - // retriever_evidence_anchor)` pair once, so each recorded decision resolves - // its fused candidate in O(1) instead of rescanning the full fused slice - // per decision. `or_insert` keeps the first candidate (in slice order) that - // owns a matching occurrence, mirroring the prior `iter_mut().find(..)` - // first-match semantics exactly. - let mut occurrence_index: HashMap<(&SourceOccurrenceId, &RetrievalAnchorId), usize> = - HashMap::new(); - for (position, candidate) in candidates.iter().enumerate() { - for occurrence in &candidate.occurrences { - occurrence_index - .entry(( - &occurrence.source_occurrence_id, - &occurrence.retriever_evidence_anchor, - )) - .or_insert(position); - } - } - - let mut targets = Vec::with_capacity(decisions.len()); - for recorded in decisions { - let position = recorded - .decision - .evidence_anchor - .as_ref() - .and_then(|anchor| { - occurrence_index - .get(&(&recorded.kept_occurrence, anchor)) - .copied() - }) - .ok_or_else(|| { - FusionStageError::Contract( - "same-source collapse decision lost its fused candidate".to_owned(), - ) - })?; - targets.push(position); - } - drop(occurrence_index); - - for (recorded, position) in decisions.iter().zip(targets) { - let candidate = &mut candidates[position]; - candidate.decisions.push(recorded.decision.clone()); - candidate.decisions.sort_by(decision_cmp); - candidate.decisions.dedup(); - } - Ok(()) - } - pub(in crate::retrieval) fn legacy_compose( - kernel: &CompositionKernel, - input: &FusionStageInput, - policy: &tracedecay_domain::DiversityPolicy, - anchor_tiers: &BTreeMap, - ) -> Result { - let admitted = admitted_lanes( - input, - &[RetrieverKind::ExactLiteral, RetrieverKind::Lexical], - )?; - let (compact, mut dedupe_decisions) = - legacy_collapse_compact_candidates(admitted.candidates) - .map_err(|error| FusionStageError::Contract(error.to_string()))?; - let mut fused = legacy_fuse_compact(&input.profile, compact)?; - legacy_attach_same_source_decisions(&mut fused, &dedupe_decisions)?; - let (ordered, comparator_records) = kernel.fusion.order_fused(fused, anchor_tiers); - let (deduped, mut copies) = kernel - .dedupe - .select_representatives_with_decisions(ordered) - .map_err(|error| FusionStageError::Contract(error.to_string()))?; - let (ranked_candidates, diversity_decisions) = kernel - .diversity - .apply_caps(policy, deduped) - .map_err(map_diversity_error)?; - let comparator_records = ranked_comparator_records(&ranked_candidates, comparator_records)?; - dedupe_decisions.append(&mut copies); - Ok(CompositionOutputV1 { - profile_id: input.profile.profile_id.clone(), - ranked_candidates, - comparator_records, - internal_lane_outcomes: admitted.internal_lane_outcomes, - public_lane_statuses: admitted.public_lane_statuses, - freshness: admitted.freshness, - lane_checkpoints: admitted.lane_checkpoints, - dedupe_decisions, - diversity_decisions, - }) - } -} diff --git a/crates/tracedecay-query/src/retrieval/tests/composition_order.rs b/crates/tracedecay-query/src/retrieval/tests/composition_order.rs index a7b0fe09f3..427be78ad3 100644 --- a/crates/tracedecay-query/src/retrieval/tests/composition_order.rs +++ b/crates/tracedecay-query/src/retrieval/tests/composition_order.rs @@ -9,7 +9,6 @@ use tracedecay_domain::{ }; use super::{composition_lanes, corpus_lanes, id, mixed_caps, no_caps, profile}; -use crate::retrieval::fusion::same_source_fusion_tests::legacy_compose; use crate::retrieval::fusion::{ CompositionKernel, CompositionOutputV1, DeterministicFixedPointFusion, FusionStageInput, RetrievalCursorKeyringV1, digest_candidate_set, @@ -17,9 +16,9 @@ use crate::retrieval::fusion::{ use crate::retrieval::ordering::{OrderedFusedCandidates, decision_cmp}; use crate::retrieval::stage_counters; -// The former comparator remains an independent test oracle. Production -// comparison reads only prepared records; this intentionally reconstructs -// each tie-break vector from the candidate, as the original implementation did. +// An independent specification of the ordering. Production comparison reads +// only prepared records; this reconstructs each tie-break vector from the +// candidate. fn compare_fused(left: &FusedCandidate, right: &FusedCandidate) -> Ordering { fn canonical(items: impl Iterator) -> Vec { let mut items = items.collect::>(); @@ -202,7 +201,7 @@ fn ranking_key_variants() -> Vec { } #[test] -fn prepared_ranking_keys_match_the_original_order_with_one_normalization() { +fn prepared_ranking_keys_match_the_ordering_spec_with_one_normalization() { let fusion = DeterministicFixedPointFusion::new(id("ranking.fixture.v1")); let anchor_tiers: BTreeMap = BTreeMap::from([ (id("anchor.higher-tier"), 2), @@ -755,7 +754,7 @@ fn saturated_scores_preserve_retriever_strength_before_identity_ties() { } #[test] -fn fused_duplicate_accounting_matches_the_former_pipeline_and_cursors() { +fn fused_duplicate_accounting_admits_the_same_anchors_in_any_lane_order_and_cursors_cover_them() { let kernel = CompositionKernel::new(id("ranking.fixture.v1")); let mut lanes = corpus_lanes(); let shared = lanes @@ -813,6 +812,7 @@ fn fused_duplicate_accounting_matches_the_former_pipeline_and_cursors() { std::collections::BTreeMap::from([(id("anchor.c20"), 2)]); for (graph_threshold, policy) in [(0, no_caps()), (600_000, mixed_caps())] { + let mut baseline = None; for permutation in 0..6 { let mut permuted = lanes.clone(); let offset = permutation % permuted.len(); @@ -842,21 +842,11 @@ fn fused_duplicate_accounting_matches_the_former_pipeline_and_cursors() { profile, lanes: composition_lanes(permuted), }; - let expected = legacy_compose(&kernel, &input, &policy, &anchor_tiers) - .expect("former pipeline composes this admitted fixture"); stage_counters::reset(); let actual = kernel .compose_with_anchor_tiers(&input, &policy, &anchor_tiers) .expect("integrated fusion preserves admission"); assert_eq!(stage_counters::snapshot().compact_sorts, 1); - assert_eq!( - actual, expected, - "permutation {permutation}, graph threshold {graph_threshold}" - ); - assert_eq!( - digest_candidate_set(&actual.ranked_candidates).unwrap(), - digest_candidate_set(&expected.ranked_candidates).unwrap(), - ); assert!( actual.dedupe_decisions.iter().any(|decision| { decision.decision.kind == RankingDecisionKind::SameSourceDuplicateCollapse @@ -864,9 +854,22 @@ fn fused_duplicate_accounting_matches_the_former_pipeline_and_cursors() { }), "three lanes must exercise duplicate accounting, including filtered contributions" ); + let admitted = actual + .ranked_candidates + .iter() + .map(|ranked| ranked.candidate.anchor_id.clone()) + .collect::>(); + match &baseline { + None => baseline = Some(admitted), + Some(first) => assert_eq!( + &admitted, first, + "permutation {permutation}, graph threshold {graph_threshold}" + ), + } + let mut paged = Vec::new(); let mut cursor = None; loop { - let actual_page = kernel + let page = kernel .paginate_at( &request, &query, @@ -877,23 +880,17 @@ fn fused_duplicate_accounting_matches_the_former_pipeline_and_cursors() { UtcMicros(10), ) .unwrap(); - let expected_page = kernel - .paginate_at( - &request, - &query, - &keyring, - &expected, - 5, - cursor.as_ref(), - UtcMicros(10), - ) - .unwrap(); - assert_eq!(actual_page, expected_page); - cursor = actual_page.cursor; + paged.extend(page.ranked_candidates); + cursor = page.cursor; if cursor.is_none() { break; } } + assert_eq!( + digest_candidate_set(&paged).unwrap(), + digest_candidate_set(&actual.ranked_candidates).unwrap(), + "cursor pages must cover every ranked candidate exactly once" + ); } } } diff --git a/crates/tracedecay-store/src/diagnostics/codec.rs b/crates/tracedecay-store/src/diagnostics/codec.rs index 25fa10ec71..0ec7d82379 100644 --- a/crates/tracedecay-store/src/diagnostics/codec.rs +++ b/crates/tracedecay-store/src/diagnostics/codec.rs @@ -217,10 +217,6 @@ mod tests { "a current row must not carry a state generation" ); assert!(DiagnosticRecordStateKindV1::parse("archived").is_none()); - assert!( - DiagnosticRecordStateKindV1::parse("superseded").is_none(), - "retired superseded rows must be refused, not reinterpreted" - ); } #[test] diff --git a/crates/tracedecay-store/src/memory/tests.rs b/crates/tracedecay-store/src/memory/tests.rs index 8705049767..c7be9c1678 100644 --- a/crates/tracedecay-store/src/memory/tests.rs +++ b/crates/tracedecay-store/src/memory/tests.rs @@ -846,12 +846,6 @@ fn automatic_fact_state_wire_contract_is_terminal_only() { state ); } - for retired in ["pending", "pending_approval", "applying", "rejected"] { - assert!( - serde_json::from_value::(json!(retired)).is_err(), - "retired state {retired:?} must not deserialize" - ); - } } #[test] diff --git a/crates/tracedecay/src/daemon/store_runtime_tests.rs b/crates/tracedecay/src/daemon/store_runtime_tests.rs index 676d07e0b5..67e378e881 100644 --- a/crates/tracedecay/src/daemon/store_runtime_tests.rs +++ b/crates/tracedecay/src/daemon/store_runtime_tests.rs @@ -364,28 +364,6 @@ async fn existing_profile_memory_uses_final_schema_and_canonical_linked_lineage( .. } if relation.kind() == FactRelationKindV1::Supports ))); - - let mut rows = database - .read_connection() - .query( - "SELECT COUNT(*) FROM sqlite_master - WHERE type = 'table' AND name = 'memory_v2_fact_relations'", - (), - ) - .await - .expect("query mounted profile memory schema"); - let table_count: i64 = rows - .next() - .await - .expect("read schema row") - .expect("schema count row") - .get(0) - .expect("decode schema count"); - - assert_eq!( - table_count, 0, - "mounted final memory must not recreate the retired relation projection" - ); } #[tokio::test(flavor = "multi_thread", worker_threads = 4)] diff --git a/crates/tracedecay/src/daemon/tests/multi_root_execute_mcp.rs b/crates/tracedecay/src/daemon/tests/multi_root_execute_mcp.rs index b938d5e43b..f50106f86b 100644 --- a/crates/tracedecay/src/daemon/tests/multi_root_execute_mcp.rs +++ b/crates/tracedecay/src/daemon/tests/multi_root_execute_mcp.rs @@ -120,7 +120,7 @@ fn assert_problem( retry: &str, legal_actions: &[&str], ) { - assert_eq!(result.semantic_error(), Some(true)); + assert!(result.semantic_error()); let body = envelope(result); assert_eq!(body["binding_id"], "binding.http.multi_root.execute.v1"); let application = &body["application"]; @@ -405,7 +405,7 @@ async fn run_multi_root_execute() { execute_arguments(SCOPE_SET_ID, 1, &digest, 0), ) .await; - assert_eq!(page_zero.semantic_error(), None); + assert!(!page_zero.semantic_error()); let page_zero_body = envelope(&page_zero); assert_eq!( page_zero_body["binding_id"], diff --git a/crates/tracedecay/src/doctor/tests.rs b/crates/tracedecay/src/doctor/tests.rs index a5a9cf4db3..8928f5a255 100644 --- a/crates/tracedecay/src/doctor/tests.rs +++ b/crates/tracedecay/src/doctor/tests.rs @@ -760,12 +760,4 @@ async fn network_section_probes_only_the_github_release_lookup() { "{:?}", counters.checks ); - assert!( - !counters - .checks - .iter() - .any(|check| check.message.to_lowercase().contains("worldwide")), - "doctor must not probe or mention the retired worldwide counter: {:?}", - counters.checks - ); } diff --git a/crates/tracedecay/src/mcp/server/ledger.rs b/crates/tracedecay/src/mcp/server/ledger.rs index 31a0070a02..5de95433c2 100644 --- a/crates/tracedecay/src/mcp/server/ledger.rs +++ b/crates/tracedecay/src/mcp/server/ledger.rs @@ -504,16 +504,11 @@ mod tests { use super::*; - /// A completed tool response persists its tokens-saved accounting locally - /// and leaves the profile `config.toml` alone. The retired worldwide - /// counter used to write its pending-upload amount there after a response. + /// A completed tool response persists its tokens-saved accounting locally. #[tokio::test] - async fn completed_response_persists_local_accounting_without_counter_state() { + async fn completed_response_persists_local_accounting() { let (cg, _project, authority) = super::super::writer_test_support::init_indexed_repo().await; - let config_path = - tracedecay_session_memory::user_config::config_path(authority.profile_root()); - let config_before = std::fs::read(&config_path).ok(); let project_root = cg.project_root().to_path_buf(); let context = super::super::writer_test_support::registered_context(cg, &authority); let server = super::super::McpServer::new_with_context(context).await; @@ -535,12 +530,6 @@ mod tests { .await .expect("tool call should produce a response"); server.ledger_writes_settled().await; - assert_eq!( - std::fs::read(&config_path).ok(), - config_before, - "a response must not write counter state into the profile config" - ); - let accounted = tokens_saved.load(Ordering::Acquire); server.spawn_token_accounting_persist(&project_root, "tracedecay_search", 41, 100); server.ledger_writes_settled().await; diff --git a/crates/tracedecay/src/mcp/tools/handlers/configuration_dispatch_tests.rs b/crates/tracedecay/src/mcp/tools/handlers/configuration_dispatch_tests.rs index 7e9f411f45..d4dab2aba8 100644 --- a/crates/tracedecay/src/mcp/tools/handlers/configuration_dispatch_tests.rs +++ b/crates/tracedecay/src/mcp/tools/handlers/configuration_dispatch_tests.rs @@ -125,7 +125,7 @@ async fn available_configuration_effect_reaches_canonical_executor() { .await .expect("verified configuration effect must reach its canonical executor"); - assert_eq!(result.semantic_error(), Some(true)); + assert!(result.semantic_error()); assert_eq!( result.failure_message(), Some("application surface unavailable") @@ -229,7 +229,7 @@ async fn every_other_configuration_effect_reaches_the_authoritative_daemon_execu .await .expect("every catalog-advertised configuration effect must reach its daemon handler"); - assert_eq!(result.semantic_error(), Some(true)); + assert!(result.semantic_error()); assert_eq!( result.failure_message(), Some("application surface unavailable") @@ -332,7 +332,7 @@ async fn every_configuration_read_and_preview_reaches_its_canonical_daemon_handl ) .await .expect("every catalog-advertised configuration read must reach its daemon handler"); - assert_eq!(result.semantic_error(), Some(true)); + assert!(result.semantic_error()); assert_eq!( result.failure_message(), Some("application surface unavailable") diff --git a/crates/tracedecay/src/mcp/tools/handlers/context_scout_control_dispatch_tests.rs b/crates/tracedecay/src/mcp/tools/handlers/context_scout_control_dispatch_tests.rs index 077224ea06..262119a1d6 100644 --- a/crates/tracedecay/src/mcp/tools/handlers/context_scout_control_dispatch_tests.rs +++ b/crates/tracedecay/src/mcp/tools/handlers/context_scout_control_dispatch_tests.rs @@ -124,7 +124,7 @@ async fn context_scout_pause_and_resume_preserve_caller_idempotency_keys() { .await .expect("Context Scout control must reach its canonical executor"); - assert_eq!(result.semantic_error(), Some(true)); + assert!(result.semantic_error()); assert_eq!( result.failure_message(), Some("application surface unavailable") diff --git a/crates/tracedecay/src/mcp/tools/handlers/dispatch_tests.rs b/crates/tracedecay/src/mcp/tools/handlers/dispatch_tests.rs index d38c01e254..75a90a1ac6 100644 --- a/crates/tracedecay/src/mcp/tools/handlers/dispatch_tests.rs +++ b/crates/tracedecay/src/mcp/tools/handlers/dispatch_tests.rs @@ -59,47 +59,6 @@ impl tracedecay_daemon_protocol::DaemonInvocationExecutor for RecordingMultiRoot ignore_feedback_observations!(); } -#[tokio::test] -async fn retired_file_metadata_is_absent_and_refused_by_public_dispatch() { - let retired = "tracedecay_file_metadata"; - assert!( - get_tool_definitions() - .expect("tool definitions") - .iter() - .all(|definition| definition.name != retired) - ); - assert!( - tracedecay_mcp::tools::binding::mcp_dispatch_catalog() - .expect("MCP dispatch catalog") - .contract(retired) - .is_none() - ); - let dir = TempDir::new().expect("temporary project"); - let profile = SelectorProfile::new(dir.path()); - let project = dir.path().join("retired-file-metadata"); - fs::create_dir_all(&project).expect("project root"); - let (cg, _runtime) = TraceDecay::init_test_fixture_with_registered_runtime( - profile.data_dir(), - &project, - "project.retired-file-metadata", - ) - .await - .expect("TraceDecay fixture"); - let error = handle_tool_call_with_registry_options( - &cg, - retired, - json!({"files": ["../outside"]}), - ToolCallRegistryOptions::default(), - ) - .await - .expect_err("retired tool must be refused"); - assert!( - error.to_string().contains("unknown tool"), - "retired tool reached a public dispatch path: {error}" - ); - cg.close(); -} - #[tokio::test] async fn multi_root_tools_invoke_the_closed_daemon_routes() { let dir = TempDir::new().unwrap(); @@ -149,7 +108,7 @@ async fn multi_root_tools_invoke_the_closed_daemon_routes() { ) .await .unwrap(); - assert_eq!(result.semantic_error(), Some(true)); + assert!(result.semantic_error()); } assert_eq!( @@ -1305,7 +1264,7 @@ async fn pr_context_unresolvable_ref_fails_fast_within_deadline() { "unresolvable ref must fail fast, took {:?}", started.elapsed(), ); - assert_eq!(result.semantic_error(), Some(true)); + assert!(result.semantic_error()); let message = result.failure_message().unwrap_or_default().to_owned(); assert!( message.contains("does-not-exist-ref"), @@ -1374,7 +1333,7 @@ async fn pr_context_returns_git_evidence_while_verified_graph_is_unavailable() { ) .await .expect("transient verified graph failure must preserve available Git evidence"); - assert_ne!(result.semantic_error(), Some(true)); + assert!(!result.semantic_error()); let brief: PrContextBriefV1 = serde_json::from_value(tool_json(&result)) .expect("default PR response uses the closed briefing contract"); diff --git a/crates/tracedecay/src/mcp/tools/handlers/work_dispatch_tests.rs b/crates/tracedecay/src/mcp/tools/handlers/work_dispatch_tests.rs index eb365ad2cb..e9bc33387c 100644 --- a/crates/tracedecay/src/mcp/tools/handlers/work_dispatch_tests.rs +++ b/crates/tracedecay/src/mcp/tools/handlers/work_dispatch_tests.rs @@ -180,7 +180,7 @@ async fn success_denial_and_partial_effect_reach_http_and_mcp_unchanged() { .expect("MCP Work settlement"); assert_eq!(tool_json(&mcp), http); assert_eq!(http["value"]["request_id"], request_id.as_str()); - assert_eq!(mcp.semantic_error(), Some(index != 0)); + assert_eq!(mcp.semantic_error(), index != 0); if index == 0 { assert_eq!(http_status, axum::http::StatusCode::OK); assert_eq!( @@ -293,7 +293,7 @@ async fn read_mutation_and_evidence_preserve_the_typed_http_work_envelope() { .await .expect("MCP Work adapter response"); - assert_eq!(mcp.semantic_error(), Some(true)); + assert!(mcp.semantic_error()); assert_eq!( tool_json(&mcp), http, diff --git a/crates/tracedecay/src/mcp/tools/handlers/workflow_dispatch_tests.rs b/crates/tracedecay/src/mcp/tools/handlers/workflow_dispatch_tests.rs index de6f6f6cd8..f873d3770d 100644 --- a/crates/tracedecay/src/mcp/tools/handlers/workflow_dispatch_tests.rs +++ b/crates/tracedecay/src/mcp/tools/handlers/workflow_dispatch_tests.rs @@ -123,7 +123,7 @@ async fn workflow_read_preserves_results_and_refuses_wrong_operations_and_fields assert_eq!(tool_json(&mcp), http); assert_eq!(http["value"]["request_id"], request_id.as_str()); assert_eq!(executor.invocation_count(), invocations); - assert_eq!(mcp.semantic_error(), Some(expected_problem.is_some())); + assert_eq!(mcp.semantic_error(), expected_problem.is_some()); if let Some(code) = expected_problem { assert_eq!(http["value"]["problem"]["code"], code); } else { diff --git a/crates/tracedecay/tests/mcp_suite/mcp_handler_test/ast_grep_rewrite_behavior_test.rs b/crates/tracedecay/tests/mcp_suite/mcp_handler_test/ast_grep_rewrite_behavior_test.rs index f62746f651..6f3dd3e57d 100644 --- a/crates/tracedecay/tests/mcp_suite/mcp_handler_test/ast_grep_rewrite_behavior_test.rs +++ b/crates/tracedecay/tests/mcp_suite/mcp_handler_test/ast_grep_rewrite_behavior_test.rs @@ -152,7 +152,7 @@ async fn ast_grep_rewrite_dry_run_then_apply_swaps_every_call_and_leaves_the_res ) .await .expect("dry run"); - assert_eq!(preview.semantic_error(), Some(false), "{preview:?}"); + assert!(!preview.semantic_error(), "{preview:?}"); assert!(preview.touched_files.is_empty(), "{preview:?}"); let preview_json = edit_json(&preview); assert_eq!(preview_json["success"], json!(true), "{preview_json}"); @@ -200,7 +200,7 @@ async fn ast_grep_rewrite_dry_run_then_apply_swaps_every_call_and_leaves_the_res ) .await .expect("apply"); - assert_eq!(applied.semantic_error(), Some(false), "{applied:?}"); + assert!(!applied.semantic_error(), "{applied:?}"); assert_eq!( applied.touched_files, vec![CHECKOUT.to_owned()], @@ -280,7 +280,7 @@ async fn ast_grep_rewrite_exact_retry_replays_and_a_different_input_conflicts() ) .await .expect("apply"); - assert_eq!(first.semantic_error(), Some(false), "{first:?}"); + assert!(!first.semantic_error(), "{first:?}"); assert_eq!(first.touched_files, vec![CHECKOUT.to_owned()], "{first:?}"); let first_json = edit_json(&first); assert_eq!( @@ -313,7 +313,7 @@ async fn ast_grep_rewrite_exact_retry_replays_and_a_different_input_conflicts() ) .await .expect("exact retry"); - assert_eq!(retry.semantic_error(), Some(false), "{retry:?}"); + assert!(!retry.semantic_error(), "{retry:?}"); assert!(retry.touched_files.is_empty(), "{retry:?}"); let retry_json = edit_json(&retry); assert_eq!(retry_json["success"], json!(true), "{retry_json}"); @@ -363,7 +363,7 @@ async fn ast_grep_rewrite_exact_retry_replays_and_a_different_input_conflicts() ) .await .expect("a daemon refusal renders as a tool result"); - assert_eq!(conflict.semantic_error(), Some(true), "{}", conflict.value); + assert!(conflict.semantic_error(), "{}", conflict.value); let problem = &conflict.value["structuredContent"]["problem"]; assert_eq!( ( @@ -403,7 +403,7 @@ async fn ast_grep_rewrite_refuses_unmatched_patterns_paths_and_stale_previews() ) .await .expect("unmatched pattern"); - assert_eq!(unmatched.semantic_error(), Some(true), "{unmatched:?}"); + assert!(unmatched.semantic_error(), "{unmatched:?}"); assert_eq!( unmatched.failure_message(), Some(NO_MATCH_MESSAGE), @@ -458,7 +458,7 @@ async fn ast_grep_rewrite_refuses_unmatched_patterns_paths_and_stale_previews() ) .await .expect("extension without a parser"); - assert_eq!(prose.semantic_error(), Some(true)); + assert!(prose.semantic_error()); let prose_json = edit_json(&prose); assert_eq!(prose_json["success"], json!(false), "{prose_json}"); assert_eq!( @@ -497,7 +497,7 @@ async fn ast_grep_rewrite_refuses_unmatched_patterns_paths_and_stale_previews() ) .await .expect("path outside the worktree is a tool result"); - assert_eq!(escaped.semantic_error(), Some(true), "{escaped:?}"); + assert!(escaped.semantic_error(), "{escaped:?}"); let escaped_json = edit_json(&escaped); assert_eq!(escaped_json["success"], json!(false), "{escaped_json}"); assert_eq!(escaped_json["failed"], json!(true), "{escaped_json}"); @@ -519,7 +519,7 @@ async fn ast_grep_rewrite_refuses_unmatched_patterns_paths_and_stale_previews() ) .await .expect("missing file is a tool result"); - assert_eq!(missing.semantic_error(), Some(true)); + assert!(missing.semantic_error()); let missing_json = edit_json(&missing); assert_eq!(missing_json["success"], json!(false), "{missing_json}"); assert_eq!(missing_json["failed"], json!(true), "{missing_json}"); @@ -542,7 +542,7 @@ async fn ast_grep_rewrite_refuses_unmatched_patterns_paths_and_stale_previews() ) .await .expect("directory is a tool result"); - assert_eq!(directory.semantic_error(), Some(true)); + assert!(directory.semantic_error()); let directory_json = edit_json(&directory); assert_eq!(directory_json["success"], json!(false), "{directory_json}"); assert_eq!(directory_json["failed"], json!(true), "{directory_json}"); @@ -595,7 +595,7 @@ async fn ast_grep_rewrite_refuses_unmatched_patterns_paths_and_stale_previews() ) .await .expect("stale apply returns a failed edit"); - assert_eq!(stale.semantic_error(), Some(true), "{stale:?}"); + assert!(stale.semantic_error(), "{stale:?}"); let stale_json = edit_json(&stale); assert_eq!(stale_json["success"], json!(false), "{stale_json}"); assert_eq!(stale_json["failed"], json!(true), "{stale_json}"); diff --git a/crates/tracedecay/tests/mcp_suite/mcp_handler_test/source_edit_reconcile_test.rs b/crates/tracedecay/tests/mcp_suite/mcp_handler_test/source_edit_reconcile_test.rs index d3eb5d87c0..3ed340ffdb 100644 --- a/crates/tracedecay/tests/mcp_suite/mcp_handler_test/source_edit_reconcile_test.rs +++ b/crates/tracedecay/tests/mcp_suite/mcp_handler_test/source_edit_reconcile_test.rs @@ -67,7 +67,7 @@ fn refusal(result: Result) -> String { /// `kind code [legal actions]: message`. fn problem_refusal(result: Result) -> String { let result = result.expect("a daemon refusal renders as a tool result"); - assert_eq!(result.semantic_error(), Some(true), "{}", result.value); + assert!(result.semantic_error(), "{}", result.value); let problem = &result.value["structuredContent"]["problem"]; let actions = problem["legal_actions"] .as_array() diff --git a/crates/tracedecay/tests/mcp_suite/support.rs b/crates/tracedecay/tests/mcp_suite/support.rs index a57146dac6..f025cc6187 100644 --- a/crates/tracedecay/tests/mcp_suite/support.rs +++ b/crates/tracedecay/tests/mcp_suite/support.rs @@ -1383,7 +1383,7 @@ pub(crate) fn refusal_problem(result: &Value) -> &Value { /// the semantic-error mark the transport later renders as `isError`, and a /// result rebuilt from the transport's reply carries `isError` itself. pub(crate) fn tool_result_problem(result: &ToolResult) -> &Value { - if result.semantic_error() != Some(true) { + if !result.semantic_error() { return refusal_problem(&result.value); } let problem = &result.value["structuredContent"]["problem"]; diff --git a/dashboard/src/data/query/automation.test.ts b/dashboard/src/data/query/automation.test.ts index b0f44a2537..b31dfb1123 100644 --- a/dashboard/src/data/query/automation.test.ts +++ b/dashboard/src/data/query/automation.test.ts @@ -103,21 +103,6 @@ describe("runAutomaticCurator", () => { expect((await runAutomaticCurator()).outcome).toBe("unsupported_schema"); }); - it("rejects the retired run terminal in place of the receipt", async () => { - const { state: _state, ...identity } = startedReceipt("request.dashboard.success"); - respond({ - run: { - ...identity, - terminal: { - status: "completed", - summary: { reviewed_count: 0, accepted_count: 0, rejected_count: 0, skipped_count: 0 }, - }, - committed_receipts: [], - }, - }); - expect((await runAutomaticCurator()).outcome).toBe("unsupported_schema"); - }); - it("rejects success and admitted-problem envelopes from another HTTP binding", async () => { const success = curatorSuccess(startedReceipt("request.dashboard.success")); success.value.binding_id = "binding.http.fact_store_get.v1"; @@ -550,12 +535,6 @@ describe("the generated scheduler contract", () => { expect(parsed.tasks[0]?.last_scheduler_run).toBeNull(); }); - it("rejects the retired pending-review scheduler shape", () => { - const parsed = AutomationSchedulerStatusV1Schema.safeParse( - scheduler({ legacy_queue: { count: 0 } }), - ); - expect(parsed.success).toBe(false); - }); }); describe("automatic outcome payload", () => { @@ -622,35 +601,6 @@ describe("automatic outcome payload", () => { expect(parsed.snapshot.facts_refreshed_at).toBeNull(); }); - it("rejects the retired proposal and applied-at fact outcome shape", () => { - const parsed = AutomationOutcomesPayloadSchema.safeParse({ - generated_at: 1_700_000_000, - skills: [], - facts: [ - { - proposal_id: "apply-1", - run_id: "run-1", - fact_id: "fact-1", - applied_at: 1_699_000_000, - days_since_applied: 1, - retrieval_count: 2, - access_count: 1, - helpful_count: 1, - unhelpful_count: 0, - still_exists: true, - verdict: "recalled_and_helpful", - }, - ], - snapshot: { - available: true, - skills_refreshed_at: null, - facts_refreshed_at: 1_700_000_000, - }, - error: "", - }); - expect(parsed.success).toBe(false); - }); - it("rejects producer-impossible fact state, identity, and telemetry combinations", () => { const common = { apply_id: "apply-impossible", From b9948eca701d3ae7a4b696fa04ff32431233d8d7 Mon Sep 17 00:00:00 2001 From: Zack Jackson <25274700+ScriptedAlchemy@users.noreply.github.com> Date: Thu, 29 Oct 2026 02:32:50 -0700 Subject: [PATCH 12/13] refactor(dashboard): remove retired views and old-daemon tolerance (U10) Items removed: L048, L049, L050, L065, L082. - L048: unknown ?view values open Cortex; tests no longer name the retired atlas and core lenses. - L049: delete the Explorer "Semantic" lane, the 'unregistered' lane state and semanticLane. LaneId is the three source lanes (SourceLaneId folded into it); the summary reads "of 3 lanes". - L050: drop the negative assertions against retired /work/snapshot, delta, accept-task and replan routes and the retired-snapshot narration. - L065: the capabilities schema requires multi_root and multiRootReading takes a capability; the 'absent' reading is gone. - L082: fetchProjectRegistry accepts a registry envelope only on a 2xx. The daemon answers every registry outcome with a 200 (projects.rs, the gateway's registry_unavailable_response); non-2xx is an error. Callers migrated: MultiRootPanel, the controller and lane switches; the ShellTruth and BrainPage fixtures now serve registry outcomes with the 200 the daemon sends. Tests deleted: the retired Atlas link, semantic-lane and semanticLane tests, the retired-route negative assertions, the silent-bundle multi-root assertion, the decoded 503 registry test and the non-2xx rows of the registry outcome tables. Upgrade impact: the Explorer shows three lanes instead of four. The bundled dashboard always matches its daemon, so a newer dashboard against an older daemon would show "HTTP " for non-2xx registry answers and unsupported_schema for a capabilities bundle without multi_root. Co-Authored-By: Claude Opus 5.5 --- .../src/app/shell/ShellTruth.dom.test.tsx | 23 ++++------- dashboard/src/data/query/capabilities.ts | 37 ++++++------------ .../src/data/query/projectRegistry.test.ts | 34 +---------------- dashboard/src/data/query/projectRegistry.ts | 24 ++++-------- .../workspaces/brain/BrainPage.dom.test.tsx | 19 +--------- .../src/workspaces/code/CodePage.dom.test.tsx | 27 ------------- .../src/workspaces/code/codeView.test.ts | 8 ++-- dashboard/src/workspaces/code/codeView.ts | 2 +- .../explorer/ExplorerPage.dom.test.tsx | 32 ++-------------- .../src/workspaces/explorer/ExplorerPage.tsx | 7 ++-- dashboard/src/workspaces/explorer/Lane.tsx | 9 +---- .../src/workspaces/explorer/controller.ts | 8 ++-- .../explorer/controllerPolling.dom.test.tsx | 3 -- .../src/workspaces/explorer/evidence.test.ts | 3 +- dashboard/src/workspaces/explorer/evidence.ts | 1 - .../src/workspaces/explorer/laneChrome.ts | 4 +- .../src/workspaces/explorer/laneModel.test.ts | 18 --------- .../src/workspaces/explorer/laneModel.ts | 38 +++---------------- dashboard/src/workspaces/explorer/model.ts | 28 ++------------ .../settings/MultiRootPanel.dom.test.tsx | 8 +--- .../workspaces/settings/MultiRootPanel.tsx | 9 ----- .../src/workspaces/work/WorkPage.dom.test.tsx | 10 ++--- dashboard/src/workspaces/work/WorkPage.tsx | 3 +- .../src/workspaces/work/workAttemptModel.ts | 8 ++-- 24 files changed, 64 insertions(+), 299 deletions(-) diff --git a/dashboard/src/app/shell/ShellTruth.dom.test.tsx b/dashboard/src/app/shell/ShellTruth.dom.test.tsx index 24d861b89d..f4a5889942 100644 --- a/dashboard/src/app/shell/ShellTruth.dom.test.tsx +++ b/dashboard/src/app/shell/ShellTruth.dom.test.tsx @@ -188,25 +188,16 @@ describe('shared shell truthfulness', () => { }); /** - * The two ways a deep link fails to resolve, which the route reports with two - * different status codes and which the dashboard must not merge. - * - * They used to be one case here, because the payload fetcher discarded every - * non-2xx body: a dead link and a registry that could not be opened both - * arrived as `HTTP 404`/`HTTP 503` with nothing to tell them apart, so the - * only honest reading available was "unconfirmed" for both. That left a stale - * bookmark resolving forever, the reader was told the check was still - * pending long after it had come back with an answer. - * - * Now the body is carried, so each says what it is. What must not change is - * the label: neither reading renames the project to its id, because neither - * one carries a name to replace it with. + * The two ways a deep link fails to resolve, which the dashboard must not + * merge: a project the registry does not hold, and a registry that could not + * be read. Neither renames the project to its id, because neither one + * carries a name to replace it with. */ it('reports a project the registry does not hold as absent, keeping its name', async () => { useScope.getState().selectProject('proj-ghost', 'Looks Legitimate', 'unresolved'); stubRoutes({ '/api/projects/proj-ghost': { - status: 404, + status: 200, body: fixtureEnvelope( failurePayload('not_found', 'no project registered with id proj-ghost'), ), @@ -263,13 +254,13 @@ describe('shared shell truthfulness', () => { }); it('keeps a project unconfirmed when the registry itself is unavailable', async () => { - // 503, not 404: the registry could not be read, so it established nothing + // The registry could not be read, so it established nothing // about this project. Reporting absence here would discard a good label and // refuse a write that a working registry would have accepted. useScope.getState().selectProject('proj-real', 'Looks Legitimate', 'unresolved'); stubRoutes({ '/api/projects/proj-real': { - status: 503, + status: 200, body: fixtureEnvelope( failurePayload('registry_unavailable', 'registry database could not be opened'), ), diff --git a/dashboard/src/data/query/capabilities.ts b/dashboard/src/data/query/capabilities.ts index 5ab994cdd1..a469f7ed46 100644 --- a/dashboard/src/data/query/capabilities.ts +++ b/dashboard/src/data/query/capabilities.ts @@ -1,13 +1,11 @@ /** * `/api/capabilities`, and the multi-root capability inside it. * - * The daemon has reported a typed multi-root capability on this route for as - * long as the route has existed: `mod.rs::capabilities` builds it from - * `state.authorized_scope_set` as the generated `MultiRootCapabilityV1`, which - * is a two-state union, `mounted`, carrying the scope-set id, revision, - * digest and root count, or `unavailable`, carrying the daemon's own sentence - * about why. Nothing on this dashboard read it. The capability was answered on - * every page load and dropped on the floor. + * The daemon reports a typed multi-root capability on this route: + * `mod.rs::capabilities` builds it from `state.authorized_scope_set` as the + * generated `MultiRootCapabilityV1`, which is a two-state union, `mounted`, + * carrying the scope-set id, revision, digest and root count, or + * `unavailable`, carrying the daemon's own sentence about why. * * What is deliberately NOT here is a federated query. `MultiRootQueryReadModelV1` * is generated, but no route serves it: there is no endpoint that runs a query @@ -26,16 +24,12 @@ import { fetchPayload, type PayloadResult } from './payload.ts'; const CAPABILITIES_URL = '/api/capabilities'; /** - * Only the members this dashboard reads, and `multi_root` is optional. - * - * A daemon predating the capability answers a bundle without the member at - * all, and that is not a malformed response, it is an older daemon, which is - * a different reading from "a scope set is not mounted" and must not be - * flattened into it. `passthrough` keeps the rest of the bundle intact for the - * fixture gate, which parses the same body against `CapabilitiesSchema`. + * Only the members this dashboard reads. `passthrough` keeps the rest of the + * bundle intact for the fixture gate, which parses the same body against + * `CapabilitiesSchema`. */ const CapabilitiesReadSchema = z - .object({ multi_root: MultiRootCapabilityV1Schema.optional() }) + .object({ multi_root: MultiRootCapabilityV1Schema }) .passthrough(); export type CapabilitiesRead = z.infer; @@ -54,16 +48,8 @@ export function useCapabilities() { }); } -/** - * What may be said about multi-root, given a capability bundle. - * - * Four readings, and the two that look alike are the ones worth separating: - * `absent` is a daemon that never mentioned the capability, `unavailable` is a - * daemon that mentioned it to say no. Reporting the first as the second would - * put a reason in the daemon's mouth. - */ +/** What may be said about multi-root, given a capability bundle. */ export type MultiRootReading = - | { state: 'absent' } | { state: 'unavailable'; reason: string } | { state: 'mounted'; @@ -77,8 +63,7 @@ export type MultiRootReading = federatedQueryMounted: false; }; -export function multiRootReading(capability: MultiRootCapabilityV1 | undefined): MultiRootReading { - if (!capability) return { state: 'absent' }; +export function multiRootReading(capability: MultiRootCapabilityV1): MultiRootReading { switch (capability.status) { case 'unavailable': return { state: 'unavailable', reason: capability.reason }; diff --git a/dashboard/src/data/query/projectRegistry.test.ts b/dashboard/src/data/query/projectRegistry.test.ts index b5ca3e64cd..768e778e45 100644 --- a/dashboard/src/data/query/projectRegistry.test.ts +++ b/dashboard/src/data/query/projectRegistry.test.ts @@ -102,34 +102,7 @@ describe('fetchProjectRegistry', () => { vi.unstubAllGlobals(); }); - it('keeps a decoded 503 registry answer in the canonical envelope result', async () => { - const payload = { - ...fixturePayload('/api/projects/proj_b'), - status: 'registry_unavailable', - error: 'unable to open the global registry', - is_active: null, - project: null, - aliases: [], - stores: [], - }; - vi.stubGlobal( - 'fetch', - vi.fn(async () => new Response(JSON.stringify(fixtureEnvelope(payload)), { status: 503 })), - ); - - await expect( - fetchProjectRegistry('/api/projects/proj_b', ProjectContextPayloadV1Schema), - ).resolves.toMatchObject({ - outcome: 'envelope', - envelope: { payload: { status: 'registry_unavailable' } }, - }); - }); - - it.each([ - ['200', 200], - ['404', 404], - ['500', 500], - ])('maps a typed %s not_found envelope to an absent project', async (_label, status) => { + it.each([['200', 200]])('maps a typed %s not_found envelope to an absent project', async (_label, status) => { const payload = context({ status: PROJECT_NOT_FOUND, error: 'no project registered with id proj_ghost', @@ -148,10 +121,7 @@ describe('fetchProjectRegistry', () => { }); }); - it.each([ - ['200', 200], - ['503', 503], - ])('keeps a typed %s unavailable registry envelope distinct from an absent project', async (_label, status) => { + it.each([['200', 200]])('keeps a typed %s unavailable registry envelope distinct from an absent project', async (_label, status) => { const payload = context({ status: 'registry_unavailable', error: 'registry database could not be opened', diff --git a/dashboard/src/data/query/projectRegistry.ts b/dashboard/src/data/query/projectRegistry.ts index 1e012d5914..bddd8fb296 100644 --- a/dashboard/src/data/query/projectRegistry.ts +++ b/dashboard/src/data/query/projectRegistry.ts @@ -52,11 +52,10 @@ export function projectRegistryEntryKey(projectId: string): readonly string[] { * and every entry at once. */ export const projectRegistryInvalidationKey = [PROJECT_REGISTRY_ROOT] as const; -/** Result of a registry fetch. A decoded registry envelope is authoritative - * regardless of the HTTP status it travelled with: registry outcomes live in - * the payload's `status`, while HTTP remains authoritative for write and - * authorization refusals, malformed bodies, and failures with no typed - * registry outcome. */ +/** Result of a registry fetch. A decoded registry envelope answers a 2xx: + * registry outcomes live in the payload's `status`, while HTTP remains + * authoritative for write and authorization refusals, malformed bodies, and + * every non-2xx answer. */ export type ProjectRegistryResult = | { outcome: 'envelope'; envelope: DashboardEnvelopeV1 } | { outcome: 'transport'; state: DashboardDomainStateV1; detail?: string }; @@ -64,10 +63,9 @@ export type ProjectRegistryResult = /** * `GET /api/projects` or `GET /api/projects/{id}`, envelope-only. * - * A body is accepted only when it is `DashboardEnvelopeV1`. The envelope's - * known registry outcomes (`not_found`, `missing_registry`, and - * `registry_unavailable`) are preserved across a 200 or an older non-2xx - * transport. A non-typed non-2xx answer remains an error. + * A body is accepted only when it is `DashboardEnvelopeV1` on a 2xx. The + * envelope's registry outcomes (`not_found`, `missing_registry`, and + * `registry_unavailable`) travel with a 200. A non-2xx answer is an error. */ export async function fetchProjectRegistry( url: string, @@ -100,18 +98,12 @@ export async function fetchProjectRegistry( return { outcome: 'transport', state: 'unsupported_schema' }; } const envelope = parsed.data as DashboardEnvelopeV1; - if (response.ok || typedRegistryOutcome(envelope.payload)) { + if (response.ok) { return { outcome: 'envelope', envelope }; } return { outcome: 'transport', state: 'error', detail: `HTTP ${response.status}` }; } -function typedRegistryOutcome(payload: unknown): boolean { - if (typeof payload !== 'object' || payload === null) return false; - const status = (payload as { status?: unknown }).status; - return status === PROJECT_NOT_FOUND || isRegistryUnavailableStatus(status); -} - function isRegistryUnavailableStatus(status: unknown): boolean { return status === 'missing_registry' || status === 'registry_unavailable'; } diff --git a/dashboard/src/workspaces/brain/BrainPage.dom.test.tsx b/dashboard/src/workspaces/brain/BrainPage.dom.test.tsx index b9a85d22c0..0caa891dc4 100644 --- a/dashboard/src/workspaces/brain/BrainPage.dom.test.tsx +++ b/dashboard/src/workspaces/brain/BrainPage.dom.test.tsx @@ -29,23 +29,6 @@ function registryBody(status: string, error: string | null = null) { }; } -/** - * The transport status each body really arrives with. - * - * `projects.rs::list` answers both registry failures with 503, never with a - * 200 carrying a failing status, so serving these at 200, as this suite used - * to, exercised a response the daemon cannot produce. It passed only because - * the former generic client discarded non-2xx bodies, which made these very - * branches unreachable in production. - * - * An unrecognised status is different, and stays at 200: `status` is a bare - * string in Rust, so a future successful state is a word this build has not - * been taught, arriving on a perfectly ordinary success. - */ -function transportStatusFor(status: string): number { - return status === 'missing_registry' || status === 'registry_unavailable' ? 503 : 200; -} - function registryEnvelope(status: string, error: string | null = null) { return fixtureEnvelope(registryBody(status, error), status === 'ok' ? 'ready' : 'partial'); } @@ -56,7 +39,7 @@ function renderBrain(status: string, error: string | null = null) { vi.fn( async () => new Response(JSON.stringify(registryEnvelope(status, error)), { - status: transportStatusFor(status), + status: 200, }), ), ); diff --git a/dashboard/src/workspaces/code/CodePage.dom.test.tsx b/dashboard/src/workspaces/code/CodePage.dom.test.tsx index 2610566ac9..28b5f85d42 100644 --- a/dashboard/src/workspaces/code/CodePage.dom.test.tsx +++ b/dashboard/src/workspaces/code/CodePage.dom.test.tsx @@ -238,33 +238,6 @@ describe('the URL-stable Code view shell', () => { ); }); - it('opens a retired Atlas link in Cortex and preserves its symbol for Trace', async () => { - const fetchMock = serveFixtures(); - vi.stubGlobal('fetch', fetchMock); - const user = userEvent.setup(); - renderCode('/code?view=atlas&symbol=sym-0'); - - expect(await screen.findByRole('region', { name: 'Graph register' })).toBeTruthy(); - expect(screen.getByRole('region', { name: 'Cortex' })).toBeTruthy(); - expect(screen.getByRole('button', { name: 'Cortex' }).getAttribute('aria-current')).toBe( - 'page', - ); - expect(screen.queryByRole('button', { name: 'Atlas' })).toBeNull(); - expect(screen.queryByText('Atlas is unavailable')).toBeNull(); - expect( - fetchMock.mock.calls.some((call) => { - const url = new URL(String(call[0]), 'http://localhost'); - return url.pathname.endsWith('/subgraph') && url.searchParams.get('node_id') === 'sym-0'; - }), - ).toBe(true); - - const trace = screen.getByRole('button', { name: 'Trace' }); - await waitFor(() => expect(trace.disabled).toBe(false)); - await user.click(trace); - expect(trace.getAttribute('aria-current')).toBe('page'); - expect(await screen.findByRole('heading', { name: /trace ·/i })).toBeTruthy(); - }); - it('moves and activates views with native keyboard controls', async () => { vi.stubGlobal( 'fetch', diff --git a/dashboard/src/workspaces/code/codeView.test.ts b/dashboard/src/workspaces/code/codeView.test.ts index 32e78d8965..c28f75e54c 100644 --- a/dashboard/src/workspaces/code/codeView.test.ts +++ b/dashboard/src/workspaces/code/codeView.test.ts @@ -22,7 +22,7 @@ describe('Code view locations', () => { }); }); - it.each(['core', 'atlas', 'unknown'])( + it.each(['unknown'])( 'opens the unsupported %s view in Cortex without losing symbol focus', (view) => { expect( @@ -34,9 +34,9 @@ describe('Code view locations', () => { }, ); - it('preserves project and revision selectors when rewriting a retired view', () => { + it('preserves project and revision selectors when rewriting an unknown view', () => { const current = new URLSearchParams( - 'view=atlas&symbol=symbol-42&project=project-7&base_revision=abc&scope=local', + 'view=unknown&symbol=symbol-42&project=project-7&base_revision=abc&scope=local', ); const next = writeCodeLocation(current, readCodeLocation(current)); @@ -45,7 +45,7 @@ describe('Code view locations', () => { expect(next.get('project')).toBe('project-7'); expect(next.get('base_revision')).toBe('abc'); expect(next.get('scope')).toBe('local'); - expect(current.get('view')).toBe('atlas'); + expect(current.get('view')).toBe('unknown'); }); it('writes the default view without redundant query parameters', () => { diff --git a/dashboard/src/workspaces/code/codeView.ts b/dashboard/src/workspaces/code/codeView.ts index 26ba1baf07..d514d80d94 100644 --- a/dashboard/src/workspaces/code/codeView.ts +++ b/dashboard/src/workspaces/code/codeView.ts @@ -43,7 +43,7 @@ interface CodeViewBlocker { const VIEW_PARAM = 'view'; const FOCUS_PARAM = 'symbol'; -/** Unknown or retired views open Cortex without losing the symbol identity. */ +/** Unknown views open Cortex without losing the symbol identity. */ export function readCodeLocation(params: URLSearchParams): CodeLocation { const focusId = params.get(FOCUS_PARAM); const requested = params.get(VIEW_PARAM); diff --git a/dashboard/src/workspaces/explorer/ExplorerPage.dom.test.tsx b/dashboard/src/workspaces/explorer/ExplorerPage.dom.test.tsx index 9efd2b4ea2..a156acf9ef 100644 --- a/dashboard/src/workspaces/explorer/ExplorerPage.dom.test.tsx +++ b/dashboard/src/workspaces/explorer/ExplorerPage.dom.test.tsx @@ -286,7 +286,7 @@ function unavailable(sourceId: SourceId, code: string, message: string) { return withoutAnswer(sourceId, 'unavailable', code, message); } -function lane(name: 'Code' | 'Sessions' | 'Knowledge' | 'Semantic') { +function lane(name: 'Code' | 'Sessions' | 'Knowledge') { return screen.getByRole('region', { name: `${name} lane` }); } @@ -298,7 +298,7 @@ async function search(query = 'graph') { } describe('ExplorerPage independent lane lifecycle', () => { - it('draws four lanes, and a ready lane never makes an unavailable neighbour look ready', async () => { + it('draws three lanes, and a ready lane never makes an unavailable neighbour look ready', async () => { renderExplorer({ ...SEARCH_ROUTES, '/api/explorer/queries': { @@ -319,7 +319,6 @@ describe('ExplorerPage independent lane lifecycle', () => { expect(lane('Code').getAttribute('data-lane-state')).toBe('ready'); expect(lane('Sessions').getAttribute('data-lane-state')).toBe('ready'); expect(lane('Knowledge').getAttribute('data-lane-state')).toBe('unavailable'); - expect(lane('Semantic').getAttribute('data-lane-state')).toBe('unregistered'); // The unavailable lane prints the source's own reason and no count , // a dash, never a zero, because zero is what a source that looked says. @@ -336,31 +335,7 @@ describe('ExplorerPage independent lane lifecycle', () => { expect(within(lane('Sessions')).getByText('2')).toBeTruthy(); // The summary counts only lanes that answered. - expect(screen.getByText(/2 of 4 lanes answered · 2 not served/)).toBeTruthy(); - }); - - it('renders the semantic lane as a standing typed absence in browse and in search', async () => { - renderExplorer(SEARCH_ROUTES); - // Browse mode: the three source lanes hold their overview rows. - await screen.findByRole('button', { name: /graph_api\.rs/ }); - expect(lane('Code').getAttribute('data-lane-state')).toBe('ready'); - expect(within(lane('Code')).getByText('shown from the overview endpoint')).toBeTruthy(); - - const browse = within(lane('Semantic')); - expect(browse.getByText('No production authority')).toBeTruthy(); - // Named in the header chip and again in the body, so the reason survives - // whichever of the two a narrow layout keeps in view. - expect(browse.getAllByText(/no semantic retrieval source is registered/).length).toBe(2); - expect(browse.getAllByText('Source unavailable').length).toBeGreaterThan(0); - expect(browse.queryByRole('button')).toBeNull(); - - await search(); - await screen.findByText(/hits for/); - // Three sources answered; the fourth lane still says exactly why it has - // no rows, and nothing about the ready lanes leaked into it. - expect(lane('Semantic').getAttribute('data-lane-state')).toBe('unregistered'); - expect(within(lane('Semantic')).getByText('No production authority')).toBeTruthy(); - expect(within(lane('Semantic')).queryByText('EXACT')).toBeNull(); + expect(screen.getByText(/2 of 3 lanes answered · 1 not served/)).toBeTruthy(); }); it('keeps a lane the coordinator is still reading distinct from lanes that answered', async () => { @@ -435,7 +410,6 @@ describe('ExplorerPage scope truth', () => { }); expect(lane('Sessions').getAttribute('data-lane-state')).toBe('locked'); expect(lane('Knowledge').getAttribute('data-lane-state')).toBe('locked'); - expect(lane('Semantic').getAttribute('data-lane-state')).toBe('unregistered'); expect( within(lane('Code')).getAllByText(/Other project is not the active project/).length, ).toBeGreaterThan(0); diff --git a/dashboard/src/workspaces/explorer/ExplorerPage.tsx b/dashboard/src/workspaces/explorer/ExplorerPage.tsx index 48016c1422..ad28abd07c 100644 --- a/dashboard/src/workspaces/explorer/ExplorerPage.tsx +++ b/dashboard/src/workspaces/explorer/ExplorerPage.tsx @@ -13,13 +13,12 @@ import { facetCounts, LANES, SOURCE_LANE_IDS, type Hit, type LaneId } from './mo import { RunRegister } from './panels.tsx'; /** - * Explorer, one query, four independent authorities. + * Explorer, one query, three independent authorities. * * TraceDecay remembers a repository several separate ways, and the honest * consequence is that a search is a *fan-out*, not a single ranked list: the * code graph, the transcript store and the fact store each answer for - * themselves, and the semantic lane the product contract names has no - * registered authority at all. This surface makes that structure the design. + * themselves. This surface makes that structure the design. * Each authority is a lane with its own lifecycle, count, rows and typed * absence; a ready lane can never make its neighbour look ready; and because * the daemon returns hits but no relevance score, "why this is here" is told @@ -93,7 +92,7 @@ export function ExplorerPage() { {/* The query register: the field, the run's own state, and the lane and diff --git a/dashboard/src/workspaces/explorer/Lane.tsx b/dashboard/src/workspaces/explorer/Lane.tsx index 7b558ce6f2..d8fe4fe8c6 100644 --- a/dashboard/src/workspaces/explorer/Lane.tsx +++ b/dashboard/src/workspaces/explorer/Lane.tsx @@ -77,7 +77,7 @@ export function Lane({ className="relative flex min-h-[var(--pane-min-height)] min-w-0 flex-col border border-edge-subtle bg-surface-1" > - {/* Name over state, so four headers align whatever length a state's + {/* Name over state, so the headers align whatever length a state's * detail runs to. The chip truncates its detail; the body repeats the * full sentence for any lane that has no rows to show instead. */}
@@ -318,11 +318,6 @@ function LaneBody({ title: 'Never named', body: `The run concluded without naming ${spec.label}. No answer exists to show.`, }; - case 'unregistered': - return { - title: 'No production authority', - body: `${read.detail}. Nothing is invented for this lane, and no other lane's readiness applies to it.`, - }; case 'indeterminate': return { title: 'Indeterminate', @@ -483,7 +478,7 @@ function rovingRows(event: KeyboardEvent) { rows[next]?.scrollIntoView({ block: 'nearest' }); } -/** The lanes grid: the four columns and the horizontal-arrow traversal +/** The lanes grid: the lane columns and the horizontal-arrow traversal * between them. Moving left or right lands on the same row index in the * neighbouring lane, or on that lane's region when it has no rows, so a * keyboard reader can walk across the authorities the way a pointer would. */ diff --git a/dashboard/src/workspaces/explorer/controller.ts b/dashboard/src/workspaces/explorer/controller.ts index 8303d75e13..37d15f2fae 100644 --- a/dashboard/src/workspaces/explorer/controller.ts +++ b/dashboard/src/workspaces/explorer/controller.ts @@ -40,10 +40,9 @@ import { lanePending, runIsTerminal, searchLane, - semanticLane, type ExplorerLaneReadModel, } from './laneModel.ts'; -import { LANES, type Hit, type LaneId, type SourceLaneId } from './model.ts'; +import { LANES, type Hit, type LaneId } from './model.ts'; /* ------------------------------------------------------------------ routes */ @@ -154,7 +153,7 @@ function transportBackoffMs(consecutiveFailures: number): number { /* -------------------------------------------------------------- controller */ interface ExplorerFacet { - readonly lane: SourceLaneId; + readonly lane: LaneId; readonly value: string; } @@ -174,7 +173,7 @@ export interface ExplorerController { /** Whether the current scope accepts a query run, from the scope authority. * Anything but `writable` means no run was, or will be, dispatched. */ readonly writability: ScopeWritability; - /** One read model per lane, in `LANES` order, four, including semantic. */ + /** One read model per lane, in `LANES` order. */ readonly lanes: readonly ExplorerLaneReadModel[]; /** The lanes the current lane filter admits. */ readonly visibleLanes: readonly ExplorerLaneReadModel[]; @@ -308,7 +307,6 @@ export function useExplorerController(): ExplorerController { const lanes = useMemo( () => LANES.map((spec): ExplorerLaneReadModel => { - if (spec.id === 'semantic') return semanticLane(); if (searching) { // A run is created with a POST, and the project gateway refuses // writes for every project but the active one. The gate is read diff --git a/dashboard/src/workspaces/explorer/controllerPolling.dom.test.tsx b/dashboard/src/workspaces/explorer/controllerPolling.dom.test.tsx index 89115cff41..90cbea0e59 100644 --- a/dashboard/src/workspaces/explorer/controllerPolling.dom.test.tsx +++ b/dashboard/src/workspaces/explorer/controllerPolling.dom.test.tsx @@ -238,13 +238,10 @@ describe('explorer run-status polling', () => { expect(result?.outcome).toBe('transport'); expect(result?.outcome === 'transport' ? result.state : null).toBe('offline'); // The failure is on screen, and no lane is pretending to still be working. - // The semantic lane keeps its own standing condition: a daemon that cannot - // be reached says nothing about a source that was never registered. const byLane = new Map(view.result.current.lanes.map((lane) => [lane.lane, lane.state])); expect(byLane.get('code')).toBe('offline'); expect(byLane.get('sessions')).toBe('offline'); expect(byLane.get('knowledge')).toBe('offline'); - expect(byLane.get('semantic')).toBe('unregistered'); expect(view.result.current.anyPending).toBe(false); }); diff --git a/dashboard/src/workspaces/explorer/evidence.test.ts b/dashboard/src/workspaces/explorer/evidence.test.ts index 14efdd3543..7819cc5f4e 100644 --- a/dashboard/src/workspaces/explorer/evidence.test.ts +++ b/dashboard/src/workspaces/explorer/evidence.test.ts @@ -1,6 +1,6 @@ import { describe, expect, it } from 'vitest'; import { hitEvidence, laneGrade } from './evidence.ts'; -import { semanticLane, type ExplorerLaneReadModel } from './laneModel.ts'; +import type { ExplorerLaneReadModel } from './laneModel.ts'; import { codeHits, knowledgeHits, sessionHits } from './model.ts'; describe('hitEvidence', () => { @@ -45,6 +45,5 @@ describe('laneGrade', () => { expect(laneGrade(pending)).toBeNull(); expect(laneGrade(locked)).toBe('UNAVAILABLE'); expect(laneGrade({ state: 'offline', lane: 'sessions' })).toBe('UNAVAILABLE'); - expect(laneGrade(semanticLane())).toBe('UNAVAILABLE'); }); }); diff --git a/dashboard/src/workspaces/explorer/evidence.ts b/dashboard/src/workspaces/explorer/evidence.ts index 2cd51b81fe..a33c81d922 100644 --- a/dashboard/src/workspaces/explorer/evidence.ts +++ b/dashboard/src/workspaces/explorer/evidence.ts @@ -98,7 +98,6 @@ export function laneGrade(read: ExplorerLaneReadModel): EvidenceGrade | null { case 'locked': case 'unsupported_schema': case 'unanswered': - case 'unregistered': case 'indeterminate': return 'UNAVAILABLE'; default: { diff --git a/dashboard/src/workspaces/explorer/laneChrome.ts b/dashboard/src/workspaces/explorer/laneChrome.ts index 6f57872f29..d22867282d 100644 --- a/dashboard/src/workspaces/explorer/laneChrome.ts +++ b/dashboard/src/workspaces/explorer/laneChrome.ts @@ -1,13 +1,12 @@ /** Presentation constants shared by every Explorer view: the glyph and the * specification behind a lane id, resolved once so no view re-scans `LANES`. */ -import { Boxes, Lightbulb, MessagesSquare, Sparkles, type LucideIcon } from 'lucide-react'; +import { Boxes, Lightbulb, MessagesSquare, type LucideIcon } from 'lucide-react'; import { LANES, type LaneId, type LaneSpec } from './model.ts'; export const LANE_ICON: Record = { code: Boxes, sessions: MessagesSquare, knowledge: Lightbulb, - semantic: Sparkles, }; function laneSpec(id: LaneId): LaneSpec { @@ -20,5 +19,4 @@ export const LANE_BY_ID: Record = { code: laneSpec('code'), sessions: laneSpec('sessions'), knowledge: laneSpec('knowledge'), - semantic: laneSpec('semantic'), }; diff --git a/dashboard/src/workspaces/explorer/laneModel.test.ts b/dashboard/src/workspaces/explorer/laneModel.test.ts index 9c74b90c18..4280a6b54b 100644 --- a/dashboard/src/workspaces/explorer/laneModel.test.ts +++ b/dashboard/src/workspaces/explorer/laneModel.test.ts @@ -22,8 +22,6 @@ import { runIsTerminal, runStateKind, searchLane, - SEMANTIC_UNREGISTERED_DETAIL, - semanticLane, type ExplorerLaneReadModel, } from './laneModel.ts'; @@ -537,22 +535,6 @@ describe('laneFromTransport', () => { }); }); -describe('semanticLane', () => { - it('is a standing typed absence, not an unavailable source and not an empty answer', () => { - const lane = semanticLane(); - expect(lane.state).toBe('unregistered'); - expect(lane.lane).toBe('semantic'); - // Rendered with the taxonomy's unavailable chip, but the detail names the - // contract fact: there is no source to have declined. - expect(laneStateKind(lane)).toBe('unavailable'); - expect(laneStateDetail(lane)).toBe(SEMANTIC_UNREGISTERED_DETAIL); - expect(laneHits(lane)).toEqual([]); - expect(laneAnswered(lane)).toBe(false); - expect(lanePending(lane)).toBe(false); - expect(laneEvidence(lane)).toBe('unknown'); - }); -}); - describe('laneFromScope', () => { it('lets a writable scope proceed and refuses the other two with their own reasons', () => { expect(laneFromScope('code', { state: 'writable', target: 'the active project' })).toBeNull(); diff --git a/dashboard/src/workspaces/explorer/laneModel.ts b/dashboard/src/workspaces/explorer/laneModel.ts index 847edd85bf..839d5e3993 100644 --- a/dashboard/src/workspaces/explorer/laneModel.ts +++ b/dashboard/src/workspaces/explorer/laneModel.ts @@ -33,28 +33,15 @@ import { sessionHits, type Hit, type LaneId, - type SourceLaneId, } from './model.ts'; /** Which coordinator source answers for each source lane. */ -const LANE_SOURCE_ID: Record = { +const LANE_SOURCE_ID: Record = { code: 'code_graph', sessions: 'sessions', knowledge: 'knowledge', }; -/** - * Why the semantic lane has no rows, stated as the contract fact it is. - * - * `ExplorerSourceIdV1` names three sources and none of them is semantic - * retrieval; the dense retrieval path was retired from the daemon. The lane - * is still drawn, because a reader comparing four authorities must see that - * the fourth did not answer for a reason, not find three columns and infer - * the fourth was never asked. - */ -export const SEMANTIC_UNREGISTERED_DETAIL = - 'no semantic retrieval source is registered with the query coordinator'; - /** * One lane's condition, as a closed union. * @@ -160,10 +147,6 @@ export type ExplorerLaneReadModel = | { readonly state: 'unsupported_schema'; readonly lane: LaneId } /** The run reached a terminal state without ever naming this source. */ | { readonly state: 'unanswered'; readonly lane: LaneId } - /** No production authority exists for this lane at all: the coordinator - * names no such source, so there is nothing to ask and nothing to poll. - * Distinct from `unavailable`, which is a registered source declining. */ - | { readonly state: 'unregistered'; readonly lane: LaneId; readonly detail: string } /** The transport reported a domain state that carries no lane-level reading. * The state is kept verbatim rather than folded into an error. */ | { @@ -173,11 +156,6 @@ export type ExplorerLaneReadModel = readonly detail: string | null; }; -/** The semantic lane's standing condition. */ -export function semanticLane(): ExplorerLaneReadModel { - return { state: 'unregistered', lane: 'semantic', detail: SEMANTIC_UNREGISTERED_DETAIL }; -} - /** * The lane's condition when the current scope will not accept the query run. * @@ -239,7 +217,7 @@ function narrowPageRows(page: ExplorerResultPageV1): Record[] { /** Row grammar for the lane, so no caller picks the wrong normaliser. */ function hitsForLane( - lane: SourceLaneId, + lane: LaneId, rows: readonly Record[], terms: readonly string[], ): Hit[] { @@ -280,7 +258,7 @@ export function runIsTerminal(state: ExplorerRunStateV1): boolean { * or cross-source rank. */ export function laneFromSourceProgress( - lane: SourceLaneId, + lane: LaneId, source: ExplorerSourceProgressV1, terms: readonly string[], ): ExplorerLaneReadModel { @@ -420,7 +398,7 @@ export function laneFromTransport( * query's results to the text on screen. */ export function searchLane( - lane: SourceLaneId, + lane: LaneId, result: EnvelopeResult | undefined, submittedQuery: string, terms: readonly string[], @@ -448,7 +426,7 @@ export function searchLane( * it is holding, not how much there is. */ export function browseLane( - lane: SourceLaneId, + lane: LaneId, result: EnvelopeResult | undefined, isPending: boolean, rowsOf: (data: T) => readonly Record[], @@ -532,10 +510,6 @@ export function laneStateKind(read: ExplorerLaneReadModel): DomainStateKind { return 'unsupported_schema'; case 'unanswered': return 'unknown'; - // No registered source is the taxonomy's `unavailable`: the lane is - // inaccessible for a stated reason. The detail carries what kind. - case 'unregistered': - return 'unavailable'; case 'indeterminate': return 'unknown'; default: { @@ -599,7 +573,6 @@ export function laneStateDetail(read: ExplorerLaneReadModel): string | undefined case 'unsupported_schema': return undefined; case 'locked': - case 'unregistered': return read.detail; case 'unanswered': return 'the run never named this source'; @@ -643,7 +616,6 @@ export function laneEvidence(read: ExplorerLaneReadModel | undefined): EvidenceQ case 'locked': case 'unsupported_schema': case 'unanswered': - case 'unregistered': case 'indeterminate': return 'unknown'; default: { diff --git a/dashboard/src/workspaces/explorer/model.ts b/dashboard/src/workspaces/explorer/model.ts index 6c6ae42a15..ac6b225008 100644 --- a/dashboard/src/workspaces/explorer/model.ts +++ b/dashboard/src/workspaces/explorer/model.ts @@ -13,20 +13,10 @@ */ import { matchedFieldNames, matchWindow } from '../../ui/search/terms.ts'; -/** - * The four Explorer lanes. Three are backed by a coordinator source and can - * deliver rows; `semantic` is the lane the product contract names for - * semantic/graph retrieval, for which no production authority is registered - * today. It is a lane so its absence is rendered as a typed state beside the - * lanes that answer, never as a missing column a reader could mistake for - * "nothing to say". - */ -export type LaneId = 'code' | 'sessions' | 'knowledge' | 'semantic'; - -/** The lanes a coordinator source answers for, the only lanes rows come from. */ -export type SourceLaneId = Exclude; +/** The Explorer lanes. Each is backed by a coordinator source that can deliver rows. */ +export type LaneId = 'code' | 'sessions' | 'knowledge'; -export const SOURCE_LANE_IDS: readonly SourceLaneId[] = ['code', 'sessions', 'knowledge']; +export const SOURCE_LANE_IDS: readonly LaneId[] = ['code', 'sessions', 'knowledge']; export interface LaneSpec { readonly id: LaneId; @@ -75,16 +65,6 @@ export const LANES: readonly LaneSpec[] = [ textClass: 'text-state-ready', facetLabel: 'Category', }, - { - id: 'semantic', - label: 'Semantic', - searches: 'nothing: no semantic retrieval authority is registered with the coordinator', - browseLabel: 'nothing: no semantic index is served', - countLabel: 'Semantic matches', - railClass: 'bg-state-locked', - textClass: 'text-state-locked', - facetLabel: 'Basis', - }, ]; interface Signal { @@ -99,7 +79,7 @@ interface Signal { export interface Hit { readonly key: string; - readonly lane: SourceLaneId; + readonly lane: LaneId; /** 1-based position in the named response collection. */ readonly rank: number; readonly orderLabel: string; diff --git a/dashboard/src/workspaces/settings/MultiRootPanel.dom.test.tsx b/dashboard/src/workspaces/settings/MultiRootPanel.dom.test.tsx index 0894e95913..92f3b133ba 100644 --- a/dashboard/src/workspaces/settings/MultiRootPanel.dom.test.tsx +++ b/dashboard/src/workspaces/settings/MultiRootPanel.dom.test.tsx @@ -6,11 +6,6 @@ * the fixture bundle did not even carry the member, so the capability was * both unread and unrepresented, and the audit could not have caught either * from a screenshot. - * - * Four readings are pinned here. The pair that matters is `absent` against - * `unavailable`: a daemon that never mentioned the capability and a daemon - * that mentioned it to decline are different facts, and collapsing - * them would attribute a reason to a daemon that gave none. */ import { QueryClient, QueryClientProvider } from '@tanstack/react-query'; import { render, screen, waitFor } from '@testing-library/react'; @@ -84,8 +79,7 @@ describe('the multi-root capability the daemon reports', () => { }); describe('the reading, as a function', () => { - it('separates a silent bundle from a declined one', () => { - expect(multiRootReading(undefined)).toEqual({ state: 'absent' }); + it('reads a declined capability with the daemon\'s own reason', () => { expect(multiRootReading({ status: 'unavailable', reason: 'no scope set' })).toEqual({ state: 'unavailable', reason: 'no scope set', diff --git a/dashboard/src/workspaces/settings/MultiRootPanel.tsx b/dashboard/src/workspaces/settings/MultiRootPanel.tsx index 95ce153c31..d795bec1e4 100644 --- a/dashboard/src/workspaces/settings/MultiRootPanel.tsx +++ b/dashboard/src/workspaces/settings/MultiRootPanel.tsx @@ -86,15 +86,6 @@ function CapabilityRefusal({ function MultiRootBody({ reading }: { reading: MultiRootReading }) { switch (reading.state) { - // Older daemon: the bundle never mentioned the capability. Distinct from - // a daemon that mentioned it to decline, which has a reason. - case 'absent': - return ( -

- This daemon build reports no multi-root capability, so it holds no opinion about scope - sets. -

- ); case 'unavailable': return (
diff --git a/dashboard/src/workspaces/work/WorkPage.dom.test.tsx b/dashboard/src/workspaces/work/WorkPage.dom.test.tsx index ad1f423b7d..544bc37d9f 100644 --- a/dashboard/src/workspaces/work/WorkPage.dom.test.tsx +++ b/dashboard/src/workspaces/work/WorkPage.dom.test.tsx @@ -76,7 +76,7 @@ afterEach(() => { }); describe('the Work page over mounted routes', () => { - it('draws the board from the product graph without calling the legacy snapshot', async () => { + it('draws the board from the product graph', async () => { const calls: string[] = []; serve((url) => { calls.push(url); @@ -88,8 +88,6 @@ describe('the Work page over mounted routes', () => { renderPage(); expect(await screen.findByRole('button', { name: 'Alpha task' })).toBeTruthy(); - expect(calls.some((url) => url.includes('/work/snapshot'))).toBe(false); - expect(calls.some((url) => url.includes('/work/delta'))).toBe(false); }); it('leaves the shell its own main landmark and scrolls inside a named region', async () => { @@ -187,7 +185,7 @@ describe('the Work page over mounted routes', () => { expect(screen.getByText(/Commands · Alpha task/)).toBeTruthy(); }); - it('accepts a task through the prepared product mutation and never calls the legacy command', async () => { + it('accepts a task through the prepared product mutation', async () => { const calls: string[] = []; const prepared = { mutation: 'accept_task', @@ -237,10 +235,9 @@ describe('the Work page over mounted routes', () => { await waitFor(() => expect(calls.some((url) => url.includes('/work/mutate-graph'))).toBe(true), ); - expect(calls.some((url) => url.includes('/work/accept-task'))).toBe(false); }); - it('applies an accepted relation replan through the product mutation and never calls the legacy command', async () => { + it('applies an accepted relation replan through the product mutation', async () => { const calls: string[] = []; const graph = workGraphRead({ version: 4, @@ -313,7 +310,6 @@ describe('the Work page over mounted routes', () => { await waitFor(() => expect(calls.some((url) => url.includes('/work/mutate-graph'))).toBe(true), ); - expect(calls.some((url) => url.includes('/work/replan-dependencies'))).toBe(false); }); /** Keeps the narrow-width information loss from returning: the identity and diff --git a/dashboard/src/workspaces/work/WorkPage.tsx b/dashboard/src/workspaces/work/WorkPage.tsx index f4258ad39c..d9f350e0d7 100644 --- a/dashboard/src/workspaces/work/WorkPage.tsx +++ b/dashboard/src/workspaces/work/WorkPage.tsx @@ -53,8 +53,7 @@ import { workDagReading } from './workViewsModel.ts'; * Work, channel thirteen. * * This page reads one current `WorkGraphReadV1` and - * reduces its exact product-graph entry to the local camera model; the legacy - * projection snapshot is not a second authority. A route that refuses is + * reduces its exact product-graph entry to the local camera model. A route that refuses is * reported as the refusal it was. Execution belongs to the Workflow runtime, * which has its own workspace, this channel is the task graph. * diff --git a/dashboard/src/workspaces/work/workAttemptModel.ts b/dashboard/src/workspaces/work/workAttemptModel.ts index b9853b3354..02fb90e59f 100644 --- a/dashboard/src/workspaces/work/workAttemptModel.ts +++ b/dashboard/src/workspaces/work/workAttemptModel.ts @@ -13,11 +13,9 @@ import type { WorkResult } from './workApi.ts'; /** * One page of the attempt list, read into the facts the Work projections need. * - * The retired snapshot projection exposed only a run id and a terminal flag. - * That was not an execution record: a run is not an executor, a second row was - * not provably a retry, and a reference was not an event. The attempt list is - * the execution record, so everything this module derives is read off - * `WorkAttemptV1` rather than inferred from incidence. + * The attempt list is the execution record, so everything this module derives + * is read off `WorkAttemptV1`: a run is not an executor, a second row is not + * provably a retry, and a reference is not an event. * * Three readings come out of it, and they are exactly the three the timeline * previously drew as named absences: From 9610d6fe2c91b29bda743a8979a2fe0a9a3512ae Mon Sep 17 00:00:00 2001 From: Zack Jackson <25274700+ScriptedAlchemy@users.noreply.github.com> Date: Thu, 29 Oct 2026 02:51:28 -0700 Subject: [PATCH 13/13] refactor(hosts): drop old-release artifact cleanup in installers (U11) Items removed: L030, L051, L054, L055. - L030: delete codex/retired_bundle_files.rs (the table of released skill file digests) and remove_codex_retired_bundle_files; every unexpected Codex plugin entrypoint is reported as foreign. - L051: delete the doctor's Cursor literal ${workspaceFolder} log finding and the former-template README history. serve's path sanitizer is kept: it still discards an unexpanded template from hosts that pass one. - L054/L055: OpenCode no longer reads, strips or flags the V1 `mcp.tracedecay` key or the retired `lsp.tracedecay` registration. LEGACY_MCP_SERVER_KEY, remove_legacy_lsp_registration, the legacy_lsp state term, the doctor checks and the remove_lsp/remove_mcp parameters of strip_registration_entries are gone; Core lifecycles leave opencode.json untouched. Callers migrated: codex activate/deactivate/uninstall, OpenCode activate/deactivate/state/doctor/merge/strip; the cross-crate OpenCode companion lifecycle test now seeds only an operator LSP and asserts opencode.json is byte-identical across Core lifecycles. Tests deleted: activation/deactivation_retires_released_skill_files, RELEASED_RETIRED_SKILL, existing_core_with_legacy_lsp_requires_activation, legacy_mcp_registration_remains_detectable_for_migration, doctor_reports_retired_lsp_registration, opencode_core_cleanup_is_reversible_and_revision_checked, the retired-file setup in two Codex tests, the V1/LSP parts of the OpenCode merge test, and the placeholder half of the Cursor log scan test. Upgrade impact: stale `mcp.tracedecay` and `lsp.tracedecay` entries in an old opencode.json stay and doctor no longer flags them; delete them by hand. An unedited retired skill under the Codex plugin dir (for example skills/tracedecay-find-impact) is reported as a foreign entrypoint; delete that skills/ directory or reinstall the Codex plugin. Doctor no longer warns about old Cursor ${workspaceFolder} spawns. Co-Authored-By: Claude Opus 5.5 --- .../src/agents/codex.rs | 70 +-- .../src/agents/codex/retired_bundle_files.rs | 454 ------------------ .../src/agents/codex/tests.rs | 100 +--- .../src/agents/cursor_diagnostics.rs | 30 +- .../src/agents/host_component_registration.rs | 85 ---- .../src/agents/opencode.rs | 243 +--------- crates/tracedecay-cli/src/agent_cmd.rs | 29 +- plugin/README-cursor.md | 10 +- 8 files changed, 36 insertions(+), 985 deletions(-) delete mode 100644 crates/tracedecay-agent-hosts/src/agents/codex/retired_bundle_files.rs diff --git a/crates/tracedecay-agent-hosts/src/agents/codex.rs b/crates/tracedecay-agent-hosts/src/agents/codex.rs index f77f47346c..7248df7b68 100644 --- a/crates/tracedecay-agent-hosts/src/agents/codex.rs +++ b/crates/tracedecay-agent-hosts/src/agents/codex.rs @@ -47,7 +47,6 @@ const CODEX_PLUGIN_ACTIVATION_KEY_PREFIX: &str = "tracedecay@"; mod mcp_registry; mod plugin_registry; -mod retired_bundle_files; pub struct CodexIntegration; @@ -360,10 +359,6 @@ impl AgentIntegration for CodexIntegration { &crate::host_io(), &ctx.home, )?; - // `codex plugin add` copies the whole source into Codex's cache, so a - // retired skill left there would keep the loaded plugin from ever - // matching the rendered bundle. - remove_codex_retired_bundle_files(&codex_plugin_install_dir(&ctx.home))?; if !codex_plugin_is_natively_active( &ctx.profile, &ctx.home, @@ -416,7 +411,6 @@ impl AgentIntegration for CodexIntegration { // `plugin remove` never clears it. Leaving it would hold post-uninstall // registration at Repairable via [`codex_registration_residue`]. remove_codex_marketplace_entry_at(&codex_personal_marketplace_path(&ctx.home), "personal")?; - remove_codex_retired_bundle_files(&codex_plugin_install_dir(&ctx.home))?; // `codex plugin remove` deliberately never touches `[hooks.state]`, // so the managed trust records written at install/update time would // otherwise survive as registration residue and hold uninstall @@ -1531,9 +1525,9 @@ fn codex_expected_discovery_relatives( Ok(relatives) } -/// Entrypoints in the personal source that neither the current bundle nor a -/// retired release file accounts for. Codex would copy them into its cache, -/// so the loaded plugin could never match the rendered bundle. +/// Entrypoints in the personal source that the current bundle does not +/// account for. Codex would copy them into its cache, so the loaded plugin +/// could never match the rendered bundle. fn codex_foreign_bundle_entrypoints(profile_root: &Path, home: &Path) -> Result> { let source_root = codex_plugin_install_dir(home); let relatives = codex_embedded_plugin_files()? @@ -1553,13 +1547,7 @@ fn codex_foreign_bundle_entrypoints(profile_root: &Path, home: &Path) -> Result< for relative in super::unexpected_bundle_entrypoints(&source_root, &expected, CODEX_DISCOVERY_ROOTS)? { - let path = source_root.join(&relative); - let contents = std::fs::read(&path).map_err(|e| TraceDecayError::Config { - message: format!("failed to read {}: {e}", path.display()), - })?; - if !retired_bundle_files::is_retired_bundle_file(&relative, &contents) { - foreign.push(path); - } + foreign.push(source_root.join(&relative)); } Ok(foreign) } @@ -1805,55 +1793,6 @@ fn remove_codex_plugin_skills_dir(install_dir: &Path) -> Result<()> { Ok(()) } -/// Delete skill files a previous release deployed at paths the current bundle -/// no longer ships, with their emptied directories. Only exact released bytes -/// are TraceDecay's; anything else under `skills/` stays. -fn remove_codex_retired_bundle_files(install_dir: &Path) -> Result<()> { - let skills_dir = install_dir.join("skills"); - match std::fs::symlink_metadata(&skills_dir) { - Ok(metadata) if metadata.is_dir() && !metadata.file_type().is_symlink() => {} - _ => return Ok(()), - } - let files = super::collect_regular_files(&skills_dir).map_err(|e| TraceDecayError::Config { - message: format!("failed to list {}: {e}", skills_dir.display()), - })?; - for file in files { - let Some(relative) = file - .strip_prefix(install_dir) - .ok() - .and_then(Path::to_str) - .map(|relative| relative.replace(std::path::MAIN_SEPARATOR, "/")) - else { - continue; - }; - let contents = std::fs::read(&file).map_err(|e| TraceDecayError::Config { - message: format!("failed to read {}: {e}", file.display()), - })?; - if !retired_bundle_files::is_retired_bundle_file(&relative, &contents) { - continue; - } - super::safe_remove_host_file(&file).map_err(|e| TraceDecayError::Config { - message: format!("failed to remove retired {}: {e}", file.display()), - })?; - for dir in file - .ancestors() - .skip(1) - .take_while(|dir| *dir != skills_dir) - { - match std::fs::remove_dir(dir) { - Ok(()) => {} - Err(e) if e.kind() == std::io::ErrorKind::DirectoryNotEmpty => break, - Err(e) => { - return Err(TraceDecayError::Config { - message: format!("failed to prune {}: {e}", dir.display()), - }); - } - } - } - } - Ok(()) -} - fn remove_codex_managed_skill_overlay(install_dir: &Path) { std::fs::remove_dir_all(install_dir.join("skills/agent-managed")).ok(); } @@ -1920,7 +1859,6 @@ fn remove_codex_plugin_install(install_dir: &Path) -> Result<()> { }); } remove_codex_plugin_skills_dir(install_dir)?; - remove_codex_retired_bundle_files(install_dir)?; if codex_plugin_dir_has_only_managed_files(install_dir) { std::fs::remove_dir_all(install_dir).map_err(|e| TraceDecayError::Config { message: format!("failed to remove {}: {e}", install_dir.display()), diff --git a/crates/tracedecay-agent-hosts/src/agents/codex/retired_bundle_files.rs b/crates/tracedecay-agent-hosts/src/agents/codex/retired_bundle_files.rs deleted file mode 100644 index dfc383694e..0000000000 --- a/crates/tracedecay-agent-hosts/src/agents/codex/retired_bundle_files.rs +++ /dev/null @@ -1,454 +0,0 @@ -use tracedecay_domain::canonical_text::sha256_hex; - -/// Exact identities of every file a released Codex plugin bundle deployed -/// under `skills/` at a path the current bundle no longer ships, taken from -/// the bundle sources at each release tag. Only these path-and-content pairs -/// are TraceDecay-owned retirements: a skill name, frontmatter field, or tool -/// reference is not ownership evidence, and edited bytes stay the operator's. -const CODEX_RETIRED_BUNDLE_FILES: &[(&str, &str)] = &[ - ( - "skills/architecture-overview/SKILL.md", - "848497fb0f5d26e7178471dd6a5fa48ac81980380e207d317f404ce57b628076", - ), - ( - "skills/architecture-overview/SKILL.md", - "90b15a571678cef58c741d8cc13f870c92223e047ba02806ae47badd7f343fc5", - ), - ( - "skills/architecture-overview/SKILL.md", - "941acbd31fd816005007ec55c510eb00fefe399dad686d7dd4b5181b1cab4ec1", - ), - ( - "skills/assessing-test-coverage/SKILL.md", - "0d29a441e49e982a146f88f044d8dbb441533d4316c7b97e4116525390cdf9a2", - ), - ( - "skills/assessing-test-coverage/SKILL.md", - "5ab33bf8a7fbc7b6c0a3d1047ac81cb576964bebb72d4c527bc6de99b58c8437", - ), - ( - "skills/assessing-test-coverage/SKILL.md", - "c656b289148c04249b39fc0d1a4d0182690570d8f2c85bd019f4cffb79f5df4c", - ), - ( - "skills/atomic-code-edits/SKILL.md", - "042921615da412bc72c0ff71524bcdb639cc5c56ec40534d2ef5d9f6d06dd572", - ), - ( - "skills/atomic-code-edits/SKILL.md", - "128d4826c8126bea01a99700ee753d100acfd9e66dc8ec497da0066746eb9cc3", - ), - ( - "skills/atomic-code-edits/SKILL.md", - "4397d9a5399d6b1b813be94827492f8b48d6333f781ee3a398268f94bc6b6024", - ), - ( - "skills/auditing-code-safety/SKILL.md", - "79064c126d982cb0caf5e33eeb326030bd91a5eeb7747abb5fd1c3bfb91eb307", - ), - ( - "skills/auditing-code-safety/SKILL.md", - "ed095eb33a82a9dd158eb1b9fdaf58bf9b47374affee051a39d3e0719a1aebd3", - ), - ( - "skills/cleaning-up-dead-code/SKILL.md", - "31602d8d7cbbe02eec50392dd2622c001ca43805a96d93be3a8224f4be41f9c3", - ), - ( - "skills/cleaning-up-dead-code/SKILL.md", - "6f4bb777f32e99bd3e5eb50779a2ce2c40a4a9d09cde6ced71e5afa33413da7f", - ), - ( - "skills/code-health-report/SKILL.md", - "2e2b35e5c186d590bb55e503fdc9c6d4bd32058a3edc618518f5df60768c73bf", - ), - ( - "skills/code-health-report/SKILL.md", - "2eb8ad6735aedb44018600ed2a7edf3df1b11c7b94132a0a9245563a39431241", - ), - ( - "skills/code-health-report/SKILL.md", - "c2da99d0feee224fd73350379dbb6bbd8f6f23fe02e1a749da5e53b36832bd81", - ), - ( - "skills/cross-branch-investigation/SKILL.md", - "107a21bdec95cc51950853af5f7155dbab45731c7e8f769df1b14b7f12bb70a8", - ), - ( - "skills/cross-branch-investigation/SKILL.md", - "4e646fbd29b5b87b918e22b2f54f750ca00b45d266f64589e1a1077e7e95a837", - ), - ( - "skills/curating-project-memory/SKILL.md", - "06eeb9b654516e880bd9f4e2a4887b5e4b89f0542068de58ebe5a4a71344cc5c", - ), - ( - "skills/curating-project-memory/SKILL.md", - "13343fdb89d9ee121a9ca2016c0c7b96e13a7041468378f9c435af04d06a8ad0", - ), - ( - "skills/curating-project-memory/SKILL.md", - "15b89928679e1ac9e8f2dd539fcb44d1e6d3d9157d73a98d650873df7d8a2480", - ), - ( - "skills/curating-project-memory/SKILL.md", - "969510e7ac3ab017f49a4fe06f16c5dc8ee76da0ac04541410a0d1aeef810956", - ), - ( - "skills/drafting-commit-and-pr/SKILL.md", - "285c52db521e14fbe712cee1a9a47a59c440d78e696f564db6dda6ea46168900", - ), - ( - "skills/drafting-commit-and-pr/SKILL.md", - "e10d477b01041387c08f8ee4fd3fc652d8964f91ab2a131ae27b0f062a704cf0", - ), - ( - "skills/editing-safely/scripts/safe-edit-sequence.sh", - "4f6299753b3a8cb629e1b40e88a01e2f87148289ebb3042a1c8919ad7f4e1b3c", - ), - ( - "skills/exploring-types-and-traits/SKILL.md", - "0d7e919d69a6b07853f80e5f2b8de9a94caadc25c3dd7e3f4308fa2876bfffca", - ), - ( - "skills/exploring-types-and-traits/SKILL.md", - "30eb31237bd8281d8722e609b7783446eb602ce53f2143376a551c1903e50127", - ), - ( - "skills/exploring-types-and-traits/SKILL.md", - "41f9c9db8a0d3f9a2d40bf81398e6421fdc1490a34dc0b389147aa4131700627", - ), - ( - "skills/exploring-types-and-traits/SKILL.md", - "88354ac122d8373da79541c77f5c89b6b26fe77af88eab03b0584212a6dc9a99", - ), - ( - "skills/finding-duplicate-logic/SKILL.md", - "2cdae6f38cc9a68decb21b1a2ce2d1b29419366c759a4b4a31e36a9c9dcadab4", - ), - ( - "skills/finding-duplicate-logic/SKILL.md", - "7b7c5af78a05ce101e89593e30db0bcc8fe272f4ffa7e93fad3c624e40f5c8ce", - ), - ( - "skills/finding-duplicate-logic/SKILL.md", - "e1306a05e4045f900655ec2b641604e0fe7f38b8fb9555c510fb4c367a96e08d", - ), - ( - "skills/finding-impacted-areas/SKILL.md", - "47ef7a0420189563b1a45887f8914e940d4e9273271575c00a0824d0c9f5106c", - ), - ( - "skills/finding-impacted-areas/SKILL.md", - "9a9d4e56358d306e87b677761fd5265245028d420b548fe9bd76319a880ee93d", - ), - ( - "skills/finding-impacted-areas/SKILL.md", - "da8391b86048fc73251b075ec8a73cf6f5f2f8163cbef6be03c67d75052ee94e", - ), - ( - "skills/finding-impacted-areas/SKILL.md", - "e11eae4c1aa1c0b1d44a937f470588baa7e8f64bf52eaa226bffaf02664b41d5", - ), - ( - "skills/fixing-build-and-type-errors/references/error-class-to-tool.md", - "b43f82af51a6a298c7718f80cf6ef091fea6a39f67e49d448966716ae012c8c5", - ), - ( - "skills/porting-code/SKILL.md", - "884c5da25eb251a1435c8a6d6f1f9a6be507be72a7858b459be6186eb5339caa", - ), - ( - "skills/porting-code/SKILL.md", - "9935d6752000dfd755cd70022bda4c0b0f11e42b9b8bb95a360e7bfe92fe7b6e", - ), - ( - "skills/porting-code/SKILL.md", - "d6883e5cf798ed8a159c04eab653c30971b80a049381cd02d2bc1c0ccc7117e1", - ), - ( - "skills/project-status/SKILL.md", - "358e6a0aa71057493bc1b6b50b0a0a6ce1a9afcff5594cd25af2e1f0723bed70", - ), - ( - "skills/project-status/SKILL.md", - "39f744bfa75eb90b808f2da78d2adc52d220284c703b46e12d25cb64cf3132e3", - ), - ( - "skills/project-status/SKILL.md", - "7f8251f335d41b17cc1c170dd41760b73899e58a4eda8e7e8d6fc423557d03b8", - ), - ( - "skills/reading-code-cheaply/SKILL.md", - "3cf79b9b14ab46f8be31728e694438457fd616061a1bde978466da8df510acf3", - ), - ( - "skills/reading-code-cheaply/SKILL.md", - "4048faaa63595fa1b8b71d4cfb50382050862baa39d2290bf8152e921faa37b1", - ), - ( - "skills/reading-code-cheaply/SKILL.md", - "c5066e876b7db95f7c843c306a75b0119a4fbbae9375374f731bf9ecfef9dc30", - ), - ( - "skills/recalling-project-memory/SKILL.md", - "07e0a926e3043f5901b68c90d3092c1428e63c29a1c358e07656b45117cd22ed", - ), - ( - "skills/recalling-project-memory/SKILL.md", - "27373ccba172c2577c7c870f26c39ec3b1e7681794d54c30daee8163ab394741", - ), - ( - "skills/recalling-project-memory/SKILL.md", - "83d278fab7efb461978123cea975db2159ea50a35bde4f7606d4dfc5f3d14e32", - ), - ( - "skills/recalling-project-memory/SKILL.md", - "b1f4465de209c2e126c8c7170fabeb20abada9620ac5971c445e6db754a0ee06", - ), - ( - "skills/recalling-project-memory/SKILL.md", - "c4ce52bba2d2859c742561f518eeecb0c3eafd649b5f7d69b96d5ef92c1b8d88", - ), - ( - "skills/recalling-session-context/SKILL.md", - "080ca0a418690e422e438ace3683ce91cf4918f392e75b6715bed9e066efa338", - ), - ( - "skills/recalling-session-context/SKILL.md", - "4b2c4f3ba5aa595f84055ce5d3fd7e337003e97c1e2af7b7c88c15607f4529b2", - ), - ( - "skills/recalling-session-context/SKILL.md", - "66f4076939cb9370cbeef040fd86d2580cea5aef2a3f77d6d060dbc69b95950b", - ), - ( - "skills/recalling-session-context/SKILL.md", - "8baea6f4050fdecbd273eab8ff4131179ffb3ae8c9d6bfe64a88a73ce62acbb7", - ), - ( - "skills/refactoring-safely/SKILL.md", - "9dfa228f39782190692571b2687807e87959a44fb94b2d92fa14e518e745e3eb", - ), - ( - "skills/refactoring-safely/SKILL.md", - "c2dfb161e11f8d3d194e9ea34bec10e9140e500caf6bdbf9528d687c9603f1a7", - ), - ( - "skills/retrieving-cached-context/SKILL.md", - "fb1b2fa3e50d7f6e5a472259ed37c1e8135e29ced0ebb3e3cbb3bb2c5eab7300", - ), - ( - "skills/retrieving-project-memory/SKILL.md", - "e3a2fd2d24836e9319e8e177d4eebb06f15d8253d42d85bfd8b911fb27b488d5", - ), - ( - "skills/reviewing-a-diff/SKILL.md", - "4737d810f381a399e3e919458ebecfdf6d9434cf81d835431236b7ca65b9397c", - ), - ( - "skills/reviewing-a-diff/SKILL.md", - "61f8933f30c13b71b1a949c4b00274d33dc64c010e707bef81f9aedb0e16dcf6", - ), - ( - "skills/reviewing-a-diff/SKILL.md", - "8715e0b6714ca96d50686d6116dbb28b97945681c632f92f368a50280e1dbbb2", - ), - ( - "skills/running-impacted-tests/SKILL.md", - "18e9af3f4c7ab08959b59fae4dc89f44b861bf0a51cb0f6b9bc38656fc870dc8", - ), - ( - "skills/running-impacted-tests/SKILL.md", - "27ba236e04e878c127b94b16a797b10c80ea5524be315f0679199cd43615d886", - ), - ( - "skills/running-impacted-tests/SKILL.md", - "8d54162dc388d109c77b0da84eaa168805d05fba97acaa0388ea1b7a6077277e", - ), - ( - "skills/running-impacted-tests/SKILL.md", - "994b3a39c6d1fd71f97ba9d684cc00c02c26ec8cfb64b9fdf52d60acbb736211", - ), - ( - "skills/searching-for-code/SKILL.md", - "55c235958bf509c72a87fecd7258c4f40c69b8945618d8f8fffd9afa8197986f", - ), - ( - "skills/searching-for-code/SKILL.md", - "a43879402c66dc2a81a9417cc1c0162ae45d407bd1963e1773ad0b83a21a18fa", - ), - ( - "skills/searching-for-code/SKILL.md", - "ac01a08a0760090cad72001330938184081e6eb9b9ccc163e1668444475a3c71", - ), - ( - "skills/searching-for-code/SKILL.md", - "bc9ff306728c25ef30ff2605b04568bfe037be66dbaa32dd94c61d5e0ac37253", - ), - ( - "skills/storing-project-memory/SKILL.md", - "0ac3f8a41bb88c61bcac0121aebe1b8ff239adfaee4ccaeb9904850c66521bfd", - ), - ( - "skills/tracedecay-audit-safety/SKILL.md", - "bb196c87c451d75a148c47cfad3f50f3c8a0eff887d79de14169fa57df453d8e", - ), - ( - "skills/tracedecay-audit-safety/SKILL.md", - "d31189e7edcd510ddf574b8a0406f8f87b95fed980bc833911b946d3389d9985", - ), - ( - "skills/tracedecay-check-health/SKILL.md", - "14a48887d0b0759053031f5a7f5ca04ca5c47e41a4b01b6e21c8109bb58cadb5", - ), - ( - "skills/tracedecay-check-health/SKILL.md", - "34ce491ee8ff4d5a887b4d9ddad7589734f548221d7014e4585aff3c07025537", - ), - ( - "skills/tracedecay-clean-dead-code/SKILL.md", - "3fdfaa6bf98063f988b4daba7710c7329d97e8f2b50b199058647528c4a006c2", - ), - ( - "skills/tracedecay-clean-dead-code/SKILL.md", - "e45b29417511f335a395d10985e646c4eb8ce104f772148418c95cbb62304d7f", - ), - ( - "skills/tracedecay-compare-branches/SKILL.md", - "4540d196228e8cebfcd6211fe616fefa664ad7f0347fe6cdef575b1643509d74", - ), - ( - "skills/tracedecay-compare-branches/SKILL.md", - "cbf0a7a1a3b40deead079008d5a263a021ec4a7deffea6e65c5f1c022b1cbea7", - ), - ( - "skills/tracedecay-curate-memory/SKILL.md", - "662615971acb8286540ce4b788ff765e1042deae83e7e329222a2e187f6ccedf", - ), - ( - "skills/tracedecay-curate-memory/SKILL.md", - "6b05eec049940a25f28eb0186853fb0b95747707750c2e3cbaa04643213b6fee", - ), - ( - "skills/tracedecay-draft-commit/SKILL.md", - "9a17774f196d2840a14824144273cc1981d5ef01a72f254fa3a270df493ada52", - ), - ( - "skills/tracedecay-draft-commit/SKILL.md", - "ac6d44274d05a9e55f2ab6c215ccead1db9eebe69c3926eb958f2bd06df29ff3", - ), - ( - "skills/tracedecay-find-impact/SKILL.md", - "184540ec2da7673dd535868f659fb2eff48bcd07abc5f651aa1272795a2bf640", - ), - ( - "skills/tracedecay-find-impact/SKILL.md", - "349da2f8b490085b7515f106cc052980bbad9d98c09cc0815171a83e0a7f418f", - ), - ( - "skills/tracedecay-fix-build/SKILL.md", - "64a876ea2615f1b940116bf3570d4cf722a03af06bdcf1faf716601eb72f9739", - ), - ( - "skills/tracedecay-fix-build/SKILL.md", - "c22aafad7165101fa012e92419eda3e18ad7ecf5859259e65636ce1431e3f75a", - ), - ( - "skills/tracedecay-map-architecture/SKILL.md", - "2242ed70968d832fc40f917784e7c4571690ec07850ba1edfbbdfd69b344e0ac", - ), - ( - "skills/tracedecay-map-architecture/SKILL.md", - "6bf5800ace17a547bc6d2e7c2112a1140923f9890102c653c35c4659f6ea0fef", - ), - ( - "skills/tracedecay-port-code/SKILL.md", - "08c5b95fb3ca8abdb2a077645a4c97a805518f1ca98d15d4a90751801097a546", - ), - ( - "skills/tracedecay-port-code/SKILL.md", - "9c222985b6bd7d9f1a4c60c4844587dfa86c5a8c77bc90ea71b67eb201df1a44", - ), - ( - "skills/tracedecay-recall-memory/SKILL.md", - "6481a0780a031108e2a8084d7da926d06d524f8ab7f3b1428ae8f7c236cfd4a4", - ), - ( - "skills/tracedecay-recall-memory/SKILL.md", - "6bc0fa8061bd2aa704ac8a28811b433297411bbf63aabc39522009417ffb3717", - ), - ( - "skills/tracedecay-review-diff/SKILL.md", - "9ad0572e2abbd1cd5784848042fc5c16fb44b6d1a57b2bdead89f6ad8e9ae018", - ), - ( - "skills/tracedecay-review-diff/SKILL.md", - "f977e9bd0dec65569905a7c360bd232c6652e1644d870ad15fe48b80d70e71cf", - ), - ( - "skills/tracedecay-test-changes/SKILL.md", - "04481d6cd6c110efddd8db93129767003443ef57687d6e6dd775186b437bb85b", - ), - ( - "skills/tracedecay-test-changes/SKILL.md", - "aec63d5a77d238eae959c579bd490068b283a859769c0a11d111ce257eeaf38f", - ), - ( - "skills/tracking-session-health/SKILL.md", - "680bee96074290b0b889742398618895d4bc59606713aa82464abd329d7dbdee", - ), - ( - "skills/tracking-session-health/SKILL.md", - "6a3c3896443f48a52a86c0532b2ac68130d509c49027b388e58962cee0f1fc2a", - ), - ( - "skills/using-the-cli/references/tool-arg-catalog.md", - "099981e85180d2582bf57775838a0218813acc7e45e1b45653b04c2606ca8692", - ), - ( - "skills/using-the-cli/references/tool-arg-catalog.md", - "26499df46b39adfe2c708e0866516e76f2e932cb42bb71b4cb16d4f92a1fbe2f", - ), - ( - "skills/using-the-cli/references/tool-arg-catalog.md", - "64c4aa2de0ac11ef269c0ee5af1168906288a2e732044665448174bdced902a0", - ), - ( - "skills/using-tracedecay/SKILL.md", - "46370302a7a1af2084362a3382cda9dc491c57b78eecf560f9dc5b55aab70757", - ), - ( - "skills/using-tracedecay/SKILL.md", - "89dd12af8f1bcb9c9bf60409277883ba51ffa2f6d4936e8fefcf2363cf268685", - ), - ( - "skills/using-tracedecay/SKILL.md", - "8e2955e16570827892d72f3391272a6cdfd941bbb159fc478403e62d239e132e", - ), - ( - "skills/using-tracedecay/SKILL.md", - "ae9e6de4f1a1a42005bd4bbc8ad080434a944716cb608ab1c70b643e73ef31be", - ), - ( - "skills/using-tracedecay/SKILL.md", - "bffa1ab2940041f7766165d8925ed702a597977f8dcf92d1adb1aa54830b7116", - ), - ( - "skills/using-tracedecay/SKILL.md", - "ce0ee6c0a6ef43f475afa6d2c347e86d9c1e4683cd4c0f7cc9b31d4489db2cdc", - ), - ( - "skills/using-tracedecay/SKILL.md", - "fbc0e3fa7751bd602b677a0d8b41e5bdfd45b43ba7412c3bf98be2a8fb30271e", - ), -]; - -pub(super) fn is_retired_bundle_file(relative: &str, contents: &[u8]) -> bool { - let digest = sha256_hex(contents); - CODEX_RETIRED_BUNDLE_FILES - .iter() - .any(|(owned_relative, owned_digest)| { - relative == *owned_relative && digest == *owned_digest - }) -} diff --git a/crates/tracedecay-agent-hosts/src/agents/codex/tests.rs b/crates/tracedecay-agent-hosts/src/agents/codex/tests.rs index 91b3e8ad12..57a8a22305 100644 --- a/crates/tracedecay-agent-hosts/src/agents/codex/tests.rs +++ b/crates/tracedecay-agent-hosts/src/agents/codex/tests.rs @@ -1071,11 +1071,6 @@ fn redeploy_preserves_foreign_discovery_and_support_bytes() { std::fs::create_dir_all(operator_skill.parent().unwrap()).unwrap(); let operator_skill_bytes = b"---\nname: operator-owned\ndescription: Use the TraceDecay MCP safely\n---\n\nCall `tracedecay_context` for indexed code.\n"; std::fs::write(&operator_skill, operator_skill_bytes).unwrap(); - let modified_retired = source.join("skills/tracedecay-find-impact/SKILL.md"); - std::fs::create_dir_all(modified_retired.parent().unwrap()).unwrap(); - let modified_retired_bytes = - b"---\nname: tracedecay-find-impact\ndescription: Operator-modified workflow\n---\n"; - std::fs::write(&modified_retired, modified_retired_bytes).unwrap(); let support_root = source.join("skills/operator-owned"); let operator_support = support_root.join("operator-notes.txt"); let operator_support_bytes = b"preserve operator TraceDecay MCP support bytes"; @@ -1100,10 +1095,6 @@ fn redeploy_preserves_foreign_discovery_and_support_bytes() { std::fs::read(&operator_skill).unwrap(), operator_skill_bytes ); - assert_eq!( - std::fs::read(&modified_retired).unwrap(), - modified_retired_bytes - ); assert_eq!( std::fs::read(&operator_support).unwrap(), operator_support_bytes @@ -1120,85 +1111,6 @@ fn redeploy_preserves_foreign_discovery_and_support_bytes() { ); } -/// `skills/tracedecay-find-impact/SKILL.md` exactly as a released bundle -/// deployed it; the current bundle no longer ships that path. -const RELEASED_RETIRED_SKILL: &str = "---\nname: tracedecay-find-impact\ndescription: 'Use to find the blast radius of a change, including impacted symbols, files, and the tests to run.'\n---\n\n# Find impact\n\nUse to find a change's blast radius: impacted symbols, files, and tests to run.\n\nUse `tracedecay:assessing-impact`.\n\n- **Target:** the symbol, file, or change to analyze. If none is given, use the current working-tree diff.\n- Read-only: shallow `max_depth` first. Identify impact; do not run tests.\n\nOutput: impacted symbols + files, the test set to run, and any hub/coupling risk.\n"; - -#[test] -fn activation_retires_released_skill_files_and_converges() { - let home = tempfile::tempdir().unwrap(); - let profile = &tracedecay_runtime_core::config::ProfileRoot::under_home(home.path()); - let cli_dir = tempfile::tempdir().unwrap(); - let _codex_cli = install_fake_codex_cli(cli_dir.path()); - write_exact_native_activation(home.path(), TEST_BIN); - let retired_dir = codex_plugin_install_dir(home.path()).join("skills/tracedecay-find-impact"); - std::fs::create_dir_all(&retired_dir).unwrap(); - std::fs::write(retired_dir.join("SKILL.md"), RELEASED_RETIRED_SKILL).unwrap(); - assert!( - !codex_plugin_is_natively_active( - profile, - home.path(), - Some((TEST_BIN, &ServeArgs::default())) - ) - .unwrap() - ); - - CodexIntegration - .activate_deployed_host_registration(&install_ctx(home.path())) - .unwrap(); - - assert!( - !retired_dir.exists(), - "activation must delete the retired skill and its emptied directory" - ); - // The cache was current before adding the retired source-only skill. - // Observe activation's result directly instead of repairing the fixture. - assert!( - codex_source_manifest_matches_catalog_version(home.path()).unwrap(), - "activation must preserve the current source manifest" - ); - assert!( - codex_plugin_enabled(home.path()).unwrap(), - "activation must preserve the enabled plugin key: {:?}", - load_toml_file(&codex_config_path(home.path())).unwrap() - ); - assert!( - codex_plugin_is_natively_active( - profile, - home.path(), - Some((TEST_BIN, &ServeArgs::default())) - ) - .unwrap(), - "activation must leave the source and native cache current" - ); -} - -#[test] -fn deactivation_retires_released_skill_files_and_keeps_edited_ones() { - let home = tempfile::tempdir().unwrap(); - let source = install_codex_personal_bootstrap(home.path(), TEST_BIN).unwrap(); - let retired = source.join("skills/tracedecay-find-impact/SKILL.md"); - std::fs::create_dir_all(retired.parent().unwrap()).unwrap(); - std::fs::write(&retired, RELEASED_RETIRED_SKILL).unwrap(); - let edited = source.join("skills/tracedecay-review-diff/SKILL.md"); - std::fs::create_dir_all(edited.parent().unwrap()).unwrap(); - std::fs::write( - &edited, - "---\nname: tracedecay-review-diff\n---\noperator edit\n", - ) - .unwrap(); - - CodexIntegration - .deactivate_deployed_host_registration(&install_ctx(home.path())) - .unwrap(); - - assert!(!retired.parent().unwrap().exists()); - assert_eq!( - std::fs::read_to_string(&edited).unwrap(), - "---\nname: tracedecay-review-diff\n---\noperator edit\n" - ); -} - #[test] fn install_preview_refuses_foreign_entrypoints_as_ownership_conflict() { use crate::agents::host_bundle::{ @@ -1210,9 +1122,6 @@ fn install_preview_refuses_foreign_entrypoints_as_ownership_conflict() { let home = tempfile::tempdir().unwrap(); let lifecycle = tempfile::tempdir().unwrap(); let source = install_codex_personal_bootstrap(home.path(), TEST_BIN).unwrap(); - let retired = source.join("skills/tracedecay-find-impact/SKILL.md"); - std::fs::create_dir_all(retired.parent().unwrap()).unwrap(); - std::fs::write(&retired, RELEASED_RETIRED_SKILL).unwrap(); let operator_skill = source.join("skills/operator-owned/SKILL.md"); std::fs::create_dir_all(operator_skill.parent().unwrap()).unwrap(); std::fs::write(&operator_skill, "---\nname: operator-owned\n---\n").unwrap(); @@ -1273,14 +1182,7 @@ fn install_preview_refuses_foreign_entrypoints_as_ownership_conflict() { message.contains(&operator_skill.display().to_string()), "{message}" ); - assert!( - !message.contains("tracedecay-find-impact"), - "released bytes must not be reported as foreign: {message}" - ); - assert!( - operator_skill.is_file() && retired.is_file(), - "preview mutates nothing" - ); + assert!(operator_skill.is_file(), "preview mutates nothing"); } /// Install an executable `codex` on the host-program search path only. diff --git a/crates/tracedecay-agent-hosts/src/agents/cursor_diagnostics.rs b/crates/tracedecay-agent-hosts/src/agents/cursor_diagnostics.rs index bfe72df666..cdd32f64b6 100644 --- a/crates/tracedecay-agent-hosts/src/agents/cursor_diagnostics.rs +++ b/crates/tracedecay-agent-hosts/src/agents/cursor_diagnostics.rs @@ -2,7 +2,7 @@ //! plugin-bundle staleness. //! //! Cursor never retries an MCP server whose spawn failed: one bad startup -//! (literal `${workspaceFolder}` path, uninitialized project, …) turns every +//! (an uninitialized project, a daemon connection failure, …) turns every //! later tool call in that session into "Timed out waiting for connection" //! until the user toggles the server or reloads the window. The stdio spawn //! happens outside tracedecay's control, so `tracedecay doctor` inspects @@ -29,9 +29,6 @@ const MAX_LOG_BYTES: u64 = 1024 * 1024; /// Findings from scanning Cursor's MCP logs for tracedecay-scoped failures. #[derive(Debug, Default, PartialEq, Eq)] pub(crate) struct CursorMcpLogFindings { - /// Log lines where tracedecay was spawned with a literal, unexpanded - /// `${workspaceFolder}` argument. - pub literal_placeholder_lines: usize, /// Failed MCP spawns whose scope Cursor will not retry, including generic /// connection closure and managed-daemon transport failures. pub connection_failures: usize, @@ -47,9 +44,7 @@ pub(crate) struct CursorMcpLogFindings { impl CursorMcpLogFindings { pub(crate) fn has_findings(&self) -> bool { - self.literal_placeholder_lines > 0 - || self.connection_failures > 0 - || self.daemon_transport_failures > 0 + self.connection_failures > 0 || self.daemon_transport_failures > 0 } } @@ -85,10 +80,6 @@ pub(crate) fn scan_cursor_mcp_logs(logs_root: &Path) -> CursorMcpLogFindings { if require_tracedecay_mention && !line.contains("tracedecay") { continue; } - if line.contains("${workspaceFolder}") && line.contains("no TraceDecay index") { - findings.literal_placeholder_lines += 1; - affected = true; - } let daemon_transport_failure = line.contains("Connection failed: MCP error -32603") && line.contains("TraceDecay daemon connection failed") && (line.contains("Broken pipe") || line.contains("Connection reset by peer")); @@ -115,7 +106,6 @@ pub(crate) fn report_cursor_mcp_log_findings(dc: &mut DoctorCounters, home: &Pat let mut findings = CursorMcpLogFindings::default(); for root in cursor_log_roots(home) { let scanned = scan_cursor_mcp_logs(&root); - findings.literal_placeholder_lines += scanned.literal_placeholder_lines; findings.connection_failures += scanned.connection_failures; findings.daemon_transport_failures += scanned.daemon_transport_failures; findings.scanned_any_log |= scanned.scanned_any_log; @@ -130,14 +120,6 @@ pub(crate) fn report_cursor_mcp_log_findings(dc: &mut DoctorCounters, home: &Pat dc.pass("No tracedecay MCP spawn failures in recent Cursor logs"); return; } - if findings.literal_placeholder_lines > 0 { - dc.warn(&format!( - "Cursor spawned tracedecay with a literal unexpanded `${{workspaceFolder}}` \ - {} time(s) in recent logs (Cursor does not expand it for plugin MCP servers; \ - the current bundle passes no `--path`, run `tracedecay update-plugin`)", - findings.literal_placeholder_lines - )); - } if findings.connection_failures > 0 { dc.warn(&format!( "{} failed tracedecay MCP connection(s) in recent Cursor logs. Cursor never \ @@ -250,12 +232,9 @@ mod tests { std::fs::write(dir.join(file_name), contents).unwrap(); } - /// Fixture mirroring the real failure captured on 2026-07-02: Cursor - /// passed a literal `${workspaceFolder}` to `serve --path`, serve exited, - /// and the scope died with `MCP error -32000`. + /// Fixture of a failed spawn: the scope died with `MCP error -32000`. const REAL_FAILURE_LOG: &str = "\ 2026-07-02 02:46:22.011 [info] connecting stdio for \"tracedecay\" (plugin-tracedecay-tracedecay)\n\ -2026-07-02 02:46:22.473 [error] config error: no TraceDecay index found at '${workspaceFolder}' — run 'tracedecay init' first\n\ 2026-07-02 02:46:22.474 [warning] Connection failed: MCP error -32000: Connection closed\n\ 2026-07-02 02:46:23.271 [info] Successfully connected to stdio server\n"; @@ -265,7 +244,7 @@ mod tests { 2026-07-19 18:37:54.946 [warning] Connection failed: MCP error -32603: TraceDecay daemon connection failed: io error: Connection reset by peer (os error 104)\n"; #[test] - fn scan_detects_literal_placeholder_and_connection_failure() { + fn scan_detects_a_connection_failure() { let logs = TempDir::new().unwrap(); write_session_log( logs.path(), @@ -276,7 +255,6 @@ mod tests { let findings = scan_cursor_mcp_logs(logs.path()); assert!(findings.scanned_any_log); - assert_eq!(findings.literal_placeholder_lines, 1); assert_eq!(findings.connection_failures, 1); assert_eq!(findings.affected_logs.len(), 1); assert!(findings.has_findings()); diff --git a/crates/tracedecay-agent-hosts/src/agents/host_component_registration.rs b/crates/tracedecay-agent-hosts/src/agents/host_component_registration.rs index a3c1eb12db..480cbe4b70 100644 --- a/crates/tracedecay-agent-hosts/src/agents/host_component_registration.rs +++ b/crates/tracedecay-agent-hosts/src/agents/host_component_registration.rs @@ -953,91 +953,6 @@ mod tests { } } - #[test] - fn opencode_core_cleanup_is_reversible_and_revision_checked() { - use crate::agents::host_bundle::{ - HostBundleLifecycleOpV1 as Op, HostBundleWriterV1, HostComponentSetExecutionRequestV1, - HostComponentSetLifecycleRequestV1, HostComponentSetRegistrationV1, HostComponentV1, - }; - - let home = tempfile::tempdir().unwrap(); - let profile = ProfileRoot::under_home(home.path()); - let bundle = crate::agents::host_bundle_registry::verified_embedded_host_component_set( - HostKindV1::OpenCode, - &[HostComponentV1::Core], - 0, - crate::agents::TEST_GENERATOR_COMMIT, - ) - .unwrap(); - let mut request = HostComponentSetExecutionRequestV1 { - lifecycle: HostComponentSetLifecycleRequestV1 { - operation: Op::Install, - expected_host: HostKindV1::OpenCode, - expected_components: vec![HostComponentV1::Core], - explicit_confirmation: true, - hermes_profile_bindings: 0, - explicit_adoption: false, - }, - operation_id: [1; 16], - }; - let mut authority = CatalogHostComponentRegistrationAuthority::new( - &profile, - "opencode", - home.path(), - Op::Install, - ) - .unwrap(); - let mut writer = HostBundleWriterV1::open(home.path()).unwrap(); - writer - .execute_component_set(&bundle.component_set, &request, &bundle, &mut authority) - .unwrap(); - let config = home.path().join(".config/opencode/opencode.json"); - let before = br#"{"lsp":{"tracedecay":{"command":["old","lsp"]},"rust":{"command":["rust-analyzer"]}},"mcp":{"servers":{"docs":{"type":"remote","url":"https://mcp.example.com"}}}}"#; - fs::write(&config, before).unwrap(); - request.operation_id = [2; 16]; - let mut authority = CatalogHostComponentRegistrationAuthority::new( - &profile, - "opencode", - home.path(), - Op::Install, - ) - .unwrap(); - let revision = authority - .current_revision(&bundle.component_set, &request) - .unwrap(); - authority - .preflight(&bundle.component_set, &request) - .unwrap(); - authority.stage(&bundle.component_set, &request).unwrap(); - authority.apply(&bundle.component_set, &request).unwrap(); - authority.verify(&bundle.component_set, &request).unwrap(); - assert_eq!( - serde_json::from_slice::(&fs::read(&config).unwrap()).unwrap(), - serde_json::json!({ - "lsp": {"rust": {"command": ["rust-analyzer"]}}, - "mcp": {"servers": {"docs": {"type": "remote", "url": "https://mcp.example.com"}}} - }) - ); - assert_ne!( - authority - .current_revision(&bundle.component_set, &request) - .unwrap(), - revision - ); - authority.commit(&bundle.component_set, &request).unwrap(); - assert_ne!(fs::read(&config).unwrap(), before); - - writer - .execute_component_set(&bundle.component_set, &request, &bundle, &mut authority) - .unwrap(); - assert!( - serde_json::from_slice::(&fs::read(&config).unwrap()) - .unwrap() - .pointer("/lsp/tracedecay") - .is_none() - ); - } - #[test] fn typed_host_cli_absence_stays_distinct_from_config_failure() { let unavailable = CatalogHostComponentRegistrationAuthority::registration_error( diff --git a/crates/tracedecay-agent-hosts/src/agents/opencode.rs b/crates/tracedecay-agent-hosts/src/agents/opencode.rs index 7539123eb7..7c68a88fc2 100644 --- a/crates/tracedecay-agent-hosts/src/agents/opencode.rs +++ b/crates/tracedecay-agent-hosts/src/agents/opencode.rs @@ -45,9 +45,6 @@ const OPENCODE_PLUGIN_MARKER: &str = "TraceDecayPlugin"; pub(crate) const OPENCODE_PLUGIN_RELATIVE: &str = "plugins/tracedecay.ts"; /// Native V2 location of the managed MCP server inside `opencode.json`. const MCP_SERVER_POINTER: &str = "/mcp/servers/tracedecay"; -/// Where the V1 installer registered the same server; removed on the next -/// install so one config never names the server twice. -const LEGACY_MCP_SERVER_KEY: &str = "tracedecay"; impl AgentIntegration for OpenCodeIntegration { fn name(&self) -> &'static str { @@ -149,18 +146,11 @@ impl AgentIntegration for OpenCodeIntegration { use super::host_bundle::{HostBundleRegistrationStateV1 as State, HostComponentV1}; let config_path = opencode_config_path(&ctx.home, &ctx.profile); - let config = if matches!( - component, - HostComponentV1::Core | HostComponentV1::ContextMcp - ) { + let config = if component == HostComponentV1::ContextMcp { match std::fs::read(&config_path) { Ok(config_bytes) => { match serde_json::from_slice::(&config_bytes) { Ok(config) => Some(config), - Err(error) if component == HostComponentV1::Core => { - tracing::warn!(path = %config_path.display(), %error, "Cannot inspect retired OpenCode LSP registration; Core artifacts remain independent of MCP config"); - None - } Err(_) => return State::Corrupt, } } @@ -210,12 +200,9 @@ impl AgentIntegration for OpenCodeIntegration { .is_ok_and(|contents| contents.contains(OPENCODE_PLUGIN_MARKER)); let prompt_current = std::fs::read_to_string(opencode_prompt_path(&ctx.home, &ctx.profile)) .is_ok_and(|contents| contents.contains(PROMPT_RULE_MARKER)); - let legacy_lsp = config - .as_ref() - .is_some_and(|config| config.pointer("/lsp/tracedecay").is_some()); - if plugin_current && prompt_current && !legacy_lsp { + if plugin_current && prompt_current { State::Current - } else if !plugin_path.exists() && !prompt_current && !legacy_lsp { + } else if !plugin_path.exists() && !prompt_current { State::Missing } else { State::Repairable @@ -289,8 +276,6 @@ impl AgentIntegration for OpenCodeIntegration { &ctx.tracedecay_bin, &ctx.serve_args, )?; - } else if core { - remove_legacy_lsp_registration(&opencode_config_path(&ctx.home, &ctx.profile))?; } if core { let prompt = opencode_prompt_path(&ctx.home, &ctx.profile); @@ -316,8 +301,6 @@ impl AgentIntegration for OpenCodeIntegration { let context_mcp = components.contains(&HostComponentV1::ContextMcp); if context_mcp { uninstall_mcp_server(&opencode_config_path(&ctx.home, &ctx.profile))?; - } else if core { - remove_legacy_lsp_registration(&opencode_config_path(&ctx.home, &ctx.profile))?; } if core { let prompt = opencode_prompt_path(&ctx.home, &ctx.profile); @@ -400,9 +383,6 @@ fn local_config_has_tracedecay(project_root: &Path) -> bool { fn config_has_tracedecay(config: &Value) -> bool { config.pointer(MCP_SERVER_POINTER).is_some() - || config - .pointer(&format!("/mcp/{LEGACY_MCP_SERVER_KEY}")) - .is_some() } // Config path resolution @@ -694,9 +674,7 @@ fn install_mcp_server( } /// Merge TraceDecay's registration into the config parsed from the bytes -/// observed under the write lock, returning the replacement value. A V1-era -/// `mcp.tracedecay` entry is folded into the native `mcp.servers` map, while -/// the retired `lsp.tracedecay` registration is removed. +/// observed under the write lock, returning the replacement value. fn merge_mcp_registration( config_path: &Path, mut config: serde_json::Value, @@ -713,12 +691,6 @@ fn merge_mcp_registration( .ok_or_else(|| TraceDecayError::Config { message: format!("{} must contain a JSON object", config_path.display()), })?; - if let Some(lsp) = config_object - .get_mut("lsp") - .and_then(serde_json::Value::as_object_mut) - { - lsp.remove("tracedecay"); - } let mcp = config_object .entry("mcp") .or_insert_with(|| json!({})) @@ -726,7 +698,6 @@ fn merge_mcp_registration( .ok_or_else(|| TraceDecayError::Config { message: format!("{}.mcp must be a JSON object", config_path.display()), })?; - mcp.remove(LEGACY_MCP_SERVER_KEY); let servers = mcp .entry("servers") .or_insert_with(|| json!({})) @@ -778,14 +749,13 @@ enum OpenCodeRegistrationRemoval { Rewritten, } -/// Remove TraceDecay's MCP server and retired custom-LSP entry from -/// `opencode.json`. +/// Remove TraceDecay's MCP server from `opencode.json`. fn uninstall_mcp_server(config_path: &Path) -> Result<()> { if !config_path.exists() { return Ok(()); } let outcome = update_text_file_transactionally(config_path, |existing: &str| { - strip_registration_entries(config_path, existing, true, true) + strip_registration_entries(config_path, existing) })?; match outcome { OpenCodeRegistrationRemoval::NoEntry => { @@ -810,57 +780,25 @@ fn uninstall_mcp_server(config_path: &Path) -> Result<()> { Ok(()) } -/// Remove only the retired custom-LSP entry during an explicit Core lifecycle. -/// -/// Core stages `opencode.json` only to remove the key prior releases wrote. -/// Unparseable operator config is left untouched; MCP lifecycle edits remain strict. -fn remove_legacy_lsp_registration(config_path: &Path) -> Result<()> { - if !config_path.exists() { - return Ok(()); - } - update_text_file_transactionally(config_path, |existing: &str| { - if let Err(error) = JsonConfigDialect::Json.parse_for_edit(config_path, existing) { - tracing::warn!(path = %config_path.display(), %error, "Skipped retired OpenCode LSP cleanup; operator config is unparseable"); - return Ok(((), TextFileMutation::Unchanged)); - } - strip_registration_entries(config_path, existing, false, true) - .map(|(_, mutation)| ((), mutation)) - })?; - Ok(()) -} - -/// Strip TraceDecay's selected native or V1-era registrations from the config -/// bytes observed under the write lock, deciding between a rewrite and +/// Strip TraceDecay's native registration from the config bytes observed +/// under the write lock, deciding between a rewrite and /// removal of an emptied file. Containers the install created are pruned by /// the creation ledger when they empty. fn strip_registration_entries( config_path: &Path, existing: &str, - remove_mcp: bool, - remove_lsp: bool, ) -> Result<(OpenCodeRegistrationRemoval, TextFileMutation)> { let mut config = JsonConfigDialect::Json.parse_for_edit(config_path, existing)?; // Uninstall drops only what TraceDecay wrote. A plugin registration the // host recorded through `opencode plugin add` is not ours to remove. let host_plugin_before = plugin_cli::host_owned_plugin_registration(&config); - let removed_legacy_mcp = remove_mcp - && config - .get_mut("mcp") - .and_then(serde_json::Value::as_object_mut) - .is_some_and(|mcp| mcp.remove(LEGACY_MCP_SERVER_KEY).is_some()); - let removed_native_mcp = remove_mcp - && config - .get_mut("mcp") - .and_then(serde_json::Value::as_object_mut) - .and_then(|mcp| mcp.get_mut("servers")) - .and_then(serde_json::Value::as_object_mut) - .is_some_and(|servers| servers.remove("tracedecay").is_some()); - let removed_lsp = remove_lsp - && config - .get_mut("lsp") - .and_then(serde_json::Value::as_object_mut) - .is_some_and(|lsp| lsp.remove("tracedecay").is_some()); - if !removed_legacy_mcp && !removed_native_mcp && !removed_lsp { + let removed_native_mcp = config + .get_mut("mcp") + .and_then(serde_json::Value::as_object_mut) + .and_then(|mcp| mcp.get_mut("servers")) + .and_then(serde_json::Value::as_object_mut) + .is_some_and(|servers| servers.remove("tracedecay").is_some()); + if !removed_native_mcp { return Ok(( OpenCodeRegistrationRemoval::NoEntry, TextFileMutation::Unchanged, @@ -898,19 +836,6 @@ fn doctor_check_config(dc: &mut DoctorCounters, home: &Path, profile: &ProfileRo } let config = load_json_file(&config_path); - if config - .pointer(&format!("/mcp/{LEGACY_MCP_SERVER_KEY}")) - .is_some() - { - dc.fail( - "V1-era `mcp.tracedecay` registration still present, run `tracedecay install --agent opencode`", - ); - } - if config.pointer("/lsp/tracedecay").is_some() { - dc.fail( - "retired `lsp.tracedecay` registration still present, run `tracedecay install --agent opencode`", - ); - } let Some(mcp_entry) = config .pointer(MCP_SERVER_POINTER) .filter(|entry| entry.is_object()) @@ -1017,137 +942,6 @@ mod tests { assert_eq!(std::fs::read_to_string(&config).unwrap(), "{not-json"); } - #[test] - fn existing_core_with_legacy_lsp_requires_activation() { - use crate::agents::host_bundle::{HostBundleRegistrationStateV1 as State, HostComponentV1}; - - let home = tempfile::tempdir().unwrap(); - let profile = ProfileRoot::under_home(home.path()); - let config = opencode_config_path(home.path(), &profile); - install_opencode_plugin( - &opencode_plugin_path(home.path(), &profile), - "/usr/bin/tracedecay", - ) - .unwrap(); - install_prompt_rules(&opencode_prompt_path(home.path(), &profile)).unwrap(); - std::fs::write(&config, serde_json::to_vec(&json!({ - "lsp": {"tracedecay": {"command": ["old-tracedecay", "lsp"]}, "operator": {"command": ["operator-lsp"]}}, - "mcp": {"servers": {"docs": {"type": "remote", "url": "https://mcp.example.com"}}} - })).unwrap()).unwrap(); - let ctx = HealthcheckContext { - home: home.path().to_path_buf(), - profile: profile.clone(), - project_path: home.path().to_path_buf(), - catalog_profiles: Default::default(), - }; - assert_eq!( - OpenCodeIntegration.host_component_registration(HostComponentV1::Core, &ctx), - State::Repairable - ); - remove_legacy_lsp_registration(&config).unwrap(); - assert_eq!( - OpenCodeIntegration.host_component_registration(HostComponentV1::Core, &ctx), - State::Current - ); - let config = crate::agents::load_json_file_strict(&config).unwrap(); - assert!(config["lsp"].get("tracedecay").is_none()); - assert_eq!( - config["lsp"]["operator"]["command"], - json!(["operator-lsp"]) - ); - assert_eq!(config["mcp"]["servers"]["docs"]["type"], "remote"); - } - - #[test] - fn legacy_mcp_registration_remains_detectable_for_migration() { - let home = tempfile::tempdir().unwrap(); - let profile = ProfileRoot::under_home(home.path()); - let config = opencode_config_path(home.path(), &profile); - std::fs::create_dir_all(config.parent().unwrap()).unwrap(); - std::fs::write( - &config, - serde_json::to_vec(&json!({ - "mcp": { - "tracedecay": { - "type": "local", - "command": ["tracedecay", "serve"] - } - } - })) - .unwrap(), - ) - .unwrap(); - assert!(OpenCodeIntegration.has_tracedecay(home.path(), &profile)); - - let project = tempfile::tempdir().unwrap(); - std::fs::write( - project.path().join("opencode.json"), - std::fs::read(&config).unwrap(), - ) - .unwrap(); - assert!(local_config_has_tracedecay(project.path())); - } - - #[test] - fn doctor_reports_retired_lsp_registration() { - let home = tempfile::tempdir().unwrap(); - let profile = ProfileRoot::under_home(home.path()); - let config = opencode_config_path(home.path(), &profile); - std::fs::create_dir_all(config.parent().unwrap()).unwrap(); - for (mcp, legacy_mcp) in [ - ( - json!({ - "servers": { - "tracedecay": { - "type": "local", - "command": ["tracedecay", "serve"] - } - } - }), - false, - ), - ( - json!({ - "tracedecay": { - "type": "local", - "command": ["tracedecay", "serve"] - } - }), - true, - ), - (Value::Null, false), - ] { - std::fs::write( - &config, - serde_json::to_vec(&json!({ - "mcp": mcp, - "lsp": { - "tracedecay": { - "command": ["tracedecay", "lsp"] - } - } - })) - .unwrap(), - ) - .unwrap(); - - let mut counters = DoctorCounters::new(); - doctor_check_config(&mut counters, home.path(), &profile); - - assert!(counters.checks.iter().any(|check| { - check.level == crate::agents::DoctorCheckLevelV1::Issue - && check.message.contains("lsp.tracedecay") - })); - assert_eq!( - counters.checks.iter().any(|check| { - check.level == crate::agents::DoctorCheckLevelV1::Issue - && check.message.contains("mcp.tracedecay") - }), - legacy_mcp - ); - } - } - /// The profile's `$XDG_CONFIG_HOME` is honored only inside the home being /// resolved: otherwise a managed-skill export sweep handed a sandbox home /// resolves OpenCode to the operator's real `~/.config/opencode` and @@ -1179,20 +973,19 @@ mod tests { } #[test] - fn mcp_registration_migrates_v1_entries_and_preserves_operator_lsp_servers() { + fn mcp_registration_replaces_its_entry_and_preserves_operator_lsp_servers() { let home = tempfile::tempdir().unwrap(); let config_path = home.path().join("opencode.json"); std::fs::write( &config_path, serde_json::to_vec_pretty(&json!({ "mcp": { - "tracedecay": {"type": "local", "command": ["old-tracedecay", "serve"]}, "servers": { + "tracedecay": {"type": "local", "command": ["old-tracedecay", "serve"]}, "docs": {"type": "remote", "url": "https://mcp.example.com"} } }, "lsp": { - "tracedecay": {"command": ["old-tracedecay", "lsp", "bridge", "--stdio"]}, "operator": {"command": ["operator-lsp"]} }, "plugins": ["opencode-acme-plugin"] @@ -1213,9 +1006,7 @@ mod tests { config["mcp"]["servers"]["tracedecay"], json!({"type": "local", "command": ["/usr/bin/tracedecay", "serve"]}) ); - assert!(config["mcp"].get("tracedecay").is_none()); assert_eq!(config["mcp"]["servers"]["docs"]["type"], "remote"); - assert!(config["lsp"].get("tracedecay").is_none()); assert_eq!( config["lsp"]["operator"]["command"], json!(["operator-lsp"]) diff --git a/crates/tracedecay-cli/src/agent_cmd.rs b/crates/tracedecay-cli/src/agent_cmd.rs index 05f7664f31..4bc11bb26d 100644 --- a/crates/tracedecay-cli/src/agent_cmd.rs +++ b/crates/tracedecay-cli/src/agent_cmd.rs @@ -2832,17 +2832,13 @@ mod tests { for path in [&config_path, &context_path, &agent_path] { std::fs::create_dir_all(path.parent().unwrap()).unwrap(); } - let mut legacy_config: serde_json::Value = + let mut seeded_config: serde_json::Value = serde_json::from_slice(OPENCODE_CONTEXT_CONFIG).unwrap(); - legacy_config["lsp"] = serde_json::json!({ - "tracedecay": {"command": ["tracedecay", "lsp", "bridge", "--stdio"]}, + seeded_config["lsp"] = serde_json::json!({ "operator": {"command": ["operator-lsp"]} }); - std::fs::write( - &config_path, - serde_json::to_vec_pretty(&legacy_config).unwrap(), - ) - .unwrap(); + let seeded_bytes = serde_json::to_vec_pretty(&seeded_config).unwrap(); + std::fs::write(&config_path, &seeded_bytes).unwrap(); std::fs::write(&context_path, b"context-sentinel\n").unwrap(); std::fs::write(&agent_path, b"agent-sentinel\n").unwrap(); let core_set = canonical_host_component_set_with_tracedecay_bin( @@ -2878,21 +2874,10 @@ mod tests { &ComponentSetApplyContext::with_tracedecay_bin(&tracedecay_bin), ) .unwrap(); - let config: serde_json::Value = - serde_json::from_slice(&std::fs::read(&config_path).unwrap()).unwrap(); - assert_eq!(config["unrelated"]["keep"], true); - assert_eq!( - config["mcp"]["servers"]["other"]["command"], - serde_json::json!(["other"]) - ); - assert_eq!( - config["mcp"]["servers"]["tracedecay"]["command"], - serde_json::json!(["tracedecay", "serve"]) - ); - assert!(config["lsp"].get("tracedecay").is_none()); assert_eq!( - config["lsp"]["operator"]["command"], - serde_json::json!(["operator-lsp"]) + std::fs::read(&config_path).unwrap(), + seeded_bytes, + "a Core lifecycle never rewrites opencode.json" ); assert_eq!(std::fs::read(&context_path).unwrap(), b"context-sentinel\n"); assert_eq!(std::fs::read(&agent_path).unwrap(), b"agent-sentinel\n"); diff --git a/plugin/README-cursor.md b/plugin/README-cursor.md index 73b066037d..74e19b1669 100644 --- a/plugin/README-cursor.md +++ b/plugin/README-cursor.md @@ -22,13 +22,9 @@ uses `tracedecay` (not the Claude/Codex `graph` key). Each Cursor workspace gets its own project store. Cursor runs plugin MCP servers in its profile scope, spawned per workspace -with the workspace folder as the working directory, and it never expands -`${workspaceFolder}` there (every spawn of the former `--path -${workspaceFolder}` template logged the literal string). `serve` therefore -resolves the workspace from its working directory (project walk-up, then the -enclosing git checkout) and from MCP initialize roots. A `--path` value that -still carries an unexpanded `${...}` template is discarded with a stderr -warning and the same discovery runs. +with the workspace folder as the working directory. `serve` resolves the +workspace from that working directory (project walk-up, then the enclosing +git checkout) and from MCP initialize roots; the bundle passes no `--path`. When discovery lands on a directory the profile has not enrolled, the MCP handshake still completes and every tool call answers with the typed