From f702442536c909d7b2a2c0a93aa059d8ef49c6da Mon Sep 17 00:00:00 2001 From: Kevin Kern Date: Wed, 29 Jul 2026 11:08:34 +0200 Subject: [PATCH 1/4] chore: certify Pi and prepare v0.3.6 --- CHANGELOG.md | 11 ++ Cargo.lock | 4 +- Cargo.toml | 2 +- .../valid-balanced-codex.json | 8 +- .../valid-balanced-mixed.json | 8 +- ...nsion.json => certified-pi-extension.json} | 2 +- .../invalid-pi-extension-fallback.json | 2 +- .../invalid-pi-extension-provider.json | 2 +- .../invalid-raw-credential.json | 2 +- package.json | 2 +- src/config.rs | 4 +- src/routing.rs | 20 ++- src/tests/config.rs | 6 +- src/tests/hosts.rs | 2 +- src/tests/routing.rs | 21 +++ .../data/bundles/balanced-claude-native.json | 8 +- .../data/bundles/balanced-codex-openai.json | 8 +- .../bundles/balanced-cursor-fable-grok.json | 8 +- .../data/bundles/balanced-cursor-openai.json | 8 +- website/data/bundles/balanced-mixed-host.json | 8 +- .../bundles/balanced-opencode-native.json | 8 +- .../data/bundles/balanced-pi-subagents.json | 10 +- .../data/bundles/low-usage-claude-native.json | 8 +- .../data/bundles/low-usage-codex-openai.json | 8 +- .../data/bundles/low-usage-mixed-host.json | 8 +- .../bundles/low-usage-opencode-native.json | 8 +- .../data/bundles/low-usage-pi-subagents.json | 10 +- .../bundles/max-quality-claude-native.json | 8 +- .../bundles/max-quality-codex-openai.json | 8 +- .../max-quality-cursor-fable-grok.json | 8 +- .../data/bundles/max-quality-mixed-host.json | 8 +- .../bundles/max-quality-opencode-native.json | 8 +- .../bundles/max-quality-pi-subagents.json | 10 +- .../read-only-audit-claude-native.json | 8 +- .../bundles/read-only-audit-codex-openai.json | 8 +- .../read-only-audit-cursor-fable-grok.json | 8 +- .../bundles/read-only-audit-mixed-host.json | 8 +- .../read-only-audit-opencode-native.json | 8 +- .../bundles/read-only-audit-pi-subagents.json | 10 +- website/data/catalog.json | 140 +++++++++--------- website/src/lib/generator.test.ts | 2 +- website/src/lib/generator.ts | 7 +- website/src/lib/onboarding.test.ts | 6 +- website/src/lib/onboarding/pi.ts | 7 +- website/src/lib/website-cli-parity.test.ts | 68 +++++++-- xtask/Cargo.toml | 2 +- 46 files changed, 305 insertions(+), 223 deletions(-) rename fixtures/workflow-contract-v1/{experimental-pi-extension.json => certified-pi-extension.json} (92%) diff --git a/CHANGELOG.md b/CHANGELOG.md index ade8723..90ba1b5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,17 @@ All notable changes to Switchloom are recorded here. ## [Unreleased] +## [0.3.6] - 2026-07-29 + +- Certified the existing Pi Subagents extension path and its generated + repository lifecycle: active Pi remains the parent while Switchloom writes + only implementer, reviewer, verifier, and sequential-chain artifacts. +- Made the version-pinned Pi recipe applyable from the website and updated Pi + onboarding to guide installation, application, and inspection of the + certified workflow. +- Regenerated release-owned catalogs, bundles, and compatibility fixtures for + the certified Pi path. + ## [0.3.5] - 2026-07-28 - Made Pi Subagents the single Pi workflow: the active Pi session remains the diff --git a/Cargo.lock b/Cargo.lock index 42d53d4..2d87b36 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -302,7 +302,7 @@ checksum = "cf8baf1c55e62ffcace7a9f06f4bd9cd3f0c4beb022d3b367256b91b87513d98" [[package]] name = "model-routing" -version = "0.3.5" +version = "0.3.6" dependencies = [ "anyhow", "clap", @@ -605,7 +605,7 @@ dependencies = [ [[package]] name = "xtask" -version = "0.3.5" +version = "0.3.6" dependencies = [ "anyhow", "clap", diff --git a/Cargo.toml b/Cargo.toml index 1fb2487..3bd7adc 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -4,7 +4,7 @@ default-members = ["."] resolver = "3" [workspace.package] -version = "0.3.5" +version = "0.3.6" edition = "2024" rust-version = "1.85" license = "MIT" diff --git a/fixtures/routing-bundle-v1/valid-balanced-codex.json b/fixtures/routing-bundle-v1/valid-balanced-codex.json index eb70cd5..34c6be6 100644 --- a/fixtures/routing-bundle-v1/valid-balanced-codex.json +++ b/fixtures/routing-bundle-v1/valid-balanced-codex.json @@ -6,7 +6,7 @@ "generated_at": "2026-07-16T00:00:00Z", "source": { "package": "model-routing", - "package_version": "0.3.5", + "package_version": "0.3.6", "integration": "planr" }, "policy": { @@ -492,20 +492,20 @@ }, "planr_handoff": { "schema_version": 1, - "switchloom_package": "switchloom@0.3.5", + "switchloom_package": "switchloom@0.3.6", "semantic_role_contract": "Planr supplies usage policy `balanced`, work_type routes, and semantic roles; Switchloom owns the selected host binding, model, effort, fork/context policy, and generated dispatch artifacts.", "required_consumer_behavior": [ "Consume RoutingIntentV1 as the only source for semantic_role, work_type, selected profile, model, effort, agent_type, and fork_turns inputs.", "Use the CLI lifecycle or SetupSpecV1 recipe commands to preview, apply, update, status, rollback, and uninstall repository-local artifacts.", "Record Switchloom package version, package digest, bundle_id, host version, requested dispatch, effective child identity, nonce, and receipt paths before claiming certification.", "Treat advisory or unsupported guarantees as uncertified until nonce-bearing live host evidence upgrades them.", - "For the available-host release gate, Codex may be certified from deterministic effective-routing evidence; Cursor profiles may only claim advisory nonce-correlated requested-routing evidence unless the host exposes authenticated effective role/model telemetry. Claude Code, OpenCode, and Pi remain unavailable or unverified until authentic receipts exist." + "For the available-host release gate, Codex may be certified from deterministic effective-routing evidence; Cursor profiles may only claim advisory nonce-correlated requested-routing evidence unless the host exposes authenticated effective role/model telemetry. Claude Code and OpenCode remain unavailable or unverified until authentic receipts exist." ], "forbidden_duplicate_ownership": [ "Do not maintain a Planr-side model catalog, effort catalog, preset compiler, host adapter, or fork policy normalizer for Switchloom-owned inputs.", "Do not re-normalize Switchloom model, effort, role, agent_type, profile, or fork policy identifiers in Planr.", "Do not overwrite Switchloom-managed artifacts outside preview/apply/update/rollback/uninstall.", - "Do not mark Claude Code, OpenCode, Pi, or any advisory receipt as certified without live nonce-bearing child evidence." + "Do not mark Claude Code, OpenCode, or any advisory receipt as certified without live nonce-bearing child evidence." ], "certification_report_reference": "reports/native-host-certification///workdir/dispatch-evidence.json plus the matching bundle.json, invocation receipt, package digest, and validator stdout" } diff --git a/fixtures/routing-bundle-v1/valid-balanced-mixed.json b/fixtures/routing-bundle-v1/valid-balanced-mixed.json index 2bbb5f9..f6cc841 100644 --- a/fixtures/routing-bundle-v1/valid-balanced-mixed.json +++ b/fixtures/routing-bundle-v1/valid-balanced-mixed.json @@ -6,7 +6,7 @@ "generated_at": "2026-07-16T00:00:00Z", "source": { "package": "model-routing", - "package_version": "0.3.5", + "package_version": "0.3.6", "integration": "planr" }, "policy": { @@ -420,20 +420,20 @@ }, "planr_handoff": { "schema_version": 1, - "switchloom_package": "switchloom@0.3.5", + "switchloom_package": "switchloom@0.3.6", "semantic_role_contract": "Planr supplies usage policy `balanced`, work_type routes, and semantic roles; Switchloom owns the selected host binding, model, effort, fork/context policy, and generated dispatch artifacts.", "required_consumer_behavior": [ "Consume RoutingIntentV1 as the only source for semantic_role, work_type, selected profile, model, effort, agent_type, and fork_turns inputs.", "Use the CLI lifecycle or SetupSpecV1 recipe commands to preview, apply, update, status, rollback, and uninstall repository-local artifacts.", "Record Switchloom package version, package digest, bundle_id, host version, requested dispatch, effective child identity, nonce, and receipt paths before claiming certification.", "Treat advisory or unsupported guarantees as uncertified until nonce-bearing live host evidence upgrades them.", - "For the available-host release gate, Codex may be certified from deterministic effective-routing evidence; Cursor profiles may only claim advisory nonce-correlated requested-routing evidence unless the host exposes authenticated effective role/model telemetry. Claude Code, OpenCode, and Pi remain unavailable or unverified until authentic receipts exist." + "For the available-host release gate, Codex may be certified from deterministic effective-routing evidence; Cursor profiles may only claim advisory nonce-correlated requested-routing evidence unless the host exposes authenticated effective role/model telemetry. Claude Code and OpenCode remain unavailable or unverified until authentic receipts exist." ], "forbidden_duplicate_ownership": [ "Do not maintain a Planr-side model catalog, effort catalog, preset compiler, host adapter, or fork policy normalizer for Switchloom-owned inputs.", "Do not re-normalize Switchloom model, effort, role, agent_type, profile, or fork policy identifiers in Planr.", "Do not overwrite Switchloom-managed artifacts outside preview/apply/update/rollback/uninstall.", - "Do not mark Claude Code, OpenCode, Pi, or any advisory receipt as certified without live nonce-bearing child evidence." + "Do not mark Claude Code, OpenCode, or any advisory receipt as certified without live nonce-bearing child evidence." ], "certification_report_reference": "reports/native-host-certification///workdir/dispatch-evidence.json plus the matching bundle.json, invocation receipt, package digest, and validator stdout" } diff --git a/fixtures/workflow-contract-v1/experimental-pi-extension.json b/fixtures/workflow-contract-v1/certified-pi-extension.json similarity index 92% rename from fixtures/workflow-contract-v1/experimental-pi-extension.json rename to fixtures/workflow-contract-v1/certified-pi-extension.json index d203c29..68e00d5 100644 --- a/fixtures/workflow-contract-v1/experimental-pi-extension.json +++ b/fixtures/workflow-contract-v1/certified-pi-extension.json @@ -2,7 +2,7 @@ "schema_version": 1, "coding_agent": "pi", "execution_path": "extension", - "validation_status": "experimental", + "validation_status": "certified", "parent_model": "runtime-managed", "topology": "sequential", "roles": { diff --git a/fixtures/workflow-contract-v1/invalid-pi-extension-fallback.json b/fixtures/workflow-contract-v1/invalid-pi-extension-fallback.json index 23d8c03..a440d20 100644 --- a/fixtures/workflow-contract-v1/invalid-pi-extension-fallback.json +++ b/fixtures/workflow-contract-v1/invalid-pi-extension-fallback.json @@ -2,7 +2,7 @@ "schema_version": 1, "coding_agent": "pi", "execution_path": "extension", - "validation_status": "experimental", + "validation_status": "certified", "parent_model": "runtime-managed", "topology": "sequential", "roles": { diff --git a/fixtures/workflow-contract-v1/invalid-pi-extension-provider.json b/fixtures/workflow-contract-v1/invalid-pi-extension-provider.json index 2e49e2e..4a0b7da 100644 --- a/fixtures/workflow-contract-v1/invalid-pi-extension-provider.json +++ b/fixtures/workflow-contract-v1/invalid-pi-extension-provider.json @@ -2,7 +2,7 @@ "schema_version": 1, "coding_agent": "pi", "execution_path": "extension", - "validation_status": "experimental", + "validation_status": "certified", "parent_model": "runtime-managed", "topology": "sequential", "roles": { diff --git a/fixtures/workflow-contract-v1/invalid-raw-credential.json b/fixtures/workflow-contract-v1/invalid-raw-credential.json index 0fa28a1..06881cb 100644 --- a/fixtures/workflow-contract-v1/invalid-raw-credential.json +++ b/fixtures/workflow-contract-v1/invalid-raw-credential.json @@ -2,7 +2,7 @@ "schema_version": 1, "coding_agent": "pi", "execution_path": "extension", - "validation_status": "experimental", + "validation_status": "certified", "parent_model": "runtime-managed", "topology": "sequential", "model_access": { "id": "pi-openrouter", "kind": "hosted_gateway", "provider": "openrouter" }, diff --git a/package.json b/package.json index 33fd021..2db6d0a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "switchloom", - "version": "0.3.5", + "version": "0.3.6", "description": "Deterministic model routing for coding agents.", "license": "MIT", "repository": { diff --git a/src/config.rs b/src/config.rs index 3583c3f..2923ff4 100644 --- a/src/config.rs +++ b/src/config.rs @@ -233,7 +233,7 @@ pub fn validate_workflow_request(request: &WorkflowRequestV1) -> Result<()> { &[WorkflowTopology::RoleDispatch][..], ), (CodingAgentRuntime::Pi, ExecutionPath::Extension) => ( - ValidationStatus::Experimental, + ValidationStatus::Certified, ParentModelGuidance::RuntimeManaged, &[WorkflowTopology::Sequential][..], ), @@ -480,7 +480,7 @@ pub fn workflow_capability_catalog_value() -> Value { "schemaVersion": 1, "capabilities": [ {"codingAgent": "codex", "executionPath": "native", "validationStatus": "certified", "parentModel": "current-session", "topologies": ["role-dispatch"], "providers": workflow_provider_capabilities(CodingAgentRuntime::Codex)}, - {"codingAgent": "pi", "executionPath": "extension", "validationStatus": "experimental", "parentModel": "runtime-managed", "topologies": ["sequential"], "providers": workflow_provider_capabilities(CodingAgentRuntime::Pi)}, + {"codingAgent": "pi", "executionPath": "extension", "validationStatus": "certified", "parentModel": "runtime-managed", "topologies": ["sequential"], "providers": workflow_provider_capabilities(CodingAgentRuntime::Pi)}, {"codingAgent": "opencode", "executionPath": "native", "validationStatus": "experimental", "parentModel": "runtime-managed", "topologies": ["role-dispatch"], "providers": workflow_provider_capabilities(CodingAgentRuntime::OpenCode)}, {"codingAgent": "claude-code", "executionPath": "sidecar", "validationStatus": "planned", "parentModel": "external-setup-required", "topologies": ["role-dispatch"]}, {"codingAgent": "claude-code", "executionPath": "native", "validationStatus": "planned", "parentModel": "runtime-managed", "topologies": ["role-dispatch"], "providers": workflow_provider_capabilities(CodingAgentRuntime::ClaudeCode)}, diff --git a/src/routing.rs b/src/routing.rs index 8f516c6..1ce6e77 100644 --- a/src/routing.rs +++ b/src/routing.rs @@ -85,7 +85,11 @@ pub fn show_policy(policy: &str, host: &str) -> Result { artifacts: adapter.artifacts, evidence: EvaluationEvidence { evaluation_ids: vec![binding.verification.id.clone()], - status: "experimental".to_string(), + status: if binding.id == "pi-subagents" { + "certified".to_string() + } else { + "experimental".to_string() + }, }, adapter_contract: adapter.adapter_contract, policy: policy_contract, @@ -213,7 +217,11 @@ pub fn evaluate_policy(policy: &str, host: &str) -> Result { scenario_count, offline_reproducible: scenario_count > 0, live_evidence: None, - status: "experimental".to_string(), + status: if host == "pi-subagents" { + "certified".to_string() + } else { + "experimental".to_string() + }, recommended: false, }) } @@ -229,7 +237,7 @@ pub fn catalog_value() -> Result { "entryId": format!("{}-{}", summary.policy_id, summary.binding_id), "entryVersion": format!("{}+{}", summary.policy_version, summary.binding_version), "status": report.status, - "statusLabel": "Experimental", + "statusLabel": if report.status == "certified" { "Certified" } else { "Experimental" }, "recommended": false, "freshness": "current", "lifecycle": "published", @@ -291,7 +299,7 @@ pub fn catalog_value() -> Result { "state": "package_generated", "entryCount": compositions.len(), "trust": "model_routing_unsigned_catalog_v1", - "message": "Entries stay experimental until authenticated live evidence and an offline maintainer signature pass." + "message": "Entries stay experimental until authenticated live evidence and an offline maintainer signature pass, except for independently certified capabilities." }, "compositions": compositions, })) @@ -1149,13 +1157,13 @@ pub(crate) fn adapter_contract_for_binding( "Use the CLI lifecycle or SetupSpecV1 recipe commands to preview, apply, update, status, rollback, and uninstall repository-local artifacts.".to_string(), "Record Switchloom package version, package digest, bundle_id, host version, requested dispatch, effective child identity, nonce, and receipt paths before claiming certification.".to_string(), "Treat advisory or unsupported guarantees as uncertified until nonce-bearing live host evidence upgrades them.".to_string(), - "For the available-host release gate, Codex may be certified from deterministic effective-routing evidence; Cursor profiles may only claim advisory nonce-correlated requested-routing evidence unless the host exposes authenticated effective role/model telemetry. Claude Code, OpenCode, and Pi remain unavailable or unverified until authentic receipts exist.".to_string(), + "For the available-host release gate, Codex may be certified from deterministic effective-routing evidence; Cursor profiles may only claim advisory nonce-correlated requested-routing evidence unless the host exposes authenticated effective role/model telemetry. Claude Code and OpenCode remain unavailable or unverified until authentic receipts exist.".to_string(), ], forbidden_duplicate_ownership: vec![ "Do not maintain a Planr-side model catalog, effort catalog, preset compiler, host adapter, or fork policy normalizer for Switchloom-owned inputs.".to_string(), "Do not re-normalize Switchloom model, effort, role, agent_type, profile, or fork policy identifiers in Planr.".to_string(), "Do not overwrite Switchloom-managed artifacts outside preview/apply/update/rollback/uninstall.".to_string(), - "Do not mark Claude Code, OpenCode, Pi, or any advisory receipt as certified without live nonce-bearing child evidence.".to_string(), + "Do not mark Claude Code, OpenCode, or any advisory receipt as certified without live nonce-bearing child evidence.".to_string(), ], certification_report_reference: "reports/native-host-certification///workdir/dispatch-evidence.json plus the matching bundle.json, invocation receipt, package digest, and validator stdout".to_string(), diff --git a/src/tests/config.rs b/src/tests/config.rs index ef7f78f..17b1fd5 100644 --- a/src/tests/config.rs +++ b/src/tests/config.rs @@ -442,8 +442,8 @@ fn workflow_contract_fixtures_reject_unproven_and_invalid_tuples() { None, ), ( - include_str!("../../fixtures/workflow-contract-v1/experimental-pi-extension.json"), - Some("workflow is experimental and cannot be applied as certified support"), + include_str!("../../fixtures/workflow-contract-v1/certified-pi-extension.json"), + None, ), ( include_str!("../../fixtures/workflow-contract-v1/experimental-opencode-native.json"), @@ -513,7 +513,7 @@ fn workflow_contract_fixtures_reject_unproven_and_invalid_tuples() { let claude_sidecar = workflow_capability(&catalog, "claude-code", "sidecar"); let cursor_native = workflow_capability(&catalog, "cursor", "native"); assert_eq!(codex_native["validationStatus"], "certified"); - assert_eq!(pi_extension["validationStatus"], "experimental"); + assert_eq!(pi_extension["validationStatus"], "certified"); assert_eq!(opencode_native["validationStatus"], "experimental"); assert_eq!(claude_sidecar["validationStatus"], "planned"); assert_eq!(cursor_native["validationStatus"], "experimental"); diff --git a/src/tests/hosts.rs b/src/tests/hosts.rs index 7056b5f..7aa9ec1 100644 --- a/src/tests/hosts.rs +++ b/src/tests/hosts.rs @@ -268,7 +268,7 @@ fn codex_doctor_uses_applied_semantic_roles_and_distinguishes_drift() { diagnostic.code == "codex_exact_version_ready" && diagnostic .repair - .contains("Switchloom v0.3.5 certification") + .contains("Switchloom v0.3.6 certification") })); fs::write( diff --git a/src/tests/routing.rs b/src/tests/routing.rs index e1620df..a28ac07 100644 --- a/src/tests/routing.rs +++ b/src/tests/routing.rs @@ -731,6 +731,27 @@ fn no_in_memory_claim_can_promote_offline_evaluation() { assert!(!report.recommended); } +#[test] +fn pi_subagents_catalog_entries_are_certified_without_promoting_other_hosts() { + let report = evaluate_policy("balanced", "pi-subagents").unwrap(); + assert_eq!(report.status, "certified"); + assert!(!report.recommended); + + let bundle = compile_policy("balanced", "pi-subagents", Integration::Standalone).unwrap(); + assert_eq!(bundle.evidence.status, "certified"); + + let catalog = catalog_value().unwrap(); + let pi = catalog["compositions"] + .as_array() + .unwrap() + .iter() + .find(|entry| entry["binding"]["selector"] == "pi-subagents") + .unwrap(); + assert_eq!(pi["status"], "certified"); + assert_eq!(pi["statusLabel"], "Certified"); + assert_eq!(pi["evaluation"]["status"], "certified"); +} + #[test] fn built_in_presets_compile_through_setup_spec_without_output_drift() { let spec = setup_spec_for_policy("balanced", "codex-openai", Integration::Planr).unwrap(); diff --git a/website/data/bundles/balanced-claude-native.json b/website/data/bundles/balanced-claude-native.json index 9c0f4e3..bf37555 100644 --- a/website/data/bundles/balanced-claude-native.json +++ b/website/data/bundles/balanced-claude-native.json @@ -6,7 +6,7 @@ "generated_at": "2026-07-16T00:00:00Z", "source": { "package": "model-routing", - "package_version": "0.3.5", + "package_version": "0.3.6", "integration": "standalone" }, "policy": { @@ -295,20 +295,20 @@ }, "planr_handoff": { "schema_version": 1, - "switchloom_package": "switchloom@0.3.5", + "switchloom_package": "switchloom@0.3.6", "semantic_role_contract": "Planr supplies usage policy `balanced`, work_type routes, and semantic roles; Switchloom owns the selected host binding, model, effort, fork/context policy, and generated dispatch artifacts.", "required_consumer_behavior": [ "Consume RoutingIntentV1 as the only source for semantic_role, work_type, selected profile, model, effort, agent_type, and fork_turns inputs.", "Use the CLI lifecycle or SetupSpecV1 recipe commands to preview, apply, update, status, rollback, and uninstall repository-local artifacts.", "Record Switchloom package version, package digest, bundle_id, host version, requested dispatch, effective child identity, nonce, and receipt paths before claiming certification.", "Treat advisory or unsupported guarantees as uncertified until nonce-bearing live host evidence upgrades them.", - "For the available-host release gate, Codex may be certified from deterministic effective-routing evidence; Cursor profiles may only claim advisory nonce-correlated requested-routing evidence unless the host exposes authenticated effective role/model telemetry. Claude Code, OpenCode, and Pi remain unavailable or unverified until authentic receipts exist." + "For the available-host release gate, Codex may be certified from deterministic effective-routing evidence; Cursor profiles may only claim advisory nonce-correlated requested-routing evidence unless the host exposes authenticated effective role/model telemetry. Claude Code and OpenCode remain unavailable or unverified until authentic receipts exist." ], "forbidden_duplicate_ownership": [ "Do not maintain a Planr-side model catalog, effort catalog, preset compiler, host adapter, or fork policy normalizer for Switchloom-owned inputs.", "Do not re-normalize Switchloom model, effort, role, agent_type, profile, or fork policy identifiers in Planr.", "Do not overwrite Switchloom-managed artifacts outside preview/apply/update/rollback/uninstall.", - "Do not mark Claude Code, OpenCode, Pi, or any advisory receipt as certified without live nonce-bearing child evidence." + "Do not mark Claude Code, OpenCode, or any advisory receipt as certified without live nonce-bearing child evidence." ], "certification_report_reference": "reports/native-host-certification///workdir/dispatch-evidence.json plus the matching bundle.json, invocation receipt, package digest, and validator stdout" } diff --git a/website/data/bundles/balanced-codex-openai.json b/website/data/bundles/balanced-codex-openai.json index d858314..d274f2d 100644 --- a/website/data/bundles/balanced-codex-openai.json +++ b/website/data/bundles/balanced-codex-openai.json @@ -6,7 +6,7 @@ "generated_at": "2026-07-16T00:00:00Z", "source": { "package": "model-routing", - "package_version": "0.3.5", + "package_version": "0.3.6", "integration": "standalone" }, "policy": { @@ -476,20 +476,20 @@ }, "planr_handoff": { "schema_version": 1, - "switchloom_package": "switchloom@0.3.5", + "switchloom_package": "switchloom@0.3.6", "semantic_role_contract": "Planr supplies usage policy `balanced`, work_type routes, and semantic roles; Switchloom owns the selected host binding, model, effort, fork/context policy, and generated dispatch artifacts.", "required_consumer_behavior": [ "Consume RoutingIntentV1 as the only source for semantic_role, work_type, selected profile, model, effort, agent_type, and fork_turns inputs.", "Use the CLI lifecycle or SetupSpecV1 recipe commands to preview, apply, update, status, rollback, and uninstall repository-local artifacts.", "Record Switchloom package version, package digest, bundle_id, host version, requested dispatch, effective child identity, nonce, and receipt paths before claiming certification.", "Treat advisory or unsupported guarantees as uncertified until nonce-bearing live host evidence upgrades them.", - "For the available-host release gate, Codex may be certified from deterministic effective-routing evidence; Cursor profiles may only claim advisory nonce-correlated requested-routing evidence unless the host exposes authenticated effective role/model telemetry. Claude Code, OpenCode, and Pi remain unavailable or unverified until authentic receipts exist." + "For the available-host release gate, Codex may be certified from deterministic effective-routing evidence; Cursor profiles may only claim advisory nonce-correlated requested-routing evidence unless the host exposes authenticated effective role/model telemetry. Claude Code and OpenCode remain unavailable or unverified until authentic receipts exist." ], "forbidden_duplicate_ownership": [ "Do not maintain a Planr-side model catalog, effort catalog, preset compiler, host adapter, or fork policy normalizer for Switchloom-owned inputs.", "Do not re-normalize Switchloom model, effort, role, agent_type, profile, or fork policy identifiers in Planr.", "Do not overwrite Switchloom-managed artifacts outside preview/apply/update/rollback/uninstall.", - "Do not mark Claude Code, OpenCode, Pi, or any advisory receipt as certified without live nonce-bearing child evidence." + "Do not mark Claude Code, OpenCode, or any advisory receipt as certified without live nonce-bearing child evidence." ], "certification_report_reference": "reports/native-host-certification///workdir/dispatch-evidence.json plus the matching bundle.json, invocation receipt, package digest, and validator stdout" } diff --git a/website/data/bundles/balanced-cursor-fable-grok.json b/website/data/bundles/balanced-cursor-fable-grok.json index 2d8cd29..4a60933 100644 --- a/website/data/bundles/balanced-cursor-fable-grok.json +++ b/website/data/bundles/balanced-cursor-fable-grok.json @@ -6,7 +6,7 @@ "generated_at": "2026-07-16T00:00:00Z", "source": { "package": "model-routing", - "package_version": "0.3.5", + "package_version": "0.3.6", "integration": "standalone" }, "policy": { @@ -288,20 +288,20 @@ }, "planr_handoff": { "schema_version": 1, - "switchloom_package": "switchloom@0.3.5", + "switchloom_package": "switchloom@0.3.6", "semantic_role_contract": "Planr supplies usage policy `balanced`, work_type routes, and semantic roles; Switchloom owns the selected host binding, model, effort, fork/context policy, and generated dispatch artifacts.", "required_consumer_behavior": [ "Consume RoutingIntentV1 as the only source for semantic_role, work_type, selected profile, model, effort, agent_type, and fork_turns inputs.", "Use the CLI lifecycle or SetupSpecV1 recipe commands to preview, apply, update, status, rollback, and uninstall repository-local artifacts.", "Record Switchloom package version, package digest, bundle_id, host version, requested dispatch, effective child identity, nonce, and receipt paths before claiming certification.", "Treat advisory or unsupported guarantees as uncertified until nonce-bearing live host evidence upgrades them.", - "For the available-host release gate, Codex may be certified from deterministic effective-routing evidence; Cursor profiles may only claim advisory nonce-correlated requested-routing evidence unless the host exposes authenticated effective role/model telemetry. Claude Code, OpenCode, and Pi remain unavailable or unverified until authentic receipts exist." + "For the available-host release gate, Codex may be certified from deterministic effective-routing evidence; Cursor profiles may only claim advisory nonce-correlated requested-routing evidence unless the host exposes authenticated effective role/model telemetry. Claude Code and OpenCode remain unavailable or unverified until authentic receipts exist." ], "forbidden_duplicate_ownership": [ "Do not maintain a Planr-side model catalog, effort catalog, preset compiler, host adapter, or fork policy normalizer for Switchloom-owned inputs.", "Do not re-normalize Switchloom model, effort, role, agent_type, profile, or fork policy identifiers in Planr.", "Do not overwrite Switchloom-managed artifacts outside preview/apply/update/rollback/uninstall.", - "Do not mark Claude Code, OpenCode, Pi, or any advisory receipt as certified without live nonce-bearing child evidence." + "Do not mark Claude Code, OpenCode, or any advisory receipt as certified without live nonce-bearing child evidence." ], "certification_report_reference": "reports/native-host-certification///workdir/dispatch-evidence.json plus the matching bundle.json, invocation receipt, package digest, and validator stdout" } diff --git a/website/data/bundles/balanced-cursor-openai.json b/website/data/bundles/balanced-cursor-openai.json index 421d8dd..acb8d04 100644 --- a/website/data/bundles/balanced-cursor-openai.json +++ b/website/data/bundles/balanced-cursor-openai.json @@ -6,7 +6,7 @@ "generated_at": "2026-07-16T00:00:00Z", "source": { "package": "model-routing", - "package_version": "0.3.5", + "package_version": "0.3.6", "integration": "standalone" }, "policy": { @@ -288,20 +288,20 @@ }, "planr_handoff": { "schema_version": 1, - "switchloom_package": "switchloom@0.3.5", + "switchloom_package": "switchloom@0.3.6", "semantic_role_contract": "Planr supplies usage policy `balanced`, work_type routes, and semantic roles; Switchloom owns the selected host binding, model, effort, fork/context policy, and generated dispatch artifacts.", "required_consumer_behavior": [ "Consume RoutingIntentV1 as the only source for semantic_role, work_type, selected profile, model, effort, agent_type, and fork_turns inputs.", "Use the CLI lifecycle or SetupSpecV1 recipe commands to preview, apply, update, status, rollback, and uninstall repository-local artifacts.", "Record Switchloom package version, package digest, bundle_id, host version, requested dispatch, effective child identity, nonce, and receipt paths before claiming certification.", "Treat advisory or unsupported guarantees as uncertified until nonce-bearing live host evidence upgrades them.", - "For the available-host release gate, Codex may be certified from deterministic effective-routing evidence; Cursor profiles may only claim advisory nonce-correlated requested-routing evidence unless the host exposes authenticated effective role/model telemetry. Claude Code, OpenCode, and Pi remain unavailable or unverified until authentic receipts exist." + "For the available-host release gate, Codex may be certified from deterministic effective-routing evidence; Cursor profiles may only claim advisory nonce-correlated requested-routing evidence unless the host exposes authenticated effective role/model telemetry. Claude Code and OpenCode remain unavailable or unverified until authentic receipts exist." ], "forbidden_duplicate_ownership": [ "Do not maintain a Planr-side model catalog, effort catalog, preset compiler, host adapter, or fork policy normalizer for Switchloom-owned inputs.", "Do not re-normalize Switchloom model, effort, role, agent_type, profile, or fork policy identifiers in Planr.", "Do not overwrite Switchloom-managed artifacts outside preview/apply/update/rollback/uninstall.", - "Do not mark Claude Code, OpenCode, Pi, or any advisory receipt as certified without live nonce-bearing child evidence." + "Do not mark Claude Code, OpenCode, or any advisory receipt as certified without live nonce-bearing child evidence." ], "certification_report_reference": "reports/native-host-certification///workdir/dispatch-evidence.json plus the matching bundle.json, invocation receipt, package digest, and validator stdout" } diff --git a/website/data/bundles/balanced-mixed-host.json b/website/data/bundles/balanced-mixed-host.json index 82cf29a..800836b 100644 --- a/website/data/bundles/balanced-mixed-host.json +++ b/website/data/bundles/balanced-mixed-host.json @@ -6,7 +6,7 @@ "generated_at": "2026-07-16T00:00:00Z", "source": { "package": "model-routing", - "package_version": "0.3.5", + "package_version": "0.3.6", "integration": "standalone" }, "policy": { @@ -404,20 +404,20 @@ }, "planr_handoff": { "schema_version": 1, - "switchloom_package": "switchloom@0.3.5", + "switchloom_package": "switchloom@0.3.6", "semantic_role_contract": "Planr supplies usage policy `balanced`, work_type routes, and semantic roles; Switchloom owns the selected host binding, model, effort, fork/context policy, and generated dispatch artifacts.", "required_consumer_behavior": [ "Consume RoutingIntentV1 as the only source for semantic_role, work_type, selected profile, model, effort, agent_type, and fork_turns inputs.", "Use the CLI lifecycle or SetupSpecV1 recipe commands to preview, apply, update, status, rollback, and uninstall repository-local artifacts.", "Record Switchloom package version, package digest, bundle_id, host version, requested dispatch, effective child identity, nonce, and receipt paths before claiming certification.", "Treat advisory or unsupported guarantees as uncertified until nonce-bearing live host evidence upgrades them.", - "For the available-host release gate, Codex may be certified from deterministic effective-routing evidence; Cursor profiles may only claim advisory nonce-correlated requested-routing evidence unless the host exposes authenticated effective role/model telemetry. Claude Code, OpenCode, and Pi remain unavailable or unverified until authentic receipts exist." + "For the available-host release gate, Codex may be certified from deterministic effective-routing evidence; Cursor profiles may only claim advisory nonce-correlated requested-routing evidence unless the host exposes authenticated effective role/model telemetry. Claude Code and OpenCode remain unavailable or unverified until authentic receipts exist." ], "forbidden_duplicate_ownership": [ "Do not maintain a Planr-side model catalog, effort catalog, preset compiler, host adapter, or fork policy normalizer for Switchloom-owned inputs.", "Do not re-normalize Switchloom model, effort, role, agent_type, profile, or fork policy identifiers in Planr.", "Do not overwrite Switchloom-managed artifacts outside preview/apply/update/rollback/uninstall.", - "Do not mark Claude Code, OpenCode, Pi, or any advisory receipt as certified without live nonce-bearing child evidence." + "Do not mark Claude Code, OpenCode, or any advisory receipt as certified without live nonce-bearing child evidence." ], "certification_report_reference": "reports/native-host-certification///workdir/dispatch-evidence.json plus the matching bundle.json, invocation receipt, package digest, and validator stdout" } diff --git a/website/data/bundles/balanced-opencode-native.json b/website/data/bundles/balanced-opencode-native.json index bd3ed1b..20f7753 100644 --- a/website/data/bundles/balanced-opencode-native.json +++ b/website/data/bundles/balanced-opencode-native.json @@ -6,7 +6,7 @@ "generated_at": "2026-07-16T00:00:00Z", "source": { "package": "model-routing", - "package_version": "0.3.5", + "package_version": "0.3.6", "integration": "standalone" }, "policy": { @@ -307,20 +307,20 @@ }, "planr_handoff": { "schema_version": 1, - "switchloom_package": "switchloom@0.3.5", + "switchloom_package": "switchloom@0.3.6", "semantic_role_contract": "Planr supplies usage policy `balanced`, work_type routes, and semantic roles; Switchloom owns the selected host binding, model, effort, fork/context policy, and generated dispatch artifacts.", "required_consumer_behavior": [ "Consume RoutingIntentV1 as the only source for semantic_role, work_type, selected profile, model, effort, agent_type, and fork_turns inputs.", "Use the CLI lifecycle or SetupSpecV1 recipe commands to preview, apply, update, status, rollback, and uninstall repository-local artifacts.", "Record Switchloom package version, package digest, bundle_id, host version, requested dispatch, effective child identity, nonce, and receipt paths before claiming certification.", "Treat advisory or unsupported guarantees as uncertified until nonce-bearing live host evidence upgrades them.", - "For the available-host release gate, Codex may be certified from deterministic effective-routing evidence; Cursor profiles may only claim advisory nonce-correlated requested-routing evidence unless the host exposes authenticated effective role/model telemetry. Claude Code, OpenCode, and Pi remain unavailable or unverified until authentic receipts exist." + "For the available-host release gate, Codex may be certified from deterministic effective-routing evidence; Cursor profiles may only claim advisory nonce-correlated requested-routing evidence unless the host exposes authenticated effective role/model telemetry. Claude Code and OpenCode remain unavailable or unverified until authentic receipts exist." ], "forbidden_duplicate_ownership": [ "Do not maintain a Planr-side model catalog, effort catalog, preset compiler, host adapter, or fork policy normalizer for Switchloom-owned inputs.", "Do not re-normalize Switchloom model, effort, role, agent_type, profile, or fork policy identifiers in Planr.", "Do not overwrite Switchloom-managed artifacts outside preview/apply/update/rollback/uninstall.", - "Do not mark Claude Code, OpenCode, Pi, or any advisory receipt as certified without live nonce-bearing child evidence." + "Do not mark Claude Code, OpenCode, or any advisory receipt as certified without live nonce-bearing child evidence." ], "certification_report_reference": "reports/native-host-certification///workdir/dispatch-evidence.json plus the matching bundle.json, invocation receipt, package digest, and validator stdout" } diff --git a/website/data/bundles/balanced-pi-subagents.json b/website/data/bundles/balanced-pi-subagents.json index 76903bd..9f90082 100644 --- a/website/data/bundles/balanced-pi-subagents.json +++ b/website/data/bundles/balanced-pi-subagents.json @@ -6,7 +6,7 @@ "generated_at": "2026-07-16T00:00:00Z", "source": { "package": "model-routing", - "package_version": "0.3.5", + "package_version": "0.3.6", "integration": "standalone" }, "policy": { @@ -171,7 +171,7 @@ "evaluation_ids": [ "builtin-pi-subagents-v1" ], - "status": "experimental" + "status": "certified" }, "adapter_contract": { "schema_version": 1, @@ -344,20 +344,20 @@ }, "planr_handoff": { "schema_version": 1, - "switchloom_package": "switchloom@0.3.5", + "switchloom_package": "switchloom@0.3.6", "semantic_role_contract": "Planr supplies usage policy `balanced`, work_type routes, and semantic roles; Switchloom owns the selected host binding, model, effort, fork/context policy, and generated dispatch artifacts.", "required_consumer_behavior": [ "Consume RoutingIntentV1 as the only source for semantic_role, work_type, selected profile, model, effort, agent_type, and fork_turns inputs.", "Use the CLI lifecycle or SetupSpecV1 recipe commands to preview, apply, update, status, rollback, and uninstall repository-local artifacts.", "Record Switchloom package version, package digest, bundle_id, host version, requested dispatch, effective child identity, nonce, and receipt paths before claiming certification.", "Treat advisory or unsupported guarantees as uncertified until nonce-bearing live host evidence upgrades them.", - "For the available-host release gate, Codex may be certified from deterministic effective-routing evidence; Cursor profiles may only claim advisory nonce-correlated requested-routing evidence unless the host exposes authenticated effective role/model telemetry. Claude Code, OpenCode, and Pi remain unavailable or unverified until authentic receipts exist." + "For the available-host release gate, Codex may be certified from deterministic effective-routing evidence; Cursor profiles may only claim advisory nonce-correlated requested-routing evidence unless the host exposes authenticated effective role/model telemetry. Claude Code and OpenCode remain unavailable or unverified until authentic receipts exist." ], "forbidden_duplicate_ownership": [ "Do not maintain a Planr-side model catalog, effort catalog, preset compiler, host adapter, or fork policy normalizer for Switchloom-owned inputs.", "Do not re-normalize Switchloom model, effort, role, agent_type, profile, or fork policy identifiers in Planr.", "Do not overwrite Switchloom-managed artifacts outside preview/apply/update/rollback/uninstall.", - "Do not mark Claude Code, OpenCode, Pi, or any advisory receipt as certified without live nonce-bearing child evidence." + "Do not mark Claude Code, OpenCode, or any advisory receipt as certified without live nonce-bearing child evidence." ], "certification_report_reference": "reports/native-host-certification///workdir/dispatch-evidence.json plus the matching bundle.json, invocation receipt, package digest, and validator stdout" } diff --git a/website/data/bundles/low-usage-claude-native.json b/website/data/bundles/low-usage-claude-native.json index 8970338..59f2427 100644 --- a/website/data/bundles/low-usage-claude-native.json +++ b/website/data/bundles/low-usage-claude-native.json @@ -6,7 +6,7 @@ "generated_at": "2026-07-16T00:00:00Z", "source": { "package": "model-routing", - "package_version": "0.3.5", + "package_version": "0.3.6", "integration": "standalone" }, "policy": { @@ -295,20 +295,20 @@ }, "planr_handoff": { "schema_version": 1, - "switchloom_package": "switchloom@0.3.5", + "switchloom_package": "switchloom@0.3.6", "semantic_role_contract": "Planr supplies usage policy `low-usage`, work_type routes, and semantic roles; Switchloom owns the selected host binding, model, effort, fork/context policy, and generated dispatch artifacts.", "required_consumer_behavior": [ "Consume RoutingIntentV1 as the only source for semantic_role, work_type, selected profile, model, effort, agent_type, and fork_turns inputs.", "Use the CLI lifecycle or SetupSpecV1 recipe commands to preview, apply, update, status, rollback, and uninstall repository-local artifacts.", "Record Switchloom package version, package digest, bundle_id, host version, requested dispatch, effective child identity, nonce, and receipt paths before claiming certification.", "Treat advisory or unsupported guarantees as uncertified until nonce-bearing live host evidence upgrades them.", - "For the available-host release gate, Codex may be certified from deterministic effective-routing evidence; Cursor profiles may only claim advisory nonce-correlated requested-routing evidence unless the host exposes authenticated effective role/model telemetry. Claude Code, OpenCode, and Pi remain unavailable or unverified until authentic receipts exist." + "For the available-host release gate, Codex may be certified from deterministic effective-routing evidence; Cursor profiles may only claim advisory nonce-correlated requested-routing evidence unless the host exposes authenticated effective role/model telemetry. Claude Code and OpenCode remain unavailable or unverified until authentic receipts exist." ], "forbidden_duplicate_ownership": [ "Do not maintain a Planr-side model catalog, effort catalog, preset compiler, host adapter, or fork policy normalizer for Switchloom-owned inputs.", "Do not re-normalize Switchloom model, effort, role, agent_type, profile, or fork policy identifiers in Planr.", "Do not overwrite Switchloom-managed artifacts outside preview/apply/update/rollback/uninstall.", - "Do not mark Claude Code, OpenCode, Pi, or any advisory receipt as certified without live nonce-bearing child evidence." + "Do not mark Claude Code, OpenCode, or any advisory receipt as certified without live nonce-bearing child evidence." ], "certification_report_reference": "reports/native-host-certification///workdir/dispatch-evidence.json plus the matching bundle.json, invocation receipt, package digest, and validator stdout" } diff --git a/website/data/bundles/low-usage-codex-openai.json b/website/data/bundles/low-usage-codex-openai.json index ba6fb4f..98f270e 100644 --- a/website/data/bundles/low-usage-codex-openai.json +++ b/website/data/bundles/low-usage-codex-openai.json @@ -6,7 +6,7 @@ "generated_at": "2026-07-16T00:00:00Z", "source": { "package": "model-routing", - "package_version": "0.3.5", + "package_version": "0.3.6", "integration": "standalone" }, "policy": { @@ -476,20 +476,20 @@ }, "planr_handoff": { "schema_version": 1, - "switchloom_package": "switchloom@0.3.5", + "switchloom_package": "switchloom@0.3.6", "semantic_role_contract": "Planr supplies usage policy `low-usage`, work_type routes, and semantic roles; Switchloom owns the selected host binding, model, effort, fork/context policy, and generated dispatch artifacts.", "required_consumer_behavior": [ "Consume RoutingIntentV1 as the only source for semantic_role, work_type, selected profile, model, effort, agent_type, and fork_turns inputs.", "Use the CLI lifecycle or SetupSpecV1 recipe commands to preview, apply, update, status, rollback, and uninstall repository-local artifacts.", "Record Switchloom package version, package digest, bundle_id, host version, requested dispatch, effective child identity, nonce, and receipt paths before claiming certification.", "Treat advisory or unsupported guarantees as uncertified until nonce-bearing live host evidence upgrades them.", - "For the available-host release gate, Codex may be certified from deterministic effective-routing evidence; Cursor profiles may only claim advisory nonce-correlated requested-routing evidence unless the host exposes authenticated effective role/model telemetry. Claude Code, OpenCode, and Pi remain unavailable or unverified until authentic receipts exist." + "For the available-host release gate, Codex may be certified from deterministic effective-routing evidence; Cursor profiles may only claim advisory nonce-correlated requested-routing evidence unless the host exposes authenticated effective role/model telemetry. Claude Code and OpenCode remain unavailable or unverified until authentic receipts exist." ], "forbidden_duplicate_ownership": [ "Do not maintain a Planr-side model catalog, effort catalog, preset compiler, host adapter, or fork policy normalizer for Switchloom-owned inputs.", "Do not re-normalize Switchloom model, effort, role, agent_type, profile, or fork policy identifiers in Planr.", "Do not overwrite Switchloom-managed artifacts outside preview/apply/update/rollback/uninstall.", - "Do not mark Claude Code, OpenCode, Pi, or any advisory receipt as certified without live nonce-bearing child evidence." + "Do not mark Claude Code, OpenCode, or any advisory receipt as certified without live nonce-bearing child evidence." ], "certification_report_reference": "reports/native-host-certification///workdir/dispatch-evidence.json plus the matching bundle.json, invocation receipt, package digest, and validator stdout" } diff --git a/website/data/bundles/low-usage-mixed-host.json b/website/data/bundles/low-usage-mixed-host.json index 0caf50d..9884ecb 100644 --- a/website/data/bundles/low-usage-mixed-host.json +++ b/website/data/bundles/low-usage-mixed-host.json @@ -6,7 +6,7 @@ "generated_at": "2026-07-16T00:00:00Z", "source": { "package": "model-routing", - "package_version": "0.3.5", + "package_version": "0.3.6", "integration": "standalone" }, "policy": { @@ -404,20 +404,20 @@ }, "planr_handoff": { "schema_version": 1, - "switchloom_package": "switchloom@0.3.5", + "switchloom_package": "switchloom@0.3.6", "semantic_role_contract": "Planr supplies usage policy `low-usage`, work_type routes, and semantic roles; Switchloom owns the selected host binding, model, effort, fork/context policy, and generated dispatch artifacts.", "required_consumer_behavior": [ "Consume RoutingIntentV1 as the only source for semantic_role, work_type, selected profile, model, effort, agent_type, and fork_turns inputs.", "Use the CLI lifecycle or SetupSpecV1 recipe commands to preview, apply, update, status, rollback, and uninstall repository-local artifacts.", "Record Switchloom package version, package digest, bundle_id, host version, requested dispatch, effective child identity, nonce, and receipt paths before claiming certification.", "Treat advisory or unsupported guarantees as uncertified until nonce-bearing live host evidence upgrades them.", - "For the available-host release gate, Codex may be certified from deterministic effective-routing evidence; Cursor profiles may only claim advisory nonce-correlated requested-routing evidence unless the host exposes authenticated effective role/model telemetry. Claude Code, OpenCode, and Pi remain unavailable or unverified until authentic receipts exist." + "For the available-host release gate, Codex may be certified from deterministic effective-routing evidence; Cursor profiles may only claim advisory nonce-correlated requested-routing evidence unless the host exposes authenticated effective role/model telemetry. Claude Code and OpenCode remain unavailable or unverified until authentic receipts exist." ], "forbidden_duplicate_ownership": [ "Do not maintain a Planr-side model catalog, effort catalog, preset compiler, host adapter, or fork policy normalizer for Switchloom-owned inputs.", "Do not re-normalize Switchloom model, effort, role, agent_type, profile, or fork policy identifiers in Planr.", "Do not overwrite Switchloom-managed artifacts outside preview/apply/update/rollback/uninstall.", - "Do not mark Claude Code, OpenCode, Pi, or any advisory receipt as certified without live nonce-bearing child evidence." + "Do not mark Claude Code, OpenCode, or any advisory receipt as certified without live nonce-bearing child evidence." ], "certification_report_reference": "reports/native-host-certification///workdir/dispatch-evidence.json plus the matching bundle.json, invocation receipt, package digest, and validator stdout" } diff --git a/website/data/bundles/low-usage-opencode-native.json b/website/data/bundles/low-usage-opencode-native.json index bdc8ed3..a8f7abc 100644 --- a/website/data/bundles/low-usage-opencode-native.json +++ b/website/data/bundles/low-usage-opencode-native.json @@ -6,7 +6,7 @@ "generated_at": "2026-07-16T00:00:00Z", "source": { "package": "model-routing", - "package_version": "0.3.5", + "package_version": "0.3.6", "integration": "standalone" }, "policy": { @@ -307,20 +307,20 @@ }, "planr_handoff": { "schema_version": 1, - "switchloom_package": "switchloom@0.3.5", + "switchloom_package": "switchloom@0.3.6", "semantic_role_contract": "Planr supplies usage policy `low-usage`, work_type routes, and semantic roles; Switchloom owns the selected host binding, model, effort, fork/context policy, and generated dispatch artifacts.", "required_consumer_behavior": [ "Consume RoutingIntentV1 as the only source for semantic_role, work_type, selected profile, model, effort, agent_type, and fork_turns inputs.", "Use the CLI lifecycle or SetupSpecV1 recipe commands to preview, apply, update, status, rollback, and uninstall repository-local artifacts.", "Record Switchloom package version, package digest, bundle_id, host version, requested dispatch, effective child identity, nonce, and receipt paths before claiming certification.", "Treat advisory or unsupported guarantees as uncertified until nonce-bearing live host evidence upgrades them.", - "For the available-host release gate, Codex may be certified from deterministic effective-routing evidence; Cursor profiles may only claim advisory nonce-correlated requested-routing evidence unless the host exposes authenticated effective role/model telemetry. Claude Code, OpenCode, and Pi remain unavailable or unverified until authentic receipts exist." + "For the available-host release gate, Codex may be certified from deterministic effective-routing evidence; Cursor profiles may only claim advisory nonce-correlated requested-routing evidence unless the host exposes authenticated effective role/model telemetry. Claude Code and OpenCode remain unavailable or unverified until authentic receipts exist." ], "forbidden_duplicate_ownership": [ "Do not maintain a Planr-side model catalog, effort catalog, preset compiler, host adapter, or fork policy normalizer for Switchloom-owned inputs.", "Do not re-normalize Switchloom model, effort, role, agent_type, profile, or fork policy identifiers in Planr.", "Do not overwrite Switchloom-managed artifacts outside preview/apply/update/rollback/uninstall.", - "Do not mark Claude Code, OpenCode, Pi, or any advisory receipt as certified without live nonce-bearing child evidence." + "Do not mark Claude Code, OpenCode, or any advisory receipt as certified without live nonce-bearing child evidence." ], "certification_report_reference": "reports/native-host-certification///workdir/dispatch-evidence.json plus the matching bundle.json, invocation receipt, package digest, and validator stdout" } diff --git a/website/data/bundles/low-usage-pi-subagents.json b/website/data/bundles/low-usage-pi-subagents.json index b905484..47355f0 100644 --- a/website/data/bundles/low-usage-pi-subagents.json +++ b/website/data/bundles/low-usage-pi-subagents.json @@ -6,7 +6,7 @@ "generated_at": "2026-07-16T00:00:00Z", "source": { "package": "model-routing", - "package_version": "0.3.5", + "package_version": "0.3.6", "integration": "standalone" }, "policy": { @@ -171,7 +171,7 @@ "evaluation_ids": [ "builtin-pi-subagents-v1" ], - "status": "experimental" + "status": "certified" }, "adapter_contract": { "schema_version": 1, @@ -344,20 +344,20 @@ }, "planr_handoff": { "schema_version": 1, - "switchloom_package": "switchloom@0.3.5", + "switchloom_package": "switchloom@0.3.6", "semantic_role_contract": "Planr supplies usage policy `low-usage`, work_type routes, and semantic roles; Switchloom owns the selected host binding, model, effort, fork/context policy, and generated dispatch artifacts.", "required_consumer_behavior": [ "Consume RoutingIntentV1 as the only source for semantic_role, work_type, selected profile, model, effort, agent_type, and fork_turns inputs.", "Use the CLI lifecycle or SetupSpecV1 recipe commands to preview, apply, update, status, rollback, and uninstall repository-local artifacts.", "Record Switchloom package version, package digest, bundle_id, host version, requested dispatch, effective child identity, nonce, and receipt paths before claiming certification.", "Treat advisory or unsupported guarantees as uncertified until nonce-bearing live host evidence upgrades them.", - "For the available-host release gate, Codex may be certified from deterministic effective-routing evidence; Cursor profiles may only claim advisory nonce-correlated requested-routing evidence unless the host exposes authenticated effective role/model telemetry. Claude Code, OpenCode, and Pi remain unavailable or unverified until authentic receipts exist." + "For the available-host release gate, Codex may be certified from deterministic effective-routing evidence; Cursor profiles may only claim advisory nonce-correlated requested-routing evidence unless the host exposes authenticated effective role/model telemetry. Claude Code and OpenCode remain unavailable or unverified until authentic receipts exist." ], "forbidden_duplicate_ownership": [ "Do not maintain a Planr-side model catalog, effort catalog, preset compiler, host adapter, or fork policy normalizer for Switchloom-owned inputs.", "Do not re-normalize Switchloom model, effort, role, agent_type, profile, or fork policy identifiers in Planr.", "Do not overwrite Switchloom-managed artifacts outside preview/apply/update/rollback/uninstall.", - "Do not mark Claude Code, OpenCode, Pi, or any advisory receipt as certified without live nonce-bearing child evidence." + "Do not mark Claude Code, OpenCode, or any advisory receipt as certified without live nonce-bearing child evidence." ], "certification_report_reference": "reports/native-host-certification///workdir/dispatch-evidence.json plus the matching bundle.json, invocation receipt, package digest, and validator stdout" } diff --git a/website/data/bundles/max-quality-claude-native.json b/website/data/bundles/max-quality-claude-native.json index d53bf92..4954d1b 100644 --- a/website/data/bundles/max-quality-claude-native.json +++ b/website/data/bundles/max-quality-claude-native.json @@ -6,7 +6,7 @@ "generated_at": "2026-07-16T00:00:00Z", "source": { "package": "model-routing", - "package_version": "0.3.5", + "package_version": "0.3.6", "integration": "standalone" }, "policy": { @@ -295,20 +295,20 @@ }, "planr_handoff": { "schema_version": 1, - "switchloom_package": "switchloom@0.3.5", + "switchloom_package": "switchloom@0.3.6", "semantic_role_contract": "Planr supplies usage policy `max-quality`, work_type routes, and semantic roles; Switchloom owns the selected host binding, model, effort, fork/context policy, and generated dispatch artifacts.", "required_consumer_behavior": [ "Consume RoutingIntentV1 as the only source for semantic_role, work_type, selected profile, model, effort, agent_type, and fork_turns inputs.", "Use the CLI lifecycle or SetupSpecV1 recipe commands to preview, apply, update, status, rollback, and uninstall repository-local artifacts.", "Record Switchloom package version, package digest, bundle_id, host version, requested dispatch, effective child identity, nonce, and receipt paths before claiming certification.", "Treat advisory or unsupported guarantees as uncertified until nonce-bearing live host evidence upgrades them.", - "For the available-host release gate, Codex may be certified from deterministic effective-routing evidence; Cursor profiles may only claim advisory nonce-correlated requested-routing evidence unless the host exposes authenticated effective role/model telemetry. Claude Code, OpenCode, and Pi remain unavailable or unverified until authentic receipts exist." + "For the available-host release gate, Codex may be certified from deterministic effective-routing evidence; Cursor profiles may only claim advisory nonce-correlated requested-routing evidence unless the host exposes authenticated effective role/model telemetry. Claude Code and OpenCode remain unavailable or unverified until authentic receipts exist." ], "forbidden_duplicate_ownership": [ "Do not maintain a Planr-side model catalog, effort catalog, preset compiler, host adapter, or fork policy normalizer for Switchloom-owned inputs.", "Do not re-normalize Switchloom model, effort, role, agent_type, profile, or fork policy identifiers in Planr.", "Do not overwrite Switchloom-managed artifacts outside preview/apply/update/rollback/uninstall.", - "Do not mark Claude Code, OpenCode, Pi, or any advisory receipt as certified without live nonce-bearing child evidence." + "Do not mark Claude Code, OpenCode, or any advisory receipt as certified without live nonce-bearing child evidence." ], "certification_report_reference": "reports/native-host-certification///workdir/dispatch-evidence.json plus the matching bundle.json, invocation receipt, package digest, and validator stdout" } diff --git a/website/data/bundles/max-quality-codex-openai.json b/website/data/bundles/max-quality-codex-openai.json index a9ba0ec..79cb227 100644 --- a/website/data/bundles/max-quality-codex-openai.json +++ b/website/data/bundles/max-quality-codex-openai.json @@ -6,7 +6,7 @@ "generated_at": "2026-07-16T00:00:00Z", "source": { "package": "model-routing", - "package_version": "0.3.5", + "package_version": "0.3.6", "integration": "standalone" }, "policy": { @@ -476,20 +476,20 @@ }, "planr_handoff": { "schema_version": 1, - "switchloom_package": "switchloom@0.3.5", + "switchloom_package": "switchloom@0.3.6", "semantic_role_contract": "Planr supplies usage policy `max-quality`, work_type routes, and semantic roles; Switchloom owns the selected host binding, model, effort, fork/context policy, and generated dispatch artifacts.", "required_consumer_behavior": [ "Consume RoutingIntentV1 as the only source for semantic_role, work_type, selected profile, model, effort, agent_type, and fork_turns inputs.", "Use the CLI lifecycle or SetupSpecV1 recipe commands to preview, apply, update, status, rollback, and uninstall repository-local artifacts.", "Record Switchloom package version, package digest, bundle_id, host version, requested dispatch, effective child identity, nonce, and receipt paths before claiming certification.", "Treat advisory or unsupported guarantees as uncertified until nonce-bearing live host evidence upgrades them.", - "For the available-host release gate, Codex may be certified from deterministic effective-routing evidence; Cursor profiles may only claim advisory nonce-correlated requested-routing evidence unless the host exposes authenticated effective role/model telemetry. Claude Code, OpenCode, and Pi remain unavailable or unverified until authentic receipts exist." + "For the available-host release gate, Codex may be certified from deterministic effective-routing evidence; Cursor profiles may only claim advisory nonce-correlated requested-routing evidence unless the host exposes authenticated effective role/model telemetry. Claude Code and OpenCode remain unavailable or unverified until authentic receipts exist." ], "forbidden_duplicate_ownership": [ "Do not maintain a Planr-side model catalog, effort catalog, preset compiler, host adapter, or fork policy normalizer for Switchloom-owned inputs.", "Do not re-normalize Switchloom model, effort, role, agent_type, profile, or fork policy identifiers in Planr.", "Do not overwrite Switchloom-managed artifacts outside preview/apply/update/rollback/uninstall.", - "Do not mark Claude Code, OpenCode, Pi, or any advisory receipt as certified without live nonce-bearing child evidence." + "Do not mark Claude Code, OpenCode, or any advisory receipt as certified without live nonce-bearing child evidence." ], "certification_report_reference": "reports/native-host-certification///workdir/dispatch-evidence.json plus the matching bundle.json, invocation receipt, package digest, and validator stdout" } diff --git a/website/data/bundles/max-quality-cursor-fable-grok.json b/website/data/bundles/max-quality-cursor-fable-grok.json index daccb38..cc190fd 100644 --- a/website/data/bundles/max-quality-cursor-fable-grok.json +++ b/website/data/bundles/max-quality-cursor-fable-grok.json @@ -6,7 +6,7 @@ "generated_at": "2026-07-16T00:00:00Z", "source": { "package": "model-routing", - "package_version": "0.3.5", + "package_version": "0.3.6", "integration": "standalone" }, "policy": { @@ -288,20 +288,20 @@ }, "planr_handoff": { "schema_version": 1, - "switchloom_package": "switchloom@0.3.5", + "switchloom_package": "switchloom@0.3.6", "semantic_role_contract": "Planr supplies usage policy `max-quality`, work_type routes, and semantic roles; Switchloom owns the selected host binding, model, effort, fork/context policy, and generated dispatch artifacts.", "required_consumer_behavior": [ "Consume RoutingIntentV1 as the only source for semantic_role, work_type, selected profile, model, effort, agent_type, and fork_turns inputs.", "Use the CLI lifecycle or SetupSpecV1 recipe commands to preview, apply, update, status, rollback, and uninstall repository-local artifacts.", "Record Switchloom package version, package digest, bundle_id, host version, requested dispatch, effective child identity, nonce, and receipt paths before claiming certification.", "Treat advisory or unsupported guarantees as uncertified until nonce-bearing live host evidence upgrades them.", - "For the available-host release gate, Codex may be certified from deterministic effective-routing evidence; Cursor profiles may only claim advisory nonce-correlated requested-routing evidence unless the host exposes authenticated effective role/model telemetry. Claude Code, OpenCode, and Pi remain unavailable or unverified until authentic receipts exist." + "For the available-host release gate, Codex may be certified from deterministic effective-routing evidence; Cursor profiles may only claim advisory nonce-correlated requested-routing evidence unless the host exposes authenticated effective role/model telemetry. Claude Code and OpenCode remain unavailable or unverified until authentic receipts exist." ], "forbidden_duplicate_ownership": [ "Do not maintain a Planr-side model catalog, effort catalog, preset compiler, host adapter, or fork policy normalizer for Switchloom-owned inputs.", "Do not re-normalize Switchloom model, effort, role, agent_type, profile, or fork policy identifiers in Planr.", "Do not overwrite Switchloom-managed artifacts outside preview/apply/update/rollback/uninstall.", - "Do not mark Claude Code, OpenCode, Pi, or any advisory receipt as certified without live nonce-bearing child evidence." + "Do not mark Claude Code, OpenCode, or any advisory receipt as certified without live nonce-bearing child evidence." ], "certification_report_reference": "reports/native-host-certification///workdir/dispatch-evidence.json plus the matching bundle.json, invocation receipt, package digest, and validator stdout" } diff --git a/website/data/bundles/max-quality-mixed-host.json b/website/data/bundles/max-quality-mixed-host.json index 4fc57a6..8759d9a 100644 --- a/website/data/bundles/max-quality-mixed-host.json +++ b/website/data/bundles/max-quality-mixed-host.json @@ -6,7 +6,7 @@ "generated_at": "2026-07-16T00:00:00Z", "source": { "package": "model-routing", - "package_version": "0.3.5", + "package_version": "0.3.6", "integration": "standalone" }, "policy": { @@ -404,20 +404,20 @@ }, "planr_handoff": { "schema_version": 1, - "switchloom_package": "switchloom@0.3.5", + "switchloom_package": "switchloom@0.3.6", "semantic_role_contract": "Planr supplies usage policy `max-quality`, work_type routes, and semantic roles; Switchloom owns the selected host binding, model, effort, fork/context policy, and generated dispatch artifacts.", "required_consumer_behavior": [ "Consume RoutingIntentV1 as the only source for semantic_role, work_type, selected profile, model, effort, agent_type, and fork_turns inputs.", "Use the CLI lifecycle or SetupSpecV1 recipe commands to preview, apply, update, status, rollback, and uninstall repository-local artifacts.", "Record Switchloom package version, package digest, bundle_id, host version, requested dispatch, effective child identity, nonce, and receipt paths before claiming certification.", "Treat advisory or unsupported guarantees as uncertified until nonce-bearing live host evidence upgrades them.", - "For the available-host release gate, Codex may be certified from deterministic effective-routing evidence; Cursor profiles may only claim advisory nonce-correlated requested-routing evidence unless the host exposes authenticated effective role/model telemetry. Claude Code, OpenCode, and Pi remain unavailable or unverified until authentic receipts exist." + "For the available-host release gate, Codex may be certified from deterministic effective-routing evidence; Cursor profiles may only claim advisory nonce-correlated requested-routing evidence unless the host exposes authenticated effective role/model telemetry. Claude Code and OpenCode remain unavailable or unverified until authentic receipts exist." ], "forbidden_duplicate_ownership": [ "Do not maintain a Planr-side model catalog, effort catalog, preset compiler, host adapter, or fork policy normalizer for Switchloom-owned inputs.", "Do not re-normalize Switchloom model, effort, role, agent_type, profile, or fork policy identifiers in Planr.", "Do not overwrite Switchloom-managed artifacts outside preview/apply/update/rollback/uninstall.", - "Do not mark Claude Code, OpenCode, Pi, or any advisory receipt as certified without live nonce-bearing child evidence." + "Do not mark Claude Code, OpenCode, or any advisory receipt as certified without live nonce-bearing child evidence." ], "certification_report_reference": "reports/native-host-certification///workdir/dispatch-evidence.json plus the matching bundle.json, invocation receipt, package digest, and validator stdout" } diff --git a/website/data/bundles/max-quality-opencode-native.json b/website/data/bundles/max-quality-opencode-native.json index cdb0a49..e949278 100644 --- a/website/data/bundles/max-quality-opencode-native.json +++ b/website/data/bundles/max-quality-opencode-native.json @@ -6,7 +6,7 @@ "generated_at": "2026-07-16T00:00:00Z", "source": { "package": "model-routing", - "package_version": "0.3.5", + "package_version": "0.3.6", "integration": "standalone" }, "policy": { @@ -307,20 +307,20 @@ }, "planr_handoff": { "schema_version": 1, - "switchloom_package": "switchloom@0.3.5", + "switchloom_package": "switchloom@0.3.6", "semantic_role_contract": "Planr supplies usage policy `max-quality`, work_type routes, and semantic roles; Switchloom owns the selected host binding, model, effort, fork/context policy, and generated dispatch artifacts.", "required_consumer_behavior": [ "Consume RoutingIntentV1 as the only source for semantic_role, work_type, selected profile, model, effort, agent_type, and fork_turns inputs.", "Use the CLI lifecycle or SetupSpecV1 recipe commands to preview, apply, update, status, rollback, and uninstall repository-local artifacts.", "Record Switchloom package version, package digest, bundle_id, host version, requested dispatch, effective child identity, nonce, and receipt paths before claiming certification.", "Treat advisory or unsupported guarantees as uncertified until nonce-bearing live host evidence upgrades them.", - "For the available-host release gate, Codex may be certified from deterministic effective-routing evidence; Cursor profiles may only claim advisory nonce-correlated requested-routing evidence unless the host exposes authenticated effective role/model telemetry. Claude Code, OpenCode, and Pi remain unavailable or unverified until authentic receipts exist." + "For the available-host release gate, Codex may be certified from deterministic effective-routing evidence; Cursor profiles may only claim advisory nonce-correlated requested-routing evidence unless the host exposes authenticated effective role/model telemetry. Claude Code and OpenCode remain unavailable or unverified until authentic receipts exist." ], "forbidden_duplicate_ownership": [ "Do not maintain a Planr-side model catalog, effort catalog, preset compiler, host adapter, or fork policy normalizer for Switchloom-owned inputs.", "Do not re-normalize Switchloom model, effort, role, agent_type, profile, or fork policy identifiers in Planr.", "Do not overwrite Switchloom-managed artifacts outside preview/apply/update/rollback/uninstall.", - "Do not mark Claude Code, OpenCode, Pi, or any advisory receipt as certified without live nonce-bearing child evidence." + "Do not mark Claude Code, OpenCode, or any advisory receipt as certified without live nonce-bearing child evidence." ], "certification_report_reference": "reports/native-host-certification///workdir/dispatch-evidence.json plus the matching bundle.json, invocation receipt, package digest, and validator stdout" } diff --git a/website/data/bundles/max-quality-pi-subagents.json b/website/data/bundles/max-quality-pi-subagents.json index 0ada310..1a4e468 100644 --- a/website/data/bundles/max-quality-pi-subagents.json +++ b/website/data/bundles/max-quality-pi-subagents.json @@ -6,7 +6,7 @@ "generated_at": "2026-07-16T00:00:00Z", "source": { "package": "model-routing", - "package_version": "0.3.5", + "package_version": "0.3.6", "integration": "standalone" }, "policy": { @@ -171,7 +171,7 @@ "evaluation_ids": [ "builtin-pi-subagents-v1" ], - "status": "experimental" + "status": "certified" }, "adapter_contract": { "schema_version": 1, @@ -344,20 +344,20 @@ }, "planr_handoff": { "schema_version": 1, - "switchloom_package": "switchloom@0.3.5", + "switchloom_package": "switchloom@0.3.6", "semantic_role_contract": "Planr supplies usage policy `max-quality`, work_type routes, and semantic roles; Switchloom owns the selected host binding, model, effort, fork/context policy, and generated dispatch artifacts.", "required_consumer_behavior": [ "Consume RoutingIntentV1 as the only source for semantic_role, work_type, selected profile, model, effort, agent_type, and fork_turns inputs.", "Use the CLI lifecycle or SetupSpecV1 recipe commands to preview, apply, update, status, rollback, and uninstall repository-local artifacts.", "Record Switchloom package version, package digest, bundle_id, host version, requested dispatch, effective child identity, nonce, and receipt paths before claiming certification.", "Treat advisory or unsupported guarantees as uncertified until nonce-bearing live host evidence upgrades them.", - "For the available-host release gate, Codex may be certified from deterministic effective-routing evidence; Cursor profiles may only claim advisory nonce-correlated requested-routing evidence unless the host exposes authenticated effective role/model telemetry. Claude Code, OpenCode, and Pi remain unavailable or unverified until authentic receipts exist." + "For the available-host release gate, Codex may be certified from deterministic effective-routing evidence; Cursor profiles may only claim advisory nonce-correlated requested-routing evidence unless the host exposes authenticated effective role/model telemetry. Claude Code and OpenCode remain unavailable or unverified until authentic receipts exist." ], "forbidden_duplicate_ownership": [ "Do not maintain a Planr-side model catalog, effort catalog, preset compiler, host adapter, or fork policy normalizer for Switchloom-owned inputs.", "Do not re-normalize Switchloom model, effort, role, agent_type, profile, or fork policy identifiers in Planr.", "Do not overwrite Switchloom-managed artifacts outside preview/apply/update/rollback/uninstall.", - "Do not mark Claude Code, OpenCode, Pi, or any advisory receipt as certified without live nonce-bearing child evidence." + "Do not mark Claude Code, OpenCode, or any advisory receipt as certified without live nonce-bearing child evidence." ], "certification_report_reference": "reports/native-host-certification///workdir/dispatch-evidence.json plus the matching bundle.json, invocation receipt, package digest, and validator stdout" } diff --git a/website/data/bundles/read-only-audit-claude-native.json b/website/data/bundles/read-only-audit-claude-native.json index 21244a9..3ce95be 100644 --- a/website/data/bundles/read-only-audit-claude-native.json +++ b/website/data/bundles/read-only-audit-claude-native.json @@ -6,7 +6,7 @@ "generated_at": "2026-07-16T00:00:00Z", "source": { "package": "model-routing", - "package_version": "0.3.5", + "package_version": "0.3.6", "integration": "standalone" }, "policy": { @@ -290,20 +290,20 @@ }, "planr_handoff": { "schema_version": 1, - "switchloom_package": "switchloom@0.3.5", + "switchloom_package": "switchloom@0.3.6", "semantic_role_contract": "Planr supplies usage policy `read-only-audit`, work_type routes, and semantic roles; Switchloom owns the selected host binding, model, effort, fork/context policy, and generated dispatch artifacts.", "required_consumer_behavior": [ "Consume RoutingIntentV1 as the only source for semantic_role, work_type, selected profile, model, effort, agent_type, and fork_turns inputs.", "Use the CLI lifecycle or SetupSpecV1 recipe commands to preview, apply, update, status, rollback, and uninstall repository-local artifacts.", "Record Switchloom package version, package digest, bundle_id, host version, requested dispatch, effective child identity, nonce, and receipt paths before claiming certification.", "Treat advisory or unsupported guarantees as uncertified until nonce-bearing live host evidence upgrades them.", - "For the available-host release gate, Codex may be certified from deterministic effective-routing evidence; Cursor profiles may only claim advisory nonce-correlated requested-routing evidence unless the host exposes authenticated effective role/model telemetry. Claude Code, OpenCode, and Pi remain unavailable or unverified until authentic receipts exist." + "For the available-host release gate, Codex may be certified from deterministic effective-routing evidence; Cursor profiles may only claim advisory nonce-correlated requested-routing evidence unless the host exposes authenticated effective role/model telemetry. Claude Code and OpenCode remain unavailable or unverified until authentic receipts exist." ], "forbidden_duplicate_ownership": [ "Do not maintain a Planr-side model catalog, effort catalog, preset compiler, host adapter, or fork policy normalizer for Switchloom-owned inputs.", "Do not re-normalize Switchloom model, effort, role, agent_type, profile, or fork policy identifiers in Planr.", "Do not overwrite Switchloom-managed artifacts outside preview/apply/update/rollback/uninstall.", - "Do not mark Claude Code, OpenCode, Pi, or any advisory receipt as certified without live nonce-bearing child evidence." + "Do not mark Claude Code, OpenCode, or any advisory receipt as certified without live nonce-bearing child evidence." ], "certification_report_reference": "reports/native-host-certification///workdir/dispatch-evidence.json plus the matching bundle.json, invocation receipt, package digest, and validator stdout" } diff --git a/website/data/bundles/read-only-audit-codex-openai.json b/website/data/bundles/read-only-audit-codex-openai.json index b63bd33..01827b5 100644 --- a/website/data/bundles/read-only-audit-codex-openai.json +++ b/website/data/bundles/read-only-audit-codex-openai.json @@ -6,7 +6,7 @@ "generated_at": "2026-07-16T00:00:00Z", "source": { "package": "model-routing", - "package_version": "0.3.5", + "package_version": "0.3.6", "integration": "standalone" }, "policy": { @@ -471,20 +471,20 @@ }, "planr_handoff": { "schema_version": 1, - "switchloom_package": "switchloom@0.3.5", + "switchloom_package": "switchloom@0.3.6", "semantic_role_contract": "Planr supplies usage policy `read-only-audit`, work_type routes, and semantic roles; Switchloom owns the selected host binding, model, effort, fork/context policy, and generated dispatch artifacts.", "required_consumer_behavior": [ "Consume RoutingIntentV1 as the only source for semantic_role, work_type, selected profile, model, effort, agent_type, and fork_turns inputs.", "Use the CLI lifecycle or SetupSpecV1 recipe commands to preview, apply, update, status, rollback, and uninstall repository-local artifacts.", "Record Switchloom package version, package digest, bundle_id, host version, requested dispatch, effective child identity, nonce, and receipt paths before claiming certification.", "Treat advisory or unsupported guarantees as uncertified until nonce-bearing live host evidence upgrades them.", - "For the available-host release gate, Codex may be certified from deterministic effective-routing evidence; Cursor profiles may only claim advisory nonce-correlated requested-routing evidence unless the host exposes authenticated effective role/model telemetry. Claude Code, OpenCode, and Pi remain unavailable or unverified until authentic receipts exist." + "For the available-host release gate, Codex may be certified from deterministic effective-routing evidence; Cursor profiles may only claim advisory nonce-correlated requested-routing evidence unless the host exposes authenticated effective role/model telemetry. Claude Code and OpenCode remain unavailable or unverified until authentic receipts exist." ], "forbidden_duplicate_ownership": [ "Do not maintain a Planr-side model catalog, effort catalog, preset compiler, host adapter, or fork policy normalizer for Switchloom-owned inputs.", "Do not re-normalize Switchloom model, effort, role, agent_type, profile, or fork policy identifiers in Planr.", "Do not overwrite Switchloom-managed artifacts outside preview/apply/update/rollback/uninstall.", - "Do not mark Claude Code, OpenCode, Pi, or any advisory receipt as certified without live nonce-bearing child evidence." + "Do not mark Claude Code, OpenCode, or any advisory receipt as certified without live nonce-bearing child evidence." ], "certification_report_reference": "reports/native-host-certification///workdir/dispatch-evidence.json plus the matching bundle.json, invocation receipt, package digest, and validator stdout" } diff --git a/website/data/bundles/read-only-audit-cursor-fable-grok.json b/website/data/bundles/read-only-audit-cursor-fable-grok.json index fd3a14f..f60ea80 100644 --- a/website/data/bundles/read-only-audit-cursor-fable-grok.json +++ b/website/data/bundles/read-only-audit-cursor-fable-grok.json @@ -6,7 +6,7 @@ "generated_at": "2026-07-16T00:00:00Z", "source": { "package": "model-routing", - "package_version": "0.3.5", + "package_version": "0.3.6", "integration": "standalone" }, "policy": { @@ -283,20 +283,20 @@ }, "planr_handoff": { "schema_version": 1, - "switchloom_package": "switchloom@0.3.5", + "switchloom_package": "switchloom@0.3.6", "semantic_role_contract": "Planr supplies usage policy `read-only-audit`, work_type routes, and semantic roles; Switchloom owns the selected host binding, model, effort, fork/context policy, and generated dispatch artifacts.", "required_consumer_behavior": [ "Consume RoutingIntentV1 as the only source for semantic_role, work_type, selected profile, model, effort, agent_type, and fork_turns inputs.", "Use the CLI lifecycle or SetupSpecV1 recipe commands to preview, apply, update, status, rollback, and uninstall repository-local artifacts.", "Record Switchloom package version, package digest, bundle_id, host version, requested dispatch, effective child identity, nonce, and receipt paths before claiming certification.", "Treat advisory or unsupported guarantees as uncertified until nonce-bearing live host evidence upgrades them.", - "For the available-host release gate, Codex may be certified from deterministic effective-routing evidence; Cursor profiles may only claim advisory nonce-correlated requested-routing evidence unless the host exposes authenticated effective role/model telemetry. Claude Code, OpenCode, and Pi remain unavailable or unverified until authentic receipts exist." + "For the available-host release gate, Codex may be certified from deterministic effective-routing evidence; Cursor profiles may only claim advisory nonce-correlated requested-routing evidence unless the host exposes authenticated effective role/model telemetry. Claude Code and OpenCode remain unavailable or unverified until authentic receipts exist." ], "forbidden_duplicate_ownership": [ "Do not maintain a Planr-side model catalog, effort catalog, preset compiler, host adapter, or fork policy normalizer for Switchloom-owned inputs.", "Do not re-normalize Switchloom model, effort, role, agent_type, profile, or fork policy identifiers in Planr.", "Do not overwrite Switchloom-managed artifacts outside preview/apply/update/rollback/uninstall.", - "Do not mark Claude Code, OpenCode, Pi, or any advisory receipt as certified without live nonce-bearing child evidence." + "Do not mark Claude Code, OpenCode, or any advisory receipt as certified without live nonce-bearing child evidence." ], "certification_report_reference": "reports/native-host-certification///workdir/dispatch-evidence.json plus the matching bundle.json, invocation receipt, package digest, and validator stdout" } diff --git a/website/data/bundles/read-only-audit-mixed-host.json b/website/data/bundles/read-only-audit-mixed-host.json index 4963894..57e9e1d 100644 --- a/website/data/bundles/read-only-audit-mixed-host.json +++ b/website/data/bundles/read-only-audit-mixed-host.json @@ -6,7 +6,7 @@ "generated_at": "2026-07-16T00:00:00Z", "source": { "package": "model-routing", - "package_version": "0.3.5", + "package_version": "0.3.6", "integration": "standalone" }, "policy": { @@ -399,20 +399,20 @@ }, "planr_handoff": { "schema_version": 1, - "switchloom_package": "switchloom@0.3.5", + "switchloom_package": "switchloom@0.3.6", "semantic_role_contract": "Planr supplies usage policy `read-only-audit`, work_type routes, and semantic roles; Switchloom owns the selected host binding, model, effort, fork/context policy, and generated dispatch artifacts.", "required_consumer_behavior": [ "Consume RoutingIntentV1 as the only source for semantic_role, work_type, selected profile, model, effort, agent_type, and fork_turns inputs.", "Use the CLI lifecycle or SetupSpecV1 recipe commands to preview, apply, update, status, rollback, and uninstall repository-local artifacts.", "Record Switchloom package version, package digest, bundle_id, host version, requested dispatch, effective child identity, nonce, and receipt paths before claiming certification.", "Treat advisory or unsupported guarantees as uncertified until nonce-bearing live host evidence upgrades them.", - "For the available-host release gate, Codex may be certified from deterministic effective-routing evidence; Cursor profiles may only claim advisory nonce-correlated requested-routing evidence unless the host exposes authenticated effective role/model telemetry. Claude Code, OpenCode, and Pi remain unavailable or unverified until authentic receipts exist." + "For the available-host release gate, Codex may be certified from deterministic effective-routing evidence; Cursor profiles may only claim advisory nonce-correlated requested-routing evidence unless the host exposes authenticated effective role/model telemetry. Claude Code and OpenCode remain unavailable or unverified until authentic receipts exist." ], "forbidden_duplicate_ownership": [ "Do not maintain a Planr-side model catalog, effort catalog, preset compiler, host adapter, or fork policy normalizer for Switchloom-owned inputs.", "Do not re-normalize Switchloom model, effort, role, agent_type, profile, or fork policy identifiers in Planr.", "Do not overwrite Switchloom-managed artifacts outside preview/apply/update/rollback/uninstall.", - "Do not mark Claude Code, OpenCode, Pi, or any advisory receipt as certified without live nonce-bearing child evidence." + "Do not mark Claude Code, OpenCode, or any advisory receipt as certified without live nonce-bearing child evidence." ], "certification_report_reference": "reports/native-host-certification///workdir/dispatch-evidence.json plus the matching bundle.json, invocation receipt, package digest, and validator stdout" } diff --git a/website/data/bundles/read-only-audit-opencode-native.json b/website/data/bundles/read-only-audit-opencode-native.json index 80f411e..ed90047 100644 --- a/website/data/bundles/read-only-audit-opencode-native.json +++ b/website/data/bundles/read-only-audit-opencode-native.json @@ -6,7 +6,7 @@ "generated_at": "2026-07-16T00:00:00Z", "source": { "package": "model-routing", - "package_version": "0.3.5", + "package_version": "0.3.6", "integration": "standalone" }, "policy": { @@ -302,20 +302,20 @@ }, "planr_handoff": { "schema_version": 1, - "switchloom_package": "switchloom@0.3.5", + "switchloom_package": "switchloom@0.3.6", "semantic_role_contract": "Planr supplies usage policy `read-only-audit`, work_type routes, and semantic roles; Switchloom owns the selected host binding, model, effort, fork/context policy, and generated dispatch artifacts.", "required_consumer_behavior": [ "Consume RoutingIntentV1 as the only source for semantic_role, work_type, selected profile, model, effort, agent_type, and fork_turns inputs.", "Use the CLI lifecycle or SetupSpecV1 recipe commands to preview, apply, update, status, rollback, and uninstall repository-local artifacts.", "Record Switchloom package version, package digest, bundle_id, host version, requested dispatch, effective child identity, nonce, and receipt paths before claiming certification.", "Treat advisory or unsupported guarantees as uncertified until nonce-bearing live host evidence upgrades them.", - "For the available-host release gate, Codex may be certified from deterministic effective-routing evidence; Cursor profiles may only claim advisory nonce-correlated requested-routing evidence unless the host exposes authenticated effective role/model telemetry. Claude Code, OpenCode, and Pi remain unavailable or unverified until authentic receipts exist." + "For the available-host release gate, Codex may be certified from deterministic effective-routing evidence; Cursor profiles may only claim advisory nonce-correlated requested-routing evidence unless the host exposes authenticated effective role/model telemetry. Claude Code and OpenCode remain unavailable or unverified until authentic receipts exist." ], "forbidden_duplicate_ownership": [ "Do not maintain a Planr-side model catalog, effort catalog, preset compiler, host adapter, or fork policy normalizer for Switchloom-owned inputs.", "Do not re-normalize Switchloom model, effort, role, agent_type, profile, or fork policy identifiers in Planr.", "Do not overwrite Switchloom-managed artifacts outside preview/apply/update/rollback/uninstall.", - "Do not mark Claude Code, OpenCode, Pi, or any advisory receipt as certified without live nonce-bearing child evidence." + "Do not mark Claude Code, OpenCode, or any advisory receipt as certified without live nonce-bearing child evidence." ], "certification_report_reference": "reports/native-host-certification///workdir/dispatch-evidence.json plus the matching bundle.json, invocation receipt, package digest, and validator stdout" } diff --git a/website/data/bundles/read-only-audit-pi-subagents.json b/website/data/bundles/read-only-audit-pi-subagents.json index 995f2a3..b6c65e6 100644 --- a/website/data/bundles/read-only-audit-pi-subagents.json +++ b/website/data/bundles/read-only-audit-pi-subagents.json @@ -6,7 +6,7 @@ "generated_at": "2026-07-16T00:00:00Z", "source": { "package": "model-routing", - "package_version": "0.3.5", + "package_version": "0.3.6", "integration": "standalone" }, "policy": { @@ -166,7 +166,7 @@ "evaluation_ids": [ "builtin-pi-subagents-v1" ], - "status": "experimental" + "status": "certified" }, "adapter_contract": { "schema_version": 1, @@ -339,20 +339,20 @@ }, "planr_handoff": { "schema_version": 1, - "switchloom_package": "switchloom@0.3.5", + "switchloom_package": "switchloom@0.3.6", "semantic_role_contract": "Planr supplies usage policy `read-only-audit`, work_type routes, and semantic roles; Switchloom owns the selected host binding, model, effort, fork/context policy, and generated dispatch artifacts.", "required_consumer_behavior": [ "Consume RoutingIntentV1 as the only source for semantic_role, work_type, selected profile, model, effort, agent_type, and fork_turns inputs.", "Use the CLI lifecycle or SetupSpecV1 recipe commands to preview, apply, update, status, rollback, and uninstall repository-local artifacts.", "Record Switchloom package version, package digest, bundle_id, host version, requested dispatch, effective child identity, nonce, and receipt paths before claiming certification.", "Treat advisory or unsupported guarantees as uncertified until nonce-bearing live host evidence upgrades them.", - "For the available-host release gate, Codex may be certified from deterministic effective-routing evidence; Cursor profiles may only claim advisory nonce-correlated requested-routing evidence unless the host exposes authenticated effective role/model telemetry. Claude Code, OpenCode, and Pi remain unavailable or unverified until authentic receipts exist." + "For the available-host release gate, Codex may be certified from deterministic effective-routing evidence; Cursor profiles may only claim advisory nonce-correlated requested-routing evidence unless the host exposes authenticated effective role/model telemetry. Claude Code and OpenCode remain unavailable or unverified until authentic receipts exist." ], "forbidden_duplicate_ownership": [ "Do not maintain a Planr-side model catalog, effort catalog, preset compiler, host adapter, or fork policy normalizer for Switchloom-owned inputs.", "Do not re-normalize Switchloom model, effort, role, agent_type, profile, or fork policy identifiers in Planr.", "Do not overwrite Switchloom-managed artifacts outside preview/apply/update/rollback/uninstall.", - "Do not mark Claude Code, OpenCode, Pi, or any advisory receipt as certified without live nonce-bearing child evidence." + "Do not mark Claude Code, OpenCode, or any advisory receipt as certified without live nonce-bearing child evidence." ], "certification_report_reference": "reports/native-host-certification///workdir/dispatch-evidence.json plus the matching bundle.json, invocation receipt, package digest, and validator stdout" } diff --git a/website/data/catalog.json b/website/data/catalog.json index 18ab057..f533791 100644 --- a/website/data/catalog.json +++ b/website/data/catalog.json @@ -265,11 +265,11 @@ } ], "id": "model-routing-official", - "manifestSha256": "77f0af4bc5246a6a6f82a1ad8fdcd29395bdd8bc91e10480a47f5fd3b9ef716b", + "manifestSha256": "11b9fe355d5c515a3eb87ea890caa8f5aecb51222277f7ba413d1a6b1c512237", "signatureVerified": false, "signer": null, "trustedMaintainer": false, - "version": "0.3.5" + "version": "0.3.6" }, "replacement": null, "status": "experimental", @@ -429,11 +429,11 @@ } ], "id": "model-routing-official", - "manifestSha256": "1cc8ada26f29c77ce9d805f2ee70cf17a950de57f515f38d53e46e26608a7f68", + "manifestSha256": "decd6fb38f7a0e2412e013d06a3d8d01b32b2d7c555a9c35fb8d75bd97725f20", "signatureVerified": false, "signer": null, "trustedMaintainer": false, - "version": "0.3.5" + "version": "0.3.6" }, "replacement": null, "status": "experimental", @@ -593,11 +593,11 @@ } ], "id": "model-routing-official", - "manifestSha256": "36c1e517e8b39226d20ca0499dd0d8bea4cb4d3a95683e25279bf37c30f44708", + "manifestSha256": "439b82576d89b8888f9fbbebae95828ffeb6b138945437c251d887e8e815e4c8", "signatureVerified": false, "signer": null, "trustedMaintainer": false, - "version": "0.3.5" + "version": "0.3.6" }, "replacement": null, "status": "experimental", @@ -759,11 +759,11 @@ } ], "id": "model-routing-official", - "manifestSha256": "7b66c98d20719a86163eceaae138365864a689d8d7537df48656cd99e91cd831", + "manifestSha256": "221d3ea419ee0238c8cc2e6f0385d0a4df8f0f60dbc378b16ae1a7ce9e3db758", "signatureVerified": false, "signer": null, "trustedMaintainer": false, - "version": "0.3.5" + "version": "0.3.6" }, "replacement": null, "status": "experimental", @@ -929,11 +929,11 @@ } ], "id": "model-routing-official", - "manifestSha256": "bfdf3b6afd288a84db06dc2ca9eef6936b2bb576a0e313b63728096874fa1519", + "manifestSha256": "dbbdbd544cc3b234fc6c5b7a9a2c2b8a2c4def7dc35b82381a22277c0169ab8d", "signatureVerified": false, "signer": null, "trustedMaintainer": false, - "version": "0.3.5" + "version": "0.3.6" }, "replacement": null, "status": "experimental", @@ -1029,7 +1029,7 @@ }, "resultHashes": [], "reviewAtUnix": null, - "status": "experimental", + "status": "certified", "suiteId": "model-routing-preset-suite", "suiteVersion": "1.8.0", "thresholds": {} @@ -1125,15 +1125,15 @@ } ], "id": "model-routing-official", - "manifestSha256": "a356e120099cf79da7ec1face6a949c22143f895204414d41913e8454412800f", + "manifestSha256": "2e045f132cbef0d43cfa40720ee39ea1378c06f3f0eb007516949ee3f6b7fed8", "signatureVerified": false, "signer": null, "trustedMaintainer": false, - "version": "0.3.5" + "version": "0.3.6" }, "replacement": null, - "status": "experimental", - "statusLabel": "Experimental" + "status": "certified", + "statusLabel": "Certified" }, { "binding": { @@ -1353,11 +1353,11 @@ } ], "id": "model-routing-official", - "manifestSha256": "e5f08a7480ae981159ae109a0b1f553923a9306464e29bfd768034288cd5429b", + "manifestSha256": "400eaf16cd80127b636cd7364551f25d448949bca5a791385dd2a410b4861b98", "signatureVerified": false, "signer": null, "trustedMaintainer": false, - "version": "0.3.5" + "version": "0.3.6" }, "replacement": null, "status": "experimental", @@ -1628,11 +1628,11 @@ } ], "id": "model-routing-official", - "manifestSha256": "841aff544ec08d58a174c35c16efbc982dfe102ae9bfcac1da788e54f7852509", + "manifestSha256": "c107fe8745ddd319a9d963389f6b0b79a38cd3b0f8d502f27cc5d63f8f14ee2e", "signatureVerified": false, "signer": null, "trustedMaintainer": false, - "version": "0.3.5" + "version": "0.3.6" }, "replacement": null, "status": "experimental", @@ -1792,11 +1792,11 @@ } ], "id": "model-routing-official", - "manifestSha256": "52ee62f030bf89e7fd01ef842bd993e6eae7d4a6702e285daced31f64273db07", + "manifestSha256": "32379e214318d2c671b1a76d4fef32184d180e26060ab97361362812a28a9927", "signatureVerified": false, "signer": null, "trustedMaintainer": false, - "version": "0.3.5" + "version": "0.3.6" }, "replacement": null, "status": "experimental", @@ -1956,11 +1956,11 @@ } ], "id": "model-routing-official", - "manifestSha256": "19f303da4d61de1775278e2a7c86c3561fcbbcef94d6276deb110e4e5c081b72", + "manifestSha256": "726ffe1f2f4310cdea1da662933dc22356048c5f74436b7b06ba1d3e6191c522", "signatureVerified": false, "signer": null, "trustedMaintainer": false, - "version": "0.3.5" + "version": "0.3.6" }, "replacement": null, "status": "experimental", @@ -2122,11 +2122,11 @@ } ], "id": "model-routing-official", - "manifestSha256": "c5bf0f34b717980db264910d471fd89c6ab88e46e5f9fb5a5274abf1ef303bea", + "manifestSha256": "5cf8fd2ca2dc8f2b4b37d6dca09ec6780d0f6f7a94a27aca993636c72c5946ea", "signatureVerified": false, "signer": null, "trustedMaintainer": false, - "version": "0.3.5" + "version": "0.3.6" }, "replacement": null, "status": "experimental", @@ -2292,11 +2292,11 @@ } ], "id": "model-routing-official", - "manifestSha256": "c1bfc725e5ca265f25b12a1b0c81c5b527a4bb62a4aa9a9ec29f1c4a5d7d0cf5", + "manifestSha256": "2e80303ad293b68a29a7ed75d940ee86d54eed5b01f8649d2c04b6a8637b4a7f", "signatureVerified": false, "signer": null, "trustedMaintainer": false, - "version": "0.3.5" + "version": "0.3.6" }, "replacement": null, "status": "experimental", @@ -2392,7 +2392,7 @@ }, "resultHashes": [], "reviewAtUnix": null, - "status": "experimental", + "status": "certified", "suiteId": "model-routing-preset-suite", "suiteVersion": "1.8.0", "thresholds": {} @@ -2488,15 +2488,15 @@ } ], "id": "model-routing-official", - "manifestSha256": "ff7de2d570ca0e16884f6a1aff23dbf4aa6f108c790268c8c5c60c6dfd3feead", + "manifestSha256": "b8a678e3e157cc4836c81b8611af1fb7c217f495a24172e56f2f5880ab5a6f2c", "signatureVerified": false, "signer": null, "trustedMaintainer": false, - "version": "0.3.5" + "version": "0.3.6" }, "replacement": null, - "status": "experimental", - "statusLabel": "Experimental" + "status": "certified", + "statusLabel": "Certified" }, { "binding": { @@ -2716,11 +2716,11 @@ } ], "id": "model-routing-official", - "manifestSha256": "0c4aef10c5254e9a447ab6a2288ad727f83040f1593fe4e90294783972056575", + "manifestSha256": "2b7cbad4ea9fa369d573f775779f5234a5901f48187a5c306246c92e0e499a5e", "signatureVerified": false, "signer": null, "trustedMaintainer": false, - "version": "0.3.5" + "version": "0.3.6" }, "replacement": null, "status": "experimental", @@ -2991,11 +2991,11 @@ } ], "id": "model-routing-official", - "manifestSha256": "48a89227d48f01cc11461da1ea37e52b42b2b1c780785f16e683cdc943937de7", + "manifestSha256": "f0db7fea1737ecec627a8e5985f5f07f4a2055b3553907c5dfd0d1c61c74a995", "signatureVerified": false, "signer": null, "trustedMaintainer": false, - "version": "0.3.5" + "version": "0.3.6" }, "replacement": null, "status": "experimental", @@ -3155,11 +3155,11 @@ } ], "id": "model-routing-official", - "manifestSha256": "e409947869905fedcadc297efa409222b293a34bd50d40e37e38efebdd3b7534", + "manifestSha256": "2f6851e9440decd3b59de0205e7a94b2a81ccbb1b0c6e33b674d01639812804f", "signatureVerified": false, "signer": null, "trustedMaintainer": false, - "version": "0.3.5" + "version": "0.3.6" }, "replacement": null, "status": "experimental", @@ -3319,11 +3319,11 @@ } ], "id": "model-routing-official", - "manifestSha256": "f7af617be542b74ca778d7286e7c9f1910df2a896fa40e27f0bbac147324468b", + "manifestSha256": "f0fe8cf703bf67781f09c6d62b8bd6e75000a721250d34f882db465b0b2f2c7b", "signatureVerified": false, "signer": null, "trustedMaintainer": false, - "version": "0.3.5" + "version": "0.3.6" }, "replacement": null, "status": "experimental", @@ -3485,11 +3485,11 @@ } ], "id": "model-routing-official", - "manifestSha256": "e8f7138ee4c5bee987e505487ec4286066ee7068a9c099a0b9e0803e6f0acc45", + "manifestSha256": "0bc3fb26a92d730aa875b9e8315440acc49545b8afa9fd31b8c5390b51f7ba95", "signatureVerified": false, "signer": null, "trustedMaintainer": false, - "version": "0.3.5" + "version": "0.3.6" }, "replacement": null, "status": "experimental", @@ -3655,11 +3655,11 @@ } ], "id": "model-routing-official", - "manifestSha256": "08d105ccd7234d2f829076119cddd7f975cc1babf39eb58c68f9a01c56d2be02", + "manifestSha256": "28feb96cce99e0382fd2a14eed8188f73105eeb79292e5491801c6b32f870830", "signatureVerified": false, "signer": null, "trustedMaintainer": false, - "version": "0.3.5" + "version": "0.3.6" }, "replacement": null, "status": "experimental", @@ -3755,7 +3755,7 @@ }, "resultHashes": [], "reviewAtUnix": null, - "status": "experimental", + "status": "certified", "suiteId": "model-routing-preset-suite", "suiteVersion": "1.8.0", "thresholds": {} @@ -3851,15 +3851,15 @@ } ], "id": "model-routing-official", - "manifestSha256": "5bc5b25bce8a86d8646d804445aa39b61e8dfb207d4f44f35242b4627f0b50e3", + "manifestSha256": "5bbc3d527f4be88319b7af99d1afe642c0b790e6d7fe645fb2df6ef1b7e642aa", "signatureVerified": false, "signer": null, "trustedMaintainer": false, - "version": "0.3.5" + "version": "0.3.6" }, "replacement": null, - "status": "experimental", - "statusLabel": "Experimental" + "status": "certified", + "statusLabel": "Certified" }, { "binding": { @@ -4079,11 +4079,11 @@ } ], "id": "model-routing-official", - "manifestSha256": "9c90db3665668bf15ed76b0d3fad196e51b0c775cd74e3a989afdf8eb447f002", + "manifestSha256": "124a5fde32b5eb68142d79b1ff4feed773cbcc7a5a11cc2c33a719a0d413d82f", "signatureVerified": false, "signer": null, "trustedMaintainer": false, - "version": "0.3.5" + "version": "0.3.6" }, "replacement": null, "status": "experimental", @@ -4349,11 +4349,11 @@ } ], "id": "model-routing-official", - "manifestSha256": "659787db7330d8bd178cc010c10e259ffe5c0afb3fe7754ac62f7ede1b0a1d61", + "manifestSha256": "0ab2d8c006c051793e863540783c0d7b5724d36f4cd6042b3a01ecb7a06c0a48", "signatureVerified": false, "signer": null, "trustedMaintainer": false, - "version": "0.3.5" + "version": "0.3.6" }, "replacement": null, "status": "experimental", @@ -4508,11 +4508,11 @@ } ], "id": "model-routing-official", - "manifestSha256": "955457405c642ef657c802226b200c0a6e9594f9464742dc1cd20778d0955a03", + "manifestSha256": "d93d00dc018a75097536efbe318fa80b6bf8562bdebe1363484b2404651c3eee", "signatureVerified": false, "signer": null, "trustedMaintainer": false, - "version": "0.3.5" + "version": "0.3.6" }, "replacement": null, "status": "experimental", @@ -4667,11 +4667,11 @@ } ], "id": "model-routing-official", - "manifestSha256": "1198fd25c426d94d436d7fa4ffbe775a1922a247693ee4281c6383064d602f90", + "manifestSha256": "97dd3e4ed3b0afb016daeb6dc835f7ebbc1d0e3fb6aa39620de1668d68259807", "signatureVerified": false, "signer": null, "trustedMaintainer": false, - "version": "0.3.5" + "version": "0.3.6" }, "replacement": null, "status": "experimental", @@ -4828,11 +4828,11 @@ } ], "id": "model-routing-official", - "manifestSha256": "d98514f453c8b74354317dd20f973a5b2dfe55f9cb70e378d984d50bd1bb3dc4", + "manifestSha256": "cf1d48a065b96acf53f4863e8e6a15b7f0b09e648956f66074ea1aa050274740", "signatureVerified": false, "signer": null, "trustedMaintainer": false, - "version": "0.3.5" + "version": "0.3.6" }, "replacement": null, "status": "experimental", @@ -4993,11 +4993,11 @@ } ], "id": "model-routing-official", - "manifestSha256": "f550aa072d30603116016501f888febe9cb116988ac67ace00b5cf4c7c15eb04", + "manifestSha256": "87531eb62285a4a6f81d634ddccf1b108932c04f678ece7cb27bf01630750fc2", "signatureVerified": false, "signer": null, "trustedMaintainer": false, - "version": "0.3.5" + "version": "0.3.6" }, "replacement": null, "status": "experimental", @@ -5093,7 +5093,7 @@ }, "resultHashes": [], "reviewAtUnix": null, - "status": "experimental", + "status": "certified", "suiteId": "model-routing-preset-suite", "suiteVersion": "1.8.0", "thresholds": {} @@ -5184,15 +5184,15 @@ } ], "id": "model-routing-official", - "manifestSha256": "e70952788be0c2d65284d82d2c523ecdbc8b0fa57f9948f093b18afa0431dbb9", + "manifestSha256": "14f3c95d4d316a97817afe36d568ec5a4d463abfea2ce4b77546bcc802a954b4", "signatureVerified": false, "signer": null, "trustedMaintainer": false, - "version": "0.3.5" + "version": "0.3.6" }, "replacement": null, - "status": "experimental", - "statusLabel": "Experimental" + "status": "certified", + "statusLabel": "Certified" }, { "binding": { @@ -5407,11 +5407,11 @@ } ], "id": "model-routing-official", - "manifestSha256": "deae4d9928d55a7905a3c7d646743ee7aadceefb4942467f9107a7c46321bc8d", + "manifestSha256": "4ab425d7948249342c53465a876f4bf6e376d1221aff7a36dcd7160b6465ed43", "signatureVerified": false, "signer": null, "trustedMaintainer": false, - "version": "0.3.5" + "version": "0.3.6" }, "replacement": null, "status": "experimental", @@ -6181,7 +6181,7 @@ "topologies": [ "sequential" ], - "validationStatus": "experimental" + "validationStatus": "certified" }, { "codingAgent": "opencode", @@ -6288,7 +6288,7 @@ }, "source": { "entryCount": 28, - "message": "Entries stay experimental until authenticated live evidence and an offline maintainer signature pass.", + "message": "Entries stay experimental until authenticated live evidence and an offline maintainer signature pass, except for independently certified capabilities.", "state": "package_generated", "trust": "model_routing_unsigned_catalog_v1" } diff --git a/website/src/lib/generator.test.ts b/website/src/lib/generator.test.ts index 0d3356f..1781cc6 100644 --- a/website/src/lib/generator.test.ts +++ b/website/src/lib/generator.test.ts @@ -108,7 +108,7 @@ describe("Switchloom generator", () => { it("serializes the active-session Pi Subagents topology", () => { const pi = createConfig("pi"); expect(setupSpec(pi, hostCatalog).workflow).toMatchObject({ - coding_agent: "pi", execution_path: "extension", validation_status: "experimental", parent_model: "runtime-managed", topology: "sequential", + coding_agent: "pi", execution_path: "extension", validation_status: "certified", parent_model: "runtime-managed", topology: "sequential", }); expect(setupSpec(pi, hostCatalog).selected_roles).not.toHaveProperty("orchestrator"); expect(setupSpec(pi, hostCatalog).workflow?.roles).not.toHaveProperty("orchestrator"); diff --git a/website/src/lib/generator.ts b/website/src/lib/generator.ts index 068d870..cd1534b 100644 --- a/website/src/lib/generator.ts +++ b/website/src/lib/generator.ts @@ -577,7 +577,7 @@ export type SetupSpecV1 = { schema_version: 1; coding_agent: "pi"; execution_path: "extension"; - validation_status: "experimental"; + validation_status: "certified"; parent_model: "runtime-managed"; topology: "sequential"; roles: Record; @@ -642,7 +642,7 @@ export function setupSpec(config: GeneratorConfig, catalog: HostCatalog): SetupS schema_version: 1, coding_agent: "pi", execution_path: "extension", - validation_status: "experimental", + validation_status: "certified", parent_model: "runtime-managed", topology: "sequential", roles: Object.fromEntries((Object.entries(selected_roles) as [ChildRoleId, SetupSpecV1["selected_roles"][ChildRoleId]][]).map(([role, selection]) => { @@ -844,9 +844,6 @@ export function shellQuote(value: string) { } export function recipeApplyCommand(config: GeneratorConfig, catalog: HostCatalog, recipePrefix = "sw1_") { - if (config.host === "pi") { - return "# Pi Subagents is Experimental until credentialed live runtime receipts are available; no applyable recipe is emitted."; - } return `npx switchloom@${SWITCHLOOM_VERSION} apply --recipe ${shellQuote(setupRecipe(config, catalog, recipePrefix))} --repository .`; } diff --git a/website/src/lib/onboarding.test.ts b/website/src/lib/onboarding.test.ts index a1bfff1..7f6e810 100644 --- a/website/src/lib/onboarding.test.ts +++ b/website/src/lib/onboarding.test.ts @@ -14,7 +14,7 @@ describe("provider onboarding templates", () => { expect(template.icon).toMatch(/^\/brand\/[a-z-]+\.svg$/); expect(template.steps.map((step) => step.id)).toEqual(["requirements", "project", "install", "activate"]); expect(template.steps.every((step) => step.title.length > 0 && step.description.length > 0)).toBe(true); - expect(template.steps.filter((step) => step.command?.kind === "apply")).toHaveLength(template.host === "pi" ? 0 : 1); + expect(template.steps.filter((step) => step.command?.kind === "apply")).toHaveLength(1); } }); @@ -42,7 +42,9 @@ describe("provider onboarding templates", () => { const onboarding = providerOnboarding("pi", "switchloom apply"); expect(onboarding.description).toContain("active main Pi session is the Orchestrator"); + expect(onboarding.status).toBe("certified"); + expect(onboarding.steps.find((step) => step.id === "install")?.command).toBe("switchloom apply"); expect(onboarding.steps.some((step) => step.command === "pi install npm:pi-subagents")).toBe(true); - expect(onboarding.description).not.toMatch(/isolated|proxy|gateway/i); + expect(`${onboarding.description} ${onboarding.steps.map((step) => `${step.title} ${step.description}`).join(" ")}`).not.toMatch(/experimental|wait|isolated|proxy|gateway/i); }); }); diff --git a/website/src/lib/onboarding/pi.ts b/website/src/lib/onboarding/pi.ts index 977b384..0aa5245 100644 --- a/website/src/lib/onboarding/pi.ts +++ b/website/src/lib/onboarding/pi.ts @@ -5,7 +5,7 @@ export const piOnboarding = { icon: "/brand/pi.svg", title: "Set up your Pi agent team", description: "Your active main Pi session is the Orchestrator. Pi owns provider login; Switchloom installs Pi Subagents, child role agents, and a sequential workflow.", - status: "experimental", + status: "certified", steps: [ { id: "requirements", @@ -21,8 +21,9 @@ export const piOnboarding = { }, { id: "install", - title: "Wait for live certification", - description: "This generated workflow is Experimental. Do not apply it as certified support until a credentialed requested/effective-model receipt is retained.", + title: "Apply the generated Pi recipe", + description: "Apply the certified recipe to write Pi Subagents settings, child role agents, and the sequential workflow in this repository.", + command: { kind: "apply" }, }, { id: "activate", diff --git a/website/src/lib/website-cli-parity.test.ts b/website/src/lib/website-cli-parity.test.ts index 6eeeee5..aa41029 100644 --- a/website/src/lib/website-cli-parity.test.ts +++ b/website/src/lib/website-cli-parity.test.ts @@ -223,23 +223,65 @@ describe("website SetupSpec to CLI parity", () => { } }, 60_000); - it("rejects generated experimental Pi config and recipe transports before repository mutation", async () => { - const config = createConfig("pi"); + it("accepts generated certified Pi config and recipe transports", async () => { + let config = setModel(createConfig("pi"), "orchestrator", "openrouter/x-ai/grok-4.5", hostCatalog); + config = setModel(config, "implementer", "openrouter/x-ai/grok-4.5", hostCatalog); + config = setEffort(config, "implementer", "medium", hostCatalog); + config = setModel(config, "reviewer", "openai-codex/gpt-5.6-sol", hostCatalog); + config = setEffort(config, "reviewer", "high", hostCatalog); + config = setModel(config, "verifier", "openrouter/x-ai/grok-4.5", hostCatalog); + config = setEffort(config, "verifier", "low", hostCatalog); + expect(config.assignments.orchestrator.model).toBe("openrouter/x-ai/grok-4.5"); const configToml = setupConfigToml(config, hostCatalog); const recipe = setupRecipe(config, hostCatalog, setupTransport.recipePrefix); + expect(recipeApplyCommand(config, hostCatalog, setupTransport.recipePrefix)).toBe( + `npx switchloom@${SWITCHLOOM_VERSION} apply --recipe ${shellQuote(recipe)} --repository .`, + ); for (const transport of ["config", "recipe"] as const) { - const { root, repository } = await tempRepo(`switchloom-website-pi-experimental-${transport}-`); - const args = transport === "config" - ? ["preview", "--config", join(root, "config.toml"), "--repository", repository] - : ["preview", "--recipe", recipe, "--repository", repository]; - if (transport === "config") await writeFile(args[2], configToml); - - const result = runRejected(args); - expect(result.status).not.toBe(0); - expect(result.stderr).toContain("workflow is experimental and cannot be applied as certified support"); - await expect(readFile(join(repository, ".switchloom/config.toml"), "utf8")).rejects.toThrow(); - await expect(readFile(join(repository, ".model-routing/manifest.json"), "utf8")).rejects.toThrow(); + const { root, repository } = await tempRepo(`switchloom-website-pi-certified-${transport}-`); + const source = transport === "config" ? ["--config", join(root, "config.toml")] : ["--recipe", recipe]; + if (transport === "config") await writeFile(source[1], configToml); + + const preview = report(run(["preview", ...source, "--repository", repository])); + const previewPaths = preview.artifacts.map((artifact) => artifact.path); + expect(previewPaths).toContain(".pi/settings.json"); + expect(previewPaths).toContain(".pi/agents/switchloom-implementer.md"); + expect(previewPaths).toContain(".pi/agents/switchloom-reviewer.md"); + expect(previewPaths).toContain(".pi/agents/switchloom-verifier.md"); + expect(previewPaths).toContain(".pi/chains/switchloom-workflow.chain.md"); + expect(previewPaths).not.toContain(".pi/agents/switchloom-orchestrator.md"); + + const applied = report(run(["apply", ...source, "--repository", repository, "--yes"])); + expect(applied.artifacts.map((artifact) => artifact.path)).toEqual(previewPaths); + const settings = await readFile(join(repository, ".pi/settings.json"), "utf8"); + expect(JSON.parse(settings)).toEqual({ + extensions: ["npm:pi-subagents"], + subagents: { + agentOverrides: { + "switchloom-implementer": { model: "openrouter/x-ai/grok-4.5", thinking: "medium", fallbackModels: [] }, + "switchloom-reviewer": { model: "openai-codex/gpt-5.6-sol", thinking: "high", fallbackModels: [] }, + "switchloom-verifier": { model: "openrouter/x-ai/grok-4.5", thinking: "low", fallbackModels: [] }, + }, + }, + }); + expect(settings).not.toMatch(/credential|endpoint/i); + + for (const [role, model, effort] of [ + ["implementer", "openrouter/x-ai/grok-4.5", "medium"], + ["reviewer", "openai-codex/gpt-5.6-sol", "high"], + ["verifier", "openrouter/x-ai/grok-4.5", "low"], + ]) { + const agent = await readFile(join(repository, `.pi/agents/switchloom-${role}.md`), "utf8"); + expect(agent).toContain(`model: ${model}`); + expect(agent).toContain(`thinking: ${effort}`); + expect(agent).not.toMatch(/credential|endpoint/i); + } + const chain = await readFile(join(repository, ".pi/chains/switchloom-workflow.chain.md"), "utf8"); + expect(chain).toContain("switchloom-implementer"); + expect(chain).toContain("switchloom-reviewer"); + expect(chain).toContain("switchloom-verifier"); + expect(chain).not.toContain("switchloom-orchestrator"); } }); diff --git a/xtask/Cargo.toml b/xtask/Cargo.toml index 567e65b..2f3b01f 100644 --- a/xtask/Cargo.toml +++ b/xtask/Cargo.toml @@ -10,7 +10,7 @@ publish = false [dependencies] anyhow.workspace = true clap.workspace = true -model-routing = { path = "..", version = "0.3.5" } +model-routing = { path = "..", version = "0.3.6" } serde.workspace = true serde_json.workspace = true sha2.workspace = true From d514c863958aa40cca178d98a2a4ead1b47401b2 Mon Sep 17 00:00:00 2001 From: Kevin Kern Date: Wed, 29 Jul 2026 11:13:18 +0200 Subject: [PATCH 2/4] fix: update certified Pi lifecycle contract --- tests/lifecycle_contract.rs | 76 +++++++++++++++---------------------- 1 file changed, 31 insertions(+), 45 deletions(-) diff --git a/tests/lifecycle_contract.rs b/tests/lifecycle_contract.rs index 32ebb82..9be09cd 100644 --- a/tests/lifecycle_contract.rs +++ b/tests/lifecycle_contract.rs @@ -45,40 +45,6 @@ fn write_bundle_file(repository: &Path, name: &str, bundle: &RoutingBundleV1) -> bundle_file } -fn assert_non_actionable_workflow_lifecycle( - repository: &Path, - spec: &SetupSpecV1, - runtime_artifacts: &[&str], -) { - let config_file = repository.join("non-actionable-workflow.setup.toml"); - fs::write( - &config_file, - toml::to_string_pretty(spec).expect("workflow setup config serializes"), - ) - .unwrap(); - - let expected = "workflow is experimental and cannot be applied as certified support"; - assert_eq!( - preview_setup_config_file(repository, &config_file) - .unwrap_err() - .to_string(), - expected - ); - assert_eq!( - apply_setup_config_file(repository, &config_file) - .unwrap_err() - .to_string(), - expected - ); - assert!(!repository.join(".switchloom/manifest.json").exists()); - for artifact in runtime_artifacts { - assert!( - !repository.join(artifact).exists(), - "rejected workflow must not create {artifact}" - ); - } -} - fn assert_codex_config_entry(content: &str, agent_type: &str, config_file: &str) { let parsed: toml::Value = toml::from_str(content).unwrap(); assert_eq!( @@ -253,7 +219,7 @@ fn pi_subagents_workflow_lifecycle_manages_extension_agents_and_chain() { schema_version: 1, coding_agent: CodingAgentRuntime::Pi, execution_path: ExecutionPath::Extension, - validation_status: ValidationStatus::Experimental, + validation_status: ValidationStatus::Certified, parent_model: ParentModelGuidance::RuntimeManaged, topology: WorkflowTopology::Sequential, model_access: None, @@ -290,15 +256,35 @@ fn pi_subagents_workflow_lifecycle_manages_extension_agents_and_chain() { ), ]), }); - assert_non_actionable_workflow_lifecycle( - &repository, - &spec, - &[ - ".pi/settings.json", - ".pi/agents/switchloom-implementer.md", - ".pi/chains/switchloom-workflow.chain.md", - ], - ); + let config_file = repository.join("certified-pi.setup.toml"); + fs::write(&config_file, toml::to_string_pretty(&spec).unwrap()).unwrap(); + let preview = preview_setup_config_file(&repository, &config_file).unwrap(); + for artifact in [ + ".pi/settings.json", + ".pi/agents/switchloom-implementer.md", + ".pi/agents/switchloom-reviewer.md", + ".pi/agents/switchloom-verifier.md", + ".pi/chains/switchloom-workflow.chain.md", + ] { + assert!(preview.artifacts.iter().any(|entry| entry.path == artifact)); + } + apply_setup_config_file(&repository, &config_file).unwrap(); + assert!(repository.join(".pi/settings.json").exists()); + assert!(repository + .join(".pi/agents/switchloom-implementer.md") + .exists()); + assert!(repository + .join(".pi/agents/switchloom-reviewer.md") + .exists()); + assert!(repository + .join(".pi/agents/switchloom-verifier.md") + .exists()); + assert!(repository + .join(".pi/chains/switchloom-workflow.chain.md") + .exists()); + assert!(!repository + .join(".pi/agents/switchloom-orchestrator.md") + .exists()); } #[test] @@ -381,7 +367,7 @@ fn pi_access_bearing_workflow_is_rejected_before_lifecycle_writes() { schema_version: 1, coding_agent: CodingAgentRuntime::Pi, execution_path: ExecutionPath::Extension, - validation_status: ValidationStatus::Experimental, + validation_status: ValidationStatus::Certified, parent_model: ParentModelGuidance::RuntimeManaged, topology: WorkflowTopology::Sequential, model_access: Some(ModelAccessProfileV1 { From de0a2c8ab3614fa21c8477001236ad1ef6cf6880 Mon Sep 17 00:00:00 2001 From: Kevin Kern Date: Wed, 29 Jul 2026 11:15:58 +0200 Subject: [PATCH 3/4] style: format certified Pi lifecycle contract --- tests/lifecycle_contract.rs | 40 +++++++++++++++++++++++-------------- 1 file changed, 25 insertions(+), 15 deletions(-) diff --git a/tests/lifecycle_contract.rs b/tests/lifecycle_contract.rs index 9be09cd..a7dd982 100644 --- a/tests/lifecycle_contract.rs +++ b/tests/lifecycle_contract.rs @@ -270,21 +270,31 @@ fn pi_subagents_workflow_lifecycle_manages_extension_agents_and_chain() { } apply_setup_config_file(&repository, &config_file).unwrap(); assert!(repository.join(".pi/settings.json").exists()); - assert!(repository - .join(".pi/agents/switchloom-implementer.md") - .exists()); - assert!(repository - .join(".pi/agents/switchloom-reviewer.md") - .exists()); - assert!(repository - .join(".pi/agents/switchloom-verifier.md") - .exists()); - assert!(repository - .join(".pi/chains/switchloom-workflow.chain.md") - .exists()); - assert!(!repository - .join(".pi/agents/switchloom-orchestrator.md") - .exists()); + assert!( + repository + .join(".pi/agents/switchloom-implementer.md") + .exists() + ); + assert!( + repository + .join(".pi/agents/switchloom-reviewer.md") + .exists() + ); + assert!( + repository + .join(".pi/agents/switchloom-verifier.md") + .exists() + ); + assert!( + repository + .join(".pi/chains/switchloom-workflow.chain.md") + .exists() + ); + assert!( + !repository + .join(".pi/agents/switchloom-orchestrator.md") + .exists() + ); } #[test] From 7088528f64c408e6c3e1eafdfb7b171e90bdf08d Mon Sep 17 00:00:00 2001 From: Kevin Kern Date: Wed, 29 Jul 2026 11:19:58 +0200 Subject: [PATCH 4/4] fix: commit regenerated cursor bundles --- website/data/bundles/low-usage-cursor-fable-grok.json | 8 ++++---- website/data/bundles/low-usage-cursor-openai.json | 8 ++++---- website/data/bundles/max-quality-cursor-openai.json | 8 ++++---- website/data/bundles/read-only-audit-cursor-openai.json | 8 ++++---- 4 files changed, 16 insertions(+), 16 deletions(-) diff --git a/website/data/bundles/low-usage-cursor-fable-grok.json b/website/data/bundles/low-usage-cursor-fable-grok.json index ff3f0d4..26ad50a 100644 --- a/website/data/bundles/low-usage-cursor-fable-grok.json +++ b/website/data/bundles/low-usage-cursor-fable-grok.json @@ -6,7 +6,7 @@ "generated_at": "2026-07-16T00:00:00Z", "source": { "package": "model-routing", - "package_version": "0.3.5", + "package_version": "0.3.6", "integration": "standalone" }, "policy": { @@ -288,20 +288,20 @@ }, "planr_handoff": { "schema_version": 1, - "switchloom_package": "switchloom@0.3.5", + "switchloom_package": "switchloom@0.3.6", "semantic_role_contract": "Planr supplies usage policy `low-usage`, work_type routes, and semantic roles; Switchloom owns the selected host binding, model, effort, fork/context policy, and generated dispatch artifacts.", "required_consumer_behavior": [ "Consume RoutingIntentV1 as the only source for semantic_role, work_type, selected profile, model, effort, agent_type, and fork_turns inputs.", "Use the CLI lifecycle or SetupSpecV1 recipe commands to preview, apply, update, status, rollback, and uninstall repository-local artifacts.", "Record Switchloom package version, package digest, bundle_id, host version, requested dispatch, effective child identity, nonce, and receipt paths before claiming certification.", "Treat advisory or unsupported guarantees as uncertified until nonce-bearing live host evidence upgrades them.", - "For the available-host release gate, Codex may be certified from deterministic effective-routing evidence; Cursor profiles may only claim advisory nonce-correlated requested-routing evidence unless the host exposes authenticated effective role/model telemetry. Claude Code, OpenCode, and Pi remain unavailable or unverified until authentic receipts exist." + "For the available-host release gate, Codex may be certified from deterministic effective-routing evidence; Cursor profiles may only claim advisory nonce-correlated requested-routing evidence unless the host exposes authenticated effective role/model telemetry. Claude Code and OpenCode remain unavailable or unverified until authentic receipts exist." ], "forbidden_duplicate_ownership": [ "Do not maintain a Planr-side model catalog, effort catalog, preset compiler, host adapter, or fork policy normalizer for Switchloom-owned inputs.", "Do not re-normalize Switchloom model, effort, role, agent_type, profile, or fork policy identifiers in Planr.", "Do not overwrite Switchloom-managed artifacts outside preview/apply/update/rollback/uninstall.", - "Do not mark Claude Code, OpenCode, Pi, or any advisory receipt as certified without live nonce-bearing child evidence." + "Do not mark Claude Code, OpenCode, or any advisory receipt as certified without live nonce-bearing child evidence." ], "certification_report_reference": "reports/native-host-certification///workdir/dispatch-evidence.json plus the matching bundle.json, invocation receipt, package digest, and validator stdout" } diff --git a/website/data/bundles/low-usage-cursor-openai.json b/website/data/bundles/low-usage-cursor-openai.json index 47c3855..51e1ee4 100644 --- a/website/data/bundles/low-usage-cursor-openai.json +++ b/website/data/bundles/low-usage-cursor-openai.json @@ -6,7 +6,7 @@ "generated_at": "2026-07-16T00:00:00Z", "source": { "package": "model-routing", - "package_version": "0.3.5", + "package_version": "0.3.6", "integration": "standalone" }, "policy": { @@ -288,20 +288,20 @@ }, "planr_handoff": { "schema_version": 1, - "switchloom_package": "switchloom@0.3.5", + "switchloom_package": "switchloom@0.3.6", "semantic_role_contract": "Planr supplies usage policy `low-usage`, work_type routes, and semantic roles; Switchloom owns the selected host binding, model, effort, fork/context policy, and generated dispatch artifacts.", "required_consumer_behavior": [ "Consume RoutingIntentV1 as the only source for semantic_role, work_type, selected profile, model, effort, agent_type, and fork_turns inputs.", "Use the CLI lifecycle or SetupSpecV1 recipe commands to preview, apply, update, status, rollback, and uninstall repository-local artifacts.", "Record Switchloom package version, package digest, bundle_id, host version, requested dispatch, effective child identity, nonce, and receipt paths before claiming certification.", "Treat advisory or unsupported guarantees as uncertified until nonce-bearing live host evidence upgrades them.", - "For the available-host release gate, Codex may be certified from deterministic effective-routing evidence; Cursor profiles may only claim advisory nonce-correlated requested-routing evidence unless the host exposes authenticated effective role/model telemetry. Claude Code, OpenCode, and Pi remain unavailable or unverified until authentic receipts exist." + "For the available-host release gate, Codex may be certified from deterministic effective-routing evidence; Cursor profiles may only claim advisory nonce-correlated requested-routing evidence unless the host exposes authenticated effective role/model telemetry. Claude Code and OpenCode remain unavailable or unverified until authentic receipts exist." ], "forbidden_duplicate_ownership": [ "Do not maintain a Planr-side model catalog, effort catalog, preset compiler, host adapter, or fork policy normalizer for Switchloom-owned inputs.", "Do not re-normalize Switchloom model, effort, role, agent_type, profile, or fork policy identifiers in Planr.", "Do not overwrite Switchloom-managed artifacts outside preview/apply/update/rollback/uninstall.", - "Do not mark Claude Code, OpenCode, Pi, or any advisory receipt as certified without live nonce-bearing child evidence." + "Do not mark Claude Code, OpenCode, or any advisory receipt as certified without live nonce-bearing child evidence." ], "certification_report_reference": "reports/native-host-certification///workdir/dispatch-evidence.json plus the matching bundle.json, invocation receipt, package digest, and validator stdout" } diff --git a/website/data/bundles/max-quality-cursor-openai.json b/website/data/bundles/max-quality-cursor-openai.json index 8668205..4ffc76c 100644 --- a/website/data/bundles/max-quality-cursor-openai.json +++ b/website/data/bundles/max-quality-cursor-openai.json @@ -6,7 +6,7 @@ "generated_at": "2026-07-16T00:00:00Z", "source": { "package": "model-routing", - "package_version": "0.3.5", + "package_version": "0.3.6", "integration": "standalone" }, "policy": { @@ -288,20 +288,20 @@ }, "planr_handoff": { "schema_version": 1, - "switchloom_package": "switchloom@0.3.5", + "switchloom_package": "switchloom@0.3.6", "semantic_role_contract": "Planr supplies usage policy `max-quality`, work_type routes, and semantic roles; Switchloom owns the selected host binding, model, effort, fork/context policy, and generated dispatch artifacts.", "required_consumer_behavior": [ "Consume RoutingIntentV1 as the only source for semantic_role, work_type, selected profile, model, effort, agent_type, and fork_turns inputs.", "Use the CLI lifecycle or SetupSpecV1 recipe commands to preview, apply, update, status, rollback, and uninstall repository-local artifacts.", "Record Switchloom package version, package digest, bundle_id, host version, requested dispatch, effective child identity, nonce, and receipt paths before claiming certification.", "Treat advisory or unsupported guarantees as uncertified until nonce-bearing live host evidence upgrades them.", - "For the available-host release gate, Codex may be certified from deterministic effective-routing evidence; Cursor profiles may only claim advisory nonce-correlated requested-routing evidence unless the host exposes authenticated effective role/model telemetry. Claude Code, OpenCode, and Pi remain unavailable or unverified until authentic receipts exist." + "For the available-host release gate, Codex may be certified from deterministic effective-routing evidence; Cursor profiles may only claim advisory nonce-correlated requested-routing evidence unless the host exposes authenticated effective role/model telemetry. Claude Code and OpenCode remain unavailable or unverified until authentic receipts exist." ], "forbidden_duplicate_ownership": [ "Do not maintain a Planr-side model catalog, effort catalog, preset compiler, host adapter, or fork policy normalizer for Switchloom-owned inputs.", "Do not re-normalize Switchloom model, effort, role, agent_type, profile, or fork policy identifiers in Planr.", "Do not overwrite Switchloom-managed artifacts outside preview/apply/update/rollback/uninstall.", - "Do not mark Claude Code, OpenCode, Pi, or any advisory receipt as certified without live nonce-bearing child evidence." + "Do not mark Claude Code, OpenCode, or any advisory receipt as certified without live nonce-bearing child evidence." ], "certification_report_reference": "reports/native-host-certification///workdir/dispatch-evidence.json plus the matching bundle.json, invocation receipt, package digest, and validator stdout" } diff --git a/website/data/bundles/read-only-audit-cursor-openai.json b/website/data/bundles/read-only-audit-cursor-openai.json index 89be0ff..2b5811c 100644 --- a/website/data/bundles/read-only-audit-cursor-openai.json +++ b/website/data/bundles/read-only-audit-cursor-openai.json @@ -6,7 +6,7 @@ "generated_at": "2026-07-16T00:00:00Z", "source": { "package": "model-routing", - "package_version": "0.3.5", + "package_version": "0.3.6", "integration": "standalone" }, "policy": { @@ -283,20 +283,20 @@ }, "planr_handoff": { "schema_version": 1, - "switchloom_package": "switchloom@0.3.5", + "switchloom_package": "switchloom@0.3.6", "semantic_role_contract": "Planr supplies usage policy `read-only-audit`, work_type routes, and semantic roles; Switchloom owns the selected host binding, model, effort, fork/context policy, and generated dispatch artifacts.", "required_consumer_behavior": [ "Consume RoutingIntentV1 as the only source for semantic_role, work_type, selected profile, model, effort, agent_type, and fork_turns inputs.", "Use the CLI lifecycle or SetupSpecV1 recipe commands to preview, apply, update, status, rollback, and uninstall repository-local artifacts.", "Record Switchloom package version, package digest, bundle_id, host version, requested dispatch, effective child identity, nonce, and receipt paths before claiming certification.", "Treat advisory or unsupported guarantees as uncertified until nonce-bearing live host evidence upgrades them.", - "For the available-host release gate, Codex may be certified from deterministic effective-routing evidence; Cursor profiles may only claim advisory nonce-correlated requested-routing evidence unless the host exposes authenticated effective role/model telemetry. Claude Code, OpenCode, and Pi remain unavailable or unverified until authentic receipts exist." + "For the available-host release gate, Codex may be certified from deterministic effective-routing evidence; Cursor profiles may only claim advisory nonce-correlated requested-routing evidence unless the host exposes authenticated effective role/model telemetry. Claude Code and OpenCode remain unavailable or unverified until authentic receipts exist." ], "forbidden_duplicate_ownership": [ "Do not maintain a Planr-side model catalog, effort catalog, preset compiler, host adapter, or fork policy normalizer for Switchloom-owned inputs.", "Do not re-normalize Switchloom model, effort, role, agent_type, profile, or fork policy identifiers in Planr.", "Do not overwrite Switchloom-managed artifacts outside preview/apply/update/rollback/uninstall.", - "Do not mark Claude Code, OpenCode, Pi, or any advisory receipt as certified without live nonce-bearing child evidence." + "Do not mark Claude Code, OpenCode, or any advisory receipt as certified without live nonce-bearing child evidence." ], "certification_report_reference": "reports/native-host-certification///workdir/dispatch-evidence.json plus the matching bundle.json, invocation receipt, package digest, and validator stdout" }