@floegence/redevplugin-contracts 0.0.0-dev

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,595 @@
1
+ export declare const generatedContractArtifacts: readonly [{
2
+ readonly id: "compatibility-manifest-schema";
3
+ readonly path: "spec/plugin/compatibility-manifest-v8.schema.json";
4
+ readonly version: "compatibility-manifest-v8";
5
+ readonly sha256: "a1831e0ae9a1b47d92e7ad9879b1ca4e3510ebc212b87360595b672e8b87bc79";
6
+ readonly body: "{\n \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n \"$id\": \"https://schemas.redevplugin.dev/plugin/compatibility-manifest-v8.schema.json\",\n \"title\": \"ReDevPlugin compatibility manifest v8\",\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"schema_version\", \"package_set\", \"matrix\", \"contract_set_sha256\", \"contracts\"],\n \"properties\": {\n \"schema_version\": {\"const\": \"redevplugin.compatibility.v8\"},\n \"package_set\": {\"$ref\": \"platform-package-set-v1.schema.json\"},\n \"matrix\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\n \"plugin_ui_protocol_version\", \"plugin_host_protocol_version\", \"rust_ipc_version\", \"wasm_abi_version\",\n \"manifest_schema_version\", \"package_signature_schema_version\", \"release_metadata_schema_version\",\n \"release_root_delegation_schema_version\", \"release_source_policy_schema_version\",\n \"release_source_policy_pointer_schema_version\", \"release_revocation_schema_version\",\n \"release_revocation_pointer_schema_version\", \"release_trust_state_schema_version\",\n \"trusted_time_evidence_schema_version\", \"trusted_time_leaf_schema_version\",\n \"release_signing_ledger_schema_version\", \"release_signing_subject_schema_version\",\n \"release_signature_envelope_schema_version\", \"release_signing_ledger_receipt_schema_version\",\n \"release_signing_ledger_evidence_schema_version\", \"token_ticket_schema_version\", \"bridge_schema_version\",\n \"opaque_surface_document_schema_version\", \"opaque_surface_transport_schema_version\", \"target_classifier_version\",\n \"network_grant_schema_version\", \"resource_scope_schema_version\", \"session_scope_schema_version\",\n \"plugin_platform_openapi_version\", \"compatibility_schema_version\", \"worker_invocation_schema_version\",\n \"host_capability_contract_schema_version\", \"host_capability_pin_schema_version\",\n \"host_capability_manifest_schema_version\", \"host_capability_compatibility_schema_version\",\n \"host_capability_signature_schema_version\", \"host_capability_notices_schema_version\",\n \"error_codes_schema_version\", \"performance_contract_version\", \"performance_evidence_schema_version\",\n \"contract_registry_version\", \"platform_package_set_schema_version\",\n \"platform_package_publication_schema_version\", \"runtime_admission_schema_version\",\n \"runtime_descriptor_schema_version\", \"owner_scope_inventory_registry_version\",\n \"owner_scope_inventory_schema_version\", \"owner_scope_migration_schema_version\",\n \"process_containment_schema_version\", \"runtime_exec_journal_schema_version\",\n \"quarantine_cleanup_schema_version\"\n ],\n \"properties\": {\n \"plugin_ui_protocol_version\": {\"const\": \"plugin-ui-v5\"},\n \"plugin_host_protocol_version\": {\"const\": \"plugin-host-v6\"},\n \"rust_ipc_version\": {\"const\": \"rust-ipc-v6\"},\n \"wasm_abi_version\": {\"const\": \"redevplugin-wasm-worker-v2\"},\n \"manifest_schema_version\": {\"const\": \"manifest-v5\"},\n \"package_signature_schema_version\": {\"const\": \"package-signature-v1\"},\n \"release_metadata_schema_version\": {\"const\": \"release-metadata-v5\"},\n \"release_root_delegation_schema_version\": {\"const\": \"release-root-delegation-v1\"},\n \"release_source_policy_schema_version\": {\"const\": \"release-source-policy-v2\"},\n \"release_source_policy_pointer_schema_version\": {\"const\": \"release-source-policy-pointer-v1\"},\n \"release_revocation_schema_version\": {\"const\": \"release-revocation-v2\"},\n \"release_revocation_pointer_schema_version\": {\"const\": \"release-revocation-pointer-v1\"},\n \"release_trust_state_schema_version\": {\"const\": \"release-trust-state-v1\"},\n \"trusted_time_evidence_schema_version\": {\"const\": \"trusted-time-evidence-v1\"},\n \"trusted_time_leaf_schema_version\": {\"const\": \"trusted-time-leaf-v1\"},\n \"release_signing_ledger_schema_version\": {\"const\": \"release-signing-ledger-v1\"},\n \"release_signing_subject_schema_version\": {\"const\": \"release-signing-subject-v1\"},\n \"release_signature_envelope_schema_version\": {\"const\": \"release-signature-envelope-v1\"},\n \"release_signing_ledger_receipt_schema_version\": {\"const\": \"release-signing-ledger-receipt-v1\"},\n \"release_signing_ledger_evidence_schema_version\": {\"const\": \"release-signing-ledger-evidence-v1\"},\n \"token_ticket_schema_version\": {\"const\": \"token-ticket-v4\"},\n \"bridge_schema_version\": {\"const\": \"bridge-v5\"},\n \"opaque_surface_document_schema_version\": {\"const\": \"opaque-surface-document-v3\"},\n \"opaque_surface_transport_schema_version\": {\"const\": \"opaque-surface-transport-v4\"},\n \"target_classifier_version\": {\"const\": \"target-classifier-v2\"},\n \"network_grant_schema_version\": {\"const\": \"network-grant-v2\"},\n \"resource_scope_schema_version\": {\"const\": \"resource-scope-v1\"},\n \"session_scope_schema_version\": {\"const\": \"session-scope-v1\"},\n \"plugin_platform_openapi_version\": {\"const\": \"plugin-platform-v8\"},\n \"compatibility_schema_version\": {\"const\": \"compatibility-manifest-v8\"},\n \"worker_invocation_schema_version\": {\"const\": \"worker-invocation-v3\"},\n \"host_capability_contract_schema_version\": {\"const\": \"host-capability-contract-v1\"},\n \"host_capability_pin_schema_version\": {\"const\": \"host-capability-pin-v1\"},\n \"host_capability_manifest_schema_version\": {\"const\": \"host-capability-manifest-v1\"},\n \"host_capability_compatibility_schema_version\": {\"const\": \"host-capability-compatibility-v1\"},\n \"host_capability_signature_schema_version\": {\"const\": \"host-capability-signature-v1\"},\n \"host_capability_notices_schema_version\": {\"const\": \"host-capability-notices-v1\"},\n \"error_codes_schema_version\": {\"const\": \"error-codes-v6\"},\n \"performance_contract_version\": {\"const\": \"performance-contract-v3\"},\n \"performance_evidence_schema_version\": {\"const\": \"performance-evidence-v3\"},\n \"contract_registry_version\": {\"const\": \"contract-registry-v2\"},\n \"platform_package_set_schema_version\": {\"const\": \"platform-package-set-v1\"},\n \"platform_package_publication_schema_version\": {\"const\": \"platform-package-publication-v1\"},\n \"runtime_admission_schema_version\": {\"const\": \"runtime-admission-v1\"},\n \"runtime_descriptor_schema_version\": {\"const\": \"runtime-descriptor-v2\"},\n \"owner_scope_inventory_registry_version\": {\"const\": \"owner-scope-inventory-registry-v1\"},\n \"owner_scope_inventory_schema_version\": {\"const\": \"owner-scope-inventory-v1\"},\n \"owner_scope_migration_schema_version\": {\"const\": \"owner-scope-migration-v1\"},\n \"process_containment_schema_version\": {\"const\": \"process-containment-v1\"},\n \"runtime_exec_journal_schema_version\": {\"const\": \"runtime-exec-journal-v1\"},\n \"quarantine_cleanup_schema_version\": {\"const\": \"quarantine-cleanup-v1\"}\n }\n },\n \"contract_set_sha256\": {\"type\": \"string\", \"pattern\": \"^[0-9a-f]{64}$\"},\n \"contracts\": {\n \"type\": \"array\", \"minItems\": 1, \"maxItems\": 256, \"uniqueItems\": true,\n \"items\": {\"$ref\": \"#/$defs/contract\"}\n }\n },\n \"$defs\": {\n \"contract\": {\n \"type\": \"object\", \"additionalProperties\": false,\n \"required\": [\"id\", \"path\", \"version\", \"sha256\"],\n \"properties\": {\n \"id\": {\"type\": \"string\", \"pattern\": \"^[a-z][a-z0-9-]+$\"},\n \"path\": {\"type\": \"string\", \"pattern\": \"^spec/(openapi|plugin)/[A-Za-z0-9._/-]+$\"},\n \"version\": {\"type\": \"string\", \"minLength\": 1},\n \"sha256\": {\"type\": \"string\", \"pattern\": \"^[0-9a-f]{64}$\"}\n }\n }\n }\n}\n";
7
+ }, {
8
+ readonly id: "contract-registry-schema";
9
+ readonly path: "spec/plugin/contract-registry-v2.schema.json";
10
+ readonly version: "contract-registry-v2";
11
+ readonly sha256: "d516b3565158ac1b0d5e9f86b91b13ac19321ab3ff54468be41951b68d7085ac";
12
+ readonly body: "{\n \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n \"$id\": \"https://schemas.redevplugin.dev/plugin/contract-registry-v2.schema.json\",\n \"title\": \"ReDevPlugin Contract Registry V2\",\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"schema_version\", \"registry_version\", \"artifacts\"],\n \"properties\": {\n \"schema_version\": {\"const\": \"redevplugin.contract_registry.v2\"},\n \"registry_version\": {\"const\": \"contract-registry-v2\"},\n \"artifacts\": {\n \"type\": \"array\",\n \"minItems\": 1,\n \"maxItems\": 256,\n \"uniqueItems\": true,\n \"items\": {\"$ref\": \"#/$defs/artifact\"}\n }\n },\n \"$defs\": {\n \"artifact\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"id\", \"path\", \"version\", \"sha256\"],\n \"properties\": {\n \"id\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"maxLength\": 128,\n \"pattern\": \"^[a-z][a-z0-9-]+$\",\n \"not\": {\"const\": \"contract-registry\"}\n },\n \"path\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"maxLength\": 1024,\n \"pattern\": \"^spec/(openapi|plugin)/[A-Za-z0-9][A-Za-z0-9._-]*(/[A-Za-z0-9][A-Za-z0-9._-]*)*$\",\n \"not\": {\"enum\": [\"spec/plugin/contract-registry-v2.json\", \"spec/plugin/platform-package-set-v1.json\"]}\n },\n \"version\": {\"type\": \"string\", \"minLength\": 1, \"maxLength\": 128, \"pattern\": \"^[A-Za-z0-9][A-Za-z0-9._-]*$\"},\n \"sha256\": {\"type\": \"string\", \"pattern\": \"^[0-9a-f]{64}$\"}\n }\n }\n }\n}\n";
13
+ }, {
14
+ readonly id: "error-codes-schema";
15
+ readonly path: "spec/plugin/error-codes-v6.schema.json";
16
+ readonly version: "error-codes-v6";
17
+ readonly sha256: "094cb980156c17af4866942b51e6a1032ea7d1ae0675b329d59a765223ccda28";
18
+ readonly body: "{\n \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n \"$id\": \"https://schemas.redevplugin.dev/plugin/error-codes-v6.schema.json\",\n \"title\": \"ReDevPlugin stable error codes v6\",\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"$defs\": {\n \"platform_error_code\": {\n \"type\": \"string\",\n \"enum\": [\n \"PLUGIN_INVALID_REQUEST\",\n \"PLUGIN_MANIFEST_INVALID\",\n \"PLUGIN_PACKAGE_INVALID\",\n \"PLUGIN_PACKAGE_TOO_LARGE\",\n \"PLUGIN_PACKAGE_PATH_FORBIDDEN\",\n \"PLUGIN_SIGNATURE_INVALID\",\n \"PLUGIN_TRUST_STATE_DENIED\",\n \"PLUGIN_TRUST_VERIFICATION_REQUIRED\",\n \"PLUGIN_TRUST_VERIFICATION_INVALID\",\n \"PLUGIN_RELEASE_REF_VERIFICATION_FAILED\",\n \"PLUGIN_RELEASE_REF_POLICY_DENIED\",\n \"PLUGIN_DISABLED\",\n \"PLUGIN_DISABLED_BY_POLICY\",\n \"PLUGIN_PERMISSION_DENIED\",\n \"PLUGIN_ORIGIN_DENIED\",\n \"PLUGIN_ACTION_DENIED\",\n \"PLUGIN_OWNER_SCOPE_MISMATCH\",\n \"PLUGIN_SECRET_SCOPE_MISMATCH\",\n \"PLUGIN_STORAGE_SCOPE_MISMATCH\",\n \"PLUGIN_ADAPTER_FAILURE\",\n \"PLUGIN_SESSION_REVOKED\",\n \"PLUGIN_SESSION_TEARDOWN_INCOMPLETE\",\n \"PLUGIN_SESSION_FENCE_CAPACITY\",\n \"PLUGIN_CONFIRMATION_REQUIRED\",\n \"PLUGIN_CONFIRMATION_INVALID\",\n \"PLUGIN_TOKEN_EXPIRED\",\n \"PLUGIN_TOKEN_REPLAY\",\n \"PLUGIN_GATEWAY_TOKEN_INVALID\",\n \"PLUGIN_GATEWAY_TOKEN_REPLAYED\",\n \"PLUGIN_GATEWAY_TOKEN_CHANNEL_MISMATCH\",\n \"PLUGIN_ASSET_TICKET_INVALID\",\n \"PLUGIN_ASSET_SESSION_INVALID\",\n \"PLUGIN_STREAM_TICKET_INVALID\",\n \"PLUGIN_STREAM_DELIVERY_INVALID\",\n \"PLUGIN_STREAM_CANCELLED\",\n \"PLUGIN_LEASE_INVALID\",\n \"PLUGIN_LEASE_REPLAYED\",\n \"PLUGIN_GRANT_INVALID\",\n \"PLUGIN_STORAGE_QUOTA_EXCEEDED\",\n \"PLUGIN_OPERATION_BLOCKED\",\n \"PLUGIN_OPERATION_NOT_FOUND\",\n \"PLUGIN_OPERATION_NOT_CANCELABLE\",\n \"PLUGIN_NETWORK_TARGET_DENIED\",\n \"PLUGIN_NETWORK_RATE_LIMITED\",\n \"PLUGIN_RUNTIME_UNAVAILABLE\",\n \"PLUGIN_RUNTIME_VERSION_MISMATCH\",\n \"PLUGIN_RUNTIME_CONTRACT_MISMATCH\",\n \"PLUGIN_UI_PROTOCOL_UNSUPPORTED\",\n \"PLUGIN_UI_PROTOCOL_VIOLATION\",\n \"PLUGIN_SURFACE_QUIESCE_TIMEOUT\",\n \"PLUGIN_JSON_LIMIT_EXCEEDED\",\n \"PLUGIN_CAPABILITY_ERROR\",\n \"PLUGIN_WORKER_ERROR\",\n \"PLUGIN_CONTRACT_MISMATCH\",\n \"PLUGIN_MANAGEMENT_REVISION_MISMATCH\",\n \"PLUGIN_AUTHORIZATION_REVISION_MISMATCH\",\n \"PLUGIN_BINDING_REVISION_MISMATCH\",\n \"PLUGIN_VALUES_REVISION_MISMATCH\",\n \"PLUGIN_CSRF_REQUIRED\",\n \"PLUGIN_CSRF_INVALID\",\n \"PLUGIN_FEATURE_NOT_CONFIGURED\"\n ]\n },\n \"bridge_error_code\": {\n \"type\": \"string\",\n \"enum\": [\n \"PLUGIN_INVALID_REQUEST\",\n \"PLUGIN_MANIFEST_INVALID\",\n \"PLUGIN_PACKAGE_INVALID\",\n \"PLUGIN_PACKAGE_TOO_LARGE\",\n \"PLUGIN_PACKAGE_PATH_FORBIDDEN\",\n \"PLUGIN_SIGNATURE_INVALID\",\n \"PLUGIN_TRUST_STATE_DENIED\",\n \"PLUGIN_TRUST_VERIFICATION_REQUIRED\",\n \"PLUGIN_TRUST_VERIFICATION_INVALID\",\n \"PLUGIN_RELEASE_REF_VERIFICATION_FAILED\",\n \"PLUGIN_RELEASE_REF_POLICY_DENIED\",\n \"PLUGIN_DISABLED\",\n \"PLUGIN_DISABLED_BY_POLICY\",\n \"PLUGIN_PERMISSION_DENIED\",\n \"PLUGIN_ORIGIN_DENIED\",\n \"PLUGIN_ACTION_DENIED\",\n \"PLUGIN_OWNER_SCOPE_MISMATCH\",\n \"PLUGIN_SECRET_SCOPE_MISMATCH\",\n \"PLUGIN_STORAGE_SCOPE_MISMATCH\",\n \"PLUGIN_ADAPTER_FAILURE\",\n \"PLUGIN_SESSION_REVOKED\",\n \"PLUGIN_SESSION_TEARDOWN_INCOMPLETE\",\n \"PLUGIN_SESSION_FENCE_CAPACITY\",\n \"PLUGIN_CONFIRMATION_REQUIRED\",\n \"PLUGIN_CONFIRMATION_INVALID\",\n \"PLUGIN_TOKEN_EXPIRED\",\n \"PLUGIN_TOKEN_REPLAY\",\n \"PLUGIN_GATEWAY_TOKEN_INVALID\",\n \"PLUGIN_GATEWAY_TOKEN_REPLAYED\",\n \"PLUGIN_GATEWAY_TOKEN_CHANNEL_MISMATCH\",\n \"PLUGIN_ASSET_TICKET_INVALID\",\n \"PLUGIN_ASSET_SESSION_INVALID\",\n \"PLUGIN_STREAM_TICKET_INVALID\",\n \"PLUGIN_STREAM_DELIVERY_INVALID\",\n \"PLUGIN_STREAM_CANCELLED\",\n \"PLUGIN_LEASE_INVALID\",\n \"PLUGIN_LEASE_REPLAYED\",\n \"PLUGIN_GRANT_INVALID\",\n \"PLUGIN_STORAGE_QUOTA_EXCEEDED\",\n \"PLUGIN_OPERATION_BLOCKED\",\n \"PLUGIN_OPERATION_NOT_FOUND\",\n \"PLUGIN_OPERATION_NOT_CANCELABLE\",\n \"PLUGIN_NETWORK_TARGET_DENIED\",\n \"PLUGIN_NETWORK_RATE_LIMITED\",\n \"PLUGIN_RUNTIME_UNAVAILABLE\",\n \"PLUGIN_RUNTIME_VERSION_MISMATCH\",\n \"PLUGIN_RUNTIME_CONTRACT_MISMATCH\",\n \"PLUGIN_UI_PROTOCOL_UNSUPPORTED\",\n \"PLUGIN_UI_PROTOCOL_VIOLATION\",\n \"PLUGIN_SURFACE_QUIESCE_TIMEOUT\",\n \"PLUGIN_JSON_LIMIT_EXCEEDED\",\n \"PLUGIN_CAPABILITY_ERROR\",\n \"PLUGIN_WORKER_ERROR\",\n \"PLUGIN_CONTRACT_MISMATCH\",\n \"PLUGIN_MANAGEMENT_REVISION_MISMATCH\",\n \"PLUGIN_AUTHORIZATION_REVISION_MISMATCH\",\n \"PLUGIN_BINDING_REVISION_MISMATCH\",\n \"PLUGIN_VALUES_REVISION_MISMATCH\",\n \"PLUGIN_CSRF_REQUIRED\",\n \"PLUGIN_CSRF_INVALID\",\n \"PLUGIN_FEATURE_NOT_CONFIGURED\",\n \"PLUGIN_CONFIRMATION_REJECTED\",\n \"PLUGIN_BRIDGE_CANCELLED\",\n \"PLUGIN_BRIDGE_TIMEOUT\",\n \"PLUGIN_BRIDGE_DISPOSED\",\n \"PLUGIN_BRIDGE_HANDSHAKE_FAILED\",\n \"PLUGIN_BRIDGE_HANDSHAKE_REQUIRED\"\n ]\n },\n \"typescript_client_error_code\": {\n \"type\": \"string\",\n \"enum\": [\n \"PLUGIN_INVALID_REQUEST\",\n \"PLUGIN_MANIFEST_INVALID\",\n \"PLUGIN_PACKAGE_INVALID\",\n \"PLUGIN_PACKAGE_TOO_LARGE\",\n \"PLUGIN_PACKAGE_PATH_FORBIDDEN\",\n \"PLUGIN_SIGNATURE_INVALID\",\n \"PLUGIN_TRUST_STATE_DENIED\",\n \"PLUGIN_TRUST_VERIFICATION_REQUIRED\",\n \"PLUGIN_TRUST_VERIFICATION_INVALID\",\n \"PLUGIN_RELEASE_REF_VERIFICATION_FAILED\",\n \"PLUGIN_RELEASE_REF_POLICY_DENIED\",\n \"PLUGIN_DISABLED\",\n \"PLUGIN_DISABLED_BY_POLICY\",\n \"PLUGIN_PERMISSION_DENIED\",\n \"PLUGIN_ORIGIN_DENIED\",\n \"PLUGIN_ACTION_DENIED\",\n \"PLUGIN_OWNER_SCOPE_MISMATCH\",\n \"PLUGIN_SECRET_SCOPE_MISMATCH\",\n \"PLUGIN_STORAGE_SCOPE_MISMATCH\",\n \"PLUGIN_ADAPTER_FAILURE\",\n \"PLUGIN_SESSION_REVOKED\",\n \"PLUGIN_SESSION_TEARDOWN_INCOMPLETE\",\n \"PLUGIN_SESSION_FENCE_CAPACITY\",\n \"PLUGIN_CONFIRMATION_REQUIRED\",\n \"PLUGIN_CONFIRMATION_INVALID\",\n \"PLUGIN_TOKEN_EXPIRED\",\n \"PLUGIN_TOKEN_REPLAY\",\n \"PLUGIN_GATEWAY_TOKEN_INVALID\",\n \"PLUGIN_GATEWAY_TOKEN_REPLAYED\",\n \"PLUGIN_GATEWAY_TOKEN_CHANNEL_MISMATCH\",\n \"PLUGIN_ASSET_TICKET_INVALID\",\n \"PLUGIN_ASSET_SESSION_INVALID\",\n \"PLUGIN_STREAM_TICKET_INVALID\",\n \"PLUGIN_STREAM_DELIVERY_INVALID\",\n \"PLUGIN_STREAM_CANCELLED\",\n \"PLUGIN_LEASE_INVALID\",\n \"PLUGIN_LEASE_REPLAYED\",\n \"PLUGIN_GRANT_INVALID\",\n \"PLUGIN_STORAGE_QUOTA_EXCEEDED\",\n \"PLUGIN_OPERATION_BLOCKED\",\n \"PLUGIN_OPERATION_NOT_FOUND\",\n \"PLUGIN_OPERATION_NOT_CANCELABLE\",\n \"PLUGIN_NETWORK_TARGET_DENIED\",\n \"PLUGIN_NETWORK_RATE_LIMITED\",\n \"PLUGIN_RUNTIME_UNAVAILABLE\",\n \"PLUGIN_RUNTIME_VERSION_MISMATCH\",\n \"PLUGIN_RUNTIME_CONTRACT_MISMATCH\",\n \"PLUGIN_UI_PROTOCOL_UNSUPPORTED\",\n \"PLUGIN_UI_PROTOCOL_VIOLATION\",\n \"PLUGIN_SURFACE_QUIESCE_TIMEOUT\",\n \"PLUGIN_JSON_LIMIT_EXCEEDED\",\n \"PLUGIN_CAPABILITY_ERROR\",\n \"PLUGIN_WORKER_ERROR\",\n \"PLUGIN_CONTRACT_MISMATCH\",\n \"PLUGIN_MANAGEMENT_REVISION_MISMATCH\",\n \"PLUGIN_AUTHORIZATION_REVISION_MISMATCH\",\n \"PLUGIN_BINDING_REVISION_MISMATCH\",\n \"PLUGIN_VALUES_REVISION_MISMATCH\",\n \"PLUGIN_CSRF_REQUIRED\",\n \"PLUGIN_CSRF_INVALID\",\n \"PLUGIN_FEATURE_NOT_CONFIGURED\",\n \"PLUGIN_CONFIRMATION_REJECTED\",\n \"PLUGIN_BRIDGE_CANCELLED\",\n \"PLUGIN_BRIDGE_TIMEOUT\",\n \"PLUGIN_BRIDGE_DISPOSED\",\n \"PLUGIN_BRIDGE_HANDSHAKE_FAILED\",\n \"PLUGIN_BRIDGE_HANDSHAKE_REQUIRED\",\n \"PLUGIN_PLATFORM_REQUEST_FAILED\",\n \"PLUGIN_STREAM_FAILED\"\n ]\n },\n \"rust_ipc_error_code\": {\n \"type\": \"string\",\n \"enum\": [\n \"ARTIFACT_HANDLE_FAILED\",\n \"HANDLE_GRANT_VALIDATION_FAILED\",\n \"STORAGE_FILE_FAILED\",\n \"STORAGE_KV_FAILED\",\n \"STORAGE_SQLITE_FAILED\",\n \"NETWORK_GRANT_FAILED\",\n \"NETWORK_EXECUTE_FAILED\",\n \"NETWORK_STREAM_STORE_UNAVAILABLE\",\n \"NETWORK_STREAM_FAILED\",\n \"NETWORK_STREAM_BACKPRESSURE\",\n \"NETWORK_STREAM_INVALID\",\n \"NETWORK_STREAM_NOT_FOUND\",\n \"NETWORK_STREAM_CLOSED\",\n \"WORKER_INVOCATION_INVALID\",\n \"RUNTIME_CAPABILITY_REVOKED\",\n \"RUNTIME_CONTROL_CHANNEL_STALE\",\n \"RUNTIME_LEASE_INVALID\",\n \"RUNTIME_LEASE_SIGNATURE_INVALID\",\n \"PLUGIN_LEASE_REPLAYED\",\n \"WASM_WORKER_INVALID\",\n \"WASM_WORKER_FAILED\",\n \"WASM_HOSTCALL_FAILED\",\n \"RUNTIME_CAPACITY_EXCEEDED\",\n \"RUNTIME_INVOCATION_CANCELED\",\n \"PLUGIN_SESSION_REVOKED\",\n \"SESSION_REVOKE_SEQUENCE_STALE\",\n \"SESSION_REVOKE_DRAIN_TIMEOUT\",\n \"UNSUPPORTED_FRAME\"\n ]\n },\n \"runtime_process_failure_code\": {\n \"type\": \"string\",\n \"enum\": [\n \"RUNTIME_PROCESS_FAILED\",\n \"RUNTIME_PROCESS_EXIT_UNEXPECTED\",\n \"RUNTIME_PROCESS_EXIT_UNRECOGNIZED\",\n \"RUNTIME_PROCESS_SIGNALLED\",\n \"IPC_WRITER_CAPACITY_OVERFLOW\",\n \"IPC_WRITER_CAPACITY_LIMIT_EXCEEDED\",\n \"IPC_WRITER_START_FAILED\",\n \"IPC_WRITER_CLOSED\",\n \"IPC_WRITER_BATCH_SIZE_OVERFLOW\",\n \"IPC_WRITER_WRITE_FAILED\",\n \"IPC_WRITER_FLUSH_FAILED\",\n \"IPC_WRITER_PANICKED\"\n ]\n },\n \"runtime_process_exit_failure\": {\n \"oneOf\": [\n {\n \"type\": \"object\",\n \"required\": [\"exit_code\", \"code\"],\n \"additionalProperties\": false,\n \"properties\": {\n \"exit_code\": { \"const\": 1 },\n \"code\": { \"const\": \"RUNTIME_PROCESS_FAILED\" }\n }\n },\n {\n \"type\": \"object\",\n \"required\": [\"exit_code\", \"code\"],\n \"additionalProperties\": false,\n \"properties\": {\n \"exit_code\": { \"const\": 80 },\n \"code\": { \"const\": \"IPC_WRITER_CAPACITY_OVERFLOW\" }\n }\n },\n {\n \"type\": \"object\",\n \"required\": [\"exit_code\", \"code\"],\n \"additionalProperties\": false,\n \"properties\": {\n \"exit_code\": { \"const\": 81 },\n \"code\": { \"const\": \"IPC_WRITER_CAPACITY_LIMIT_EXCEEDED\" }\n }\n },\n {\n \"type\": \"object\",\n \"required\": [\"exit_code\", \"code\"],\n \"additionalProperties\": false,\n \"properties\": {\n \"exit_code\": { \"const\": 82 },\n \"code\": { \"const\": \"IPC_WRITER_START_FAILED\" }\n }\n },\n {\n \"type\": \"object\",\n \"required\": [\"exit_code\", \"code\"],\n \"additionalProperties\": false,\n \"properties\": {\n \"exit_code\": { \"const\": 83 },\n \"code\": { \"const\": \"IPC_WRITER_CLOSED\" }\n }\n },\n {\n \"type\": \"object\",\n \"required\": [\"exit_code\", \"code\"],\n \"additionalProperties\": false,\n \"properties\": {\n \"exit_code\": { \"const\": 84 },\n \"code\": { \"const\": \"IPC_WRITER_BATCH_SIZE_OVERFLOW\" }\n }\n },\n {\n \"type\": \"object\",\n \"required\": [\"exit_code\", \"code\"],\n \"additionalProperties\": false,\n \"properties\": {\n \"exit_code\": { \"const\": 85 },\n \"code\": { \"const\": \"IPC_WRITER_WRITE_FAILED\" }\n }\n },\n {\n \"type\": \"object\",\n \"required\": [\"exit_code\", \"code\"],\n \"additionalProperties\": false,\n \"properties\": {\n \"exit_code\": { \"const\": 86 },\n \"code\": { \"const\": \"IPC_WRITER_FLUSH_FAILED\" }\n }\n },\n {\n \"type\": \"object\",\n \"required\": [\"exit_code\", \"code\"],\n \"additionalProperties\": false,\n \"properties\": {\n \"exit_code\": { \"const\": 87 },\n \"code\": { \"const\": \"IPC_WRITER_PANICKED\" }\n }\n }\n ]\n }\n }\n}\n";
19
+ }, {
20
+ readonly id: "host-capability-compatibility-schema";
21
+ readonly path: "spec/plugin/host-capability-compatibility-v1.schema.json";
22
+ readonly version: "host-capability-compatibility-v1";
23
+ readonly sha256: "361ebbf7009aeb66c763ecde46427b17b6cf7d2307c01886c5987a1f4f1762de";
24
+ readonly body: "{\n \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n \"$id\": \"https://schemas.redevplugin.dev/plugin/host-capability-compatibility-v1.schema.json\",\n \"title\": \"ReDevPlugin host capability compatibility v1\",\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\n \"schema_version\",\n \"contract_id\",\n \"contract_version\",\n \"capability_id\",\n \"capability_version\",\n \"min_redevplugin_version\"\n ],\n \"properties\": {\n \"schema_version\": { \"const\": \"redevplugin.host_capability_compatibility.v1\" },\n \"contract_id\": { \"$ref\": \"#/$defs/id\" },\n \"contract_version\": { \"$ref\": \"#/$defs/semver\" },\n \"capability_id\": { \"$ref\": \"#/$defs/id\" },\n \"capability_version\": { \"$ref\": \"#/$defs/semver\" },\n \"min_redevplugin_version\": { \"$ref\": \"#/$defs/semver\" }\n },\n \"$defs\": {\n \"id\": { \"type\": \"string\", \"pattern\": \"^[A-Za-z0-9][A-Za-z0-9._-]*$\" },\n \"semver\": {\n \"type\": \"string\",\n \"pattern\": \"^(0|[1-9][0-9]*)\\\\.(0|[1-9][0-9]*)\\\\.(0|[1-9][0-9]*)(?:-(?:(?:0|[1-9][0-9]*|[0-9A-Za-z-]*[A-Za-z-][0-9A-Za-z-]*)(?:\\\\.(?:0|[1-9][0-9]*|[0-9A-Za-z-]*[A-Za-z-][0-9A-Za-z-]*))*))?(?:\\\\+[0-9A-Za-z-]+(?:\\\\.[0-9A-Za-z-]+)*)?$\"\n }\n }\n}\n";
25
+ }, {
26
+ readonly id: "host-capability-contract-schema";
27
+ readonly path: "spec/plugin/host-capability-contract-v1.schema.json";
28
+ readonly version: "host-capability-contract-v1";
29
+ readonly sha256: "0a653e36d44104f1d16b06ee424648086c146f23c907b176bdf470ae73025485";
30
+ readonly body: "{\n \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n \"$id\": \"https://schemas.redevplugin.dev/plugin/host-capability-contract-v1.schema.json\",\n \"title\": \"ReDevPlugin host capability contract v1\",\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\n \"schema_version\",\n \"contract_id\",\n \"contract_version\",\n \"publisher_id\",\n \"capability_id\",\n \"capability_version\",\n \"client_name\",\n \"methods\"\n ],\n \"properties\": {\n \"schema_version\": { \"const\": \"redevplugin.host_capability_contract.v1\" },\n \"contract_id\": { \"$ref\": \"#/$defs/id\" },\n \"contract_version\": { \"$ref\": \"#/$defs/semver\" },\n \"publisher_id\": { \"$ref\": \"#/$defs/id\" },\n \"capability_id\": { \"$ref\": \"#/$defs/id\" },\n \"capability_version\": { \"$ref\": \"#/$defs/semver\" },\n \"client_name\": { \"$ref\": \"#/$defs/typescript_declaration_identifier\" },\n \"methods\": {\n \"type\": \"array\",\n \"minItems\": 1,\n \"items\": { \"$ref\": \"#/$defs/method\" }\n },\n \"errors\": {\n \"type\": \"array\",\n \"items\": { \"$ref\": \"#/$defs/business_error\" }\n }\n },\n \"$defs\": {\n \"id\": { \"type\": \"string\", \"pattern\": \"^[A-Za-z0-9][A-Za-z0-9._-]*$\" },\n \"semver\": {\n \"type\": \"string\",\n \"pattern\": \"^(0|[1-9][0-9]*)\\\\.(0|[1-9][0-9]*)\\\\.(0|[1-9][0-9]*)(?:-(?:(?:0|[1-9][0-9]*|[0-9A-Za-z-]*[A-Za-z-][0-9A-Za-z-]*)(?:\\\\.(?:0|[1-9][0-9]*|[0-9A-Za-z-]*[A-Za-z-][0-9A-Za-z-]*))*))?(?:\\\\+[0-9A-Za-z-]+(?:\\\\.[0-9A-Za-z-]+)*)?$\"\n },\n \"typescript_declaration_identifier\": {\n \"type\": \"string\",\n \"pattern\": \"^[A-Za-z_$][A-Za-z0-9_$]*$\",\n \"not\": {\n \"enum\": [\n \"PluginBridgeClient\", \"PluginBridgeError\", \"PluginBridgeRequestOptions\", \"PluginOperation\", \"PluginStream\",\n \"abstract\", \"accessor\", \"any\", \"as\", \"assert\", \"asserts\", \"async\", \"await\", \"bigint\", \"boolean\",\n \"break\", \"case\", \"catch\", \"class\", \"const\", \"continue\", \"debugger\", \"declare\", \"default\", \"delete\",\n \"do\", \"else\", \"enum\", \"export\", \"extends\", \"false\", \"finally\", \"for\", \"from\", \"function\", \"get\",\n \"if\", \"implements\", \"import\", \"in\", \"infer\", \"instanceof\", \"interface\", \"intrinsic\", \"is\", \"keyof\",\n \"let\", \"module\", \"namespace\", \"never\", \"new\", \"null\", \"number\", \"object\", \"of\", \"out\", \"override\",\n \"package\", \"private\", \"protected\", \"public\", \"readonly\", \"require\", \"return\", \"satisfies\", \"set\", \"static\",\n \"string\", \"super\", \"switch\", \"symbol\", \"this\", \"throw\", \"true\", \"try\", \"type\", \"typeof\", \"undefined\",\n \"unique\", \"unknown\", \"using\", \"var\", \"void\", \"while\", \"with\", \"yield\",\n \"callCapabilityOperation\", \"callCapabilityStream\", \"callCapabilitySync\", \"decodePluginStreamText\",\n \"isCapabilityBusinessError\"\n ]\n }\n },\n \"typescript_member_identifier\": {\n \"type\": \"string\",\n \"pattern\": \"^[A-Za-z_$][A-Za-z0-9_$]*$\",\n \"not\": { \"const\": \"constructor\" }\n },\n \"string_set\": {\n \"type\": \"array\",\n \"uniqueItems\": true,\n \"items\": { \"type\": \"string\", \"minLength\": 1, \"pattern\": \"^\\\\S+$\" }\n },\n \"method\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\n \"name\",\n \"client_method\",\n \"effect\",\n \"execution\",\n \"target_fields\",\n \"target_schema\",\n \"request_type_name\",\n \"response_type_name\",\n \"request_schema\",\n \"response_schema\",\n \"quota\"\n ],\n \"properties\": {\n \"name\": { \"type\": \"string\", \"pattern\": \"^[a-z][a-z0-9]*(\\\\.[a-z][a-z0-9_]*)+$\" },\n \"client_method\": { \"$ref\": \"#/$defs/typescript_member_identifier\" },\n \"effect\": { \"enum\": [\"read\", \"write\", \"execute\", \"delete\", \"admin\"] },\n \"execution\": { \"enum\": [\"sync\", \"operation\", \"subscription\"] },\n \"preflight_only\": { \"type\": \"boolean\" },\n \"required_permissions\": { \"$ref\": \"#/$defs/string_set\" },\n \"target_fields\": { \"$ref\": \"#/$defs/string_set\" },\n \"target_schema\": { \"$ref\": \"#/$defs/object_value_schema\" },\n \"request_type_name\": { \"$ref\": \"#/$defs/typescript_declaration_identifier\" },\n \"response_type_name\": { \"$ref\": \"#/$defs/typescript_declaration_identifier\" },\n \"request_schema\": { \"$ref\": \"#/$defs/object_value_schema\" },\n \"response_schema\": { \"$ref\": \"#/$defs/restricted_schema\" },\n \"event_type_name\": { \"$ref\": \"#/$defs/typescript_declaration_identifier\" },\n \"event_schema\": { \"$ref\": \"#/$defs/restricted_schema\" },\n \"confirmation\": { \"$ref\": \"#/$defs/confirmation\" },\n \"cancel_policy\": { \"$ref\": \"#/$defs/cancel_policy\" },\n \"quota\": { \"$ref\": \"#/$defs/quota\" }\n },\n \"allOf\": [\n {\n \"if\": { \"properties\": { \"execution\": { \"const\": \"subscription\" } }, \"required\": [\"execution\"] },\n \"then\": { \"required\": [\"event_type_name\", \"event_schema\", \"cancel_policy\"] }\n },\n {\n \"if\": { \"properties\": { \"execution\": { \"const\": \"operation\" } }, \"required\": [\"execution\"] },\n \"then\": { \"required\": [\"cancel_policy\"] }\n },\n {\n \"if\": { \"properties\": { \"execution\": { \"const\": \"sync\" } }, \"required\": [\"execution\"] },\n \"then\": {\n \"not\": {\n \"anyOf\": [\n { \"required\": [\"event_type_name\"] },\n { \"required\": [\"event_schema\"] },\n { \"required\": [\"cancel_policy\"] }\n ]\n }\n }\n }\n ]\n },\n \"confirmation\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"mode\"],\n \"properties\": {\n \"mode\": { \"enum\": [\"required\", \"risk_based\"] },\n \"preflight_method\": { \"type\": \"string\", \"pattern\": \"^[a-z][a-z0-9]*(\\\\.[a-z][a-z0-9_]*)+$\" },\n \"request_hash_fields\": { \"$ref\": \"#/$defs/string_set\" },\n \"plan_hash_required\": { \"type\": \"boolean\" }\n }\n },\n \"cancel_policy\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"cancelable\", \"disable_behavior\", \"uninstall_behavior\"],\n \"properties\": {\n \"cancelable\": { \"type\": \"boolean\" },\n \"disable_behavior\": { \"enum\": [\"cancel\", \"orphan\", \"wait\"] },\n \"uninstall_behavior\": { \"enum\": [\"cancel_then_block_delete\", \"force_cleanup_allowed\"] },\n \"ack_timeout_ms\": { \"type\": \"integer\", \"minimum\": 0 }\n }\n },\n \"quota\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"max_concurrent\": { \"type\": \"integer\", \"minimum\": 0 },\n \"max_duration_ms\": { \"type\": \"integer\", \"minimum\": 0 },\n \"max_stream_bytes\": { \"type\": \"integer\", \"minimum\": 0 }\n }\n },\n \"business_error\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"code\", \"message\"],\n \"properties\": {\n \"code\": { \"type\": \"string\", \"pattern\": \"^[A-Z][A-Z0-9_]*$\" },\n \"message\": { \"type\": \"string\", \"minLength\": 1 },\n \"details_schema\": { \"$ref\": \"#/$defs/object_value_schema\" }\n }\n },\n \"restricted_schema\": {\n \"oneOf\": [\n { \"$ref\": \"#/$defs/object_schema\" },\n { \"$ref\": \"#/$defs/array_schema\" },\n { \"$ref\": \"#/$defs/string_schema\" },\n { \"$ref\": \"#/$defs/integer_schema\" },\n { \"$ref\": \"#/$defs/number_schema\" },\n { \"$ref\": \"#/$defs/boolean_schema\" },\n { \"$ref\": \"#/$defs/null_schema\" },\n { \"$ref\": \"#/$defs/one_of_schema\" }\n ]\n },\n \"object_value_schema\": {\n \"oneOf\": [\n { \"$ref\": \"#/$defs/object_schema\" },\n { \"$ref\": \"#/$defs/object_one_of_schema\" }\n ]\n },\n \"object_one_of_schema\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"oneOf\"],\n \"properties\": {\n \"title\": { \"type\": \"string\" },\n \"description\": { \"type\": \"string\" },\n \"oneOf\": {\n \"type\": \"array\",\n \"minItems\": 2,\n \"maxItems\": 8,\n \"items\": { \"$ref\": \"#/$defs/object_value_schema\" }\n }\n }\n },\n \"object_schema\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"type\", \"additionalProperties\"],\n \"properties\": {\n \"type\": { \"const\": \"object\" },\n \"title\": { \"type\": \"string\" },\n \"description\": { \"type\": \"string\" },\n \"properties\": {\n \"type\": \"object\",\n \"propertyNames\": { \"not\": { \"enum\": [\"__proto__\", \"constructor\", \"prototype\"] } },\n \"additionalProperties\": { \"$ref\": \"#/$defs/restricted_schema\" }\n },\n \"required\": { \"$ref\": \"#/$defs/string_set\" },\n \"additionalProperties\": { \"const\": false },\n \"minProperties\": { \"type\": \"integer\", \"minimum\": 0 },\n \"maxProperties\": { \"type\": \"integer\", \"minimum\": 0 }\n }\n },\n \"array_schema\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"type\", \"items\"],\n \"properties\": {\n \"type\": { \"const\": \"array\" },\n \"title\": { \"type\": \"string\" },\n \"description\": { \"type\": \"string\" },\n \"items\": { \"$ref\": \"#/$defs/restricted_schema\" },\n \"minItems\": { \"type\": \"integer\", \"minimum\": 0 },\n \"maxItems\": { \"type\": \"integer\", \"minimum\": 0 },\n \"uniqueItems\": { \"type\": \"boolean\" }\n }\n },\n \"string_schema\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"type\"],\n \"properties\": {\n \"type\": { \"const\": \"string\" },\n \"title\": { \"type\": \"string\" },\n \"description\": { \"type\": \"string\" },\n \"enum\": { \"type\": \"array\", \"minItems\": 1, \"uniqueItems\": true, \"items\": { \"type\": \"string\" } },\n \"const\": { \"type\": \"string\" },\n \"minLength\": { \"type\": \"integer\", \"minimum\": 0 },\n \"maxLength\": { \"type\": \"integer\", \"minimum\": 0 },\n \"pattern\": { \"type\": \"string\" },\n \"format\": { \"enum\": [\"date-time\", \"uuid\", \"hostname\", \"ipv4\", \"ipv6\"] }\n }\n },\n \"integer_schema\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"type\"],\n \"properties\": {\n \"type\": { \"const\": \"integer\" },\n \"title\": { \"type\": \"string\" },\n \"description\": { \"type\": \"string\" },\n \"enum\": { \"type\": \"array\", \"minItems\": 1, \"uniqueItems\": true, \"items\": { \"type\": \"integer\" } },\n \"const\": { \"type\": \"integer\" },\n \"minimum\": { \"type\": \"integer\" },\n \"maximum\": { \"type\": \"integer\" },\n \"exclusiveMinimum\": { \"type\": \"integer\" },\n \"exclusiveMaximum\": { \"type\": \"integer\" },\n \"multipleOf\": { \"type\": \"integer\", \"exclusiveMinimum\": 0 }\n }\n },\n \"number_schema\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"type\"],\n \"properties\": {\n \"type\": { \"const\": \"number\" },\n \"title\": { \"type\": \"string\" },\n \"description\": { \"type\": \"string\" },\n \"enum\": { \"type\": \"array\", \"minItems\": 1, \"uniqueItems\": true, \"items\": { \"type\": \"number\" } },\n \"const\": { \"type\": \"number\" },\n \"minimum\": { \"type\": \"number\" },\n \"maximum\": { \"type\": \"number\" },\n \"exclusiveMinimum\": { \"type\": \"number\" },\n \"exclusiveMaximum\": { \"type\": \"number\" },\n \"multipleOf\": { \"type\": \"number\", \"exclusiveMinimum\": 0 }\n }\n },\n \"boolean_schema\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"type\"],\n \"properties\": {\n \"type\": { \"const\": \"boolean\" },\n \"title\": { \"type\": \"string\" },\n \"description\": { \"type\": \"string\" },\n \"const\": { \"type\": \"boolean\" }\n }\n },\n \"null_schema\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"type\"],\n \"properties\": {\n \"type\": { \"const\": \"null\" },\n \"title\": { \"type\": \"string\" },\n \"description\": { \"type\": \"string\" },\n \"const\": { \"type\": \"null\" }\n }\n },\n \"one_of_schema\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"oneOf\"],\n \"properties\": {\n \"title\": { \"type\": \"string\" },\n \"description\": { \"type\": \"string\" },\n \"oneOf\": {\n \"type\": \"array\",\n \"minItems\": 2,\n \"maxItems\": 8,\n \"items\": { \"$ref\": \"#/$defs/restricted_schema\" }\n }\n }\n }\n }\n}\n";
31
+ }, {
32
+ readonly id: "host-capability-manifest-schema";
33
+ readonly path: "spec/plugin/host-capability-manifest-v1.schema.json";
34
+ readonly version: "host-capability-manifest-v1";
35
+ readonly sha256: "5f13a8e5f918378b9cba9fdc133a9a75ba3a8311c30cb6a02ca0aba09035110e";
36
+ readonly body: "{\n \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n \"$id\": \"https://schemas.redevplugin.dev/plugin/host-capability-manifest-v1.schema.json\",\n \"title\": \"ReDevPlugin host capability artifact manifest v1\",\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\n \"schema_version\",\n \"publisher_id\",\n \"contract_id\",\n \"contract_version\",\n \"capability_id\",\n \"capability_version\",\n \"generated_at\",\n \"source_commit\",\n \"signature_algorithm\",\n \"signature_key_id\",\n \"signature_policy_epoch\",\n \"signature_revocation_epoch\",\n \"entries\"\n ],\n \"properties\": {\n \"schema_version\": { \"const\": \"redevplugin.host_capability_manifest.v1\" },\n \"publisher_id\": { \"$ref\": \"#/$defs/id\" },\n \"contract_id\": { \"$ref\": \"#/$defs/id\" },\n \"contract_version\": { \"$ref\": \"#/$defs/semver\" },\n \"capability_id\": { \"$ref\": \"#/$defs/id\" },\n \"capability_version\": { \"$ref\": \"#/$defs/semver\" },\n \"generated_at\": { \"type\": \"string\", \"format\": \"date-time\" },\n \"source_commit\": { \"type\": \"string\", \"pattern\": \"^[0-9a-f]{40}$\" },\n \"signature_algorithm\": { \"const\": \"ed25519\" },\n \"signature_key_id\": { \"$ref\": \"#/$defs/id\" },\n \"signature_policy_epoch\": { \"$ref\": \"#/$defs/decimal_epoch\" },\n \"signature_revocation_epoch\": { \"$ref\": \"#/$defs/decimal_epoch\" },\n \"entries\": {\n \"type\": \"array\",\n \"minItems\": 4,\n \"maxItems\": 4,\n \"items\": { \"$ref\": \"#/$defs/entry\" },\n \"allOf\": [\n { \"contains\": { \"properties\": { \"role\": { \"const\": \"contract\" } }, \"required\": [\"role\"] }, \"minContains\": 1, \"maxContains\": 1 },\n { \"contains\": { \"properties\": { \"role\": { \"const\": \"compatibility\" } }, \"required\": [\"role\"] }, \"minContains\": 1, \"maxContains\": 1 },\n { \"contains\": { \"properties\": { \"role\": { \"const\": \"generated_client\" } }, \"required\": [\"role\"] }, \"minContains\": 1, \"maxContains\": 1 },\n { \"contains\": { \"properties\": { \"role\": { \"const\": \"notices\" } }, \"required\": [\"role\"] }, \"minContains\": 1, \"maxContains\": 1 }\n ]\n }\n },\n \"$defs\": {\n \"id\": {\n \"type\": \"string\",\n \"pattern\": \"^[A-Za-z0-9][A-Za-z0-9._-]*$\"\n },\n \"semver\": {\n \"type\": \"string\",\n \"pattern\": \"^(0|[1-9][0-9]*)\\\\.(0|[1-9][0-9]*)\\\\.(0|[1-9][0-9]*)(?:-(?:(?:0|[1-9][0-9]*|[0-9A-Za-z-]*[A-Za-z-][0-9A-Za-z-]*)(?:\\\\.(?:0|[1-9][0-9]*|[0-9A-Za-z-]*[A-Za-z-][0-9A-Za-z-]*))*))?(?:\\\\+[0-9A-Za-z-]+(?:\\\\.[0-9A-Za-z-]+)*)?$\"\n },\n \"artifact_ref\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"maxLength\": 1024,\n \"pattern\": \"^[A-Za-z0-9._~-]+(?:/[A-Za-z0-9._~-]+)*$\",\n \"not\": { \"pattern\": \"(^|/)\\\\.{1,2}($|/)\" }\n },\n \"sha256\": { \"type\": \"string\", \"pattern\": \"^[0-9a-f]{64}$\" },\n \"decimal_epoch\": { \"type\": \"string\", \"pattern\": \"^(0|[1-9][0-9]*)$\" },\n \"entry\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"role\", \"ref\", \"media_type\", \"sha256\", \"size\"],\n \"properties\": {\n \"role\": { \"enum\": [\"contract\", \"compatibility\", \"generated_client\", \"notices\"] },\n \"ref\": { \"$ref\": \"#/$defs/artifact_ref\" },\n \"media_type\": { \"enum\": [\"application/schema+json\", \"application/json\", \"text/typescript\"] },\n \"sha256\": { \"$ref\": \"#/$defs/sha256\" },\n \"size\": { \"type\": \"integer\", \"minimum\": 0 }\n },\n \"allOf\": [\n {\n \"if\": { \"properties\": { \"role\": { \"const\": \"contract\" } }, \"required\": [\"role\"] },\n \"then\": { \"properties\": { \"media_type\": { \"const\": \"application/schema+json\" } } }\n },\n {\n \"if\": { \"properties\": { \"role\": { \"enum\": [\"compatibility\", \"notices\"] } }, \"required\": [\"role\"] },\n \"then\": { \"properties\": { \"media_type\": { \"const\": \"application/json\" } } }\n },\n {\n \"if\": { \"properties\": { \"role\": { \"const\": \"generated_client\" } }, \"required\": [\"role\"] },\n \"then\": { \"properties\": { \"media_type\": { \"const\": \"text/typescript\" } } }\n }\n ]\n }\n }\n}\n";
37
+ }, {
38
+ readonly id: "host-capability-notices-schema";
39
+ readonly path: "spec/plugin/host-capability-notices-v1.schema.json";
40
+ readonly version: "host-capability-notices-v1";
41
+ readonly sha256: "6affd5d0ae90239f6fd08cbeddae4eef393efa2838c9e4935874ba3dc0e05948";
42
+ readonly body: "{\n \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n \"$id\": \"https://schemas.redevplugin.dev/plugin/host-capability-notices-v1.schema.json\",\n \"title\": \"ReDevPlugin host capability third-party notices v1\",\n \"type\": \"array\",\n \"uniqueItems\": true,\n \"items\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"name\", \"version\", \"license\"],\n \"properties\": {\n \"name\": { \"type\": \"string\", \"minLength\": 1 },\n \"version\": { \"type\": \"string\", \"minLength\": 1 },\n \"license\": { \"type\": \"string\", \"minLength\": 1 },\n \"source_url\": { \"type\": \"string\", \"format\": \"uri\" }\n }\n }\n}\n";
43
+ }, {
44
+ readonly id: "host-capability-pin-schema";
45
+ readonly path: "spec/plugin/host-capability-pin-v1.schema.json";
46
+ readonly version: "host-capability-pin-v1";
47
+ readonly sha256: "20526a5934f0d85a3db7882492487266f09de5bcd176e2c7936f05d0b7fe0338";
48
+ readonly body: "{\n \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n \"$id\": \"https://schemas.redevplugin.dev/plugin/host-capability-pin-v1.schema.json\",\n \"title\": \"ReDevPlugin host capability artifact pin v1\",\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\n \"publisher_id\",\n \"contract_id\",\n \"contract_version\",\n \"artifact_ref\",\n \"artifact_sha256\",\n \"manifest_ref\",\n \"manifest_sha256\",\n \"signature_ref\",\n \"signature_sha256\",\n \"signature_key_id\",\n \"signature_policy_epoch\",\n \"signature_revocation_epoch\",\n \"compatibility_ref\",\n \"compatibility_sha256\",\n \"generated_client_ref\",\n \"generated_client_sha256\",\n \"notices_ref\",\n \"notices_sha256\"\n ],\n \"properties\": {\n \"publisher_id\": { \"$ref\": \"#/$defs/id\" },\n \"contract_id\": { \"$ref\": \"#/$defs/id\" },\n \"contract_version\": { \"$ref\": \"#/$defs/semver\" },\n \"artifact_ref\": { \"$ref\": \"#/$defs/artifact_ref\" },\n \"artifact_sha256\": { \"$ref\": \"#/$defs/sha256\" },\n \"manifest_ref\": { \"$ref\": \"#/$defs/artifact_ref\" },\n \"manifest_sha256\": { \"$ref\": \"#/$defs/sha256\" },\n \"signature_ref\": { \"$ref\": \"#/$defs/artifact_ref\" },\n \"signature_sha256\": { \"$ref\": \"#/$defs/sha256\" },\n \"signature_key_id\": { \"$ref\": \"#/$defs/id\" },\n \"signature_policy_epoch\": { \"$ref\": \"#/$defs/decimal_epoch\" },\n \"signature_revocation_epoch\": { \"$ref\": \"#/$defs/decimal_epoch\" },\n \"compatibility_ref\": { \"$ref\": \"#/$defs/artifact_ref\" },\n \"compatibility_sha256\": { \"$ref\": \"#/$defs/sha256\" },\n \"generated_client_ref\": { \"$ref\": \"#/$defs/artifact_ref\" },\n \"generated_client_sha256\": { \"$ref\": \"#/$defs/sha256\" },\n \"notices_ref\": { \"$ref\": \"#/$defs/artifact_ref\" },\n \"notices_sha256\": { \"$ref\": \"#/$defs/sha256\" }\n },\n \"$defs\": {\n \"id\": {\n \"type\": \"string\",\n \"pattern\": \"^[A-Za-z0-9][A-Za-z0-9._-]*$\"\n },\n \"semver\": {\n \"type\": \"string\",\n \"pattern\": \"^(0|[1-9][0-9]*)\\\\.(0|[1-9][0-9]*)\\\\.(0|[1-9][0-9]*)(?:-(?:(?:0|[1-9][0-9]*|[0-9A-Za-z-]*[A-Za-z-][0-9A-Za-z-]*)(?:\\\\.(?:0|[1-9][0-9]*|[0-9A-Za-z-]*[A-Za-z-][0-9A-Za-z-]*))*))?(?:\\\\+[0-9A-Za-z-]+(?:\\\\.[0-9A-Za-z-]+)*)?$\"\n },\n \"artifact_ref\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"maxLength\": 1024,\n \"pattern\": \"^[A-Za-z0-9._~-]+(?:/[A-Za-z0-9._~-]+)*$\",\n \"not\": { \"pattern\": \"(^|/)\\\\.{1,2}($|/)\" }\n },\n \"sha256\": {\n \"type\": \"string\",\n \"pattern\": \"^[0-9a-f]{64}$\"\n },\n \"decimal_epoch\": {\n \"type\": \"string\",\n \"pattern\": \"^(0|[1-9][0-9]*)$\"\n }\n }\n}\n";
49
+ }, {
50
+ readonly id: "host-capability-signature-schema";
51
+ readonly path: "spec/plugin/host-capability-signature-v1.schema.json";
52
+ readonly version: "host-capability-signature-v1";
53
+ readonly sha256: "88cbc1d63afb7e289ca4f8b7c76f702b8d20156f7722c1b71f3ab9138a240a5e";
54
+ readonly body: "{\n \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n \"$id\": \"https://schemas.redevplugin.dev/plugin/host-capability-signature-v1.schema.json\",\n \"title\": \"ReDevPlugin host capability signature v1\",\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"schema_version\", \"algorithm\", \"key_id\", \"manifest_sha256\", \"signature_base64\"],\n \"properties\": {\n \"schema_version\": { \"const\": \"redevplugin.host_capability_signature.v1\" },\n \"algorithm\": { \"const\": \"ed25519\" },\n \"key_id\": { \"type\": \"string\", \"pattern\": \"^[A-Za-z0-9][A-Za-z0-9._-]*$\" },\n \"manifest_sha256\": { \"type\": \"string\", \"pattern\": \"^[0-9a-f]{64}$\" },\n \"signature_base64\": {\n \"type\": \"string\",\n \"minLength\": 88,\n \"maxLength\": 88,\n \"pattern\": \"^[A-Za-z0-9+/]{86}==$\",\n \"contentEncoding\": \"base64\"\n }\n }\n}\n";
55
+ }, {
56
+ readonly id: "iframe-bridge-schema";
57
+ readonly path: "spec/plugin/bridge-v5.schema.json";
58
+ readonly version: "bridge-v5";
59
+ readonly sha256: "ad8ccc7e1900ecb871432f07296dd681ae6faea9377e52f5ddca90300c04f4da";
60
+ readonly body: "{\n \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n \"$id\": \"https://schemas.redevplugin.dev/plugin/bridge-v5.schema.json\",\n \"title\": \"ReDevPlugin plugin worker bridge v5\",\n \"description\": \"Plugin-visible MessagePort contract. Plugin identity, owner/session bindings, gateway tokens, asset sessions, stream tickets, and confirmation tokens remain in the trusted parent and are intentionally absent from worker-visible messages.\",\n \"x-redevplugin-render-policy\": {\n \"max_message_bytes\": 524288,\n \"max_in_flight_requests\": 256,\n \"max_renders_per_second\": 60,\n \"max_render_depth\": 32,\n \"max_render_nodes\": 4096,\n \"max_patch_operations\": 1024,\n \"max_attributes_per_element\": 64,\n \"max_text_length\": 65536,\n \"max_attribute_value_length\": 4096,\n \"max_form_fields\": 128,\n \"max_canvas_count\": 4,\n \"max_canvas_dimension\": 4096,\n \"max_canvas_total_pixels\": 16777216,\n \"max_canvas_pointer_events_per_second\": 120,\n \"max_image_count\": 32,\n \"max_image_dimension\": 4096,\n \"max_image_total_pixels\": 33554432,\n \"worker_heartbeat_interval_ms\": 10000,\n \"worker_heartbeat_timeout_ms\": 5000,\n \"global_attributes\": [\n \"id\",\n \"class\",\n \"role\",\n \"title\",\n \"hidden\",\n \"tabindex\",\n \"autofocus\",\n \"lang\",\n \"dir\",\n \"data-redevplugin-action\",\n \"data-redevplugin-escape-action\",\n \"data-redevplugin-asset-binding\",\n \"data-redevplugin-asset-attr\"\n ],\n \"tag_attributes\": {\n \"button\": [\"type\", \"name\", \"value\", \"disabled\", \"aria-pressed\", \"aria-expanded\"],\n \"input\": [\"type\", \"name\", \"value\", \"checked\", \"disabled\", \"readonly\", \"required\", \"placeholder\", \"min\", \"max\", \"step\", \"autocomplete\"],\n \"textarea\": [\"name\", \"value\", \"disabled\", \"readonly\", \"required\", \"placeholder\", \"rows\", \"cols\", \"maxlength\"],\n \"select\": [\"name\", \"disabled\", \"required\", \"multiple\", \"size\"],\n \"option\": [\"value\", \"selected\", \"disabled\", \"label\"],\n \"label\": [\"for\"],\n \"form\": [\"name\", \"autocomplete\"],\n \"th\": [\"scope\", \"colspan\", \"rowspan\"],\n \"td\": [\"colspan\", \"rowspan\"],\n \"progress\": [\"value\", \"max\"],\n \"meter\": [\"value\", \"min\", \"max\", \"low\", \"high\", \"optimum\"],\n \"img\": [\"alt\", \"width\", \"height\", \"loading\", \"decoding\"],\n \"audio\": [\"controls\", \"autoplay\", \"muted\", \"loop\", \"preload\"],\n \"video\": [\"controls\", \"autoplay\", \"muted\", \"loop\", \"preload\", \"width\", \"height\", \"playsinline\"],\n \"source\": [\"type\", \"media\"],\n \"track\": [\"kind\", \"srclang\", \"label\", \"default\"],\n \"time\": [\"datetime\"],\n \"canvas\": [\"width\", \"height\", \"data-redevplugin-canvas\"]\n },\n \"safe_input_types\": [\"text\", \"search\", \"number\", \"checkbox\", \"radio\", \"button\", \"submit\", \"reset\"]\n },\n \"oneOf\": [\n { \"$ref\": \"#/$defs/call\" },\n { \"$ref\": \"#/$defs/stream_read\" },\n { \"$ref\": \"#/$defs/stream_ack\" },\n { \"$ref\": \"#/$defs/operation_cancel\" },\n { \"$ref\": \"#/$defs/mount\" },\n { \"$ref\": \"#/$defs/patch\" },\n { \"$ref\": \"#/$defs/canvas_open\" },\n { \"$ref\": \"#/$defs/canvas_accessibility\" },\n { \"$ref\": \"#/$defs/canvas_ready\" },\n { \"$ref\": \"#/$defs/canvas_input\" },\n { \"$ref\": \"#/$defs/image_open\" },\n { \"$ref\": \"#/$defs/image_ready\" },\n { \"$ref\": \"#/$defs/cancel\" },\n { \"$ref\": \"#/$defs/action\" },\n { \"$ref\": \"#/$defs/response\" },\n { \"$ref\": \"#/$defs/lifecycle\" },\n { \"$ref\": \"#/$defs/lifecycle_ack\" }\n ],\n \"$defs\": {\n \"opaque_handle\": {\n \"type\": \"string\",\n \"pattern\": \"^[A-Za-z][A-Za-z0-9_-]{7,159}$\"\n },\n \"capability_business_error_details\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\n \"capability_id\",\n \"capability_version\",\n \"detail_schema_sha256\",\n \"business_error_code\"\n ],\n \"properties\": {\n \"capability_id\": { \"type\": \"string\", \"pattern\": \"^[A-Za-z0-9][A-Za-z0-9._-]*$\" },\n \"capability_version\": {\n \"type\": \"string\",\n \"pattern\": \"^(0|[1-9][0-9]*)\\\\.(0|[1-9][0-9]*)\\\\.(0|[1-9][0-9]*)(?:-(?:(?:0|[1-9][0-9]*|[0-9A-Za-z-]*[A-Za-z-][0-9A-Za-z-]*)(?:\\\\.(?:0|[1-9][0-9]*|[0-9A-Za-z-]*[A-Za-z-][0-9A-Za-z-]*))*))?(?:\\\\+[0-9A-Za-z-]+(?:\\\\.[0-9A-Za-z-]+)*)?$\"\n },\n \"detail_schema_sha256\": { \"type\": \"string\", \"pattern\": \"^[0-9a-f]{64}$\" },\n \"business_error_code\": { \"type\": \"string\", \"pattern\": \"^[A-Z][A-Z0-9_]*$\" },\n \"business_error_details\": {\n \"type\": \"object\",\n \"additionalProperties\": true\n }\n }\n },\n \"worker_error_details\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"worker_error_code\", \"worker_error_message\", \"worker_error_origin\"],\n \"properties\": {\n \"worker_error_code\": {\n \"type\": \"string\",\n \"pattern\": \"^[A-Z][A-Z0-9_]*$\"\n },\n \"worker_error_message\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"maxLength\": 4096\n },\n \"worker_error_origin\": { \"enum\": [\"runtime\", \"hostcall\", \"plugin\"] }\n }\n },\n \"request_id\": {\n \"type\": \"string\",\n \"pattern\": \"^(rpc|stream|stream_ack|render|operation|canvas|asset)_[1-9][0-9]{0,15}$\"\n },\n \"call\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"type\", \"request\"],\n \"properties\": {\n \"type\": { \"const\": \"redevplugin.bridge.call\" },\n \"request\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"id\", \"method\"],\n \"properties\": {\n \"id\": { \"$ref\": \"#/$defs/request_id\" },\n \"method\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"maxLength\": 256,\n \"pattern\": \"^[A-Za-z0-9._:-]+$\"\n },\n \"params\": {\n \"type\": \"object\",\n \"description\": \"Optional JSON object. Arrays are rejected so worker calls match the Host RPC map contract.\"\n }\n }\n }\n }\n },\n \"stream_read\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"type\", \"id\", \"stream_handle\"],\n \"properties\": {\n \"type\": { \"const\": \"redevplugin.bridge.stream.read\" },\n \"id\": { \"$ref\": \"#/$defs/request_id\" },\n \"stream_handle\": { \"$ref\": \"#/$defs/opaque_handle\" }\n }\n },\n \"stream_ack\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"type\", \"id\", \"stream_handle\", \"delivery_id\"],\n \"properties\": {\n \"type\": { \"const\": \"redevplugin.bridge.stream.ack\" },\n \"id\": { \"$ref\": \"#/$defs/request_id\" },\n \"stream_handle\": { \"$ref\": \"#/$defs/opaque_handle\" },\n \"delivery_id\": { \"type\": \"string\", \"pattern\": \"^delivery_[A-Za-z0-9_-]{8,128}$\" }\n }\n },\n \"operation_cancel\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"type\", \"id\", \"operation_id\"],\n \"properties\": {\n \"type\": { \"const\": \"redevplugin.bridge.operation.cancel\" },\n \"id\": { \"$ref\": \"#/$defs/request_id\" },\n \"operation_id\": { \"$ref\": \"#/$defs/opaque_handle\" },\n \"reason\": { \"type\": \"string\", \"maxLength\": 256 }\n }\n },\n \"mount\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"type\", \"id\", \"revision\", \"tree\"],\n \"properties\": {\n \"type\": { \"const\": \"redevplugin.ui.mount\" },\n \"id\": { \"$ref\": \"#/$defs/request_id\" },\n \"revision\": { \"const\": 1 },\n \"tree\": { \"$ref\": \"#/$defs/element_vnode\" }\n }\n },\n \"patch\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"type\", \"id\", \"base_revision\", \"revision\", \"operations\"],\n \"properties\": {\n \"type\": { \"const\": \"redevplugin.ui.patch\" },\n \"id\": { \"$ref\": \"#/$defs/request_id\" },\n \"base_revision\": { \"type\": \"integer\", \"minimum\": 1 },\n \"revision\": { \"type\": \"integer\", \"minimum\": 2 },\n \"operations\": {\n \"type\": \"array\",\n \"maxItems\": 1024,\n \"items\": { \"$ref\": \"#/$defs/patch_operation\" }\n }\n }\n },\n \"cancel\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"type\", \"id\"],\n \"properties\": {\n \"type\": { \"const\": \"redevplugin.bridge.cancel\" },\n \"id\": { \"$ref\": \"#/$defs/request_id\" }\n }\n },\n \"vnode\": {\n \"oneOf\": [\n { \"$ref\": \"#/$defs/text_vnode\" },\n { \"$ref\": \"#/$defs/element_vnode\" }\n ]\n },\n \"text_vnode\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"type\", \"key\", \"text\"],\n \"properties\": {\n \"type\": { \"const\": \"text\" },\n \"key\": { \"$ref\": \"#/$defs/text_identifier\" },\n \"text\": { \"type\": \"string\", \"maxLength\": 65536 }\n }\n },\n \"element_vnode\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"type\", \"key\", \"tag\"],\n \"properties\": {\n \"type\": { \"const\": \"element\" },\n \"key\": { \"$ref\": \"#/$defs/element_identifier\" },\n \"tag\": {\n \"enum\": [\n \"main\", \"section\", \"header\", \"footer\", \"nav\", \"aside\", \"article\", \"div\", \"span\", \"p\",\n \"h1\", \"h2\", \"h3\", \"h4\", \"h5\", \"h6\", \"button\", \"input\", \"textarea\", \"select\", \"option\",\n \"label\", \"fieldset\", \"legend\", \"form\", \"ul\", \"ol\", \"li\", \"dl\", \"dt\", \"dd\", \"table\",\n \"thead\", \"tbody\", \"tfoot\", \"tr\", \"th\", \"td\", \"caption\", \"details\", \"summary\", \"pre\", \"code\",\n \"kbd\", \"samp\", \"strong\", \"em\", \"small\", \"mark\", \"time\", \"progress\", \"meter\", \"img\", \"picture\",\n \"source\", \"audio\", \"video\", \"track\", \"canvas\"\n ]\n },\n \"attributes\": {\n \"type\": \"object\",\n \"maxProperties\": 64,\n \"additionalProperties\": { \"type\": [\"string\", \"number\", \"boolean\"] }\n },\n \"children\": {\n \"type\": \"array\",\n \"maxItems\": 4096,\n \"items\": { \"$ref\": \"#/$defs/vnode\" }\n }\n }\n },\n \"patch_operation\": {\n \"oneOf\": [\n {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"type\", \"target_key\", \"text\"],\n \"properties\": {\n \"type\": { \"const\": \"set_text\" },\n \"target_key\": { \"$ref\": \"#/$defs/text_identifier\" },\n \"text\": { \"type\": \"string\", \"maxLength\": 65536 }\n }\n },\n {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"type\", \"target_key\", \"set\", \"remove\"],\n \"properties\": {\n \"type\": { \"const\": \"patch_attributes\" },\n \"target_key\": { \"$ref\": \"#/$defs/ui_identifier\" },\n \"set\": { \"type\": \"object\", \"maxProperties\": 64, \"additionalProperties\": { \"type\": [\"string\", \"number\", \"boolean\"] } },\n \"remove\": { \"type\": \"array\", \"maxItems\": 64, \"uniqueItems\": true, \"items\": { \"type\": \"string\", \"minLength\": 1 } }\n }\n },\n {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"type\", \"target_key\", \"edit_revision\"],\n \"properties\": {\n \"type\": { \"const\": \"patch_control\" },\n \"target_key\": { \"$ref\": \"#/$defs/ui_identifier\" },\n \"edit_revision\": { \"type\": \"integer\", \"minimum\": 0 },\n \"value\": { \"type\": [\"string\", \"null\"], \"maxLength\": 65536 },\n \"checked\": { \"type\": [\"boolean\", \"null\"] }\n },\n \"anyOf\": [{ \"required\": [\"value\"] }, { \"required\": [\"checked\"] }]\n },\n {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"type\", \"parent_key\", \"before_key\", \"node\"],\n \"properties\": {\n \"type\": { \"const\": \"insert_child\" },\n \"parent_key\": { \"$ref\": \"#/$defs/element_identifier\" },\n \"before_key\": {\n \"oneOf\": [\n { \"$ref\": \"#/$defs/ui_identifier\" },\n { \"type\": \"null\" }\n ]\n },\n \"node\": { \"$ref\": \"#/$defs/vnode\" }\n }\n },\n {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"type\", \"target_key\"],\n \"properties\": {\n \"type\": { \"const\": \"remove_child\" },\n \"target_key\": { \"$ref\": \"#/$defs/ui_identifier\" }\n }\n },\n {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"type\", \"target_key\", \"parent_key\", \"before_key\"],\n \"properties\": {\n \"type\": { \"const\": \"move_child\" },\n \"target_key\": { \"$ref\": \"#/$defs/ui_identifier\" },\n \"parent_key\": { \"$ref\": \"#/$defs/element_identifier\" },\n \"before_key\": {\n \"oneOf\": [\n { \"$ref\": \"#/$defs/ui_identifier\" },\n { \"type\": \"null\" }\n ]\n }\n }\n }\n ]\n },\n \"canvas_open\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"type\", \"id\", \"canvas_id\"],\n \"properties\": {\n \"type\": { \"const\": \"redevplugin.ui.canvas.open\" },\n \"id\": { \"$ref\": \"#/$defs/request_id\" },\n \"canvas_id\": { \"$ref\": \"#/$defs/ui_identifier\" }\n }\n },\n \"canvas_accessibility\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"type\", \"id\", \"canvas_id\", \"label\", \"description\"],\n \"properties\": {\n \"type\": { \"const\": \"redevplugin.ui.canvas.accessibility\" },\n \"id\": { \"$ref\": \"#/$defs/request_id\" },\n \"canvas_id\": { \"$ref\": \"#/$defs/ui_identifier\" },\n \"label\": { \"type\": \"string\", \"minLength\": 1, \"maxLength\": 256 },\n \"description\": { \"type\": \"string\", \"maxLength\": 1024 }\n }\n },\n \"canvas_ready\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"type\", \"id\", \"canvas_id\", \"canvas\", \"css_width\", \"css_height\", \"device_pixel_ratio\"],\n \"properties\": {\n \"type\": { \"const\": \"redevplugin.ui.canvas.ready\" },\n \"id\": { \"$ref\": \"#/$defs/request_id\" },\n \"canvas_id\": { \"$ref\": \"#/$defs/ui_identifier\" },\n \"canvas\": {\n \"description\": \"One transferred OffscreenCanvas. The runtime validates the structured-clone object outside JSON Schema.\"\n },\n \"css_width\": { \"type\": \"number\", \"exclusiveMinimum\": 0, \"maximum\": 4096 },\n \"css_height\": { \"type\": \"number\", \"exclusiveMinimum\": 0, \"maximum\": 4096 },\n \"device_pixel_ratio\": { \"type\": \"number\", \"minimum\": 0.5, \"maximum\": 4 }\n },\n \"x-redevplugin-transfer\": [\"canvas\"]\n },\n \"canvas_input\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"type\", \"canvas_id\", \"event\"],\n \"properties\": {\n \"type\": { \"const\": \"redevplugin.ui.canvas.input\" },\n \"canvas_id\": { \"$ref\": \"#/$defs/ui_identifier\" },\n \"event\": {\n \"oneOf\": [\n {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"type\"],\n \"properties\": { \"type\": { \"enum\": [\"focus\", \"blur\"] } }\n },\n {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"type\", \"css_width\", \"css_height\", \"device_pixel_ratio\"],\n \"properties\": {\n \"type\": { \"const\": \"resize\" },\n \"css_width\": { \"type\": \"number\", \"exclusiveMinimum\": 0, \"maximum\": 4096 },\n \"css_height\": { \"type\": \"number\", \"exclusiveMinimum\": 0, \"maximum\": 4096 },\n \"device_pixel_ratio\": { \"type\": \"number\", \"minimum\": 0.5, \"maximum\": 4 }\n }\n },\n {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"type\", \"event\", \"code\", \"key\", \"repeat\", \"alt_key\", \"ctrl_key\", \"meta_key\", \"shift_key\"],\n \"properties\": {\n \"type\": { \"const\": \"key\" },\n \"event\": { \"enum\": [\"keydown\", \"keyup\"] },\n \"code\": { \"type\": \"string\", \"maxLength\": 64 },\n \"key\": { \"type\": \"string\", \"maxLength\": 64 },\n \"repeat\": { \"type\": \"boolean\" },\n \"alt_key\": { \"type\": \"boolean\" },\n \"ctrl_key\": { \"type\": \"boolean\" },\n \"meta_key\": { \"type\": \"boolean\" },\n \"shift_key\": { \"type\": \"boolean\" }\n }\n },\n {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"type\", \"event\", \"pointer_id\", \"pointer_type\", \"buttons\", \"button\", \"x\", \"y\", \"pressure\"],\n \"properties\": {\n \"type\": { \"const\": \"pointer\" },\n \"event\": { \"enum\": [\"pointerdown\", \"pointermove\", \"pointerup\", \"pointercancel\"] },\n \"pointer_id\": { \"type\": \"integer\", \"minimum\": 0 },\n \"pointer_type\": { \"enum\": [\"mouse\", \"pen\", \"touch\", \"unknown\"] },\n \"buttons\": { \"type\": \"integer\", \"minimum\": 0, \"maximum\": 31 },\n \"button\": { \"type\": \"integer\", \"minimum\": -1, \"maximum\": 4 },\n \"x\": { \"type\": \"number\", \"minimum\": -16384, \"maximum\": 32768 },\n \"y\": { \"type\": \"number\", \"minimum\": -16384, \"maximum\": 32768 },\n \"pressure\": { \"type\": \"number\", \"minimum\": 0, \"maximum\": 1 }\n }\n }\n ]\n }\n }\n },\n \"image_open\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"type\", \"id\", \"asset_id\"],\n \"properties\": {\n \"type\": { \"const\": \"redevplugin.ui.asset.image.open\" },\n \"id\": { \"$ref\": \"#/$defs/request_id\" },\n \"asset_id\": { \"$ref\": \"#/$defs/ui_identifier\" }\n }\n },\n \"image_ready\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"type\", \"id\", \"asset_id\", \"image\", \"width\", \"height\"],\n \"properties\": {\n \"type\": { \"const\": \"redevplugin.ui.asset.image.ready\" },\n \"id\": { \"$ref\": \"#/$defs/request_id\" },\n \"asset_id\": { \"$ref\": \"#/$defs/ui_identifier\" },\n \"image\": {\n \"description\": \"One transferred ImageBitmap decoded from Host-verified package bytes.\"\n },\n \"width\": { \"type\": \"integer\", \"minimum\": 1, \"maximum\": 4096 },\n \"height\": { \"type\": \"integer\", \"minimum\": 1, \"maximum\": 4096 }\n },\n \"x-redevplugin-transfer\": [\"image\"]\n },\n \"ui_identifier\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"maxLength\": 128,\n \"pattern\": \"^[A-Za-z0-9][A-Za-z0-9._:-]*$\"\n },\n \"element_identifier\": {\n \"$ref\": \"#/$defs/ui_identifier\"\n },\n \"text_identifier\": {\n \"$ref\": \"#/$defs/ui_identifier\"\n },\n \"action\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"type\", \"action\", \"event\", \"target_key\", \"edit_revision\", \"is_composing\"],\n \"properties\": {\n \"type\": { \"const\": \"redevplugin.ui.action\" },\n \"action\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"maxLength\": 128,\n \"pattern\": \"^[A-Za-z0-9._:-]+$\"\n },\n \"event\": { \"enum\": [\"click\", \"input\", \"change\", \"submit\", \"escape\"] },\n \"target_key\": { \"$ref\": \"#/$defs/ui_identifier\" },\n \"edit_revision\": { \"type\": \"integer\", \"minimum\": 0 },\n \"is_composing\": { \"type\": \"boolean\" },\n \"value\": { \"type\": \"string\", \"maxLength\": 65536 },\n \"checked\": { \"type\": \"boolean\" },\n \"form_data\": {\n \"type\": \"object\",\n \"maxProperties\": 128,\n \"additionalProperties\": { \"type\": \"string\", \"maxLength\": 65536 }\n }\n }\n },\n \"response\": {\n \"oneOf\": [\n {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"type\", \"id\", \"ok\"],\n \"properties\": {\n \"type\": { \"const\": \"redevplugin.bridge.response\" },\n \"id\": { \"$ref\": \"#/$defs/request_id\" },\n \"ok\": { \"const\": true },\n \"data\": true\n }\n },\n {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"type\", \"id\", \"ok\", \"error_code\", \"error\"],\n \"properties\": {\n \"type\": { \"const\": \"redevplugin.bridge.response\" },\n \"id\": { \"$ref\": \"#/$defs/request_id\" },\n \"ok\": { \"const\": false },\n \"error_code\": {\n \"enum\": [\n \"PLUGIN_INVALID_REQUEST\",\n \"PLUGIN_MANIFEST_INVALID\",\n \"PLUGIN_PACKAGE_INVALID\",\n \"PLUGIN_PACKAGE_TOO_LARGE\",\n \"PLUGIN_PACKAGE_PATH_FORBIDDEN\",\n \"PLUGIN_SIGNATURE_INVALID\",\n \"PLUGIN_TRUST_STATE_DENIED\",\n \"PLUGIN_TRUST_VERIFICATION_REQUIRED\",\n \"PLUGIN_TRUST_VERIFICATION_INVALID\",\n \"PLUGIN_RELEASE_REF_VERIFICATION_FAILED\",\n \"PLUGIN_RELEASE_REF_POLICY_DENIED\",\n \"PLUGIN_DISABLED\",\n \"PLUGIN_DISABLED_BY_POLICY\",\n \"PLUGIN_PERMISSION_DENIED\",\n \"PLUGIN_ORIGIN_DENIED\",\n \"PLUGIN_ACTION_DENIED\",\n \"PLUGIN_OWNER_SCOPE_MISMATCH\",\n \"PLUGIN_SECRET_SCOPE_MISMATCH\",\n \"PLUGIN_STORAGE_SCOPE_MISMATCH\",\n \"PLUGIN_ADAPTER_FAILURE\",\n \"PLUGIN_SESSION_REVOKED\",\n \"PLUGIN_SESSION_TEARDOWN_INCOMPLETE\",\n \"PLUGIN_SESSION_FENCE_CAPACITY\",\n \"PLUGIN_CONFIRMATION_REQUIRED\",\n \"PLUGIN_CONFIRMATION_INVALID\",\n \"PLUGIN_TOKEN_EXPIRED\",\n \"PLUGIN_TOKEN_REPLAY\",\n \"PLUGIN_GATEWAY_TOKEN_INVALID\",\n \"PLUGIN_GATEWAY_TOKEN_REPLAYED\",\n \"PLUGIN_GATEWAY_TOKEN_CHANNEL_MISMATCH\",\n \"PLUGIN_ASSET_TICKET_INVALID\",\n \"PLUGIN_ASSET_SESSION_INVALID\",\n \"PLUGIN_STREAM_TICKET_INVALID\",\n \"PLUGIN_STREAM_DELIVERY_INVALID\",\n \"PLUGIN_STREAM_CANCELLED\",\n \"PLUGIN_LEASE_INVALID\",\n \"PLUGIN_LEASE_REPLAYED\",\n \"PLUGIN_GRANT_INVALID\",\n \"PLUGIN_STORAGE_QUOTA_EXCEEDED\",\n \"PLUGIN_OPERATION_BLOCKED\",\n \"PLUGIN_OPERATION_NOT_FOUND\",\n \"PLUGIN_OPERATION_NOT_CANCELABLE\",\n \"PLUGIN_NETWORK_TARGET_DENIED\",\n \"PLUGIN_NETWORK_RATE_LIMITED\",\n \"PLUGIN_RUNTIME_UNAVAILABLE\",\n \"PLUGIN_RUNTIME_VERSION_MISMATCH\",\n \"PLUGIN_RUNTIME_CONTRACT_MISMATCH\",\n \"PLUGIN_UI_PROTOCOL_UNSUPPORTED\",\n \"PLUGIN_UI_PROTOCOL_VIOLATION\",\n \"PLUGIN_SURFACE_QUIESCE_TIMEOUT\",\n \"PLUGIN_JSON_LIMIT_EXCEEDED\",\n \"PLUGIN_CAPABILITY_ERROR\",\n \"PLUGIN_WORKER_ERROR\",\n \"PLUGIN_CONTRACT_MISMATCH\",\n \"PLUGIN_MANAGEMENT_REVISION_MISMATCH\",\n \"PLUGIN_AUTHORIZATION_REVISION_MISMATCH\",\n \"PLUGIN_BINDING_REVISION_MISMATCH\",\n \"PLUGIN_VALUES_REVISION_MISMATCH\",\n \"PLUGIN_CSRF_REQUIRED\",\n \"PLUGIN_CSRF_INVALID\",\n \"PLUGIN_FEATURE_NOT_CONFIGURED\",\n \"PLUGIN_CONFIRMATION_REJECTED\",\n \"PLUGIN_BRIDGE_CANCELLED\",\n \"PLUGIN_BRIDGE_TIMEOUT\",\n \"PLUGIN_BRIDGE_DISPOSED\",\n \"PLUGIN_BRIDGE_HANDSHAKE_FAILED\",\n \"PLUGIN_BRIDGE_HANDSHAKE_REQUIRED\"\n ]\n },\n \"error\": { \"type\": \"string\", \"maxLength\": 4096 },\n \"error_details\": {\n \"type\": \"object\",\n \"maxProperties\": 8,\n \"additionalProperties\": true\n },\n \"mutation_outcome\": { \"type\": \"string\", \"enum\": [\"not_committed\", \"unknown\"] }\n },\n \"allOf\": [\n {\n \"if\": {\n \"properties\": { \"error_code\": { \"const\": \"PLUGIN_CAPABILITY_ERROR\" } },\n \"required\": [\"error_code\"]\n },\n \"then\": {\n \"required\": [\"error_details\"],\n \"properties\": {\n \"error_details\": { \"$ref\": \"#/$defs/capability_business_error_details\" }\n }\n }\n },\n {\n \"if\": {\n \"properties\": { \"error_code\": { \"const\": \"PLUGIN_WORKER_ERROR\" } },\n \"required\": [\"error_code\"]\n },\n \"then\": {\n \"required\": [\"error_details\"],\n \"properties\": {\n \"error_details\": { \"$ref\": \"#/$defs/worker_error_details\" }\n }\n }\n }\n ]\n }\n ]\n },\n \"lifecycle\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"type\", \"event\"],\n \"properties\": {\n \"type\": { \"const\": \"redevplugin.bridge.lifecycle\" },\n \"quiesce_id\": { \"type\": \"string\", \"pattern\": \"^quiesce_[A-Za-z0-9_-]{8,151}$\" },\n \"event\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"type\"],\n \"properties\": {\n \"type\": { \"enum\": [\"ready\", \"visible\", \"hidden\", \"dispose\"] }\n }\n }\n },\n \"allOf\": [\n {\n \"if\": { \"required\": [\"quiesce_id\"] },\n \"then\": {\n \"properties\": {\n \"event\": {\n \"properties\": { \"type\": { \"const\": \"dispose\" } }\n }\n }\n }\n }\n ]\n },\n \"lifecycle_ack\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"type\", \"quiesce_id\"],\n \"properties\": {\n \"type\": { \"const\": \"redevplugin.bridge.lifecycle_ack\" },\n \"quiesce_id\": { \"type\": \"string\", \"pattern\": \"^quiesce_[A-Za-z0-9_-]{8,151}$\" }\n }\n }\n }\n}\n";
61
+ }, {
62
+ readonly id: "manifest-schema";
63
+ readonly path: "spec/plugin/manifest-v5.schema.json";
64
+ readonly version: "manifest-v5";
65
+ readonly sha256: "9695f6163aa539b9e3a933367c98850257c6d7bb8d61b36fd5f83b3ab61746f7";
66
+ readonly body: "{\n \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n \"$id\": \"https://schemas.redevplugin.dev/plugin/manifest-v5.schema.json\",\n \"title\": \"ReDevPlugin manifest v5\",\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"schema_version\", \"publisher\", \"plugin\", \"surfaces\"],\n \"properties\": {\n \"schema_version\": { \"const\": \"redevplugin.manifest.v5\" },\n \"publisher\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"publisher_id\"],\n \"properties\": {\n \"publisher_id\": { \"type\": \"string\", \"minLength\": 1 },\n \"display_name\": { \"type\": \"string\" }\n }\n },\n \"plugin\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"plugin_id\", \"display_name\", \"version\", \"api_version\", \"min_runtime_version\", \"ui_protocol_version\"],\n \"properties\": {\n \"plugin_id\": { \"type\": \"string\", \"minLength\": 1 },\n \"display_name\": { \"type\": \"string\", \"minLength\": 1 },\n \"version\": { \"$ref\": \"#/$defs/semver\" },\n \"api_version\": { \"const\": \"plugin-v1\" },\n \"min_runtime_version\": { \"$ref\": \"#/$defs/semver\" },\n \"ui_protocol_version\": { \"const\": \"plugin-ui-v5\" }\n }\n },\n \"surfaces\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"surface_id\", \"kind\", \"label\", \"entry\"],\n \"properties\": {\n \"surface_id\": { \"type\": \"string\", \"minLength\": 1 },\n \"kind\": { \"enum\": [\"view\", \"command\", \"background\"] },\n \"intent\": { \"enum\": [\"primary\", \"secondary\", \"utility\"] },\n \"label\": { \"type\": \"string\", \"minLength\": 1 },\n \"entry\": { \"type\": \"string\", \"minLength\": 1 },\n \"icon\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"pattern\": \"^[A-Za-z0-9_][A-Za-z0-9_.-]*(?:/[A-Za-z0-9_][A-Za-z0-9_.-]*)*\\\\.(?:[Pp][Nn][Gg]|[Jj][Pp][Gg]|[Jj][Pp][Ee][Gg]|[Gg][Ii][Ff]|[Ww][Ee][Bb][Pp]|[Ii][Cc][Oo])$\"\n },\n \"default_size\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"width\", \"height\"],\n \"properties\": {\n \"width\": { \"type\": \"integer\", \"minimum\": 1 },\n \"height\": { \"type\": \"integer\", \"minimum\": 1 }\n }\n }\n }\n }\n },\n \"capability_bindings\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"binding_id\", \"contract\"],\n \"properties\": {\n \"binding_id\": { \"type\": \"string\", \"minLength\": 1 },\n \"contract\": { \"$ref\": \"host-capability-pin-v1.schema.json\" }\n }\n }\n },\n \"methods\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"method\", \"route\"],\n \"properties\": {\n \"method\": { \"type\": \"string\", \"minLength\": 1 },\n \"effect\": { \"enum\": [\"read\", \"write\", \"delete\", \"execute\", \"admin\"] },\n \"execution\": { \"enum\": [\"sync\", \"operation\", \"subscription\"] },\n \"dangerous\": { \"type\": \"boolean\" },\n \"preflight_only\": { \"type\": \"boolean\" },\n \"broker_access\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"storage\": {\n \"type\": \"array\",\n \"uniqueItems\": true,\n \"items\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"store_id\", \"operations\"],\n \"properties\": {\n \"store_id\": { \"type\": \"string\", \"minLength\": 1, \"maxLength\": 128 },\n \"operations\": {\n \"type\": \"array\",\n \"minItems\": 1,\n \"uniqueItems\": true,\n \"items\": { \"enum\": [\"read\", \"write\", \"delete\", \"list\", \"get\", \"put\", \"query\", \"exec\"] }\n }\n }\n }\n },\n \"network\": {\n \"type\": \"array\",\n \"uniqueItems\": true,\n \"items\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"connector_id\", \"transport\", \"operations\"],\n \"properties\": {\n \"connector_id\": { \"type\": \"string\", \"minLength\": 1, \"maxLength\": 128 },\n \"transport\": { \"enum\": [\"http\", \"websocket\", \"tcp\", \"udp\"] },\n \"operations\": {\n \"type\": \"array\",\n \"minItems\": 1,\n \"uniqueItems\": true,\n \"items\": { \"enum\": [\"http\", \"http_stream\", \"websocket_round_trip\", \"tcp_round_trip\", \"udp_round_trip\"] }\n },\n \"http_methods\": {\n \"type\": \"array\",\n \"minItems\": 1,\n \"uniqueItems\": true,\n \"items\": { \"enum\": [\"GET\", \"HEAD\", \"POST\", \"PUT\", \"PATCH\", \"DELETE\", \"OPTIONS\"] }\n }\n },\n \"allOf\": [\n {\n \"if\": { \"properties\": { \"transport\": { \"const\": \"http\" } }, \"required\": [\"transport\"] },\n \"then\": { \"required\": [\"http_methods\"] },\n \"else\": { \"not\": { \"required\": [\"http_methods\"] } }\n }\n ]\n }\n }\n }\n },\n \"route\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"kind\"],\n \"properties\": {\n \"kind\": { \"enum\": [\"capability\", \"worker\", \"core_action\"] },\n \"binding_id\": { \"type\": \"string\", \"minLength\": 1 },\n \"target_method\": { \"type\": \"string\", \"minLength\": 1 },\n \"worker_id\": { \"type\": \"string\", \"minLength\": 1 },\n \"action_id\": { \"type\": \"string\", \"minLength\": 1 }\n },\n \"allOf\": [\n {\n \"if\": { \"properties\": { \"kind\": { \"const\": \"capability\" } }, \"required\": [\"kind\"] },\n \"then\": {\n \"required\": [\"binding_id\", \"target_method\"],\n \"not\": {\n \"anyOf\": [\n { \"required\": [\"worker_id\"] },\n { \"required\": [\"action_id\"] }\n ]\n }\n }\n },\n {\n \"if\": { \"properties\": { \"kind\": { \"const\": \"worker\" } }, \"required\": [\"kind\"] },\n \"then\": {\n \"required\": [\"worker_id\"],\n \"not\": {\n \"anyOf\": [\n { \"required\": [\"binding_id\"] },\n { \"required\": [\"target_method\"] },\n { \"required\": [\"action_id\"] }\n ]\n }\n }\n },\n {\n \"if\": { \"properties\": { \"kind\": { \"const\": \"core_action\" } }, \"required\": [\"kind\"] },\n \"then\": {\n \"required\": [\"action_id\"],\n \"not\": {\n \"anyOf\": [\n { \"required\": [\"binding_id\"] },\n { \"required\": [\"target_method\"] },\n { \"required\": [\"worker_id\"] }\n ]\n }\n }\n }\n ]\n },\n \"confirmation\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"mode\"],\n \"properties\": {\n \"mode\": { \"enum\": [\"none\", \"required\", \"risk_based\"] },\n \"preflight_method\": { \"type\": [\"string\", \"null\"] },\n \"request_hash_fields\": { \"type\": \"array\", \"items\": { \"type\": \"string\" } },\n \"plan_hash_required\": { \"type\": \"boolean\" }\n }\n },\n \"cancel_policy\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"cancelable\"],\n \"properties\": {\n \"cancelable\": { \"type\": \"boolean\" },\n \"disable_behavior\": { \"enum\": [\"cancel\", \"orphan\", \"wait\"] },\n \"uninstall_behavior\": { \"enum\": [\"cancel_then_block_delete\", \"force_cleanup_allowed\"] },\n \"ack_timeout_ms\": { \"type\": \"integer\", \"minimum\": 0 }\n },\n \"allOf\": [\n {\n \"if\": { \"properties\": { \"cancelable\": { \"const\": true } }, \"required\": [\"cancelable\"] },\n \"then\": {\n \"required\": [\"ack_timeout_ms\"],\n \"properties\": { \"ack_timeout_ms\": { \"type\": \"integer\", \"minimum\": 1 } }\n }\n },\n {\n \"if\": { \"properties\": { \"cancelable\": { \"const\": false } }, \"required\": [\"cancelable\"] },\n \"then\": {\n \"properties\": { \"ack_timeout_ms\": { \"const\": 0 } }\n }\n }\n ]\n },\n \"request_schema\": {\n \"allOf\": [\n { \"$ref\": \"#/$defs/method_schema\" },\n {\n \"type\": \"object\",\n \"required\": [\"type\", \"additionalProperties\"],\n \"properties\": {\n \"type\": { \"const\": \"object\" },\n \"additionalProperties\": { \"const\": false }\n }\n }\n ]\n },\n \"response_schema\": {\n \"allOf\": [\n { \"$ref\": \"#/$defs/method_schema\" },\n {\n \"type\": \"object\",\n \"required\": [\"type\", \"additionalProperties\"],\n \"properties\": {\n \"type\": { \"const\": \"object\" },\n \"additionalProperties\": { \"const\": false }\n }\n }\n ]\n }\n },\n \"allOf\": [\n {\n \"if\": { \"properties\": { \"dangerous\": { \"const\": true } }, \"required\": [\"dangerous\"] },\n \"then\": {\n \"required\": [\"confirmation\"],\n \"properties\": {\n \"confirmation\": {\n \"properties\": {\n \"mode\": { \"enum\": [\"required\", \"risk_based\"] }\n }\n }\n }\n }\n },\n {\n \"if\": {\n \"properties\": {\n \"route\": {\n \"properties\": { \"kind\": { \"const\": \"capability\" } },\n \"required\": [\"kind\"]\n }\n },\n \"required\": [\"route\"]\n },\n \"then\": {\n \"not\": {\n \"anyOf\": [\n { \"required\": [\"effect\"] },\n { \"required\": [\"execution\"] },\n { \"required\": [\"dangerous\"] },\n { \"required\": [\"preflight_only\"] },\n { \"required\": [\"confirmation\"] },\n { \"required\": [\"cancel_policy\"] },\n { \"required\": [\"request_schema\"] },\n { \"required\": [\"response_schema\"] },\n { \"required\": [\"broker_access\"] }\n ]\n }\n },\n \"else\": {\n \"required\": [\"effect\", \"execution\", \"request_schema\", \"response_schema\"]\n }\n },\n {\n \"if\": { \"properties\": { \"preflight_only\": { \"const\": true } }, \"required\": [\"preflight_only\"] },\n \"then\": {\n \"properties\": {\n \"effect\": { \"const\": \"read\" },\n \"execution\": { \"const\": \"sync\" },\n \"dangerous\": { \"const\": false }\n }\n }\n },\n {\n \"if\": { \"properties\": { \"execution\": { \"enum\": [\"operation\", \"subscription\"] } }, \"required\": [\"execution\"] },\n \"then\": { \"required\": [\"cancel_policy\"] }\n }\n ]\n }\n },\n \"workers\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"worker_id\", \"artifact\", \"abi\", \"mode\", \"scope\", \"memory_limit_bytes\"],\n \"properties\": {\n \"worker_id\": { \"type\": \"string\", \"minLength\": 1 },\n \"artifact\": { \"type\": \"string\", \"minLength\": 1 },\n \"abi\": { \"const\": \"redevplugin-wasm-worker-v2\" },\n \"mode\": { \"const\": \"job\" },\n \"scope\": { \"enum\": [\"user\", \"environment\"] },\n \"memory_limit_bytes\": { \"type\": \"integer\", \"minimum\": 1, \"maximum\": 268435456 },\n \"idle_timeout_ms\": { \"type\": \"integer\", \"minimum\": 0 }\n }\n }\n },\n \"storage\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"stores\": {\n \"type\": \"array\",\n \"maxItems\": 16,\n \"items\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"store_id\", \"kind\", \"scope\", \"quota_bytes\", \"schema_version\"],\n \"properties\": {\n \"store_id\": { \"type\": \"string\", \"minLength\": 1 },\n \"kind\": { \"enum\": [\"kv\", \"files\", \"sqlite\"] },\n \"scope\": { \"enum\": [\"user\", \"environment\"] },\n \"quota_bytes\": { \"type\": \"integer\", \"minimum\": 1, \"maximum\": 1073741824 },\n \"quota_files\": { \"type\": \"integer\", \"minimum\": 1, \"maximum\": 100000 },\n \"schema_version\": { \"type\": \"integer\", \"minimum\": 1 }\n }\n }\n }\n }\n },\n \"network_access\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"connectors\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"connector_id\", \"transport\", \"scope\", \"destinations\"],\n \"properties\": {\n \"connector_id\": { \"type\": \"string\", \"minLength\": 1 },\n \"transport\": { \"enum\": [\"http\", \"websocket\", \"tcp\", \"udp\"] },\n \"scope\": { \"enum\": [\"user\", \"environment\"] },\n \"destinations\": { \"type\": \"array\", \"items\": { \"type\": \"string\", \"minLength\": 1 } },\n \"auth\": { \"type\": \"object\" },\n \"tls\": { \"type\": \"object\" }\n }\n }\n }\n }\n },\n \"settings\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"schema_version\"],\n \"properties\": {\n \"schema_version\": { \"type\": \"integer\", \"minimum\": 1 },\n \"fields\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"key\", \"type\", \"scope\", \"label\"],\n \"properties\": {\n \"key\": { \"type\": \"string\", \"minLength\": 1 },\n \"type\": { \"type\": \"string\", \"minLength\": 1 },\n \"scope\": { \"enum\": [\"user\", \"environment\"] },\n \"label\": { \"type\": \"string\", \"minLength\": 1 },\n \"default\": true,\n \"secret_ref\": { \"type\": \"string\" },\n \"options\": { \"type\": \"array\", \"items\": { \"type\": \"string\" } },\n \"validation\": { \"type\": \"object\" }\n }\n }\n }\n }\n },\n \"intents\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"intent_id\", \"method\"],\n \"properties\": {\n \"intent_id\": { \"type\": \"string\", \"minLength\": 1 },\n \"method\": { \"type\": \"string\", \"minLength\": 1 },\n \"payload_schema\": { \"type\": \"object\" }\n }\n }\n }\n },\n \"$defs\": {\n \"semver\": {\n \"type\": \"string\",\n \"pattern\": \"^(0|[1-9][0-9]*)\\\\.(0|[1-9][0-9]*)\\\\.(0|[1-9][0-9]*)(?:-(?:(?:0|[1-9][0-9]*|[0-9A-Za-z-]*[A-Za-z-][0-9A-Za-z-]*)(?:\\\\.(?:0|[1-9][0-9]*|[0-9A-Za-z-]*[A-Za-z-][0-9A-Za-z-]*))*))?(?:\\\\+[0-9A-Za-z-]+(?:\\\\.[0-9A-Za-z-]+)*)?$\"\n },\n \"method_schema\": {\n \"oneOf\": [\n { \"const\": false },\n {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"$comment\": { \"type\": \"string\" },\n \"title\": { \"type\": \"string\" },\n \"description\": { \"type\": \"string\" },\n \"readOnly\": { \"type\": \"boolean\" },\n \"writeOnly\": { \"type\": \"boolean\" },\n \"$ref\": { \"type\": \"string\", \"pattern\": \"^#/\\\\$defs/[A-Za-z0-9._-]+$\" },\n \"$defs\": {\n \"type\": \"object\",\n \"additionalProperties\": { \"$ref\": \"#/$defs/method_schema\" }\n },\n \"type\": {\n \"oneOf\": [\n { \"enum\": [\"null\", \"boolean\", \"object\", \"array\", \"number\", \"integer\", \"string\"] },\n {\n \"type\": \"array\",\n \"minItems\": 1,\n \"uniqueItems\": true,\n \"items\": { \"enum\": [\"null\", \"boolean\", \"object\", \"array\", \"number\", \"integer\", \"string\"] }\n }\n ]\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": { \"$ref\": \"#/$defs/method_schema\" }\n },\n \"patternProperties\": {\n \"type\": \"object\",\n \"additionalProperties\": { \"$ref\": \"#/$defs/method_schema\" }\n },\n \"required\": {\n \"type\": \"array\",\n \"uniqueItems\": true,\n \"items\": { \"type\": \"string\" }\n },\n \"additionalProperties\": { \"const\": false },\n \"items\": { \"$ref\": \"#/$defs/method_schema\" },\n \"allOf\": {\n \"type\": \"array\",\n \"minItems\": 1,\n \"items\": { \"$ref\": \"#/$defs/method_schema\" }\n },\n \"anyOf\": {\n \"type\": \"array\",\n \"minItems\": 1,\n \"items\": { \"$ref\": \"#/$defs/method_schema\" }\n },\n \"oneOf\": {\n \"type\": \"array\",\n \"minItems\": 1,\n \"items\": { \"$ref\": \"#/$defs/method_schema\" }\n },\n \"enum\": { \"type\": \"array\", \"minItems\": 1, \"uniqueItems\": true },\n \"const\": true,\n \"default\": true,\n \"examples\": { \"type\": \"array\" },\n \"minimum\": { \"type\": \"number\" },\n \"maximum\": { \"type\": \"number\" },\n \"exclusiveMinimum\": { \"type\": \"number\" },\n \"exclusiveMaximum\": { \"type\": \"number\" },\n \"multipleOf\": { \"type\": \"number\", \"exclusiveMinimum\": 0 },\n \"minLength\": { \"type\": \"integer\", \"minimum\": 0 },\n \"maxLength\": { \"type\": \"integer\", \"minimum\": 0 },\n \"pattern\": { \"type\": \"string\" },\n \"format\": { \"type\": \"string\" },\n \"minItems\": { \"type\": \"integer\", \"minimum\": 0 },\n \"maxItems\": { \"type\": \"integer\", \"minimum\": 0 },\n \"uniqueItems\": { \"type\": \"boolean\" },\n \"minProperties\": { \"type\": \"integer\", \"minimum\": 0 },\n \"maxProperties\": { \"type\": \"integer\", \"minimum\": 0 }\n },\n \"anyOf\": [\n { \"required\": [\"type\"] },\n { \"required\": [\"$ref\"] },\n { \"required\": [\"properties\"] },\n { \"required\": [\"patternProperties\"] },\n { \"required\": [\"required\"] },\n { \"required\": [\"additionalProperties\"] },\n { \"required\": [\"minProperties\"] },\n { \"required\": [\"maxProperties\"] },\n { \"required\": [\"allOf\"] },\n { \"required\": [\"anyOf\"] },\n { \"required\": [\"oneOf\"] },\n { \"required\": [\"enum\"] },\n { \"required\": [\"const\"] }\n ],\n \"allOf\": [\n {\n \"if\": {\n \"required\": [\"type\"],\n \"properties\": {\n \"type\": {\n \"anyOf\": [\n { \"const\": \"object\" },\n { \"type\": \"array\", \"contains\": { \"const\": \"object\" } }\n ]\n }\n }\n },\n \"then\": {\n \"required\": [\"additionalProperties\"],\n \"properties\": { \"additionalProperties\": { \"const\": false } }\n }\n },\n {\n \"if\": {\n \"anyOf\": [\n { \"required\": [\"properties\"] },\n { \"required\": [\"patternProperties\"] },\n { \"required\": [\"required\"] },\n { \"required\": [\"additionalProperties\"] },\n { \"required\": [\"minProperties\"] },\n { \"required\": [\"maxProperties\"] }\n ]\n },\n \"then\": {\n \"required\": [\"additionalProperties\"],\n \"properties\": { \"additionalProperties\": { \"const\": false } }\n }\n }\n ]\n }\n ]\n }\n }\n}\n";
67
+ }, {
68
+ readonly id: "network-grant-schema";
69
+ readonly path: "spec/plugin/network-grant-v2.schema.json";
70
+ readonly version: "network-grant-v2";
71
+ readonly sha256: "5fc1cfc3469a992e551fd392fab982abb6f95e456a1cb768ceca137f7c693abc";
72
+ readonly body: "{\n \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n \"$id\": \"https://schemas.redevplugin.dev/plugin/network-grant-v2.schema.json\",\n \"title\": \"ReDevPlugin network grant v2\",\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\n \"grant_id\",\n \"plugin_instance_id\",\n \"active_fingerprint\",\n \"resource_scope\",\n \"policy_revision\",\n \"management_revision\",\n \"revoke_epoch\",\n \"connector_id\",\n \"transport\",\n \"destination\",\n \"target_classifier_version\",\n \"expires_at\"\n ],\n \"properties\": {\n \"grant_id\": { \"type\": \"string\", \"pattern\": \"^netgrant_[0-9a-f]{32}$\" },\n \"plugin_instance_id\": { \"type\": \"string\", \"minLength\": 1 },\n \"active_fingerprint\": { \"type\": \"string\", \"minLength\": 1 },\n \"resource_scope\": { \"$ref\": \"#/$defs/resource_scope\" },\n \"policy_revision\": { \"type\": \"integer\", \"minimum\": 0, \"maximum\": 9007199254740991 },\n \"management_revision\": { \"type\": \"integer\", \"minimum\": 0, \"maximum\": 9007199254740991 },\n \"revoke_epoch\": { \"type\": \"integer\", \"minimum\": 1, \"maximum\": 9007199254740991 },\n \"connector_id\": { \"type\": \"string\", \"minLength\": 1 },\n \"transport\": { \"enum\": [\"http\", \"websocket\", \"tcp\", \"udp\"] },\n \"destination\": { \"$ref\": \"#/$defs/destination\" },\n \"runtime_generation_id\": { \"type\": \"string\" },\n \"target_classifier_version\": { \"const\": \"target-classifier-v2\" },\n \"expires_at\": { \"type\": \"string\", \"format\": \"date-time\" }\n },\n \"$defs\": {\n \"resource_scope\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"kind\", \"owner_env_hash\"],\n \"properties\": {\n \"kind\": { \"enum\": [\"user\", \"environment\"] },\n \"owner_env_hash\": { \"type\": \"string\", \"pattern\": \"^[A-Za-z0-9][A-Za-z0-9._:-]{0,255}$\" },\n \"owner_user_hash\": { \"type\": \"string\", \"pattern\": \"^[A-Za-z0-9][A-Za-z0-9._:-]{0,255}$\" }\n },\n \"oneOf\": [\n { \"properties\": { \"kind\": { \"const\": \"user\" } }, \"required\": [\"owner_user_hash\"] },\n { \"properties\": { \"kind\": { \"const\": \"environment\" } }, \"not\": { \"required\": [\"owner_user_hash\"] } }\n ]\n },\n \"destination\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"transport\", \"host\", \"port\"],\n \"properties\": {\n \"transport\": { \"enum\": [\"http\", \"websocket\", \"tcp\", \"udp\"] },\n \"scheme\": { \"enum\": [\"http\", \"https\", \"ws\", \"wss\"] },\n \"host\": { \"type\": \"string\", \"minLength\": 1 },\n \"port\": { \"type\": \"integer\", \"minimum\": 1, \"maximum\": 65535 }\n }\n }\n }\n}\n";
73
+ }, {
74
+ readonly id: "opaque-surface-document-schema";
75
+ readonly path: "spec/plugin/opaque-surface-document-v3.schema.json";
76
+ readonly version: "opaque-surface-document-v3";
77
+ readonly sha256: "63419ff5b5a8890e14f97ca29aaae175b93daff61d4567c5bdff7f6e6a9e7450";
78
+ readonly body: "{\n \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n \"$id\": \"https://schemas.redevplugin.dev/plugin/opaque-surface-document-v3.schema.json\",\n \"title\": \"ReDevPlugin opaque surface document v3\",\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\n \"schema_version\",\n \"entry_path\",\n \"entry_sha256\",\n \"body_html\",\n \"styles\",\n \"worker\",\n \"assets\",\n \"critical_bytes\"\n ],\n \"properties\": {\n \"schema_version\": { \"const\": \"redevplugin.opaque_surface_document.v3\" },\n \"entry_path\": { \"$ref\": \"#/$defs/package_path\" },\n \"entry_sha256\": { \"$ref\": \"#/$defs/sha256\" },\n \"title\": { \"type\": \"string\", \"maxLength\": 256 },\n \"language\": { \"type\": \"string\", \"maxLength\": 64 },\n \"direction\": { \"enum\": [\"ltr\", \"rtl\", \"auto\"] },\n \"body_html\": { \"type\": \"string\", \"maxLength\": 4194304 },\n \"styles\": {\n \"type\": \"array\",\n \"items\": { \"$ref\": \"#/$defs/style\" }\n },\n \"worker\": { \"$ref\": \"#/$defs/worker\" },\n \"assets\": {\n \"type\": \"array\",\n \"maxItems\": 128,\n \"items\": { \"$ref\": \"#/$defs/asset\" }\n },\n \"critical_bytes\": {\n \"type\": \"integer\",\n \"minimum\": 0,\n \"maximum\": 8388608\n }\n },\n \"$defs\": {\n \"sha256\": {\n \"type\": \"string\",\n \"pattern\": \"^sha256:[a-f0-9]{64}$\"\n },\n \"package_path\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"maxLength\": 512,\n \"pattern\": \"^.+$\",\n \"not\": {\n \"anyOf\": [\n { \"pattern\": \"^/\" },\n { \"pattern\": \"\\\\\\\\\" },\n { \"pattern\": \"(^|/)\\\\.\\\\.?(/|$)\" }\n ]\n }\n },\n \"style\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"path\", \"sha256\", \"content\"],\n \"properties\": {\n \"path\": { \"$ref\": \"#/$defs/package_path\" },\n \"sha256\": { \"$ref\": \"#/$defs/sha256\" },\n \"content\": { \"type\": \"string\", \"maxLength\": 2097152 }\n }\n },\n \"worker\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"path\", \"sha256\", \"type\", \"content\"],\n \"properties\": {\n \"path\": { \"$ref\": \"#/$defs/package_path\" },\n \"sha256\": { \"$ref\": \"#/$defs/sha256\" },\n \"type\": { \"const\": \"classic\" },\n \"content\": { \"type\": \"string\", \"maxLength\": 4194304 }\n }\n },\n \"asset\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"binding_id\", \"logical_ids\", \"path\", \"sha256\", \"size\", \"content_type\"],\n \"properties\": {\n \"binding_id\": {\n \"type\": \"string\",\n \"pattern\": \"^asset_[A-Za-z0-9_-]{8,154}$\"\n },\n \"logical_ids\": {\n \"type\": \"array\",\n \"minItems\": 1,\n \"maxItems\": 16,\n \"uniqueItems\": true,\n \"items\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"maxLength\": 128,\n \"pattern\": \"^[A-Za-z0-9][A-Za-z0-9._:-]*$\"\n }\n },\n \"path\": { \"$ref\": \"#/$defs/package_path\" },\n \"sha256\": { \"$ref\": \"#/$defs/sha256\" },\n \"size\": { \"type\": \"integer\", \"minimum\": 0, \"maximum\": 33554432 },\n \"content_type\": { \"type\": \"string\", \"minLength\": 1, \"maxLength\": 256 }\n }\n }\n }\n}\n";
79
+ }, {
80
+ readonly id: "opaque-surface-transport-schema";
81
+ readonly path: "spec/plugin/opaque-surface-transport-v4.schema.json";
82
+ readonly version: "opaque-surface-transport-v4";
83
+ readonly sha256: "70a32dc8bf281cea2c92492c466fd477070c62156a3f593d45eb460cde62dca2";
84
+ readonly body: "{\n \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n \"$id\": \"https://schemas.redevplugin.dev/plugin/opaque-surface-transport-v4.schema.json\",\n \"title\": \"ReDevPlugin private opaque surface transport v4\",\n \"description\": \"Private messages between the trusted parent, trusted renderer, and isolated plugin worker. MessagePort transfer is represented by the envelope; transferable ports are not JSON values.\",\n \"oneOf\": [\n { \"$ref\": \"#/$defs/port_envelope\" },\n { \"$ref\": \"#/$defs/port_ack\" },\n { \"$ref\": \"#/$defs/initialize\" },\n { \"$ref\": \"#/$defs/first_paint\" },\n { \"$ref\": \"#/$defs/first_commit\" },\n { \"$ref\": \"#/$defs/worker_ready\" },\n { \"$ref\": \"#/$defs/surface_error\" },\n { \"$ref\": \"#/$defs/asset_read\" },\n { \"$ref\": \"#/$defs/asset_response\" },\n { \"$ref\": \"#/$defs/worker_initialize\" }\n ],\n \"$defs\": {\n \"opaque_handle\": {\n \"type\": \"string\",\n \"pattern\": \"^[A-Za-z][A-Za-z0-9_-]{7,159}$\"\n },\n \"sha256\": {\n \"type\": \"string\",\n \"pattern\": \"^sha256:[a-f0-9]{64}$\"\n },\n \"port_envelope\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"type\", \"frame_generation_id\", \"ui_protocol_version\"],\n \"properties\": {\n \"type\": { \"const\": \"redevplugin.surface.port\" },\n \"frame_generation_id\": { \"$ref\": \"#/$defs/opaque_handle\" },\n \"ui_protocol_version\": { \"const\": \"plugin-ui-v5\" }\n }\n },\n \"port_ack\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"type\", \"frame_generation_id\"],\n \"properties\": {\n \"type\": { \"const\": \"redevplugin.surface.port_ack\" },\n \"frame_generation_id\": { \"$ref\": \"#/$defs/opaque_handle\" }\n }\n },\n \"initialize\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"type\", \"frame_generation_id\", \"surface_handle\", \"document\"],\n \"properties\": {\n \"type\": { \"const\": \"redevplugin.surface.initialize\" },\n \"frame_generation_id\": { \"$ref\": \"#/$defs/opaque_handle\" },\n \"surface_handle\": { \"$ref\": \"#/$defs/opaque_handle\" },\n \"document\": {\n \"$ref\": \"https://schemas.redevplugin.dev/plugin/opaque-surface-document-v3.schema.json\"\n }\n }\n },\n \"first_paint\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"type\"],\n \"properties\": { \"type\": { \"const\": \"redevplugin.surface.first_paint\" } }\n },\n \"first_commit\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"type\"],\n \"properties\": { \"type\": { \"const\": \"redevplugin.surface.first_commit\" } }\n },\n \"worker_ready\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"type\"],\n \"properties\": { \"type\": { \"const\": \"redevplugin.surface.worker_ready\" } }\n },\n \"surface_error\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"type\", \"error\"],\n \"properties\": {\n \"type\": { \"const\": \"redevplugin.surface.error\" },\n \"error\": { \"type\": \"string\", \"maxLength\": 512 }\n }\n },\n \"asset_read\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"type\", \"request_id\", \"binding_id\", \"path\", \"sha256\"],\n \"properties\": {\n \"type\": { \"const\": \"redevplugin.surface.asset.read\" },\n \"request_id\": { \"$ref\": \"#/$defs/opaque_handle\" },\n \"binding_id\": { \"$ref\": \"#/$defs/opaque_handle\" },\n \"path\": { \"type\": \"string\", \"minLength\": 1, \"maxLength\": 512 },\n \"sha256\": { \"$ref\": \"#/$defs/sha256\" }\n }\n },\n \"asset_response\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"type\", \"request_id\", \"binding_id\", \"ok\", \"path\", \"sha256\", \"content_type\", \"content_base64\"],\n \"properties\": {\n \"type\": { \"const\": \"redevplugin.surface.asset.response\" },\n \"request_id\": { \"$ref\": \"#/$defs/opaque_handle\" },\n \"binding_id\": { \"$ref\": \"#/$defs/opaque_handle\" },\n \"ok\": { \"const\": true },\n \"path\": { \"type\": \"string\", \"minLength\": 1, \"maxLength\": 512 },\n \"sha256\": { \"$ref\": \"#/$defs/sha256\" },\n \"content_type\": { \"type\": \"string\", \"minLength\": 1, \"maxLength\": 256 },\n \"content_base64\": { \"type\": \"string\", \"contentEncoding\": \"base64\" }\n }\n },\n \"worker_initialize\": {\n \"description\": \"Transferred ports are ordered as runtime_control then plugin_bridge; only plugin_bridge is exposed through the worker SDK claim.\",\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"type\", \"surface_handle\", \"ui_protocol_version\", \"port_roles\"],\n \"properties\": {\n \"type\": { \"const\": \"redevplugin.worker.initialize\" },\n \"surface_handle\": { \"$ref\": \"#/$defs/opaque_handle\" },\n \"ui_protocol_version\": { \"const\": \"plugin-ui-v5\" },\n \"port_roles\": {\n \"type\": \"array\",\n \"prefixItems\": [\n { \"const\": \"runtime_control\" },\n { \"const\": \"plugin_bridge\" }\n ],\n \"minItems\": 2,\n \"maxItems\": 2\n }\n }\n }\n }\n}\n";
85
+ }, {
86
+ readonly id: "owner-scope-inventory-registry";
87
+ readonly path: "spec/plugin/owner-scope-inventories-v1.json";
88
+ readonly version: "owner-scope-inventory-registry-v1";
89
+ readonly sha256: "92a2d6ed3a9038e95285faa108e2186cf9d0df343854741c551f8c4039f91217";
90
+ readonly body: "{\n \"schema_version\": \"owner-scope-inventory-v1\",\n \"inventories\": [\n {\n \"id\": \"redeven-redevplugin-v0.1.0-v0.1.5-layout-v1\",\n \"platform_versions\": [\n \"0.1.0\",\n \"0.1.1\",\n \"0.1.2\",\n \"0.1.3\",\n \"0.1.4\",\n \"0.1.5\"\n ],\n \"root_entries\": [\n {\n \"path\": \"assets\",\n \"kind\": \"directory\",\n \"scope\": \"durable\",\n \"disposition\": \"quarantine\"\n },\n {\n \"path\": \"db\",\n \"kind\": \"directory\",\n \"scope\": \"durable\",\n \"disposition\": \"quarantine\"\n },\n {\n \"path\": \"storage\",\n \"kind\": \"directory\",\n \"scope\": \"durable\",\n \"disposition\": \"quarantine\"\n }\n ],\n \"sqlite_databases\": [\n {\n \"path\": \"db/browser_site.sqlite\",\n \"application_id\": 0,\n \"user_version\": 0,\n \"migration_versions\": [\n {\n \"table\": \"plugin_browser_site_schema_migrations\",\n \"versions\": [\n 1\n ]\n }\n ],\n \"schema_objects\": [\n {\n \"type\": \"index\",\n \"name\": \"idx_plugin_browser_site_plugin_instance\",\n \"table_name\": \"plugin_browser_site_origins\",\n \"sql\": \"CREATE INDEX idx_plugin_browser_site_plugin_instance ON plugin_browser_site_origins(plugin_instance_id, state, origin)\"\n },\n {\n \"type\": \"index\",\n \"name\": \"idx_plugin_browser_site_state\",\n \"table_name\": \"plugin_browser_site_origins\",\n \"sql\": \"CREATE INDEX idx_plugin_browser_site_state ON plugin_browser_site_origins(state, updated_at)\"\n },\n {\n \"type\": \"table\",\n \"name\": \"plugin_browser_site_origins\",\n \"table_name\": \"plugin_browser_site_origins\",\n \"sql\": \"CREATE TABLE plugin_browser_site_origins ( origin_key TEXT PRIMARY KEY, plugin_instance_id TEXT NOT NULL, plugin_id TEXT NOT NULL, active_fingerprint TEXT NOT NULL, surface_id TEXT NOT NULL, surface_instance_id TEXT NOT NULL, origin TEXT NOT NULL, owner_session_hash TEXT NOT NULL, owner_user_hash TEXT NOT NULL, state TEXT NOT NULL, cleanup_reason TEXT NOT NULL, cleanup_error TEXT NOT NULL, created_at INTEGER NOT NULL, updated_at INTEGER NOT NULL, last_seen_at INTEGER NOT NULL, cleanup_requested_at INTEGER, cleaned_at INTEGER, retained_at INTEGER )\"\n },\n {\n \"type\": \"table\",\n \"name\": \"plugin_browser_site_schema_migrations\",\n \"table_name\": \"plugin_browser_site_schema_migrations\",\n \"sql\": \"CREATE TABLE plugin_browser_site_schema_migrations ( version INTEGER PRIMARY KEY, applied_at INTEGER NOT NULL )\"\n }\n ],\n \"schema_sha256\": \"a7767aacbc70799ee6f847077e27727cac70ae2fdbb84cae2e0fae2d9ab5bffa\"\n },\n {\n \"path\": \"db/cleanup.sqlite\",\n \"application_id\": 0,\n \"user_version\": 0,\n \"migration_versions\": [\n {\n \"table\": \"plugin_cleanup_schema_migrations\",\n \"versions\": [\n 1\n ]\n }\n ],\n \"schema_objects\": [\n {\n \"type\": \"index\",\n \"name\": \"idx_plugin_cleanup_operations_plugin\",\n \"table_name\": \"plugin_cleanup_operations\",\n \"sql\": \"CREATE INDEX idx_plugin_cleanup_operations_plugin ON plugin_cleanup_operations(plugin_instance_id, id)\"\n },\n {\n \"type\": \"table\",\n \"name\": \"plugin_cleanup_operations\",\n \"table_name\": \"plugin_cleanup_operations\",\n \"sql\": \"CREATE TABLE plugin_cleanup_operations ( id INTEGER PRIMARY KEY AUTOINCREMENT, plugin_instance_id TEXT NOT NULL, delete_data INTEGER NOT NULL, phase TEXT NOT NULL, executed_at INTEGER NOT NULL )\"\n },\n {\n \"type\": \"table\",\n \"name\": \"plugin_cleanup_schema_migrations\",\n \"table_name\": \"plugin_cleanup_schema_migrations\",\n \"sql\": \"CREATE TABLE plugin_cleanup_schema_migrations ( version INTEGER PRIMARY KEY, applied_at INTEGER NOT NULL )\"\n }\n ],\n \"schema_sha256\": \"492e855ac577c347fd5c4a916b4be060d08e9703d9deec197bcb1a75a0de9dcc\"\n },\n {\n \"path\": \"db/confirmation_intents.sqlite\",\n \"application_id\": 0,\n \"user_version\": 0,\n \"migration_versions\": [\n {\n \"table\": \"plugin_confirmation_intent_schema_migrations\",\n \"versions\": [\n 1\n ]\n }\n ],\n \"schema_objects\": [\n {\n \"type\": \"index\",\n \"name\": \"idx_plugin_confirmation_intents_expires_at\",\n \"table_name\": \"plugin_confirmation_intents\",\n \"sql\": \"CREATE INDEX idx_plugin_confirmation_intents_expires_at ON plugin_confirmation_intents(expires_at)\"\n },\n {\n \"type\": \"index\",\n \"name\": \"idx_plugin_confirmation_intents_plugin_instance\",\n \"table_name\": \"plugin_confirmation_intents\",\n \"sql\": \"CREATE INDEX idx_plugin_confirmation_intents_plugin_instance ON plugin_confirmation_intents(plugin_instance_id, issued_at, confirmation_id)\"\n },\n {\n \"type\": \"table\",\n \"name\": \"plugin_confirmation_intent_schema_migrations\",\n \"table_name\": \"plugin_confirmation_intent_schema_migrations\",\n \"sql\": \"CREATE TABLE plugin_confirmation_intent_schema_migrations ( version INTEGER PRIMARY KEY, applied_at INTEGER NOT NULL )\"\n },\n {\n \"type\": \"table\",\n \"name\": \"plugin_confirmation_intents\",\n \"table_name\": \"plugin_confirmation_intents\",\n \"sql\": \"CREATE TABLE plugin_confirmation_intents ( confirmation_id TEXT PRIMARY KEY, confirmation_token_id TEXT NOT NULL, plugin_id TEXT NOT NULL, plugin_instance_id TEXT NOT NULL, surface_instance_id TEXT NOT NULL, bridge_channel_id TEXT NOT NULL, method TEXT NOT NULL, request_hash TEXT NOT NULL, plan_hash TEXT NOT NULL, issued_at INTEGER NOT NULL, expires_at INTEGER NOT NULL )\"\n }\n ],\n \"schema_sha256\": \"dac56fde008efc7d6a21154c5bfbbd43183a8411e0fad20946e88a7550287781\"\n },\n {\n \"path\": \"db/install_stage.sqlite\",\n \"application_id\": 0,\n \"user_version\": 0,\n \"migration_versions\": [\n {\n \"table\": \"plugin_install_stage_schema_migrations\",\n \"versions\": [\n 1\n ]\n }\n ],\n \"schema_objects\": [\n {\n \"type\": \"index\",\n \"name\": \"idx_plugin_install_stages_plugin\",\n \"table_name\": \"plugin_install_stages\",\n \"sql\": \"CREATE INDEX idx_plugin_install_stages_plugin ON plugin_install_stages(plugin_instance_id, created_at)\"\n },\n {\n \"type\": \"index\",\n \"name\": \"idx_plugin_install_stages_status_expiry\",\n \"table_name\": \"plugin_install_stages\",\n \"sql\": \"CREATE INDEX idx_plugin_install_stages_status_expiry ON plugin_install_stages(status, expires_at)\"\n },\n {\n \"type\": \"table\",\n \"name\": \"plugin_install_stage_schema_migrations\",\n \"table_name\": \"plugin_install_stage_schema_migrations\",\n \"sql\": \"CREATE TABLE plugin_install_stage_schema_migrations ( version INTEGER PRIMARY KEY, applied_at INTEGER NOT NULL )\"\n },\n {\n \"type\": \"table\",\n \"name\": \"plugin_install_stages\",\n \"table_name\": \"plugin_install_stages\",\n \"sql\": \"CREATE TABLE plugin_install_stages ( stage_id TEXT PRIMARY KEY, action TEXT NOT NULL, status TEXT NOT NULL, plugin_instance_id TEXT NOT NULL, publisher_id TEXT NOT NULL, plugin_id TEXT NOT NULL, version TEXT NOT NULL, package_hash TEXT NOT NULL, manifest_hash TEXT NOT NULL, entries_hash TEXT NOT NULL, requested_trust TEXT NOT NULL, resolved_trust TEXT NOT NULL, validation_summary_json TEXT NOT NULL, error_code TEXT NOT NULL, error_message TEXT NOT NULL, expires_at INTEGER NOT NULL, created_at INTEGER NOT NULL, updated_at INTEGER NOT NULL, finished_at INTEGER )\"\n }\n ],\n \"schema_sha256\": \"ee0192641f33bba6c7fc5994d73e2a64e77c129406bd3c2ccfc840780c3cef6a\"\n },\n {\n \"path\": \"db/observability.sqlite\",\n \"application_id\": 0,\n \"user_version\": 0,\n \"migration_versions\": [\n {\n \"table\": \"plugin_observability_schema_migrations\",\n \"versions\": [\n 1\n ]\n }\n ],\n \"schema_objects\": [\n {\n \"type\": \"index\",\n \"name\": \"idx_plugin_audit_plugin\",\n \"table_name\": \"plugin_audit_events\",\n \"sql\": \"CREATE INDEX idx_plugin_audit_plugin ON plugin_audit_events(plugin_id, type, occurred_at)\"\n },\n {\n \"type\": \"index\",\n \"name\": \"idx_plugin_audit_plugin_instance\",\n \"table_name\": \"plugin_audit_events\",\n \"sql\": \"CREATE INDEX idx_plugin_audit_plugin_instance ON plugin_audit_events(plugin_instance_id, type, occurred_at)\"\n },\n {\n \"type\": \"index\",\n \"name\": \"idx_plugin_diagnostics_plugin_instance\",\n \"table_name\": \"plugin_diagnostic_events\",\n \"sql\": \"CREATE INDEX idx_plugin_diagnostics_plugin_instance ON plugin_diagnostic_events(plugin_instance_id, type, severity, occurred_at)\"\n },\n {\n \"type\": \"index\",\n \"name\": \"idx_plugin_diagnostics_surface\",\n \"table_name\": \"plugin_diagnostic_events\",\n \"sql\": \"CREATE INDEX idx_plugin_diagnostics_surface ON plugin_diagnostic_events(surface_instance_id, severity, occurred_at)\"\n },\n {\n \"type\": \"table\",\n \"name\": \"plugin_audit_events\",\n \"table_name\": \"plugin_audit_events\",\n \"sql\": \"CREATE TABLE plugin_audit_events ( seq INTEGER PRIMARY KEY, event_id TEXT NOT NULL, type TEXT NOT NULL, plugin_id TEXT NOT NULL, plugin_instance_id TEXT NOT NULL, surface_id TEXT NOT NULL, surface_instance_id TEXT NOT NULL, request_id TEXT NOT NULL, actor TEXT NOT NULL, occurred_at INTEGER NOT NULL, details_json BLOB NOT NULL )\"\n },\n {\n \"type\": \"table\",\n \"name\": \"plugin_diagnostic_events\",\n \"table_name\": \"plugin_diagnostic_events\",\n \"sql\": \"CREATE TABLE plugin_diagnostic_events ( seq INTEGER PRIMARY KEY, event_id TEXT NOT NULL, type TEXT NOT NULL, severity TEXT NOT NULL, message TEXT NOT NULL, plugin_id TEXT NOT NULL, plugin_instance_id TEXT NOT NULL, surface_id TEXT NOT NULL, surface_instance_id TEXT NOT NULL, active_fingerprint TEXT NOT NULL, request_id TEXT NOT NULL, occurred_at INTEGER NOT NULL, details_json BLOB NOT NULL )\"\n },\n {\n \"type\": \"table\",\n \"name\": \"plugin_observability_meta\",\n \"table_name\": \"plugin_observability_meta\",\n \"sql\": \"CREATE TABLE plugin_observability_meta ( id INTEGER PRIMARY KEY CHECK(id = 1), audit_seq INTEGER NOT NULL, diagnostic_seq INTEGER NOT NULL )\"\n },\n {\n \"type\": \"table\",\n \"name\": \"plugin_observability_schema_migrations\",\n \"table_name\": \"plugin_observability_schema_migrations\",\n \"sql\": \"CREATE TABLE plugin_observability_schema_migrations ( version INTEGER PRIMARY KEY, applied_at INTEGER NOT NULL )\"\n }\n ],\n \"schema_sha256\": \"00e4363c85aaab3cb78d9b357e835490f82975233ee44643a3e238d337da4784\"\n },\n {\n \"path\": \"db/operations.sqlite\",\n \"application_id\": 0,\n \"user_version\": 0,\n \"migration_versions\": [\n {\n \"table\": \"plugin_operation_schema_migrations\",\n \"versions\": [\n 1\n ]\n }\n ],\n \"schema_objects\": [\n {\n \"type\": \"index\",\n \"name\": \"idx_plugin_operations_plugin_instance\",\n \"table_name\": \"plugin_operations\",\n \"sql\": \"CREATE INDEX idx_plugin_operations_plugin_instance ON plugin_operations(plugin_instance_id, created_at, operation_id)\"\n },\n {\n \"type\": \"index\",\n \"name\": \"idx_plugin_operations_status\",\n \"table_name\": \"plugin_operations\",\n \"sql\": \"CREATE INDEX idx_plugin_operations_status ON plugin_operations(status)\"\n },\n {\n \"type\": \"table\",\n \"name\": \"plugin_operation_schema_migrations\",\n \"table_name\": \"plugin_operation_schema_migrations\",\n \"sql\": \"CREATE TABLE plugin_operation_schema_migrations ( version INTEGER PRIMARY KEY, applied_at INTEGER NOT NULL )\"\n },\n {\n \"type\": \"table\",\n \"name\": \"plugin_operations\",\n \"table_name\": \"plugin_operations\",\n \"sql\": \"CREATE TABLE plugin_operations ( operation_id TEXT PRIMARY KEY, plugin_id TEXT NOT NULL, plugin_instance_id TEXT NOT NULL, method TEXT NOT NULL, effect TEXT NOT NULL, execution TEXT NOT NULL, surface_instance_id TEXT NOT NULL, session_channel_id_hash TEXT NOT NULL, bridge_channel_id TEXT NOT NULL, status TEXT NOT NULL, disable_behavior TEXT NOT NULL, uninstall_behavior TEXT NOT NULL, reason TEXT NOT NULL, created_at INTEGER NOT NULL, updated_at INTEGER NOT NULL, cancel_requested_at INTEGER, orphaned_at INTEGER )\"\n }\n ],\n \"schema_sha256\": \"6b89150e03769f618c994f6906f4b588cfaf95159bfd111bd44cfde37b7ff681\"\n },\n {\n \"path\": \"db/permissions.sqlite\",\n \"application_id\": 0,\n \"user_version\": 0,\n \"migration_versions\": [\n {\n \"table\": \"plugin_permission_schema_migrations\",\n \"versions\": [\n 1\n ]\n }\n ],\n \"schema_objects\": [\n {\n \"type\": \"index\",\n \"name\": \"idx_plugin_permission_grants_plugin\",\n \"table_name\": \"plugin_permission_grants\",\n \"sql\": \"CREATE INDEX idx_plugin_permission_grants_plugin ON plugin_permission_grants(plugin_instance_id, permission_id)\"\n },\n {\n \"type\": \"index\",\n \"name\": \"idx_plugin_permission_grants_revoked\",\n \"table_name\": \"plugin_permission_grants\",\n \"sql\": \"CREATE INDEX idx_plugin_permission_grants_revoked ON plugin_permission_grants(plugin_instance_id, revoked_at, expires_at)\"\n },\n {\n \"type\": \"table\",\n \"name\": \"plugin_permission_grants\",\n \"table_name\": \"plugin_permission_grants\",\n \"sql\": \"CREATE TABLE plugin_permission_grants ( plugin_instance_id TEXT NOT NULL, permission_id TEXT NOT NULL, effect TEXT NOT NULL, granted_by TEXT NOT NULL, granted_at INTEGER NOT NULL, expires_at INTEGER, revoked_at INTEGER, revoked_by TEXT NOT NULL, revoked_reason TEXT NOT NULL, PRIMARY KEY(plugin_instance_id, permission_id) )\"\n },\n {\n \"type\": \"table\",\n \"name\": \"plugin_permission_schema_migrations\",\n \"table_name\": \"plugin_permission_schema_migrations\",\n \"sql\": \"CREATE TABLE plugin_permission_schema_migrations ( version INTEGER PRIMARY KEY, applied_at INTEGER NOT NULL )\"\n }\n ],\n \"schema_sha256\": \"d0b89affc5139c3ae28f0bd178094ceef0046f25b9b27f9b4e1b231624436f46\"\n },\n {\n \"path\": \"db/registry.sqlite\",\n \"application_id\": 0,\n \"user_version\": 1,\n \"migration_versions\": [\n {\n \"table\": \"plugin_registry_schema_migrations\",\n \"versions\": [\n 1\n ]\n }\n ],\n \"schema_objects\": [\n {\n \"type\": \"index\",\n \"name\": \"idx_plugin_records_deleted_at\",\n \"table_name\": \"plugin_records\",\n \"sql\": \"CREATE INDEX idx_plugin_records_deleted_at ON plugin_records(deleted_at)\"\n },\n {\n \"type\": \"index\",\n \"name\": \"idx_plugin_records_plugin_id\",\n \"table_name\": \"plugin_records\",\n \"sql\": \"CREATE INDEX idx_plugin_records_plugin_id ON plugin_records(plugin_id)\"\n },\n {\n \"type\": \"table\",\n \"name\": \"plugin_records\",\n \"table_name\": \"plugin_records\",\n \"sql\": \"CREATE TABLE plugin_records ( plugin_instance_id TEXT PRIMARY KEY, publisher_id TEXT NOT NULL, plugin_id TEXT NOT NULL, version TEXT NOT NULL, active_fingerprint TEXT NOT NULL, package_hash TEXT NOT NULL, manifest_hash TEXT NOT NULL, entries_hash TEXT NOT NULL, trust_state TEXT NOT NULL, enable_state TEXT NOT NULL, disabled_reason TEXT NOT NULL, retained_data_state TEXT NOT NULL, policy_revision INTEGER NOT NULL, management_revision INTEGER NOT NULL, revoke_epoch INTEGER NOT NULL, manifest_json TEXT NOT NULL, package_entries_json TEXT NOT NULL, version_history_json TEXT NOT NULL, installed_at INTEGER NOT NULL, enabled_at INTEGER, updated_at INTEGER NOT NULL, deleted_at INTEGER, metadata_json TEXT NOT NULL )\"\n },\n {\n \"type\": \"table\",\n \"name\": \"plugin_registry_schema_migrations\",\n \"table_name\": \"plugin_registry_schema_migrations\",\n \"sql\": \"CREATE TABLE plugin_registry_schema_migrations ( version INTEGER PRIMARY KEY, applied_at INTEGER NOT NULL )\"\n }\n ],\n \"schema_sha256\": \"70b12092bd87a03c8506b174f3a4528ef74a5f953f813b1829b586cdef108cda\"\n },\n {\n \"path\": \"db/retained_data.sqlite\",\n \"application_id\": 0,\n \"user_version\": 0,\n \"migration_versions\": [\n {\n \"table\": \"plugin_retained_data_schema_migrations\",\n \"versions\": [\n 1\n ]\n }\n ],\n \"schema_objects\": [\n {\n \"type\": \"index\",\n \"name\": \"idx_plugin_retained_data_expiry\",\n \"table_name\": \"plugin_retained_data_records\",\n \"sql\": \"CREATE INDEX idx_plugin_retained_data_expiry ON plugin_retained_data_records(state, delete_after)\"\n },\n {\n \"type\": \"index\",\n \"name\": \"idx_plugin_retained_data_identity\",\n \"table_name\": \"plugin_retained_data_records\",\n \"sql\": \"CREATE INDEX idx_plugin_retained_data_identity ON plugin_retained_data_records(publisher_id, plugin_id, state)\"\n },\n {\n \"type\": \"index\",\n \"name\": \"idx_plugin_retained_data_source\",\n \"table_name\": \"plugin_retained_data_records\",\n \"sql\": \"CREATE INDEX idx_plugin_retained_data_source ON plugin_retained_data_records(source_plugin_instance_id)\"\n },\n {\n \"type\": \"table\",\n \"name\": \"plugin_retained_data_records\",\n \"table_name\": \"plugin_retained_data_records\",\n \"sql\": \"CREATE TABLE plugin_retained_data_records ( retained_id TEXT PRIMARY KEY, source_plugin_instance_id TEXT NOT NULL, bound_plugin_instance_id TEXT NOT NULL, publisher_id TEXT NOT NULL, plugin_id TEXT NOT NULL, version TEXT NOT NULL, package_hash TEXT NOT NULL, manifest_hash TEXT NOT NULL, state TEXT NOT NULL, storage_retained INTEGER NOT NULL, settings_retained INTEGER NOT NULL, browser_site_retained INTEGER NOT NULL, usage_bytes INTEGER NOT NULL, delete_after INTEGER, delete_error TEXT NOT NULL, metadata_json TEXT NOT NULL, retained_at INTEGER NOT NULL, updated_at INTEGER NOT NULL, bound_at INTEGER, deleted_at INTEGER, last_accessed_at INTEGER )\"\n },\n {\n \"type\": \"table\",\n \"name\": \"plugin_retained_data_schema_migrations\",\n \"table_name\": \"plugin_retained_data_schema_migrations\",\n \"sql\": \"CREATE TABLE plugin_retained_data_schema_migrations ( version INTEGER PRIMARY KEY, applied_at INTEGER NOT NULL )\"\n }\n ],\n \"schema_sha256\": \"1cdb02a3c5cb5870aadd332de06582df4fcddad098a0b731271beddbc38237b7\"\n },\n {\n \"path\": \"db/secrets.sqlite\",\n \"application_id\": 0,\n \"user_version\": 0,\n \"migration_versions\": [\n {\n \"table\": \"plugin_secret_schema_migrations\",\n \"versions\": [\n 1\n ]\n }\n ],\n \"schema_objects\": [\n {\n \"type\": \"index\",\n \"name\": \"idx_plugin_secret_bindings_plugin\",\n \"table_name\": \"plugin_secret_bindings\",\n \"sql\": \"CREATE INDEX idx_plugin_secret_bindings_plugin ON plugin_secret_bindings(plugin_instance_id, bound, updated_at)\"\n },\n {\n \"type\": \"table\",\n \"name\": \"plugin_secret_bindings\",\n \"table_name\": \"plugin_secret_bindings\",\n \"sql\": \"CREATE TABLE plugin_secret_bindings ( plugin_instance_id TEXT NOT NULL, secret_ref TEXT NOT NULL, scope TEXT NOT NULL, bound INTEGER NOT NULL, last_test_status TEXT NOT NULL, bound_at INTEGER, tested_at INTEGER, deleted_at INTEGER, updated_at INTEGER NOT NULL, PRIMARY KEY(plugin_instance_id, scope, secret_ref) )\"\n },\n {\n \"type\": \"table\",\n \"name\": \"plugin_secret_schema_migrations\",\n \"table_name\": \"plugin_secret_schema_migrations\",\n \"sql\": \"CREATE TABLE plugin_secret_schema_migrations ( version INTEGER PRIMARY KEY, applied_at INTEGER NOT NULL )\"\n }\n ],\n \"schema_sha256\": \"82a9d6ab404b4d3dc485ef1ea9c95530af4460a48506e47ced81953c4b12dd50\"\n },\n {\n \"path\": \"db/security_policy.sqlite\",\n \"application_id\": 0,\n \"user_version\": 0,\n \"migration_versions\": [\n {\n \"table\": \"plugin_security_policy_schema_migrations\",\n \"versions\": [\n 1\n ]\n }\n ],\n \"schema_objects\": [\n {\n \"type\": \"table\",\n \"name\": \"plugin_security_policies\",\n \"table_name\": \"plugin_security_policies\",\n \"sql\": \"CREATE TABLE plugin_security_policies ( plugin_instance_id TEXT PRIMARY KEY, updated_at INTEGER NOT NULL )\"\n },\n {\n \"type\": \"table\",\n \"name\": \"plugin_security_policy_allowed_permissions\",\n \"table_name\": \"plugin_security_policy_allowed_permissions\",\n \"sql\": \"CREATE TABLE plugin_security_policy_allowed_permissions ( plugin_instance_id TEXT NOT NULL, permission_id TEXT NOT NULL, updated_at INTEGER NOT NULL, PRIMARY KEY(plugin_instance_id, permission_id), FOREIGN KEY(plugin_instance_id) REFERENCES plugin_security_policies(plugin_instance_id) ON DELETE CASCADE )\"\n },\n {\n \"type\": \"table\",\n \"name\": \"plugin_security_policy_denied_methods\",\n \"table_name\": \"plugin_security_policy_denied_methods\",\n \"sql\": \"CREATE TABLE plugin_security_policy_denied_methods ( plugin_instance_id TEXT NOT NULL, method TEXT NOT NULL, updated_at INTEGER NOT NULL, PRIMARY KEY(plugin_instance_id, method), FOREIGN KEY(plugin_instance_id) REFERENCES plugin_security_policies(plugin_instance_id) ON DELETE CASCADE )\"\n },\n {\n \"type\": \"table\",\n \"name\": \"plugin_security_policy_schema_migrations\",\n \"table_name\": \"plugin_security_policy_schema_migrations\",\n \"sql\": \"CREATE TABLE plugin_security_policy_schema_migrations ( version INTEGER PRIMARY KEY, applied_at INTEGER NOT NULL )\"\n }\n ],\n \"schema_sha256\": \"8718fac16ca2cf37e84edd53f6d1c646f2d42e028af2dcc7aee05bdd9bc22dd6\"\n },\n {\n \"path\": \"db/settings.sqlite\",\n \"application_id\": 0,\n \"user_version\": 0,\n \"migration_versions\": [\n {\n \"table\": \"plugin_settings_schema_migrations\",\n \"versions\": [\n 1\n ]\n }\n ],\n \"schema_objects\": [\n {\n \"type\": \"index\",\n \"name\": \"idx_plugin_settings_archives_source\",\n \"table_name\": \"plugin_settings_archives\",\n \"sql\": \"CREATE INDEX idx_plugin_settings_archives_source ON plugin_settings_archives(source_plugin_instance_id, created_at)\"\n },\n {\n \"type\": \"index\",\n \"name\": \"idx_plugin_settings_records_state\",\n \"table_name\": \"plugin_settings_records\",\n \"sql\": \"CREATE INDEX idx_plugin_settings_records_state ON plugin_settings_records(state, retained_at)\"\n },\n {\n \"type\": \"table\",\n \"name\": \"plugin_settings_archives\",\n \"table_name\": \"plugin_settings_archives\",\n \"sql\": \"CREATE TABLE plugin_settings_archives ( archive_ref TEXT PRIMARY KEY, source_plugin_instance_id TEXT NOT NULL, include_secrets INTEGER NOT NULL, schema_version INTEGER NOT NULL, settings_revision INTEGER NOT NULL, created_at INTEGER NOT NULL, updated_at INTEGER NOT NULL, payload_json BLOB NOT NULL )\"\n },\n {\n \"type\": \"table\",\n \"name\": \"plugin_settings_meta\",\n \"table_name\": \"plugin_settings_meta\",\n \"sql\": \"CREATE TABLE plugin_settings_meta ( id INTEGER PRIMARY KEY CHECK(id = 1), next_export INTEGER NOT NULL )\"\n },\n {\n \"type\": \"table\",\n \"name\": \"plugin_settings_records\",\n \"table_name\": \"plugin_settings_records\",\n \"sql\": \"CREATE TABLE plugin_settings_records ( plugin_instance_id TEXT PRIMARY KEY, state TEXT NOT NULL, schema_version INTEGER NOT NULL, settings_revision INTEGER NOT NULL, updated_at INTEGER NOT NULL, retained_at INTEGER, payload_json BLOB NOT NULL )\"\n },\n {\n \"type\": \"table\",\n \"name\": \"plugin_settings_schema_migrations\",\n \"table_name\": \"plugin_settings_schema_migrations\",\n \"sql\": \"CREATE TABLE plugin_settings_schema_migrations ( version INTEGER PRIMARY KEY, applied_at INTEGER NOT NULL )\"\n }\n ],\n \"schema_sha256\": \"dba0083a1fa88135d6ab50cd0176063688134e684577563022200906a0d5702a\"\n },\n {\n \"path\": \"db/streams.sqlite\",\n \"application_id\": 0,\n \"user_version\": 0,\n \"migration_versions\": [\n {\n \"table\": \"plugin_stream_schema_migrations\",\n \"versions\": [\n 1\n ]\n }\n ],\n \"schema_objects\": [\n {\n \"type\": \"index\",\n \"name\": \"idx_plugin_stream_events_stream_sequence\",\n \"table_name\": \"plugin_stream_events\",\n \"sql\": \"CREATE INDEX idx_plugin_stream_events_stream_sequence ON plugin_stream_events(stream_id, sequence)\"\n },\n {\n \"type\": \"index\",\n \"name\": \"idx_plugin_streams_plugin_instance\",\n \"table_name\": \"plugin_streams\",\n \"sql\": \"CREATE INDEX idx_plugin_streams_plugin_instance ON plugin_streams(plugin_instance_id, created_at, stream_id)\"\n },\n {\n \"type\": \"index\",\n \"name\": \"idx_plugin_streams_status\",\n \"table_name\": \"plugin_streams\",\n \"sql\": \"CREATE INDEX idx_plugin_streams_status ON plugin_streams(status)\"\n },\n {\n \"type\": \"table\",\n \"name\": \"plugin_stream_events\",\n \"table_name\": \"plugin_stream_events\",\n \"sql\": \"CREATE TABLE plugin_stream_events ( stream_id TEXT NOT NULL, sequence INTEGER NOT NULL, kind TEXT NOT NULL, data BLOB, error TEXT NOT NULL, at INTEGER NOT NULL, PRIMARY KEY(stream_id, sequence), FOREIGN KEY(stream_id) REFERENCES plugin_streams(stream_id) ON DELETE CASCADE )\"\n },\n {\n \"type\": \"table\",\n \"name\": \"plugin_stream_schema_migrations\",\n \"table_name\": \"plugin_stream_schema_migrations\",\n \"sql\": \"CREATE TABLE plugin_stream_schema_migrations ( version INTEGER PRIMARY KEY, applied_at INTEGER NOT NULL )\"\n },\n {\n \"type\": \"table\",\n \"name\": \"plugin_streams\",\n \"table_name\": \"plugin_streams\",\n \"sql\": \"CREATE TABLE plugin_streams ( stream_id TEXT PRIMARY KEY, plugin_id TEXT NOT NULL, plugin_instance_id TEXT NOT NULL, method TEXT NOT NULL, effect TEXT NOT NULL, execution TEXT NOT NULL, surface_instance_id TEXT NOT NULL, owner_session_hash TEXT NOT NULL, owner_user_hash TEXT NOT NULL, session_channel_id_hash TEXT NOT NULL, bridge_channel_id TEXT NOT NULL, direction TEXT NOT NULL, status TEXT NOT NULL, content_type TEXT NOT NULL, max_buffered_bytes INTEGER NOT NULL, buffered_bytes INTEGER NOT NULL, created_at INTEGER NOT NULL, updated_at INTEGER NOT NULL, closed_at INTEGER )\"\n }\n ],\n \"schema_sha256\": \"7d2200868c7bd271be8a78cd42aea861bdc2fe46dbc714b08bb4d6251c7510d9\"\n }\n ],\n \"tree_rules\": {\n \"allowed_kinds\": [\n \"directory\",\n \"file\"\n ],\n \"allow_sqlite_wal_shm\": true,\n \"reject_hardlinks\": true,\n \"reject_symlinks\": true,\n \"variable_trees\": [\n \"assets\",\n \"storage\"\n ]\n }\n },\n {\n \"id\": \"redeven-redevplugin-v0.1.6-layout-v1\",\n \"platform_versions\": [\n \"0.1.6\"\n ],\n \"root_entries\": [\n {\n \"path\": \"assets\",\n \"kind\": \"directory\",\n \"scope\": \"durable\",\n \"disposition\": \"quarantine\"\n },\n {\n \"path\": \"db\",\n \"kind\": \"directory\",\n \"scope\": \"durable\",\n \"disposition\": \"quarantine\"\n },\n {\n \"path\": \"storage\",\n \"kind\": \"directory\",\n \"scope\": \"durable\",\n \"disposition\": \"quarantine\"\n }\n ],\n \"sqlite_databases\": [\n {\n \"path\": \"db/browser_site.sqlite\",\n \"application_id\": 0,\n \"user_version\": 0,\n \"migration_versions\": [\n {\n \"table\": \"plugin_browser_site_schema_migrations\",\n \"versions\": [\n 1\n ]\n }\n ],\n \"schema_objects\": [\n {\n \"type\": \"index\",\n \"name\": \"idx_plugin_browser_site_plugin_instance\",\n \"table_name\": \"plugin_browser_site_origins\",\n \"sql\": \"CREATE INDEX idx_plugin_browser_site_plugin_instance ON plugin_browser_site_origins(plugin_instance_id, state, origin)\"\n },\n {\n \"type\": \"index\",\n \"name\": \"idx_plugin_browser_site_state\",\n \"table_name\": \"plugin_browser_site_origins\",\n \"sql\": \"CREATE INDEX idx_plugin_browser_site_state ON plugin_browser_site_origins(state, updated_at)\"\n },\n {\n \"type\": \"table\",\n \"name\": \"plugin_browser_site_origins\",\n \"table_name\": \"plugin_browser_site_origins\",\n \"sql\": \"CREATE TABLE plugin_browser_site_origins ( origin_key TEXT PRIMARY KEY, plugin_instance_id TEXT NOT NULL, plugin_id TEXT NOT NULL, active_fingerprint TEXT NOT NULL, surface_id TEXT NOT NULL, surface_instance_id TEXT NOT NULL, origin TEXT NOT NULL, owner_session_hash TEXT NOT NULL, owner_user_hash TEXT NOT NULL, state TEXT NOT NULL, cleanup_reason TEXT NOT NULL, cleanup_error TEXT NOT NULL, created_at INTEGER NOT NULL, updated_at INTEGER NOT NULL, last_seen_at INTEGER NOT NULL, cleanup_requested_at INTEGER, cleaned_at INTEGER, retained_at INTEGER )\"\n },\n {\n \"type\": \"table\",\n \"name\": \"plugin_browser_site_schema_migrations\",\n \"table_name\": \"plugin_browser_site_schema_migrations\",\n \"sql\": \"CREATE TABLE plugin_browser_site_schema_migrations ( version INTEGER PRIMARY KEY, applied_at INTEGER NOT NULL )\"\n }\n ],\n \"schema_sha256\": \"a7767aacbc70799ee6f847077e27727cac70ae2fdbb84cae2e0fae2d9ab5bffa\"\n },\n {\n \"path\": \"db/cleanup.sqlite\",\n \"application_id\": 0,\n \"user_version\": 0,\n \"migration_versions\": [\n {\n \"table\": \"plugin_cleanup_schema_migrations\",\n \"versions\": [\n 1\n ]\n }\n ],\n \"schema_objects\": [\n {\n \"type\": \"index\",\n \"name\": \"idx_plugin_cleanup_operations_plugin\",\n \"table_name\": \"plugin_cleanup_operations\",\n \"sql\": \"CREATE INDEX idx_plugin_cleanup_operations_plugin ON plugin_cleanup_operations(plugin_instance_id, id)\"\n },\n {\n \"type\": \"table\",\n \"name\": \"plugin_cleanup_operations\",\n \"table_name\": \"plugin_cleanup_operations\",\n \"sql\": \"CREATE TABLE plugin_cleanup_operations ( id INTEGER PRIMARY KEY AUTOINCREMENT, plugin_instance_id TEXT NOT NULL, delete_data INTEGER NOT NULL, phase TEXT NOT NULL, executed_at INTEGER NOT NULL )\"\n },\n {\n \"type\": \"table\",\n \"name\": \"plugin_cleanup_schema_migrations\",\n \"table_name\": \"plugin_cleanup_schema_migrations\",\n \"sql\": \"CREATE TABLE plugin_cleanup_schema_migrations ( version INTEGER PRIMARY KEY, applied_at INTEGER NOT NULL )\"\n }\n ],\n \"schema_sha256\": \"492e855ac577c347fd5c4a916b4be060d08e9703d9deec197bcb1a75a0de9dcc\"\n },\n {\n \"path\": \"db/confirmation_intents.sqlite\",\n \"application_id\": 0,\n \"user_version\": 0,\n \"migration_versions\": [\n {\n \"table\": \"plugin_confirmation_intent_schema_migrations\",\n \"versions\": [\n 1\n ]\n }\n ],\n \"schema_objects\": [\n {\n \"type\": \"index\",\n \"name\": \"idx_plugin_confirmation_intents_expires_at\",\n \"table_name\": \"plugin_confirmation_intents\",\n \"sql\": \"CREATE INDEX idx_plugin_confirmation_intents_expires_at ON plugin_confirmation_intents(expires_at)\"\n },\n {\n \"type\": \"index\",\n \"name\": \"idx_plugin_confirmation_intents_plugin_instance\",\n \"table_name\": \"plugin_confirmation_intents\",\n \"sql\": \"CREATE INDEX idx_plugin_confirmation_intents_plugin_instance ON plugin_confirmation_intents(plugin_instance_id, issued_at, confirmation_id)\"\n },\n {\n \"type\": \"table\",\n \"name\": \"plugin_confirmation_intent_schema_migrations\",\n \"table_name\": \"plugin_confirmation_intent_schema_migrations\",\n \"sql\": \"CREATE TABLE plugin_confirmation_intent_schema_migrations ( version INTEGER PRIMARY KEY, applied_at INTEGER NOT NULL )\"\n },\n {\n \"type\": \"table\",\n \"name\": \"plugin_confirmation_intents\",\n \"table_name\": \"plugin_confirmation_intents\",\n \"sql\": \"CREATE TABLE plugin_confirmation_intents ( confirmation_id TEXT PRIMARY KEY, confirmation_token_id TEXT NOT NULL, plugin_id TEXT NOT NULL, plugin_instance_id TEXT NOT NULL, surface_instance_id TEXT NOT NULL, bridge_channel_id TEXT NOT NULL, method TEXT NOT NULL, request_hash TEXT NOT NULL, plan_hash TEXT NOT NULL, issued_at INTEGER NOT NULL, expires_at INTEGER NOT NULL )\"\n }\n ],\n \"schema_sha256\": \"dac56fde008efc7d6a21154c5bfbbd43183a8411e0fad20946e88a7550287781\"\n },\n {\n \"path\": \"db/install_stage.sqlite\",\n \"application_id\": 0,\n \"user_version\": 0,\n \"migration_versions\": [\n {\n \"table\": \"plugin_install_stage_schema_migrations\",\n \"versions\": [\n 1\n ]\n }\n ],\n \"schema_objects\": [\n {\n \"type\": \"index\",\n \"name\": \"idx_plugin_install_stages_plugin\",\n \"table_name\": \"plugin_install_stages\",\n \"sql\": \"CREATE INDEX idx_plugin_install_stages_plugin ON plugin_install_stages(plugin_instance_id, created_at)\"\n },\n {\n \"type\": \"index\",\n \"name\": \"idx_plugin_install_stages_status_expiry\",\n \"table_name\": \"plugin_install_stages\",\n \"sql\": \"CREATE INDEX idx_plugin_install_stages_status_expiry ON plugin_install_stages(status, expires_at)\"\n },\n {\n \"type\": \"table\",\n \"name\": \"plugin_install_stage_schema_migrations\",\n \"table_name\": \"plugin_install_stage_schema_migrations\",\n \"sql\": \"CREATE TABLE plugin_install_stage_schema_migrations ( version INTEGER PRIMARY KEY, applied_at INTEGER NOT NULL )\"\n },\n {\n \"type\": \"table\",\n \"name\": \"plugin_install_stages\",\n \"table_name\": \"plugin_install_stages\",\n \"sql\": \"CREATE TABLE plugin_install_stages ( stage_id TEXT PRIMARY KEY, action TEXT NOT NULL, status TEXT NOT NULL, plugin_instance_id TEXT NOT NULL, publisher_id TEXT NOT NULL, plugin_id TEXT NOT NULL, version TEXT NOT NULL, package_hash TEXT NOT NULL, manifest_hash TEXT NOT NULL, entries_hash TEXT NOT NULL, requested_trust TEXT NOT NULL, resolved_trust TEXT NOT NULL, validation_summary_json TEXT NOT NULL, error_code TEXT NOT NULL, error_message TEXT NOT NULL, expires_at INTEGER NOT NULL, created_at INTEGER NOT NULL, updated_at INTEGER NOT NULL, finished_at INTEGER )\"\n }\n ],\n \"schema_sha256\": \"ee0192641f33bba6c7fc5994d73e2a64e77c129406bd3c2ccfc840780c3cef6a\"\n },\n {\n \"path\": \"db/observability.sqlite\",\n \"application_id\": 0,\n \"user_version\": 0,\n \"migration_versions\": [\n {\n \"table\": \"plugin_observability_schema_migrations\",\n \"versions\": [\n 1\n ]\n }\n ],\n \"schema_objects\": [\n {\n \"type\": \"index\",\n \"name\": \"idx_plugin_audit_plugin\",\n \"table_name\": \"plugin_audit_events\",\n \"sql\": \"CREATE INDEX idx_plugin_audit_plugin ON plugin_audit_events(plugin_id, type, occurred_at)\"\n },\n {\n \"type\": \"index\",\n \"name\": \"idx_plugin_audit_plugin_instance\",\n \"table_name\": \"plugin_audit_events\",\n \"sql\": \"CREATE INDEX idx_plugin_audit_plugin_instance ON plugin_audit_events(plugin_instance_id, type, occurred_at)\"\n },\n {\n \"type\": \"index\",\n \"name\": \"idx_plugin_diagnostics_plugin_instance\",\n \"table_name\": \"plugin_diagnostic_events\",\n \"sql\": \"CREATE INDEX idx_plugin_diagnostics_plugin_instance ON plugin_diagnostic_events(plugin_instance_id, type, severity, occurred_at)\"\n },\n {\n \"type\": \"index\",\n \"name\": \"idx_plugin_diagnostics_surface\",\n \"table_name\": \"plugin_diagnostic_events\",\n \"sql\": \"CREATE INDEX idx_plugin_diagnostics_surface ON plugin_diagnostic_events(surface_instance_id, severity, occurred_at)\"\n },\n {\n \"type\": \"table\",\n \"name\": \"plugin_audit_events\",\n \"table_name\": \"plugin_audit_events\",\n \"sql\": \"CREATE TABLE plugin_audit_events ( seq INTEGER PRIMARY KEY, event_id TEXT NOT NULL, type TEXT NOT NULL, plugin_id TEXT NOT NULL, plugin_instance_id TEXT NOT NULL, surface_id TEXT NOT NULL, surface_instance_id TEXT NOT NULL, request_id TEXT NOT NULL, actor TEXT NOT NULL, occurred_at INTEGER NOT NULL, details_json BLOB NOT NULL )\"\n },\n {\n \"type\": \"table\",\n \"name\": \"plugin_diagnostic_events\",\n \"table_name\": \"plugin_diagnostic_events\",\n \"sql\": \"CREATE TABLE plugin_diagnostic_events ( seq INTEGER PRIMARY KEY, event_id TEXT NOT NULL, type TEXT NOT NULL, severity TEXT NOT NULL, message TEXT NOT NULL, plugin_id TEXT NOT NULL, plugin_instance_id TEXT NOT NULL, surface_id TEXT NOT NULL, surface_instance_id TEXT NOT NULL, active_fingerprint TEXT NOT NULL, request_id TEXT NOT NULL, occurred_at INTEGER NOT NULL, details_json BLOB NOT NULL )\"\n },\n {\n \"type\": \"table\",\n \"name\": \"plugin_observability_meta\",\n \"table_name\": \"plugin_observability_meta\",\n \"sql\": \"CREATE TABLE plugin_observability_meta ( id INTEGER PRIMARY KEY CHECK(id = 1), audit_seq INTEGER NOT NULL, diagnostic_seq INTEGER NOT NULL )\"\n },\n {\n \"type\": \"table\",\n \"name\": \"plugin_observability_schema_migrations\",\n \"table_name\": \"plugin_observability_schema_migrations\",\n \"sql\": \"CREATE TABLE plugin_observability_schema_migrations ( version INTEGER PRIMARY KEY, applied_at INTEGER NOT NULL )\"\n }\n ],\n \"schema_sha256\": \"00e4363c85aaab3cb78d9b357e835490f82975233ee44643a3e238d337da4784\"\n },\n {\n \"path\": \"db/operations.sqlite\",\n \"application_id\": 0,\n \"user_version\": 0,\n \"migration_versions\": [\n {\n \"table\": \"plugin_operation_schema_migrations\",\n \"versions\": [\n 1\n ]\n }\n ],\n \"schema_objects\": [\n {\n \"type\": \"index\",\n \"name\": \"idx_plugin_operations_plugin_instance\",\n \"table_name\": \"plugin_operations\",\n \"sql\": \"CREATE INDEX idx_plugin_operations_plugin_instance ON plugin_operations(plugin_instance_id, created_at, operation_id)\"\n },\n {\n \"type\": \"index\",\n \"name\": \"idx_plugin_operations_status\",\n \"table_name\": \"plugin_operations\",\n \"sql\": \"CREATE INDEX idx_plugin_operations_status ON plugin_operations(status)\"\n },\n {\n \"type\": \"table\",\n \"name\": \"plugin_operation_schema_migrations\",\n \"table_name\": \"plugin_operation_schema_migrations\",\n \"sql\": \"CREATE TABLE plugin_operation_schema_migrations ( version INTEGER PRIMARY KEY, applied_at INTEGER NOT NULL )\"\n },\n {\n \"type\": \"table\",\n \"name\": \"plugin_operations\",\n \"table_name\": \"plugin_operations\",\n \"sql\": \"CREATE TABLE plugin_operations ( operation_id TEXT PRIMARY KEY, plugin_id TEXT NOT NULL, plugin_instance_id TEXT NOT NULL, method TEXT NOT NULL, effect TEXT NOT NULL, execution TEXT NOT NULL, surface_instance_id TEXT NOT NULL, session_channel_id_hash TEXT NOT NULL, bridge_channel_id TEXT NOT NULL, status TEXT NOT NULL, disable_behavior TEXT NOT NULL, uninstall_behavior TEXT NOT NULL, reason TEXT NOT NULL, created_at INTEGER NOT NULL, updated_at INTEGER NOT NULL, cancel_requested_at INTEGER, orphaned_at INTEGER )\"\n }\n ],\n \"schema_sha256\": \"6b89150e03769f618c994f6906f4b588cfaf95159bfd111bd44cfde37b7ff681\"\n },\n {\n \"path\": \"db/permissions.sqlite\",\n \"application_id\": 0,\n \"user_version\": 0,\n \"migration_versions\": [\n {\n \"table\": \"plugin_permission_schema_migrations\",\n \"versions\": [\n 1\n ]\n }\n ],\n \"schema_objects\": [\n {\n \"type\": \"index\",\n \"name\": \"idx_plugin_permission_grants_plugin\",\n \"table_name\": \"plugin_permission_grants\",\n \"sql\": \"CREATE INDEX idx_plugin_permission_grants_plugin ON plugin_permission_grants(plugin_instance_id, permission_id)\"\n },\n {\n \"type\": \"index\",\n \"name\": \"idx_plugin_permission_grants_revoked\",\n \"table_name\": \"plugin_permission_grants\",\n \"sql\": \"CREATE INDEX idx_plugin_permission_grants_revoked ON plugin_permission_grants(plugin_instance_id, revoked_at, expires_at)\"\n },\n {\n \"type\": \"table\",\n \"name\": \"plugin_permission_grants\",\n \"table_name\": \"plugin_permission_grants\",\n \"sql\": \"CREATE TABLE plugin_permission_grants ( plugin_instance_id TEXT NOT NULL, permission_id TEXT NOT NULL, effect TEXT NOT NULL, granted_by TEXT NOT NULL, granted_at INTEGER NOT NULL, expires_at INTEGER, revoked_at INTEGER, revoked_by TEXT NOT NULL, revoked_reason TEXT NOT NULL, PRIMARY KEY(plugin_instance_id, permission_id) )\"\n },\n {\n \"type\": \"table\",\n \"name\": \"plugin_permission_schema_migrations\",\n \"table_name\": \"plugin_permission_schema_migrations\",\n \"sql\": \"CREATE TABLE plugin_permission_schema_migrations ( version INTEGER PRIMARY KEY, applied_at INTEGER NOT NULL )\"\n }\n ],\n \"schema_sha256\": \"d0b89affc5139c3ae28f0bd178094ceef0046f25b9b27f9b4e1b231624436f46\"\n },\n {\n \"path\": \"db/registry.sqlite\",\n \"application_id\": 0,\n \"user_version\": 5,\n \"migration_versions\": [\n {\n \"table\": \"plugin_registry_schema_migrations\",\n \"versions\": [\n 1,\n 2,\n 3,\n 4,\n 5\n ]\n }\n ],\n \"schema_objects\": [\n {\n \"type\": \"index\",\n \"name\": \"idx_plugin_records_deleted_at\",\n \"table_name\": \"plugin_records\",\n \"sql\": \"CREATE INDEX idx_plugin_records_deleted_at ON plugin_records(deleted_at)\"\n },\n {\n \"type\": \"index\",\n \"name\": \"idx_plugin_records_plugin_id\",\n \"table_name\": \"plugin_records\",\n \"sql\": \"CREATE INDEX idx_plugin_records_plugin_id ON plugin_records(plugin_id)\"\n },\n {\n \"type\": \"table\",\n \"name\": \"plugin_records\",\n \"table_name\": \"plugin_records\",\n \"sql\": \"CREATE TABLE plugin_records ( plugin_instance_id TEXT PRIMARY KEY, publisher_id TEXT NOT NULL, plugin_id TEXT NOT NULL, version TEXT NOT NULL, active_fingerprint TEXT NOT NULL, package_hash TEXT NOT NULL, manifest_hash TEXT NOT NULL, entries_hash TEXT NOT NULL, trust_state TEXT NOT NULL, trust_assessment_json TEXT NOT NULL DEFAULT '{}', source_policy_snapshot_hash TEXT NOT NULL DEFAULT '', source_policy_snapshot_json TEXT NOT NULL DEFAULT '{}', local_import_provenance_json TEXT NOT NULL DEFAULT '{}', enable_state TEXT NOT NULL, disabled_reason TEXT NOT NULL, retained_data_state TEXT NOT NULL, policy_revision INTEGER NOT NULL, management_revision INTEGER NOT NULL, revoke_epoch INTEGER NOT NULL, manifest_json TEXT NOT NULL, package_entries_json TEXT NOT NULL, version_history_json TEXT NOT NULL, installed_at INTEGER NOT NULL, enabled_at INTEGER, updated_at INTEGER NOT NULL, deleted_at INTEGER, metadata_json TEXT NOT NULL )\"\n },\n {\n \"type\": \"table\",\n \"name\": \"plugin_registry_schema_migrations\",\n \"table_name\": \"plugin_registry_schema_migrations\",\n \"sql\": \"CREATE TABLE plugin_registry_schema_migrations ( version INTEGER PRIMARY KEY, applied_at INTEGER NOT NULL )\"\n },\n {\n \"type\": \"table\",\n \"name\": \"plugin_source_security_floors\",\n \"table_name\": \"plugin_source_security_floors\",\n \"sql\": \"CREATE TABLE plugin_source_security_floors ( source_id TEXT PRIMARY KEY, policy_epoch TEXT NOT NULL, key_rotation_epoch TEXT NOT NULL, revocation_epoch TEXT NOT NULL, source_policy_snapshot_hash TEXT NOT NULL, revocation_metadata_sha256 TEXT NOT NULL, updated_at INTEGER NOT NULL )\"\n }\n ],\n \"schema_sha256\": \"e04fe43561aa4e42626060f74912c0fae5dca60a23f32b95e2c219a37b722a3f\"\n },\n {\n \"path\": \"db/retained_data.sqlite\",\n \"application_id\": 0,\n \"user_version\": 0,\n \"migration_versions\": [\n {\n \"table\": \"plugin_retained_data_schema_migrations\",\n \"versions\": [\n 1\n ]\n }\n ],\n \"schema_objects\": [\n {\n \"type\": \"index\",\n \"name\": \"idx_plugin_retained_data_expiry\",\n \"table_name\": \"plugin_retained_data_records\",\n \"sql\": \"CREATE INDEX idx_plugin_retained_data_expiry ON plugin_retained_data_records(state, delete_after)\"\n },\n {\n \"type\": \"index\",\n \"name\": \"idx_plugin_retained_data_identity\",\n \"table_name\": \"plugin_retained_data_records\",\n \"sql\": \"CREATE INDEX idx_plugin_retained_data_identity ON plugin_retained_data_records(publisher_id, plugin_id, state)\"\n },\n {\n \"type\": \"index\",\n \"name\": \"idx_plugin_retained_data_source\",\n \"table_name\": \"plugin_retained_data_records\",\n \"sql\": \"CREATE INDEX idx_plugin_retained_data_source ON plugin_retained_data_records(source_plugin_instance_id)\"\n },\n {\n \"type\": \"table\",\n \"name\": \"plugin_retained_data_records\",\n \"table_name\": \"plugin_retained_data_records\",\n \"sql\": \"CREATE TABLE plugin_retained_data_records ( retained_id TEXT PRIMARY KEY, source_plugin_instance_id TEXT NOT NULL, bound_plugin_instance_id TEXT NOT NULL, publisher_id TEXT NOT NULL, plugin_id TEXT NOT NULL, version TEXT NOT NULL, package_hash TEXT NOT NULL, manifest_hash TEXT NOT NULL, state TEXT NOT NULL, storage_retained INTEGER NOT NULL, settings_retained INTEGER NOT NULL, browser_site_retained INTEGER NOT NULL, usage_bytes INTEGER NOT NULL, delete_after INTEGER, delete_error TEXT NOT NULL, metadata_json TEXT NOT NULL, retained_at INTEGER NOT NULL, updated_at INTEGER NOT NULL, bound_at INTEGER, deleted_at INTEGER, last_accessed_at INTEGER )\"\n },\n {\n \"type\": \"table\",\n \"name\": \"plugin_retained_data_schema_migrations\",\n \"table_name\": \"plugin_retained_data_schema_migrations\",\n \"sql\": \"CREATE TABLE plugin_retained_data_schema_migrations ( version INTEGER PRIMARY KEY, applied_at INTEGER NOT NULL )\"\n }\n ],\n \"schema_sha256\": \"1cdb02a3c5cb5870aadd332de06582df4fcddad098a0b731271beddbc38237b7\"\n },\n {\n \"path\": \"db/secrets.sqlite\",\n \"application_id\": 0,\n \"user_version\": 0,\n \"migration_versions\": [\n {\n \"table\": \"plugin_secret_schema_migrations\",\n \"versions\": [\n 1\n ]\n }\n ],\n \"schema_objects\": [\n {\n \"type\": \"index\",\n \"name\": \"idx_plugin_secret_bindings_plugin\",\n \"table_name\": \"plugin_secret_bindings\",\n \"sql\": \"CREATE INDEX idx_plugin_secret_bindings_plugin ON plugin_secret_bindings(plugin_instance_id, bound, updated_at)\"\n },\n {\n \"type\": \"table\",\n \"name\": \"plugin_secret_bindings\",\n \"table_name\": \"plugin_secret_bindings\",\n \"sql\": \"CREATE TABLE plugin_secret_bindings ( plugin_instance_id TEXT NOT NULL, secret_ref TEXT NOT NULL, scope TEXT NOT NULL, bound INTEGER NOT NULL, last_test_status TEXT NOT NULL, bound_at INTEGER, tested_at INTEGER, deleted_at INTEGER, updated_at INTEGER NOT NULL, PRIMARY KEY(plugin_instance_id, scope, secret_ref) )\"\n },\n {\n \"type\": \"table\",\n \"name\": \"plugin_secret_schema_migrations\",\n \"table_name\": \"plugin_secret_schema_migrations\",\n \"sql\": \"CREATE TABLE plugin_secret_schema_migrations ( version INTEGER PRIMARY KEY, applied_at INTEGER NOT NULL )\"\n }\n ],\n \"schema_sha256\": \"82a9d6ab404b4d3dc485ef1ea9c95530af4460a48506e47ced81953c4b12dd50\"\n },\n {\n \"path\": \"db/security_policy.sqlite\",\n \"application_id\": 0,\n \"user_version\": 0,\n \"migration_versions\": [\n {\n \"table\": \"plugin_security_policy_schema_migrations\",\n \"versions\": [\n 1\n ]\n }\n ],\n \"schema_objects\": [\n {\n \"type\": \"table\",\n \"name\": \"plugin_security_policies\",\n \"table_name\": \"plugin_security_policies\",\n \"sql\": \"CREATE TABLE plugin_security_policies ( plugin_instance_id TEXT PRIMARY KEY, updated_at INTEGER NOT NULL )\"\n },\n {\n \"type\": \"table\",\n \"name\": \"plugin_security_policy_allowed_permissions\",\n \"table_name\": \"plugin_security_policy_allowed_permissions\",\n \"sql\": \"CREATE TABLE plugin_security_policy_allowed_permissions ( plugin_instance_id TEXT NOT NULL, permission_id TEXT NOT NULL, updated_at INTEGER NOT NULL, PRIMARY KEY(plugin_instance_id, permission_id), FOREIGN KEY(plugin_instance_id) REFERENCES plugin_security_policies(plugin_instance_id) ON DELETE CASCADE )\"\n },\n {\n \"type\": \"table\",\n \"name\": \"plugin_security_policy_denied_methods\",\n \"table_name\": \"plugin_security_policy_denied_methods\",\n \"sql\": \"CREATE TABLE plugin_security_policy_denied_methods ( plugin_instance_id TEXT NOT NULL, method TEXT NOT NULL, updated_at INTEGER NOT NULL, PRIMARY KEY(plugin_instance_id, method), FOREIGN KEY(plugin_instance_id) REFERENCES plugin_security_policies(plugin_instance_id) ON DELETE CASCADE )\"\n },\n {\n \"type\": \"table\",\n \"name\": \"plugin_security_policy_schema_migrations\",\n \"table_name\": \"plugin_security_policy_schema_migrations\",\n \"sql\": \"CREATE TABLE plugin_security_policy_schema_migrations ( version INTEGER PRIMARY KEY, applied_at INTEGER NOT NULL )\"\n }\n ],\n \"schema_sha256\": \"8718fac16ca2cf37e84edd53f6d1c646f2d42e028af2dcc7aee05bdd9bc22dd6\"\n },\n {\n \"path\": \"db/settings.sqlite\",\n \"application_id\": 0,\n \"user_version\": 0,\n \"migration_versions\": [\n {\n \"table\": \"plugin_settings_schema_migrations\",\n \"versions\": [\n 1\n ]\n }\n ],\n \"schema_objects\": [\n {\n \"type\": \"index\",\n \"name\": \"idx_plugin_settings_archives_source\",\n \"table_name\": \"plugin_settings_archives\",\n \"sql\": \"CREATE INDEX idx_plugin_settings_archives_source ON plugin_settings_archives(source_plugin_instance_id, created_at)\"\n },\n {\n \"type\": \"index\",\n \"name\": \"idx_plugin_settings_records_state\",\n \"table_name\": \"plugin_settings_records\",\n \"sql\": \"CREATE INDEX idx_plugin_settings_records_state ON plugin_settings_records(state, retained_at)\"\n },\n {\n \"type\": \"table\",\n \"name\": \"plugin_settings_archives\",\n \"table_name\": \"plugin_settings_archives\",\n \"sql\": \"CREATE TABLE plugin_settings_archives ( archive_ref TEXT PRIMARY KEY, source_plugin_instance_id TEXT NOT NULL, include_secrets INTEGER NOT NULL, schema_version INTEGER NOT NULL, settings_revision INTEGER NOT NULL, created_at INTEGER NOT NULL, updated_at INTEGER NOT NULL, payload_json BLOB NOT NULL )\"\n },\n {\n \"type\": \"table\",\n \"name\": \"plugin_settings_meta\",\n \"table_name\": \"plugin_settings_meta\",\n \"sql\": \"CREATE TABLE plugin_settings_meta ( id INTEGER PRIMARY KEY CHECK(id = 1), next_export INTEGER NOT NULL )\"\n },\n {\n \"type\": \"table\",\n \"name\": \"plugin_settings_records\",\n \"table_name\": \"plugin_settings_records\",\n \"sql\": \"CREATE TABLE plugin_settings_records ( plugin_instance_id TEXT PRIMARY KEY, state TEXT NOT NULL, schema_version INTEGER NOT NULL, settings_revision INTEGER NOT NULL, updated_at INTEGER NOT NULL, retained_at INTEGER, payload_json BLOB NOT NULL )\"\n },\n {\n \"type\": \"table\",\n \"name\": \"plugin_settings_schema_migrations\",\n \"table_name\": \"plugin_settings_schema_migrations\",\n \"sql\": \"CREATE TABLE plugin_settings_schema_migrations ( version INTEGER PRIMARY KEY, applied_at INTEGER NOT NULL )\"\n }\n ],\n \"schema_sha256\": \"dba0083a1fa88135d6ab50cd0176063688134e684577563022200906a0d5702a\"\n },\n {\n \"path\": \"db/streams.sqlite\",\n \"application_id\": 0,\n \"user_version\": 0,\n \"migration_versions\": [\n {\n \"table\": \"plugin_stream_schema_migrations\",\n \"versions\": [\n 1\n ]\n }\n ],\n \"schema_objects\": [\n {\n \"type\": \"index\",\n \"name\": \"idx_plugin_stream_events_stream_sequence\",\n \"table_name\": \"plugin_stream_events\",\n \"sql\": \"CREATE INDEX idx_plugin_stream_events_stream_sequence ON plugin_stream_events(stream_id, sequence)\"\n },\n {\n \"type\": \"index\",\n \"name\": \"idx_plugin_streams_plugin_instance\",\n \"table_name\": \"plugin_streams\",\n \"sql\": \"CREATE INDEX idx_plugin_streams_plugin_instance ON plugin_streams(plugin_instance_id, created_at, stream_id)\"\n },\n {\n \"type\": \"index\",\n \"name\": \"idx_plugin_streams_status\",\n \"table_name\": \"plugin_streams\",\n \"sql\": \"CREATE INDEX idx_plugin_streams_status ON plugin_streams(status)\"\n },\n {\n \"type\": \"table\",\n \"name\": \"plugin_stream_events\",\n \"table_name\": \"plugin_stream_events\",\n \"sql\": \"CREATE TABLE plugin_stream_events ( stream_id TEXT NOT NULL, sequence INTEGER NOT NULL, kind TEXT NOT NULL, data BLOB, error TEXT NOT NULL, at INTEGER NOT NULL, PRIMARY KEY(stream_id, sequence), FOREIGN KEY(stream_id) REFERENCES plugin_streams(stream_id) ON DELETE CASCADE )\"\n },\n {\n \"type\": \"table\",\n \"name\": \"plugin_stream_schema_migrations\",\n \"table_name\": \"plugin_stream_schema_migrations\",\n \"sql\": \"CREATE TABLE plugin_stream_schema_migrations ( version INTEGER PRIMARY KEY, applied_at INTEGER NOT NULL )\"\n },\n {\n \"type\": \"table\",\n \"name\": \"plugin_streams\",\n \"table_name\": \"plugin_streams\",\n \"sql\": \"CREATE TABLE plugin_streams ( stream_id TEXT PRIMARY KEY, plugin_id TEXT NOT NULL, plugin_instance_id TEXT NOT NULL, method TEXT NOT NULL, effect TEXT NOT NULL, execution TEXT NOT NULL, surface_instance_id TEXT NOT NULL, owner_session_hash TEXT NOT NULL, owner_user_hash TEXT NOT NULL, session_channel_id_hash TEXT NOT NULL, bridge_channel_id TEXT NOT NULL, direction TEXT NOT NULL, status TEXT NOT NULL, content_type TEXT NOT NULL, max_buffered_bytes INTEGER NOT NULL, buffered_bytes INTEGER NOT NULL, created_at INTEGER NOT NULL, updated_at INTEGER NOT NULL, closed_at INTEGER )\"\n }\n ],\n \"schema_sha256\": \"7d2200868c7bd271be8a78cd42aea861bdc2fe46dbc714b08bb4d6251c7510d9\"\n }\n ],\n \"tree_rules\": {\n \"allowed_kinds\": [\n \"directory\",\n \"file\"\n ],\n \"allow_sqlite_wal_shm\": true,\n \"reject_hardlinks\": true,\n \"reject_symlinks\": true,\n \"variable_trees\": [\n \"assets\",\n \"storage\"\n ]\n }\n },\n {\n \"id\": \"redeven-redevplugin-v0.2.x-layout-v1\",\n \"platform_versions\": [\n \"0.2.0\",\n \"0.2.1\",\n \"0.2.2\"\n ],\n \"root_entries\": [\n {\n \"path\": \"assets\",\n \"kind\": \"directory\",\n \"scope\": \"durable\",\n \"disposition\": \"quarantine\"\n },\n {\n \"path\": \"db\",\n \"kind\": \"directory\",\n \"scope\": \"durable\",\n \"disposition\": \"quarantine\"\n },\n {\n \"path\": \"storage\",\n \"kind\": \"directory\",\n \"scope\": \"durable\",\n \"disposition\": \"quarantine\"\n }\n ],\n \"sqlite_databases\": [\n {\n \"path\": \"db/cleanup.sqlite\",\n \"application_id\": 0,\n \"user_version\": 0,\n \"migration_versions\": [\n {\n \"table\": \"plugin_cleanup_schema_migrations\",\n \"versions\": [\n 1\n ]\n }\n ],\n \"schema_objects\": [\n {\n \"type\": \"index\",\n \"name\": \"idx_plugin_cleanup_operations_plugin\",\n \"table_name\": \"plugin_cleanup_operations\",\n \"sql\": \"CREATE INDEX idx_plugin_cleanup_operations_plugin ON plugin_cleanup_operations(plugin_instance_id, id)\"\n },\n {\n \"type\": \"table\",\n \"name\": \"plugin_cleanup_operations\",\n \"table_name\": \"plugin_cleanup_operations\",\n \"sql\": \"CREATE TABLE plugin_cleanup_operations ( id INTEGER PRIMARY KEY AUTOINCREMENT, plugin_instance_id TEXT NOT NULL, delete_data INTEGER NOT NULL, phase TEXT NOT NULL, executed_at INTEGER NOT NULL )\"\n },\n {\n \"type\": \"table\",\n \"name\": \"plugin_cleanup_schema_migrations\",\n \"table_name\": \"plugin_cleanup_schema_migrations\",\n \"sql\": \"CREATE TABLE plugin_cleanup_schema_migrations ( version INTEGER PRIMARY KEY, applied_at INTEGER NOT NULL )\"\n }\n ],\n \"schema_sha256\": \"492e855ac577c347fd5c4a916b4be060d08e9703d9deec197bcb1a75a0de9dcc\"\n },\n {\n \"path\": \"db/confirmation_intents.sqlite\",\n \"application_id\": 0,\n \"user_version\": 0,\n \"migration_versions\": [\n {\n \"table\": \"plugin_confirmation_intent_schema_migrations\",\n \"versions\": [\n 1\n ]\n }\n ],\n \"schema_objects\": [\n {\n \"type\": \"index\",\n \"name\": \"idx_plugin_confirmation_intents_expires_at\",\n \"table_name\": \"plugin_confirmation_intents\",\n \"sql\": \"CREATE INDEX idx_plugin_confirmation_intents_expires_at ON plugin_confirmation_intents(expires_at)\"\n },\n {\n \"type\": \"index\",\n \"name\": \"idx_plugin_confirmation_intents_plugin_instance\",\n \"table_name\": \"plugin_confirmation_intents\",\n \"sql\": \"CREATE INDEX idx_plugin_confirmation_intents_plugin_instance ON plugin_confirmation_intents(plugin_instance_id, issued_at, confirmation_id)\"\n },\n {\n \"type\": \"table\",\n \"name\": \"plugin_confirmation_intent_schema_migrations\",\n \"table_name\": \"plugin_confirmation_intent_schema_migrations\",\n \"sql\": \"CREATE TABLE plugin_confirmation_intent_schema_migrations ( version INTEGER PRIMARY KEY, applied_at INTEGER NOT NULL )\"\n },\n {\n \"type\": \"table\",\n \"name\": \"plugin_confirmation_intents\",\n \"table_name\": \"plugin_confirmation_intents\",\n \"sql\": \"CREATE TABLE plugin_confirmation_intents ( confirmation_id TEXT PRIMARY KEY, confirmation_token_id TEXT NOT NULL, plugin_id TEXT NOT NULL, plugin_instance_id TEXT NOT NULL, surface_instance_id TEXT NOT NULL, bridge_channel_id TEXT NOT NULL, method TEXT NOT NULL, request_hash TEXT NOT NULL, plan_hash TEXT NOT NULL, issued_at INTEGER NOT NULL, expires_at INTEGER NOT NULL )\"\n }\n ],\n \"schema_sha256\": \"dac56fde008efc7d6a21154c5bfbbd43183a8411e0fad20946e88a7550287781\"\n },\n {\n \"path\": \"db/install_stage.sqlite\",\n \"application_id\": 0,\n \"user_version\": 0,\n \"migration_versions\": [\n {\n \"table\": \"plugin_install_stage_schema_migrations\",\n \"versions\": [\n 1\n ]\n }\n ],\n \"schema_objects\": [\n {\n \"type\": \"index\",\n \"name\": \"idx_plugin_install_stages_plugin\",\n \"table_name\": \"plugin_install_stages\",\n \"sql\": \"CREATE INDEX idx_plugin_install_stages_plugin ON plugin_install_stages(plugin_instance_id, created_at)\"\n },\n {\n \"type\": \"index\",\n \"name\": \"idx_plugin_install_stages_status_expiry\",\n \"table_name\": \"plugin_install_stages\",\n \"sql\": \"CREATE INDEX idx_plugin_install_stages_status_expiry ON plugin_install_stages(status, expires_at)\"\n },\n {\n \"type\": \"table\",\n \"name\": \"plugin_install_stage_schema_migrations\",\n \"table_name\": \"plugin_install_stage_schema_migrations\",\n \"sql\": \"CREATE TABLE plugin_install_stage_schema_migrations ( version INTEGER PRIMARY KEY, applied_at INTEGER NOT NULL )\"\n },\n {\n \"type\": \"table\",\n \"name\": \"plugin_install_stages\",\n \"table_name\": \"plugin_install_stages\",\n \"sql\": \"CREATE TABLE plugin_install_stages ( stage_id TEXT PRIMARY KEY, action TEXT NOT NULL, status TEXT NOT NULL, plugin_instance_id TEXT NOT NULL, publisher_id TEXT NOT NULL, plugin_id TEXT NOT NULL, version TEXT NOT NULL, package_hash TEXT NOT NULL, manifest_hash TEXT NOT NULL, entries_hash TEXT NOT NULL, requested_trust TEXT NOT NULL, resolved_trust TEXT NOT NULL, validation_summary_json TEXT NOT NULL, error_code TEXT NOT NULL, error_message TEXT NOT NULL, expires_at INTEGER NOT NULL, created_at INTEGER NOT NULL, updated_at INTEGER NOT NULL, finished_at INTEGER )\"\n }\n ],\n \"schema_sha256\": \"ee0192641f33bba6c7fc5994d73e2a64e77c129406bd3c2ccfc840780c3cef6a\"\n },\n {\n \"path\": \"db/observability.sqlite\",\n \"application_id\": 0,\n \"user_version\": 0,\n \"migration_versions\": [\n {\n \"table\": \"plugin_observability_schema_migrations\",\n \"versions\": [\n 1\n ]\n }\n ],\n \"schema_objects\": [\n {\n \"type\": \"index\",\n \"name\": \"idx_plugin_audit_plugin\",\n \"table_name\": \"plugin_audit_events\",\n \"sql\": \"CREATE INDEX idx_plugin_audit_plugin ON plugin_audit_events(plugin_id, type, occurred_at)\"\n },\n {\n \"type\": \"index\",\n \"name\": \"idx_plugin_audit_plugin_instance\",\n \"table_name\": \"plugin_audit_events\",\n \"sql\": \"CREATE INDEX idx_plugin_audit_plugin_instance ON plugin_audit_events(plugin_instance_id, type, occurred_at)\"\n },\n {\n \"type\": \"index\",\n \"name\": \"idx_plugin_diagnostics_plugin_instance\",\n \"table_name\": \"plugin_diagnostic_events\",\n \"sql\": \"CREATE INDEX idx_plugin_diagnostics_plugin_instance ON plugin_diagnostic_events(plugin_instance_id, type, severity, occurred_at)\"\n },\n {\n \"type\": \"index\",\n \"name\": \"idx_plugin_diagnostics_surface\",\n \"table_name\": \"plugin_diagnostic_events\",\n \"sql\": \"CREATE INDEX idx_plugin_diagnostics_surface ON plugin_diagnostic_events(surface_instance_id, severity, occurred_at)\"\n },\n {\n \"type\": \"table\",\n \"name\": \"plugin_audit_events\",\n \"table_name\": \"plugin_audit_events\",\n \"sql\": \"CREATE TABLE plugin_audit_events ( seq INTEGER PRIMARY KEY, event_id TEXT NOT NULL, type TEXT NOT NULL, plugin_id TEXT NOT NULL, plugin_instance_id TEXT NOT NULL, surface_id TEXT NOT NULL, surface_instance_id TEXT NOT NULL, request_id TEXT NOT NULL, actor TEXT NOT NULL, occurred_at INTEGER NOT NULL, details_json BLOB NOT NULL )\"\n },\n {\n \"type\": \"table\",\n \"name\": \"plugin_diagnostic_events\",\n \"table_name\": \"plugin_diagnostic_events\",\n \"sql\": \"CREATE TABLE plugin_diagnostic_events ( seq INTEGER PRIMARY KEY, event_id TEXT NOT NULL, type TEXT NOT NULL, severity TEXT NOT NULL, message TEXT NOT NULL, plugin_id TEXT NOT NULL, plugin_instance_id TEXT NOT NULL, surface_id TEXT NOT NULL, surface_instance_id TEXT NOT NULL, active_fingerprint TEXT NOT NULL, request_id TEXT NOT NULL, occurred_at INTEGER NOT NULL, details_json BLOB NOT NULL )\"\n },\n {\n \"type\": \"table\",\n \"name\": \"plugin_observability_meta\",\n \"table_name\": \"plugin_observability_meta\",\n \"sql\": \"CREATE TABLE plugin_observability_meta ( id INTEGER PRIMARY KEY CHECK(id = 1), audit_seq INTEGER NOT NULL, diagnostic_seq INTEGER NOT NULL )\"\n },\n {\n \"type\": \"table\",\n \"name\": \"plugin_observability_schema_migrations\",\n \"table_name\": \"plugin_observability_schema_migrations\",\n \"sql\": \"CREATE TABLE plugin_observability_schema_migrations ( version INTEGER PRIMARY KEY, applied_at INTEGER NOT NULL )\"\n }\n ],\n \"schema_sha256\": \"00e4363c85aaab3cb78d9b357e835490f82975233ee44643a3e238d337da4784\"\n },\n {\n \"path\": \"db/operations.sqlite\",\n \"application_id\": 0,\n \"user_version\": 0,\n \"migration_versions\": [\n {\n \"table\": \"plugin_operation_schema_migrations\",\n \"versions\": [\n 1\n ]\n }\n ],\n \"schema_objects\": [\n {\n \"type\": \"index\",\n \"name\": \"idx_plugin_operations_plugin_instance\",\n \"table_name\": \"plugin_operations\",\n \"sql\": \"CREATE INDEX idx_plugin_operations_plugin_instance ON plugin_operations(plugin_instance_id, created_at, operation_id)\"\n },\n {\n \"type\": \"index\",\n \"name\": \"idx_plugin_operations_status\",\n \"table_name\": \"plugin_operations\",\n \"sql\": \"CREATE INDEX idx_plugin_operations_status ON plugin_operations(status)\"\n },\n {\n \"type\": \"table\",\n \"name\": \"plugin_operation_schema_migrations\",\n \"table_name\": \"plugin_operation_schema_migrations\",\n \"sql\": \"CREATE TABLE plugin_operation_schema_migrations ( version INTEGER PRIMARY KEY, applied_at INTEGER NOT NULL )\"\n },\n {\n \"type\": \"table\",\n \"name\": \"plugin_operations\",\n \"table_name\": \"plugin_operations\",\n \"sql\": \"CREATE TABLE plugin_operations ( operation_id TEXT PRIMARY KEY, plugin_id TEXT NOT NULL, plugin_instance_id TEXT NOT NULL, method TEXT NOT NULL, effect TEXT NOT NULL, execution TEXT NOT NULL, surface_instance_id TEXT NOT NULL, session_channel_id_hash TEXT NOT NULL, bridge_channel_id TEXT NOT NULL, status TEXT NOT NULL, disable_behavior TEXT NOT NULL, uninstall_behavior TEXT NOT NULL, reason TEXT NOT NULL, created_at INTEGER NOT NULL, updated_at INTEGER NOT NULL, cancel_requested_at INTEGER, orphaned_at INTEGER )\"\n }\n ],\n \"schema_sha256\": \"6b89150e03769f618c994f6906f4b588cfaf95159bfd111bd44cfde37b7ff681\"\n },\n {\n \"path\": \"db/permissions.sqlite\",\n \"application_id\": 0,\n \"user_version\": 0,\n \"migration_versions\": [\n {\n \"table\": \"plugin_permission_schema_migrations\",\n \"versions\": [\n 1\n ]\n }\n ],\n \"schema_objects\": [\n {\n \"type\": \"index\",\n \"name\": \"idx_plugin_permission_grants_plugin\",\n \"table_name\": \"plugin_permission_grants\",\n \"sql\": \"CREATE INDEX idx_plugin_permission_grants_plugin ON plugin_permission_grants(plugin_instance_id, permission_id)\"\n },\n {\n \"type\": \"index\",\n \"name\": \"idx_plugin_permission_grants_revoked\",\n \"table_name\": \"plugin_permission_grants\",\n \"sql\": \"CREATE INDEX idx_plugin_permission_grants_revoked ON plugin_permission_grants(plugin_instance_id, revoked_at, expires_at)\"\n },\n {\n \"type\": \"table\",\n \"name\": \"plugin_permission_grants\",\n \"table_name\": \"plugin_permission_grants\",\n \"sql\": \"CREATE TABLE plugin_permission_grants ( plugin_instance_id TEXT NOT NULL, permission_id TEXT NOT NULL, effect TEXT NOT NULL, granted_by TEXT NOT NULL, granted_at INTEGER NOT NULL, expires_at INTEGER, revoked_at INTEGER, revoked_by TEXT NOT NULL, revoked_reason TEXT NOT NULL, PRIMARY KEY(plugin_instance_id, permission_id) )\"\n },\n {\n \"type\": \"table\",\n \"name\": \"plugin_permission_schema_migrations\",\n \"table_name\": \"plugin_permission_schema_migrations\",\n \"sql\": \"CREATE TABLE plugin_permission_schema_migrations ( version INTEGER PRIMARY KEY, applied_at INTEGER NOT NULL )\"\n }\n ],\n \"schema_sha256\": \"d0b89affc5139c3ae28f0bd178094ceef0046f25b9b27f9b4e1b231624436f46\"\n },\n {\n \"path\": \"db/registry.sqlite\",\n \"application_id\": 0,\n \"user_version\": 5,\n \"migration_versions\": [\n {\n \"table\": \"plugin_registry_schema_migrations\",\n \"versions\": [\n 1,\n 2,\n 3,\n 4,\n 5\n ]\n }\n ],\n \"schema_objects\": [\n {\n \"type\": \"index\",\n \"name\": \"idx_plugin_records_deleted_at\",\n \"table_name\": \"plugin_records\",\n \"sql\": \"CREATE INDEX idx_plugin_records_deleted_at ON plugin_records(deleted_at)\"\n },\n {\n \"type\": \"index\",\n \"name\": \"idx_plugin_records_plugin_id\",\n \"table_name\": \"plugin_records\",\n \"sql\": \"CREATE INDEX idx_plugin_records_plugin_id ON plugin_records(plugin_id)\"\n },\n {\n \"type\": \"table\",\n \"name\": \"plugin_records\",\n \"table_name\": \"plugin_records\",\n \"sql\": \"CREATE TABLE plugin_records ( plugin_instance_id TEXT PRIMARY KEY, publisher_id TEXT NOT NULL, plugin_id TEXT NOT NULL, version TEXT NOT NULL, active_fingerprint TEXT NOT NULL, package_hash TEXT NOT NULL, manifest_hash TEXT NOT NULL, entries_hash TEXT NOT NULL, trust_state TEXT NOT NULL, trust_assessment_json TEXT NOT NULL DEFAULT '{}', source_policy_snapshot_hash TEXT NOT NULL DEFAULT '', source_policy_snapshot_json TEXT NOT NULL DEFAULT '{}', local_import_provenance_json TEXT NOT NULL DEFAULT '{}', enable_state TEXT NOT NULL, disabled_reason TEXT NOT NULL, retained_data_state TEXT NOT NULL, policy_revision INTEGER NOT NULL, management_revision INTEGER NOT NULL, revoke_epoch INTEGER NOT NULL, manifest_json TEXT NOT NULL, package_entries_json TEXT NOT NULL, version_history_json TEXT NOT NULL, installed_at INTEGER NOT NULL, enabled_at INTEGER, updated_at INTEGER NOT NULL, deleted_at INTEGER, metadata_json TEXT NOT NULL )\"\n },\n {\n \"type\": \"table\",\n \"name\": \"plugin_registry_schema_migrations\",\n \"table_name\": \"plugin_registry_schema_migrations\",\n \"sql\": \"CREATE TABLE plugin_registry_schema_migrations ( version INTEGER PRIMARY KEY, applied_at INTEGER NOT NULL )\"\n },\n {\n \"type\": \"table\",\n \"name\": \"plugin_source_security_floors\",\n \"table_name\": \"plugin_source_security_floors\",\n \"sql\": \"CREATE TABLE plugin_source_security_floors ( source_id TEXT PRIMARY KEY, policy_epoch TEXT NOT NULL, key_rotation_epoch TEXT NOT NULL, revocation_epoch TEXT NOT NULL, source_policy_snapshot_hash TEXT NOT NULL, revocation_metadata_sha256 TEXT NOT NULL, updated_at INTEGER NOT NULL )\"\n }\n ],\n \"schema_sha256\": \"e04fe43561aa4e42626060f74912c0fae5dca60a23f32b95e2c219a37b722a3f\"\n },\n {\n \"path\": \"db/retained_data.sqlite\",\n \"application_id\": 0,\n \"user_version\": 0,\n \"migration_versions\": [\n {\n \"table\": \"plugin_retained_data_schema_migrations\",\n \"versions\": [\n 2\n ]\n }\n ],\n \"schema_objects\": [\n {\n \"type\": \"index\",\n \"name\": \"idx_plugin_retained_data_expiry\",\n \"table_name\": \"plugin_retained_data_records\",\n \"sql\": \"CREATE INDEX idx_plugin_retained_data_expiry ON plugin_retained_data_records(state, delete_after)\"\n },\n {\n \"type\": \"index\",\n \"name\": \"idx_plugin_retained_data_identity\",\n \"table_name\": \"plugin_retained_data_records\",\n \"sql\": \"CREATE INDEX idx_plugin_retained_data_identity ON plugin_retained_data_records(publisher_id, plugin_id, state)\"\n },\n {\n \"type\": \"index\",\n \"name\": \"idx_plugin_retained_data_source\",\n \"table_name\": \"plugin_retained_data_records\",\n \"sql\": \"CREATE INDEX idx_plugin_retained_data_source ON plugin_retained_data_records(source_plugin_instance_id)\"\n },\n {\n \"type\": \"table\",\n \"name\": \"plugin_retained_data_records\",\n \"table_name\": \"plugin_retained_data_records\",\n \"sql\": \"CREATE TABLE plugin_retained_data_records ( retained_id TEXT PRIMARY KEY, source_plugin_instance_id TEXT NOT NULL, bound_plugin_instance_id TEXT NOT NULL, publisher_id TEXT NOT NULL, plugin_id TEXT NOT NULL, version TEXT NOT NULL, package_hash TEXT NOT NULL, manifest_hash TEXT NOT NULL, state TEXT NOT NULL, storage_retained INTEGER NOT NULL, settings_retained INTEGER NOT NULL, usage_bytes INTEGER NOT NULL, delete_after INTEGER, delete_error TEXT NOT NULL, metadata_json TEXT NOT NULL, retained_at INTEGER NOT NULL, updated_at INTEGER NOT NULL, bound_at INTEGER, deleted_at INTEGER, last_accessed_at INTEGER )\"\n },\n {\n \"type\": \"table\",\n \"name\": \"plugin_retained_data_schema_migrations\",\n \"table_name\": \"plugin_retained_data_schema_migrations\",\n \"sql\": \"CREATE TABLE plugin_retained_data_schema_migrations ( version INTEGER PRIMARY KEY, applied_at INTEGER NOT NULL )\"\n }\n ],\n \"schema_sha256\": \"b89b7188f7e7d96827750396b1fbf807b607695d342e87a5d5c5aefb832cb1d6\"\n },\n {\n \"path\": \"db/secrets.sqlite\",\n \"application_id\": 0,\n \"user_version\": 0,\n \"migration_versions\": [\n {\n \"table\": \"plugin_secret_schema_migrations\",\n \"versions\": [\n 1\n ]\n }\n ],\n \"schema_objects\": [\n {\n \"type\": \"index\",\n \"name\": \"idx_plugin_secret_bindings_plugin\",\n \"table_name\": \"plugin_secret_bindings\",\n \"sql\": \"CREATE INDEX idx_plugin_secret_bindings_plugin ON plugin_secret_bindings(plugin_instance_id, bound, updated_at)\"\n },\n {\n \"type\": \"table\",\n \"name\": \"plugin_secret_bindings\",\n \"table_name\": \"plugin_secret_bindings\",\n \"sql\": \"CREATE TABLE plugin_secret_bindings ( plugin_instance_id TEXT NOT NULL, secret_ref TEXT NOT NULL, scope TEXT NOT NULL, bound INTEGER NOT NULL, last_test_status TEXT NOT NULL, bound_at INTEGER, tested_at INTEGER, deleted_at INTEGER, updated_at INTEGER NOT NULL, PRIMARY KEY(plugin_instance_id, scope, secret_ref) )\"\n },\n {\n \"type\": \"table\",\n \"name\": \"plugin_secret_schema_migrations\",\n \"table_name\": \"plugin_secret_schema_migrations\",\n \"sql\": \"CREATE TABLE plugin_secret_schema_migrations ( version INTEGER PRIMARY KEY, applied_at INTEGER NOT NULL )\"\n }\n ],\n \"schema_sha256\": \"82a9d6ab404b4d3dc485ef1ea9c95530af4460a48506e47ced81953c4b12dd50\"\n },\n {\n \"path\": \"db/security_policy.sqlite\",\n \"application_id\": 0,\n \"user_version\": 0,\n \"migration_versions\": [\n {\n \"table\": \"plugin_security_policy_schema_migrations\",\n \"versions\": [\n 1\n ]\n }\n ],\n \"schema_objects\": [\n {\n \"type\": \"table\",\n \"name\": \"plugin_security_policies\",\n \"table_name\": \"plugin_security_policies\",\n \"sql\": \"CREATE TABLE plugin_security_policies ( plugin_instance_id TEXT PRIMARY KEY, updated_at INTEGER NOT NULL )\"\n },\n {\n \"type\": \"table\",\n \"name\": \"plugin_security_policy_allowed_permissions\",\n \"table_name\": \"plugin_security_policy_allowed_permissions\",\n \"sql\": \"CREATE TABLE plugin_security_policy_allowed_permissions ( plugin_instance_id TEXT NOT NULL, permission_id TEXT NOT NULL, updated_at INTEGER NOT NULL, PRIMARY KEY(plugin_instance_id, permission_id), FOREIGN KEY(plugin_instance_id) REFERENCES plugin_security_policies(plugin_instance_id) ON DELETE CASCADE )\"\n },\n {\n \"type\": \"table\",\n \"name\": \"plugin_security_policy_denied_methods\",\n \"table_name\": \"plugin_security_policy_denied_methods\",\n \"sql\": \"CREATE TABLE plugin_security_policy_denied_methods ( plugin_instance_id TEXT NOT NULL, method TEXT NOT NULL, updated_at INTEGER NOT NULL, PRIMARY KEY(plugin_instance_id, method), FOREIGN KEY(plugin_instance_id) REFERENCES plugin_security_policies(plugin_instance_id) ON DELETE CASCADE )\"\n },\n {\n \"type\": \"table\",\n \"name\": \"plugin_security_policy_schema_migrations\",\n \"table_name\": \"plugin_security_policy_schema_migrations\",\n \"sql\": \"CREATE TABLE plugin_security_policy_schema_migrations ( version INTEGER PRIMARY KEY, applied_at INTEGER NOT NULL )\"\n }\n ],\n \"schema_sha256\": \"8718fac16ca2cf37e84edd53f6d1c646f2d42e028af2dcc7aee05bdd9bc22dd6\"\n },\n {\n \"path\": \"db/settings.sqlite\",\n \"application_id\": 0,\n \"user_version\": 0,\n \"migration_versions\": [\n {\n \"table\": \"plugin_settings_schema_migrations\",\n \"versions\": [\n 1\n ]\n }\n ],\n \"schema_objects\": [\n {\n \"type\": \"index\",\n \"name\": \"idx_plugin_settings_archives_source\",\n \"table_name\": \"plugin_settings_archives\",\n \"sql\": \"CREATE INDEX idx_plugin_settings_archives_source ON plugin_settings_archives(source_plugin_instance_id, created_at)\"\n },\n {\n \"type\": \"index\",\n \"name\": \"idx_plugin_settings_records_state\",\n \"table_name\": \"plugin_settings_records\",\n \"sql\": \"CREATE INDEX idx_plugin_settings_records_state ON plugin_settings_records(state, retained_at)\"\n },\n {\n \"type\": \"table\",\n \"name\": \"plugin_settings_archives\",\n \"table_name\": \"plugin_settings_archives\",\n \"sql\": \"CREATE TABLE plugin_settings_archives ( archive_ref TEXT PRIMARY KEY, source_plugin_instance_id TEXT NOT NULL, include_secrets INTEGER NOT NULL, schema_version INTEGER NOT NULL, settings_revision INTEGER NOT NULL, created_at INTEGER NOT NULL, updated_at INTEGER NOT NULL, payload_json BLOB NOT NULL )\"\n },\n {\n \"type\": \"table\",\n \"name\": \"plugin_settings_meta\",\n \"table_name\": \"plugin_settings_meta\",\n \"sql\": \"CREATE TABLE plugin_settings_meta ( id INTEGER PRIMARY KEY CHECK(id = 1), next_export INTEGER NOT NULL )\"\n },\n {\n \"type\": \"table\",\n \"name\": \"plugin_settings_records\",\n \"table_name\": \"plugin_settings_records\",\n \"sql\": \"CREATE TABLE plugin_settings_records ( plugin_instance_id TEXT PRIMARY KEY, state TEXT NOT NULL, schema_version INTEGER NOT NULL, settings_revision INTEGER NOT NULL, updated_at INTEGER NOT NULL, retained_at INTEGER, payload_json BLOB NOT NULL )\"\n },\n {\n \"type\": \"table\",\n \"name\": \"plugin_settings_schema_migrations\",\n \"table_name\": \"plugin_settings_schema_migrations\",\n \"sql\": \"CREATE TABLE plugin_settings_schema_migrations ( version INTEGER PRIMARY KEY, applied_at INTEGER NOT NULL )\"\n }\n ],\n \"schema_sha256\": \"dba0083a1fa88135d6ab50cd0176063688134e684577563022200906a0d5702a\"\n },\n {\n \"path\": \"db/streams.sqlite\",\n \"application_id\": 0,\n \"user_version\": 0,\n \"migration_versions\": [\n {\n \"table\": \"plugin_stream_schema_migrations\",\n \"versions\": [\n 1\n ]\n }\n ],\n \"schema_objects\": [\n {\n \"type\": \"index\",\n \"name\": \"idx_plugin_stream_events_stream_sequence\",\n \"table_name\": \"plugin_stream_events\",\n \"sql\": \"CREATE INDEX idx_plugin_stream_events_stream_sequence ON plugin_stream_events(stream_id, sequence)\"\n },\n {\n \"type\": \"index\",\n \"name\": \"idx_plugin_streams_plugin_instance\",\n \"table_name\": \"plugin_streams\",\n \"sql\": \"CREATE INDEX idx_plugin_streams_plugin_instance ON plugin_streams(plugin_instance_id, created_at, stream_id)\"\n },\n {\n \"type\": \"index\",\n \"name\": \"idx_plugin_streams_status\",\n \"table_name\": \"plugin_streams\",\n \"sql\": \"CREATE INDEX idx_plugin_streams_status ON plugin_streams(status)\"\n },\n {\n \"type\": \"table\",\n \"name\": \"plugin_stream_events\",\n \"table_name\": \"plugin_stream_events\",\n \"sql\": \"CREATE TABLE plugin_stream_events ( stream_id TEXT NOT NULL, sequence INTEGER NOT NULL, kind TEXT NOT NULL, data BLOB, error TEXT NOT NULL, at INTEGER NOT NULL, PRIMARY KEY(stream_id, sequence), FOREIGN KEY(stream_id) REFERENCES plugin_streams(stream_id) ON DELETE CASCADE )\"\n },\n {\n \"type\": \"table\",\n \"name\": \"plugin_stream_schema_migrations\",\n \"table_name\": \"plugin_stream_schema_migrations\",\n \"sql\": \"CREATE TABLE plugin_stream_schema_migrations ( version INTEGER PRIMARY KEY, applied_at INTEGER NOT NULL )\"\n },\n {\n \"type\": \"table\",\n \"name\": \"plugin_streams\",\n \"table_name\": \"plugin_streams\",\n \"sql\": \"CREATE TABLE plugin_streams ( stream_id TEXT PRIMARY KEY, plugin_id TEXT NOT NULL, plugin_instance_id TEXT NOT NULL, method TEXT NOT NULL, effect TEXT NOT NULL, execution TEXT NOT NULL, surface_instance_id TEXT NOT NULL, owner_session_hash TEXT NOT NULL, owner_user_hash TEXT NOT NULL, session_channel_id_hash TEXT NOT NULL, bridge_channel_id TEXT NOT NULL, direction TEXT NOT NULL, status TEXT NOT NULL, content_type TEXT NOT NULL, max_buffered_bytes INTEGER NOT NULL, buffered_bytes INTEGER NOT NULL, created_at INTEGER NOT NULL, updated_at INTEGER NOT NULL, closed_at INTEGER )\"\n }\n ],\n \"schema_sha256\": \"7d2200868c7bd271be8a78cd42aea861bdc2fe46dbc714b08bb4d6251c7510d9\"\n }\n ],\n \"tree_rules\": {\n \"allowed_kinds\": [\n \"directory\",\n \"file\"\n ],\n \"allow_sqlite_wal_shm\": true,\n \"reject_hardlinks\": true,\n \"reject_symlinks\": true,\n \"variable_trees\": [\n \"assets\",\n \"storage\"\n ]\n }\n },\n {\n \"id\": \"redeven-redevplugin-v0.3.x-v0.4.x-layout-v1\",\n \"platform_versions\": [\n \"0.3.0\",\n \"0.3.1\",\n \"0.3.2\",\n \"0.4.0\",\n \"0.4.1\",\n \"0.4.2\",\n \"0.4.3\"\n ],\n \"root_entries\": [\n {\n \"path\": \"assets\",\n \"kind\": \"directory\",\n \"scope\": \"durable\",\n \"disposition\": \"quarantine\"\n },\n {\n \"path\": \"db\",\n \"kind\": \"directory\",\n \"scope\": \"durable\",\n \"disposition\": \"quarantine\"\n },\n {\n \"path\": \"storage\",\n \"kind\": \"directory\",\n \"scope\": \"durable\",\n \"disposition\": \"quarantine\"\n }\n ],\n \"sqlite_databases\": [\n {\n \"path\": \"db/cleanup.sqlite\",\n \"application_id\": 0,\n \"user_version\": 0,\n \"migration_versions\": [\n {\n \"table\": \"plugin_cleanup_schema_migrations\",\n \"versions\": [\n 1\n ]\n }\n ],\n \"schema_objects\": [\n {\n \"type\": \"index\",\n \"name\": \"idx_plugin_cleanup_operations_plugin\",\n \"table_name\": \"plugin_cleanup_operations\",\n \"sql\": \"CREATE INDEX idx_plugin_cleanup_operations_plugin ON plugin_cleanup_operations(plugin_instance_id, id)\"\n },\n {\n \"type\": \"table\",\n \"name\": \"plugin_cleanup_operations\",\n \"table_name\": \"plugin_cleanup_operations\",\n \"sql\": \"CREATE TABLE plugin_cleanup_operations ( id INTEGER PRIMARY KEY AUTOINCREMENT, plugin_instance_id TEXT NOT NULL, delete_data INTEGER NOT NULL, phase TEXT NOT NULL, executed_at INTEGER NOT NULL )\"\n },\n {\n \"type\": \"table\",\n \"name\": \"plugin_cleanup_schema_migrations\",\n \"table_name\": \"plugin_cleanup_schema_migrations\",\n \"sql\": \"CREATE TABLE plugin_cleanup_schema_migrations ( version INTEGER PRIMARY KEY, applied_at INTEGER NOT NULL )\"\n }\n ],\n \"schema_sha256\": \"492e855ac577c347fd5c4a916b4be060d08e9703d9deec197bcb1a75a0de9dcc\"\n },\n {\n \"path\": \"db/confirmation_intents.sqlite\",\n \"application_id\": 0,\n \"user_version\": 0,\n \"migration_versions\": [\n {\n \"table\": \"plugin_confirmation_intent_schema_migrations\",\n \"versions\": [\n 2\n ]\n }\n ],\n \"schema_objects\": [\n {\n \"type\": \"index\",\n \"name\": \"idx_plugin_confirmation_intents_expires_at\",\n \"table_name\": \"plugin_confirmation_intents\",\n \"sql\": \"CREATE INDEX idx_plugin_confirmation_intents_expires_at ON plugin_confirmation_intents(expires_at)\"\n },\n {\n \"type\": \"index\",\n \"name\": \"idx_plugin_confirmation_intents_plugin_instance\",\n \"table_name\": \"plugin_confirmation_intents\",\n \"sql\": \"CREATE INDEX idx_plugin_confirmation_intents_plugin_instance ON plugin_confirmation_intents(plugin_instance_id, issued_at, confirmation_id)\"\n },\n {\n \"type\": \"table\",\n \"name\": \"plugin_confirmation_intent_schema_migrations\",\n \"table_name\": \"plugin_confirmation_intent_schema_migrations\",\n \"sql\": \"CREATE TABLE plugin_confirmation_intent_schema_migrations ( version INTEGER PRIMARY KEY, applied_at INTEGER NOT NULL )\"\n },\n {\n \"type\": \"table\",\n \"name\": \"plugin_confirmation_intents\",\n \"table_name\": \"plugin_confirmation_intents\",\n \"sql\": \"CREATE TABLE plugin_confirmation_intents ( confirmation_id TEXT PRIMARY KEY, confirmation_token_id TEXT NOT NULL, plugin_id TEXT NOT NULL, plugin_instance_id TEXT NOT NULL, surface_instance_id TEXT NOT NULL, bridge_channel_id TEXT NOT NULL, method TEXT NOT NULL, request_hash TEXT NOT NULL, plan_hash TEXT NOT NULL, scope_json TEXT NOT NULL DEFAULT '{}', issued_at INTEGER NOT NULL, expires_at INTEGER NOT NULL )\"\n }\n ],\n \"schema_sha256\": \"dcf763fdc6333835180e6f38565d3d07b8b769100cdcfbec265d1a3d474ab479\"\n },\n {\n \"path\": \"db/install_stage.sqlite\",\n \"application_id\": 0,\n \"user_version\": 0,\n \"migration_versions\": [\n {\n \"table\": \"plugin_install_stage_schema_migrations\",\n \"versions\": [\n 1\n ]\n }\n ],\n \"schema_objects\": [\n {\n \"type\": \"index\",\n \"name\": \"idx_plugin_install_stages_plugin\",\n \"table_name\": \"plugin_install_stages\",\n \"sql\": \"CREATE INDEX idx_plugin_install_stages_plugin ON plugin_install_stages(plugin_instance_id, created_at)\"\n },\n {\n \"type\": \"index\",\n \"name\": \"idx_plugin_install_stages_status_expiry\",\n \"table_name\": \"plugin_install_stages\",\n \"sql\": \"CREATE INDEX idx_plugin_install_stages_status_expiry ON plugin_install_stages(status, expires_at)\"\n },\n {\n \"type\": \"table\",\n \"name\": \"plugin_install_stage_schema_migrations\",\n \"table_name\": \"plugin_install_stage_schema_migrations\",\n \"sql\": \"CREATE TABLE plugin_install_stage_schema_migrations ( version INTEGER PRIMARY KEY, applied_at INTEGER NOT NULL )\"\n },\n {\n \"type\": \"table\",\n \"name\": \"plugin_install_stages\",\n \"table_name\": \"plugin_install_stages\",\n \"sql\": \"CREATE TABLE plugin_install_stages ( stage_id TEXT PRIMARY KEY, action TEXT NOT NULL, status TEXT NOT NULL, plugin_instance_id TEXT NOT NULL, publisher_id TEXT NOT NULL, plugin_id TEXT NOT NULL, version TEXT NOT NULL, package_hash TEXT NOT NULL, manifest_hash TEXT NOT NULL, entries_hash TEXT NOT NULL, requested_trust TEXT NOT NULL, resolved_trust TEXT NOT NULL, validation_summary_json TEXT NOT NULL, error_code TEXT NOT NULL, error_message TEXT NOT NULL, expires_at INTEGER NOT NULL, created_at INTEGER NOT NULL, updated_at INTEGER NOT NULL, finished_at INTEGER )\"\n }\n ],\n \"schema_sha256\": \"ee0192641f33bba6c7fc5994d73e2a64e77c129406bd3c2ccfc840780c3cef6a\"\n },\n {\n \"path\": \"db/observability.sqlite\",\n \"application_id\": 0,\n \"user_version\": 0,\n \"migration_versions\": [\n {\n \"table\": \"plugin_observability_schema_migrations\",\n \"versions\": [\n 1\n ]\n }\n ],\n \"schema_objects\": [\n {\n \"type\": \"index\",\n \"name\": \"idx_plugin_audit_plugin\",\n \"table_name\": \"plugin_audit_events\",\n \"sql\": \"CREATE INDEX idx_plugin_audit_plugin ON plugin_audit_events(plugin_id, type, occurred_at)\"\n },\n {\n \"type\": \"index\",\n \"name\": \"idx_plugin_audit_plugin_instance\",\n \"table_name\": \"plugin_audit_events\",\n \"sql\": \"CREATE INDEX idx_plugin_audit_plugin_instance ON plugin_audit_events(plugin_instance_id, type, occurred_at)\"\n },\n {\n \"type\": \"index\",\n \"name\": \"idx_plugin_diagnostics_plugin_instance\",\n \"table_name\": \"plugin_diagnostic_events\",\n \"sql\": \"CREATE INDEX idx_plugin_diagnostics_plugin_instance ON plugin_diagnostic_events(plugin_instance_id, type, severity, occurred_at)\"\n },\n {\n \"type\": \"index\",\n \"name\": \"idx_plugin_diagnostics_surface\",\n \"table_name\": \"plugin_diagnostic_events\",\n \"sql\": \"CREATE INDEX idx_plugin_diagnostics_surface ON plugin_diagnostic_events(surface_instance_id, severity, occurred_at)\"\n },\n {\n \"type\": \"table\",\n \"name\": \"plugin_audit_events\",\n \"table_name\": \"plugin_audit_events\",\n \"sql\": \"CREATE TABLE plugin_audit_events ( seq INTEGER PRIMARY KEY, event_id TEXT NOT NULL, type TEXT NOT NULL, plugin_id TEXT NOT NULL, plugin_instance_id TEXT NOT NULL, surface_id TEXT NOT NULL, surface_instance_id TEXT NOT NULL, request_id TEXT NOT NULL, actor TEXT NOT NULL, occurred_at INTEGER NOT NULL, details_json BLOB NOT NULL )\"\n },\n {\n \"type\": \"table\",\n \"name\": \"plugin_diagnostic_events\",\n \"table_name\": \"plugin_diagnostic_events\",\n \"sql\": \"CREATE TABLE plugin_diagnostic_events ( seq INTEGER PRIMARY KEY, event_id TEXT NOT NULL, type TEXT NOT NULL, severity TEXT NOT NULL, message TEXT NOT NULL, plugin_id TEXT NOT NULL, plugin_instance_id TEXT NOT NULL, surface_id TEXT NOT NULL, surface_instance_id TEXT NOT NULL, active_fingerprint TEXT NOT NULL, request_id TEXT NOT NULL, occurred_at INTEGER NOT NULL, details_json BLOB NOT NULL )\"\n },\n {\n \"type\": \"table\",\n \"name\": \"plugin_observability_meta\",\n \"table_name\": \"plugin_observability_meta\",\n \"sql\": \"CREATE TABLE plugin_observability_meta ( id INTEGER PRIMARY KEY CHECK(id = 1), audit_seq INTEGER NOT NULL, diagnostic_seq INTEGER NOT NULL )\"\n },\n {\n \"type\": \"table\",\n \"name\": \"plugin_observability_schema_migrations\",\n \"table_name\": \"plugin_observability_schema_migrations\",\n \"sql\": \"CREATE TABLE plugin_observability_schema_migrations ( version INTEGER PRIMARY KEY, applied_at INTEGER NOT NULL )\"\n }\n ],\n \"schema_sha256\": \"00e4363c85aaab3cb78d9b357e835490f82975233ee44643a3e238d337da4784\"\n },\n {\n \"path\": \"db/operations.sqlite\",\n \"application_id\": 0,\n \"user_version\": 0,\n \"migration_versions\": [\n {\n \"table\": \"plugin_operation_schema_migrations\",\n \"versions\": [\n 2,\n 3\n ]\n }\n ],\n \"schema_objects\": [\n {\n \"type\": \"index\",\n \"name\": \"idx_plugin_operations_plugin_instance\",\n \"table_name\": \"plugin_operations\",\n \"sql\": \"CREATE INDEX idx_plugin_operations_plugin_instance ON plugin_operations(plugin_instance_id, created_at, operation_id)\"\n },\n {\n \"type\": \"index\",\n \"name\": \"idx_plugin_operations_status\",\n \"table_name\": \"plugin_operations\",\n \"sql\": \"CREATE INDEX idx_plugin_operations_status ON plugin_operations(status)\"\n },\n {\n \"type\": \"table\",\n \"name\": \"plugin_operation_schema_migrations\",\n \"table_name\": \"plugin_operation_schema_migrations\",\n \"sql\": \"CREATE TABLE plugin_operation_schema_migrations ( version INTEGER PRIMARY KEY, applied_at INTEGER NOT NULL )\"\n },\n {\n \"type\": \"table\",\n \"name\": \"plugin_operations\",\n \"table_name\": \"plugin_operations\",\n \"sql\": \"CREATE TABLE plugin_operations ( operation_id TEXT PRIMARY KEY, plugin_id TEXT NOT NULL, plugin_instance_id TEXT NOT NULL, method TEXT NOT NULL, effect TEXT NOT NULL, execution TEXT NOT NULL, surface_instance_id TEXT NOT NULL, session_channel_id_hash TEXT NOT NULL, bridge_channel_id TEXT NOT NULL, execution_binding_json TEXT NOT NULL DEFAULT '{}', status TEXT NOT NULL, cancelable INTEGER NOT NULL DEFAULT 1, cancel_ack_timeout_ms INTEGER NOT NULL DEFAULT 0, disable_behavior TEXT NOT NULL, uninstall_behavior TEXT NOT NULL, reason TEXT NOT NULL, created_at INTEGER NOT NULL, updated_at INTEGER NOT NULL, cancel_requested_at INTEGER, orphaned_at INTEGER )\"\n }\n ],\n \"schema_sha256\": \"7d5d2e372f7a8ded7678f87bbc115d4c2b69d07de7b8b6eb929bad94b516ac1c\"\n },\n {\n \"path\": \"db/permissions.sqlite\",\n \"application_id\": 0,\n \"user_version\": 0,\n \"migration_versions\": [\n {\n \"table\": \"plugin_permission_schema_migrations\",\n \"versions\": [\n 1\n ]\n }\n ],\n \"schema_objects\": [\n {\n \"type\": \"index\",\n \"name\": \"idx_plugin_permission_grants_plugin\",\n \"table_name\": \"plugin_permission_grants\",\n \"sql\": \"CREATE INDEX idx_plugin_permission_grants_plugin ON plugin_permission_grants(plugin_instance_id, permission_id)\"\n },\n {\n \"type\": \"index\",\n \"name\": \"idx_plugin_permission_grants_revoked\",\n \"table_name\": \"plugin_permission_grants\",\n \"sql\": \"CREATE INDEX idx_plugin_permission_grants_revoked ON plugin_permission_grants(plugin_instance_id, revoked_at, expires_at)\"\n },\n {\n \"type\": \"table\",\n \"name\": \"plugin_permission_grants\",\n \"table_name\": \"plugin_permission_grants\",\n \"sql\": \"CREATE TABLE plugin_permission_grants ( plugin_instance_id TEXT NOT NULL, permission_id TEXT NOT NULL, effect TEXT NOT NULL, granted_by TEXT NOT NULL, granted_at INTEGER NOT NULL, expires_at INTEGER, revoked_at INTEGER, revoked_by TEXT NOT NULL, revoked_reason TEXT NOT NULL, PRIMARY KEY(plugin_instance_id, permission_id) )\"\n },\n {\n \"type\": \"table\",\n \"name\": \"plugin_permission_schema_migrations\",\n \"table_name\": \"plugin_permission_schema_migrations\",\n \"sql\": \"CREATE TABLE plugin_permission_schema_migrations ( version INTEGER PRIMARY KEY, applied_at INTEGER NOT NULL )\"\n }\n ],\n \"schema_sha256\": \"d0b89affc5139c3ae28f0bd178094ceef0046f25b9b27f9b4e1b231624436f46\"\n },\n {\n \"path\": \"db/registry.sqlite\",\n \"application_id\": 0,\n \"user_version\": 6,\n \"migration_versions\": [\n {\n \"table\": \"plugin_registry_schema_migrations\",\n \"versions\": [\n 1,\n 2,\n 3,\n 4,\n 5,\n 6\n ]\n }\n ],\n \"schema_objects\": [\n {\n \"type\": \"index\",\n \"name\": \"idx_plugin_records_deleted_at\",\n \"table_name\": \"plugin_records\",\n \"sql\": \"CREATE INDEX idx_plugin_records_deleted_at ON plugin_records(deleted_at)\"\n },\n {\n \"type\": \"index\",\n \"name\": \"idx_plugin_records_plugin_id\",\n \"table_name\": \"plugin_records\",\n \"sql\": \"CREATE INDEX idx_plugin_records_plugin_id ON plugin_records(plugin_id)\"\n },\n {\n \"type\": \"table\",\n \"name\": \"plugin_records\",\n \"table_name\": \"plugin_records\",\n \"sql\": \"CREATE TABLE plugin_records ( plugin_instance_id TEXT PRIMARY KEY, publisher_id TEXT NOT NULL, plugin_id TEXT NOT NULL, version TEXT NOT NULL, active_fingerprint TEXT NOT NULL, package_hash TEXT NOT NULL, manifest_hash TEXT NOT NULL, entries_hash TEXT NOT NULL, trust_state TEXT NOT NULL, trust_assessment_json TEXT NOT NULL DEFAULT '{}', source_policy_snapshot_hash TEXT NOT NULL DEFAULT '', source_policy_snapshot_json TEXT NOT NULL DEFAULT '{}', local_import_provenance_json TEXT NOT NULL DEFAULT '{}', capability_contracts_json TEXT NOT NULL DEFAULT '[]', enable_state TEXT NOT NULL, disabled_reason TEXT NOT NULL, retained_data_state TEXT NOT NULL, policy_revision INTEGER NOT NULL, management_revision INTEGER NOT NULL, revoke_epoch INTEGER NOT NULL, manifest_json TEXT NOT NULL, package_entries_json TEXT NOT NULL, version_history_json TEXT NOT NULL, installed_at INTEGER NOT NULL, enabled_at INTEGER, updated_at INTEGER NOT NULL, deleted_at INTEGER, metadata_json TEXT NOT NULL )\"\n },\n {\n \"type\": \"table\",\n \"name\": \"plugin_registry_schema_migrations\",\n \"table_name\": \"plugin_registry_schema_migrations\",\n \"sql\": \"CREATE TABLE plugin_registry_schema_migrations ( version INTEGER PRIMARY KEY, applied_at INTEGER NOT NULL )\"\n },\n {\n \"type\": \"table\",\n \"name\": \"plugin_source_security_floors\",\n \"table_name\": \"plugin_source_security_floors\",\n \"sql\": \"CREATE TABLE plugin_source_security_floors ( source_id TEXT PRIMARY KEY, policy_epoch TEXT NOT NULL, key_rotation_epoch TEXT NOT NULL, revocation_epoch TEXT NOT NULL, source_policy_snapshot_hash TEXT NOT NULL, revocation_metadata_sha256 TEXT NOT NULL, updated_at INTEGER NOT NULL )\"\n }\n ],\n \"schema_sha256\": \"84f9a634f65a3efa7c3bc42b2625e77a26d854153f6d9ae6031f7b172a430b1e\"\n },\n {\n \"path\": \"db/retained_data.sqlite\",\n \"application_id\": 0,\n \"user_version\": 0,\n \"migration_versions\": [\n {\n \"table\": \"plugin_retained_data_schema_migrations\",\n \"versions\": [\n 2\n ]\n }\n ],\n \"schema_objects\": [\n {\n \"type\": \"index\",\n \"name\": \"idx_plugin_retained_data_expiry\",\n \"table_name\": \"plugin_retained_data_records\",\n \"sql\": \"CREATE INDEX idx_plugin_retained_data_expiry ON plugin_retained_data_records(state, delete_after)\"\n },\n {\n \"type\": \"index\",\n \"name\": \"idx_plugin_retained_data_identity\",\n \"table_name\": \"plugin_retained_data_records\",\n \"sql\": \"CREATE INDEX idx_plugin_retained_data_identity ON plugin_retained_data_records(publisher_id, plugin_id, state)\"\n },\n {\n \"type\": \"index\",\n \"name\": \"idx_plugin_retained_data_source\",\n \"table_name\": \"plugin_retained_data_records\",\n \"sql\": \"CREATE INDEX idx_plugin_retained_data_source ON plugin_retained_data_records(source_plugin_instance_id)\"\n },\n {\n \"type\": \"table\",\n \"name\": \"plugin_retained_data_records\",\n \"table_name\": \"plugin_retained_data_records\",\n \"sql\": \"CREATE TABLE plugin_retained_data_records ( retained_id TEXT PRIMARY KEY, source_plugin_instance_id TEXT NOT NULL, bound_plugin_instance_id TEXT NOT NULL, publisher_id TEXT NOT NULL, plugin_id TEXT NOT NULL, version TEXT NOT NULL, package_hash TEXT NOT NULL, manifest_hash TEXT NOT NULL, state TEXT NOT NULL, storage_retained INTEGER NOT NULL, settings_retained INTEGER NOT NULL, usage_bytes INTEGER NOT NULL, delete_after INTEGER, delete_error TEXT NOT NULL, metadata_json TEXT NOT NULL, retained_at INTEGER NOT NULL, updated_at INTEGER NOT NULL, bound_at INTEGER, deleted_at INTEGER, last_accessed_at INTEGER )\"\n },\n {\n \"type\": \"table\",\n \"name\": \"plugin_retained_data_schema_migrations\",\n \"table_name\": \"plugin_retained_data_schema_migrations\",\n \"sql\": \"CREATE TABLE plugin_retained_data_schema_migrations ( version INTEGER PRIMARY KEY, applied_at INTEGER NOT NULL )\"\n }\n ],\n \"schema_sha256\": \"b89b7188f7e7d96827750396b1fbf807b607695d342e87a5d5c5aefb832cb1d6\"\n },\n {\n \"path\": \"db/secrets.sqlite\",\n \"application_id\": 0,\n \"user_version\": 0,\n \"migration_versions\": [\n {\n \"table\": \"plugin_secret_schema_migrations\",\n \"versions\": [\n 1\n ]\n }\n ],\n \"schema_objects\": [\n {\n \"type\": \"index\",\n \"name\": \"idx_plugin_secret_bindings_plugin\",\n \"table_name\": \"plugin_secret_bindings\",\n \"sql\": \"CREATE INDEX idx_plugin_secret_bindings_plugin ON plugin_secret_bindings(plugin_instance_id, bound, updated_at)\"\n },\n {\n \"type\": \"table\",\n \"name\": \"plugin_secret_bindings\",\n \"table_name\": \"plugin_secret_bindings\",\n \"sql\": \"CREATE TABLE plugin_secret_bindings ( plugin_instance_id TEXT NOT NULL, secret_ref TEXT NOT NULL, scope TEXT NOT NULL, bound INTEGER NOT NULL, last_test_status TEXT NOT NULL, bound_at INTEGER, tested_at INTEGER, deleted_at INTEGER, updated_at INTEGER NOT NULL, PRIMARY KEY(plugin_instance_id, scope, secret_ref) )\"\n },\n {\n \"type\": \"table\",\n \"name\": \"plugin_secret_schema_migrations\",\n \"table_name\": \"plugin_secret_schema_migrations\",\n \"sql\": \"CREATE TABLE plugin_secret_schema_migrations ( version INTEGER PRIMARY KEY, applied_at INTEGER NOT NULL )\"\n }\n ],\n \"schema_sha256\": \"82a9d6ab404b4d3dc485ef1ea9c95530af4460a48506e47ced81953c4b12dd50\"\n },\n {\n \"path\": \"db/security_policy.sqlite\",\n \"application_id\": 0,\n \"user_version\": 0,\n \"migration_versions\": [\n {\n \"table\": \"plugin_security_policy_schema_migrations\",\n \"versions\": [\n 1\n ]\n }\n ],\n \"schema_objects\": [\n {\n \"type\": \"table\",\n \"name\": \"plugin_security_policies\",\n \"table_name\": \"plugin_security_policies\",\n \"sql\": \"CREATE TABLE plugin_security_policies ( plugin_instance_id TEXT PRIMARY KEY, updated_at INTEGER NOT NULL )\"\n },\n {\n \"type\": \"table\",\n \"name\": \"plugin_security_policy_allowed_permissions\",\n \"table_name\": \"plugin_security_policy_allowed_permissions\",\n \"sql\": \"CREATE TABLE plugin_security_policy_allowed_permissions ( plugin_instance_id TEXT NOT NULL, permission_id TEXT NOT NULL, updated_at INTEGER NOT NULL, PRIMARY KEY(plugin_instance_id, permission_id), FOREIGN KEY(plugin_instance_id) REFERENCES plugin_security_policies(plugin_instance_id) ON DELETE CASCADE )\"\n },\n {\n \"type\": \"table\",\n \"name\": \"plugin_security_policy_denied_methods\",\n \"table_name\": \"plugin_security_policy_denied_methods\",\n \"sql\": \"CREATE TABLE plugin_security_policy_denied_methods ( plugin_instance_id TEXT NOT NULL, method TEXT NOT NULL, updated_at INTEGER NOT NULL, PRIMARY KEY(plugin_instance_id, method), FOREIGN KEY(plugin_instance_id) REFERENCES plugin_security_policies(plugin_instance_id) ON DELETE CASCADE )\"\n },\n {\n \"type\": \"table\",\n \"name\": \"plugin_security_policy_schema_migrations\",\n \"table_name\": \"plugin_security_policy_schema_migrations\",\n \"sql\": \"CREATE TABLE plugin_security_policy_schema_migrations ( version INTEGER PRIMARY KEY, applied_at INTEGER NOT NULL )\"\n }\n ],\n \"schema_sha256\": \"8718fac16ca2cf37e84edd53f6d1c646f2d42e028af2dcc7aee05bdd9bc22dd6\"\n },\n {\n \"path\": \"db/settings.sqlite\",\n \"application_id\": 0,\n \"user_version\": 0,\n \"migration_versions\": [\n {\n \"table\": \"plugin_settings_schema_migrations\",\n \"versions\": [\n 1\n ]\n }\n ],\n \"schema_objects\": [\n {\n \"type\": \"index\",\n \"name\": \"idx_plugin_settings_archives_source\",\n \"table_name\": \"plugin_settings_archives\",\n \"sql\": \"CREATE INDEX idx_plugin_settings_archives_source ON plugin_settings_archives(source_plugin_instance_id, created_at)\"\n },\n {\n \"type\": \"index\",\n \"name\": \"idx_plugin_settings_records_state\",\n \"table_name\": \"plugin_settings_records\",\n \"sql\": \"CREATE INDEX idx_plugin_settings_records_state ON plugin_settings_records(state, retained_at)\"\n },\n {\n \"type\": \"table\",\n \"name\": \"plugin_settings_archives\",\n \"table_name\": \"plugin_settings_archives\",\n \"sql\": \"CREATE TABLE plugin_settings_archives ( archive_ref TEXT PRIMARY KEY, source_plugin_instance_id TEXT NOT NULL, include_secrets INTEGER NOT NULL, schema_version INTEGER NOT NULL, settings_revision INTEGER NOT NULL, created_at INTEGER NOT NULL, updated_at INTEGER NOT NULL, payload_json BLOB NOT NULL )\"\n },\n {\n \"type\": \"table\",\n \"name\": \"plugin_settings_meta\",\n \"table_name\": \"plugin_settings_meta\",\n \"sql\": \"CREATE TABLE plugin_settings_meta ( id INTEGER PRIMARY KEY CHECK(id = 1), next_export INTEGER NOT NULL )\"\n },\n {\n \"type\": \"table\",\n \"name\": \"plugin_settings_records\",\n \"table_name\": \"plugin_settings_records\",\n \"sql\": \"CREATE TABLE plugin_settings_records ( plugin_instance_id TEXT PRIMARY KEY, state TEXT NOT NULL, schema_version INTEGER NOT NULL, settings_revision INTEGER NOT NULL, updated_at INTEGER NOT NULL, retained_at INTEGER, payload_json BLOB NOT NULL )\"\n },\n {\n \"type\": \"table\",\n \"name\": \"plugin_settings_schema_migrations\",\n \"table_name\": \"plugin_settings_schema_migrations\",\n \"sql\": \"CREATE TABLE plugin_settings_schema_migrations ( version INTEGER PRIMARY KEY, applied_at INTEGER NOT NULL )\"\n }\n ],\n \"schema_sha256\": \"dba0083a1fa88135d6ab50cd0176063688134e684577563022200906a0d5702a\"\n },\n {\n \"path\": \"db/streams.sqlite\",\n \"application_id\": 0,\n \"user_version\": 0,\n \"migration_versions\": [\n {\n \"table\": \"plugin_stream_schema_migrations\",\n \"versions\": [\n 2,\n 3\n ]\n }\n ],\n \"schema_objects\": [\n {\n \"type\": \"index\",\n \"name\": \"idx_plugin_stream_events_stream_sequence\",\n \"table_name\": \"plugin_stream_events\",\n \"sql\": \"CREATE INDEX idx_plugin_stream_events_stream_sequence ON plugin_stream_events(stream_id, sequence)\"\n },\n {\n \"type\": \"index\",\n \"name\": \"idx_plugin_streams_plugin_instance\",\n \"table_name\": \"plugin_streams\",\n \"sql\": \"CREATE INDEX idx_plugin_streams_plugin_instance ON plugin_streams(plugin_instance_id, created_at, stream_id)\"\n },\n {\n \"type\": \"index\",\n \"name\": \"idx_plugin_streams_status\",\n \"table_name\": \"plugin_streams\",\n \"sql\": \"CREATE INDEX idx_plugin_streams_status ON plugin_streams(status)\"\n },\n {\n \"type\": \"table\",\n \"name\": \"plugin_stream_events\",\n \"table_name\": \"plugin_stream_events\",\n \"sql\": \"CREATE TABLE plugin_stream_events ( stream_id TEXT NOT NULL, sequence INTEGER NOT NULL, kind TEXT NOT NULL, data BLOB, error TEXT NOT NULL, at INTEGER NOT NULL, PRIMARY KEY(stream_id, sequence), FOREIGN KEY(stream_id) REFERENCES plugin_streams(stream_id) ON DELETE CASCADE )\"\n },\n {\n \"type\": \"table\",\n \"name\": \"plugin_stream_schema_migrations\",\n \"table_name\": \"plugin_stream_schema_migrations\",\n \"sql\": \"CREATE TABLE plugin_stream_schema_migrations ( version INTEGER PRIMARY KEY, applied_at INTEGER NOT NULL )\"\n },\n {\n \"type\": \"table\",\n \"name\": \"plugin_streams\",\n \"table_name\": \"plugin_streams\",\n \"sql\": \"CREATE TABLE plugin_streams ( stream_id TEXT PRIMARY KEY, plugin_id TEXT NOT NULL, plugin_instance_id TEXT NOT NULL, method TEXT NOT NULL, effect TEXT NOT NULL, execution TEXT NOT NULL, surface_instance_id TEXT NOT NULL, owner_session_hash TEXT NOT NULL, owner_user_hash TEXT NOT NULL, session_channel_id_hash TEXT NOT NULL, bridge_channel_id TEXT NOT NULL, execution_binding_json TEXT NOT NULL DEFAULT '{}', direction TEXT NOT NULL, status TEXT NOT NULL, reason TEXT NOT NULL DEFAULT '', content_type TEXT NOT NULL, max_buffered_bytes INTEGER NOT NULL, buffered_bytes INTEGER NOT NULL, created_at INTEGER NOT NULL, updated_at INTEGER NOT NULL, closed_at INTEGER )\"\n }\n ],\n \"schema_sha256\": \"955856942aa0c74f96a1f1e02f7b406f71007d4eff40e7d6836d45ba85459690\"\n }\n ],\n \"tree_rules\": {\n \"allowed_kinds\": [\n \"directory\",\n \"file\"\n ],\n \"allow_sqlite_wal_shm\": true,\n \"reject_hardlinks\": true,\n \"reject_symlinks\": true,\n \"variable_trees\": [\n \"assets\",\n \"storage\"\n ]\n }\n },\n {\n \"id\": \"redeven-redevplugin-v0.5.x-layout-v1\",\n \"platform_versions\": [\n \"0.5.0\",\n \"0.5.1\"\n ],\n \"root_entries\": [\n {\n \"path\": \"assets\",\n \"kind\": \"directory\",\n \"scope\": \"durable\",\n \"disposition\": \"quarantine\"\n },\n {\n \"path\": \"db\",\n \"kind\": \"directory\",\n \"scope\": \"durable\",\n \"disposition\": \"quarantine\"\n },\n {\n \"path\": \"storage\",\n \"kind\": \"directory\",\n \"scope\": \"durable\",\n \"disposition\": \"quarantine\"\n }\n ],\n \"sqlite_databases\": [\n {\n \"path\": \"db/confirmation_intents.sqlite\",\n \"application_id\": 0,\n \"user_version\": 0,\n \"migration_versions\": [],\n \"schema_objects\": [\n {\n \"type\": \"index\",\n \"name\": \"idx_plugin_confirmation_intents_expires_at\",\n \"table_name\": \"plugin_confirmation_intents\",\n \"sql\": \"CREATE INDEX idx_plugin_confirmation_intents_expires_at ON plugin_confirmation_intents(expires_at)\"\n },\n {\n \"type\": \"index\",\n \"name\": \"idx_plugin_confirmation_intents_plugin_instance\",\n \"table_name\": \"plugin_confirmation_intents\",\n \"sql\": \"CREATE INDEX idx_plugin_confirmation_intents_plugin_instance ON plugin_confirmation_intents(plugin_instance_id, issued_at, confirmation_id)\"\n },\n {\n \"type\": \"table\",\n \"name\": \"plugin_confirmation_intents\",\n \"table_name\": \"plugin_confirmation_intents\",\n \"sql\": \"CREATE TABLE plugin_confirmation_intents ( confirmation_id TEXT PRIMARY KEY, confirmation_token_id TEXT NOT NULL, plugin_id TEXT NOT NULL, plugin_instance_id TEXT NOT NULL, surface_instance_id TEXT NOT NULL, bridge_channel_id TEXT NOT NULL, method TEXT NOT NULL, request_hash TEXT NOT NULL, plan_hash TEXT NOT NULL, scope_json TEXT NOT NULL DEFAULT '{}', issued_at INTEGER NOT NULL, expires_at INTEGER NOT NULL )\"\n }\n ],\n \"schema_sha256\": \"7eb520796c80550cceab8b71f8394f831122baaa1ac7a098420be86a4ad53cc9\"\n },\n {\n \"path\": \"db/install_stage.sqlite\",\n \"application_id\": 0,\n \"user_version\": 0,\n \"migration_versions\": [],\n \"schema_objects\": [\n {\n \"type\": \"index\",\n \"name\": \"idx_plugin_install_stages_plugin\",\n \"table_name\": \"plugin_install_stages\",\n \"sql\": \"CREATE INDEX idx_plugin_install_stages_plugin ON plugin_install_stages(owner_env_hash, plugin_instance_id, created_at)\"\n },\n {\n \"type\": \"index\",\n \"name\": \"idx_plugin_install_stages_status_expiry\",\n \"table_name\": \"plugin_install_stages\",\n \"sql\": \"CREATE INDEX idx_plugin_install_stages_status_expiry ON plugin_install_stages(owner_env_hash, status, expires_at)\"\n },\n {\n \"type\": \"table\",\n \"name\": \"plugin_install_stages\",\n \"table_name\": \"plugin_install_stages\",\n \"sql\": \"CREATE TABLE plugin_install_stages ( owner_env_hash TEXT NOT NULL, stage_id TEXT NOT NULL, action TEXT NOT NULL, status TEXT NOT NULL, plugin_instance_id TEXT NOT NULL, publisher_id TEXT NOT NULL, plugin_id TEXT NOT NULL, version TEXT NOT NULL, package_hash TEXT NOT NULL, manifest_hash TEXT NOT NULL, entries_hash TEXT NOT NULL, requested_trust TEXT NOT NULL, resolved_trust TEXT NOT NULL, validation_summary_json TEXT NOT NULL, error_code TEXT NOT NULL, error_message TEXT NOT NULL, expires_at INTEGER NOT NULL, created_at INTEGER NOT NULL, updated_at INTEGER NOT NULL, finished_at INTEGER, PRIMARY KEY(owner_env_hash, stage_id) )\"\n }\n ],\n \"schema_sha256\": \"aa45772cf36b9005142d210fb2e1a2b2b23a9012ed25cd587ad8d89235f2134b\"\n },\n {\n \"path\": \"db/observability.sqlite\",\n \"application_id\": 0,\n \"user_version\": 0,\n \"migration_versions\": [],\n \"schema_objects\": [\n {\n \"type\": \"index\",\n \"name\": \"idx_plugin_audit_event_id\",\n \"table_name\": \"plugin_audit_events\",\n \"sql\": \"CREATE UNIQUE INDEX idx_plugin_audit_event_id ON plugin_audit_events(event_id)\"\n },\n {\n \"type\": \"index\",\n \"name\": \"idx_plugin_diagnostics_owner\",\n \"table_name\": \"plugin_diagnostic_events\",\n \"sql\": \"CREATE INDEX idx_plugin_diagnostics_owner ON plugin_diagnostic_events(owner_session_hash, owner_user_hash, owner_env_hash, session_channel_id_hash, occurred_at)\"\n },\n {\n \"type\": \"index\",\n \"name\": \"idx_plugin_diagnostics_plugin_instance\",\n \"table_name\": \"plugin_diagnostic_events\",\n \"sql\": \"CREATE INDEX idx_plugin_diagnostics_plugin_instance ON plugin_diagnostic_events(plugin_instance_id, type, severity, occurred_at)\"\n },\n {\n \"type\": \"index\",\n \"name\": \"idx_plugin_diagnostics_surface\",\n \"table_name\": \"plugin_diagnostic_events\",\n \"sql\": \"CREATE INDEX idx_plugin_diagnostics_surface ON plugin_diagnostic_events(surface_instance_id, severity, occurred_at)\"\n },\n {\n \"type\": \"index\",\n \"name\": \"idx_plugin_security_audit_journal_exported\",\n \"table_name\": \"plugin_security_audit_journal\",\n \"sql\": \"CREATE INDEX idx_plugin_security_audit_journal_exported ON plugin_security_audit_journal(seq) WHERE exported_at IS NOT NULL\"\n },\n {\n \"type\": \"index\",\n \"name\": \"idx_plugin_security_audit_journal_state\",\n \"table_name\": \"plugin_security_audit_journal\",\n \"sql\": \"CREATE INDEX idx_plugin_security_audit_journal_state ON plugin_security_audit_journal(state, exported_at, seq)\"\n },\n {\n \"type\": \"table\",\n \"name\": \"plugin_audit_events\",\n \"table_name\": \"plugin_audit_events\",\n \"sql\": \"CREATE TABLE plugin_audit_events ( seq INTEGER PRIMARY KEY, event_id TEXT NOT NULL, type TEXT NOT NULL, plugin_id TEXT NOT NULL, plugin_instance_id TEXT NOT NULL, surface_id TEXT NOT NULL, surface_instance_id TEXT NOT NULL, request_id TEXT NOT NULL, actor TEXT NOT NULL, occurred_at INTEGER NOT NULL, details_json BLOB NOT NULL )\"\n },\n {\n \"type\": \"table\",\n \"name\": \"plugin_diagnostic_events\",\n \"table_name\": \"plugin_diagnostic_events\",\n \"sql\": \"CREATE TABLE plugin_diagnostic_events ( seq INTEGER PRIMARY KEY, event_id TEXT NOT NULL, type TEXT NOT NULL, severity TEXT NOT NULL, message TEXT NOT NULL, plugin_id TEXT NOT NULL, plugin_instance_id TEXT NOT NULL, surface_id TEXT NOT NULL, surface_instance_id TEXT NOT NULL, active_fingerprint TEXT NOT NULL, request_id TEXT NOT NULL, correlation_id TEXT NOT NULL DEFAULT '', mutation_outcome TEXT NOT NULL DEFAULT '' CHECK(mutation_outcome IN ('', 'committed', 'not_committed', 'unknown')), owner_session_hash TEXT NOT NULL, owner_user_hash TEXT NOT NULL, owner_env_hash TEXT NOT NULL, session_channel_id_hash TEXT NOT NULL, occurred_at INTEGER NOT NULL, details_json BLOB NOT NULL, failure_code TEXT NOT NULL DEFAULT '', failure_component TEXT NOT NULL DEFAULT '', failure_operation TEXT NOT NULL DEFAULT '' )\"\n },\n {\n \"type\": \"table\",\n \"name\": \"plugin_observability_meta\",\n \"table_name\": \"plugin_observability_meta\",\n \"sql\": \"CREATE TABLE plugin_observability_meta ( id INTEGER PRIMARY KEY CHECK(id = 1), audit_seq INTEGER NOT NULL, diagnostic_seq INTEGER NOT NULL )\"\n },\n {\n \"type\": \"table\",\n \"name\": \"plugin_security_audit_journal\",\n \"table_name\": \"plugin_security_audit_journal\",\n \"sql\": \"CREATE TABLE plugin_security_audit_journal ( seq INTEGER PRIMARY KEY, event_id TEXT NOT NULL UNIQUE, type TEXT NOT NULL, plugin_id TEXT NOT NULL, plugin_instance_id TEXT NOT NULL, surface_id TEXT NOT NULL, surface_instance_id TEXT NOT NULL, request_id TEXT NOT NULL, actor TEXT NOT NULL, occurred_at INTEGER NOT NULL, details_json BLOB NOT NULL, state TEXT NOT NULL CHECK(state IN ('pending', 'completed')), mutation_outcome TEXT NOT NULL, completion_details_json BLOB NOT NULL, created_at INTEGER NOT NULL, completed_at INTEGER, exported_at INTEGER )\"\n },\n {\n \"type\": \"table\",\n \"name\": \"plugin_security_audit_meta\",\n \"table_name\": \"plugin_security_audit_meta\",\n \"sql\": \"CREATE TABLE plugin_security_audit_meta ( id INTEGER PRIMARY KEY CHECK(id = 1), seq INTEGER NOT NULL )\"\n }\n ],\n \"schema_sha256\": \"230d789557736cc47b4c0d760d46a4c58ce7575f57e4779e010db5539865c666\"\n },\n {\n \"path\": \"db/operations.sqlite\",\n \"application_id\": 0,\n \"user_version\": 0,\n \"migration_versions\": [],\n \"schema_objects\": [\n {\n \"type\": \"index\",\n \"name\": \"idx_plugin_operations_created\",\n \"table_name\": \"plugin_operations\",\n \"sql\": \"CREATE INDEX idx_plugin_operations_created ON plugin_operations(created_at DESC, operation_id DESC)\"\n },\n {\n \"type\": \"index\",\n \"name\": \"idx_plugin_operations_owner\",\n \"table_name\": \"plugin_operations\",\n \"sql\": \"CREATE INDEX idx_plugin_operations_owner ON plugin_operations(owner_session_hash, owner_user_hash, owner_env_hash, session_channel_id_hash, created_at DESC, operation_id DESC)\"\n },\n {\n \"type\": \"index\",\n \"name\": \"idx_plugin_operations_owner_plugin_instance\",\n \"table_name\": \"plugin_operations\",\n \"sql\": \"CREATE INDEX idx_plugin_operations_owner_plugin_instance ON plugin_operations(owner_env_hash, plugin_instance_id, created_at DESC, operation_id DESC)\"\n },\n {\n \"type\": \"index\",\n \"name\": \"idx_plugin_operations_owner_plugin_session\",\n \"table_name\": \"plugin_operations\",\n \"sql\": \"CREATE INDEX idx_plugin_operations_owner_plugin_session ON plugin_operations(owner_env_hash, plugin_instance_id, owner_session_hash, owner_user_hash, session_channel_id_hash, created_at DESC, operation_id DESC)\"\n },\n {\n \"type\": \"index\",\n \"name\": \"idx_plugin_operations_owner_terminal_retention\",\n \"table_name\": \"plugin_operations\",\n \"sql\": \"CREATE INDEX idx_plugin_operations_owner_terminal_retention ON plugin_operations(owner_env_hash, plugin_instance_id, terminal_at DESC, operation_id DESC) WHERE terminal_at IS NOT NULL\"\n },\n {\n \"type\": \"index\",\n \"name\": \"idx_plugin_operations_plugin_instance\",\n \"table_name\": \"plugin_operations\",\n \"sql\": \"CREATE INDEX idx_plugin_operations_plugin_instance ON plugin_operations(plugin_instance_id, created_at DESC, operation_id DESC)\"\n },\n {\n \"type\": \"index\",\n \"name\": \"idx_plugin_operations_plugin_owner\",\n \"table_name\": \"plugin_operations\",\n \"sql\": \"CREATE INDEX idx_plugin_operations_plugin_owner ON plugin_operations(plugin_instance_id, owner_session_hash, owner_user_hash, owner_env_hash, session_channel_id_hash, created_at DESC, operation_id DESC)\"\n },\n {\n \"type\": \"index\",\n \"name\": \"idx_plugin_operations_terminal_retention\",\n \"table_name\": \"plugin_operations\",\n \"sql\": \"CREATE INDEX idx_plugin_operations_terminal_retention ON plugin_operations(plugin_instance_id, terminal_at DESC, operation_id DESC) WHERE terminal_at IS NOT NULL\"\n },\n {\n \"type\": \"table\",\n \"name\": \"plugin_operations\",\n \"table_name\": \"plugin_operations\",\n \"sql\": \"CREATE TABLE plugin_operations ( operation_id TEXT PRIMARY KEY, plugin_id TEXT NOT NULL, plugin_instance_id TEXT NOT NULL, method TEXT NOT NULL, effect TEXT NOT NULL, execution TEXT NOT NULL, surface_instance_id TEXT NOT NULL, owner_session_hash TEXT NOT NULL, owner_user_hash TEXT NOT NULL, owner_env_hash TEXT NOT NULL, session_channel_id_hash TEXT NOT NULL, bridge_channel_id TEXT NOT NULL, execution_binding_json TEXT NOT NULL DEFAULT '{}', status TEXT NOT NULL, cancelable INTEGER NOT NULL DEFAULT 1, cancel_ack_timeout_ms INTEGER NOT NULL DEFAULT 0, disable_behavior TEXT NOT NULL, uninstall_behavior TEXT NOT NULL, failure_code TEXT NOT NULL, reason TEXT NOT NULL, created_at INTEGER NOT NULL, updated_at INTEGER NOT NULL, cancel_requested_at INTEGER, orphaned_at INTEGER, terminal_at INTEGER )\"\n }\n ],\n \"schema_sha256\": \"6cb266bb6e06d4e9926bfd1513c3acdbcd6b2f7e8e988758baa29b497c1f3eba\"\n },\n {\n \"path\": \"db/registry.sqlite\",\n \"application_id\": 0,\n \"user_version\": 0,\n \"migration_versions\": [],\n \"schema_objects\": [\n {\n \"type\": \"index\",\n \"name\": \"idx_plugin_records_deleted_at\",\n \"table_name\": \"plugin_records\",\n \"sql\": \"CREATE INDEX idx_plugin_records_deleted_at ON plugin_records(owner_env_hash, deleted_at)\"\n },\n {\n \"type\": \"index\",\n \"name\": \"idx_plugin_records_plugin_id\",\n \"table_name\": \"plugin_records\",\n \"sql\": \"CREATE INDEX idx_plugin_records_plugin_id ON plugin_records(owner_env_hash, plugin_id)\"\n },\n {\n \"type\": \"table\",\n \"name\": \"plugin_data_bindings\",\n \"table_name\": \"plugin_data_bindings\",\n \"sql\": \"CREATE TABLE plugin_data_bindings ( owner_env_hash TEXT NOT NULL, plugin_instance_id TEXT NOT NULL, generation_id TEXT NOT NULL, state TEXT NOT NULL, revision INTEGER NOT NULL, shape_hash TEXT NOT NULL, retained_at INTEGER, expires_at INTEGER, PRIMARY KEY(owner_env_hash, plugin_instance_id), FOREIGN KEY(owner_env_hash, plugin_instance_id) REFERENCES plugin_records(owner_env_hash, plugin_instance_id) ON DELETE CASCADE )\"\n },\n {\n \"type\": \"table\",\n \"name\": \"plugin_data_objects\",\n \"table_name\": \"plugin_data_objects\",\n \"sql\": \"CREATE TABLE plugin_data_objects ( scope_kind TEXT NOT NULL, owner_env_hash TEXT NOT NULL, owner_user_hash TEXT NOT NULL, plugin_instance_id TEXT NOT NULL, object_id TEXT NOT NULL, content_hash TEXT NOT NULL, shape_hash TEXT NOT NULL, size_bytes INTEGER NOT NULL, created_at INTEGER NOT NULL, PRIMARY KEY(scope_kind, owner_env_hash, owner_user_hash, plugin_instance_id, object_id) )\"\n },\n {\n \"type\": \"table\",\n \"name\": \"plugin_permission_grants\",\n \"table_name\": \"plugin_permission_grants\",\n \"sql\": \"CREATE TABLE plugin_permission_grants ( owner_env_hash TEXT NOT NULL, plugin_instance_id TEXT NOT NULL, permission_id TEXT NOT NULL, effect TEXT NOT NULL, granted_by TEXT NOT NULL, granted_at INTEGER NOT NULL, expires_at INTEGER, revoked_at INTEGER, revoked_by TEXT NOT NULL, revoked_reason TEXT NOT NULL, PRIMARY KEY(owner_env_hash, plugin_instance_id, permission_id), FOREIGN KEY(owner_env_hash, plugin_instance_id) REFERENCES plugin_records(owner_env_hash, plugin_instance_id) ON DELETE CASCADE )\"\n },\n {\n \"type\": \"table\",\n \"name\": \"plugin_records\",\n \"table_name\": \"plugin_records\",\n \"sql\": \"CREATE TABLE plugin_records ( owner_env_hash TEXT NOT NULL, plugin_instance_id TEXT NOT NULL, publisher_id TEXT NOT NULL, plugin_id TEXT NOT NULL, version TEXT NOT NULL, active_fingerprint TEXT NOT NULL, package_hash TEXT NOT NULL, manifest_hash TEXT NOT NULL, entries_hash TEXT NOT NULL, trust_state TEXT NOT NULL, trust_assessment_json TEXT NOT NULL DEFAULT '{}', source_policy_snapshot_hash TEXT NOT NULL DEFAULT '', source_policy_snapshot_json TEXT NOT NULL DEFAULT '{}', local_import_provenance_json TEXT NOT NULL DEFAULT '{}', capability_contracts_json TEXT NOT NULL DEFAULT '[]', enable_state TEXT NOT NULL, disabled_reason TEXT NOT NULL, policy_revision INTEGER NOT NULL, management_revision INTEGER NOT NULL, revoke_epoch INTEGER NOT NULL, manifest_json TEXT NOT NULL, package_entries_json TEXT NOT NULL, version_history_json TEXT NOT NULL, runtime_requirement_json TEXT NOT NULL DEFAULT 'null', installed_at INTEGER NOT NULL, enabled_at INTEGER, updated_at INTEGER NOT NULL, deleted_at INTEGER, metadata_json TEXT NOT NULL, PRIMARY KEY(owner_env_hash, plugin_instance_id) )\"\n },\n {\n \"type\": \"table\",\n \"name\": \"plugin_security_policies\",\n \"table_name\": \"plugin_security_policies\",\n \"sql\": \"CREATE TABLE plugin_security_policies ( owner_env_hash TEXT NOT NULL, plugin_instance_id TEXT NOT NULL, allowed_permissions_json TEXT NOT NULL, denied_methods_json TEXT NOT NULL, updated_at INTEGER NOT NULL, PRIMARY KEY(owner_env_hash, plugin_instance_id), FOREIGN KEY(owner_env_hash, plugin_instance_id) REFERENCES plugin_records(owner_env_hash, plugin_instance_id) ON DELETE CASCADE )\"\n },\n {\n \"type\": \"table\",\n \"name\": \"plugin_security_policy_allowed_permissions\",\n \"table_name\": \"plugin_security_policy_allowed_permissions\",\n \"sql\": \"CREATE TABLE plugin_security_policy_allowed_permissions ( owner_env_hash TEXT NOT NULL, plugin_instance_id TEXT NOT NULL, permission_id TEXT NOT NULL, PRIMARY KEY(owner_env_hash, plugin_instance_id, permission_id), FOREIGN KEY(owner_env_hash, plugin_instance_id) REFERENCES plugin_security_policies(owner_env_hash, plugin_instance_id) ON DELETE CASCADE )\"\n },\n {\n \"type\": \"table\",\n \"name\": \"plugin_security_policy_denied_methods\",\n \"table_name\": \"plugin_security_policy_denied_methods\",\n \"sql\": \"CREATE TABLE plugin_security_policy_denied_methods ( owner_env_hash TEXT NOT NULL, plugin_instance_id TEXT NOT NULL, method TEXT NOT NULL, PRIMARY KEY(owner_env_hash, plugin_instance_id, method), FOREIGN KEY(owner_env_hash, plugin_instance_id) REFERENCES plugin_security_policies(owner_env_hash, plugin_instance_id) ON DELETE CASCADE )\"\n },\n {\n \"type\": \"table\",\n \"name\": \"plugin_source_security_floors\",\n \"table_name\": \"plugin_source_security_floors\",\n \"sql\": \"CREATE TABLE plugin_source_security_floors ( source_id TEXT PRIMARY KEY, policy_epoch TEXT NOT NULL, key_rotation_epoch TEXT NOT NULL, revocation_epoch TEXT NOT NULL, source_policy_snapshot_hash TEXT NOT NULL, revocation_metadata_sha256 TEXT NOT NULL, updated_at INTEGER NOT NULL )\"\n }\n ],\n \"schema_sha256\": \"fb1d3c89eccea640d8f11261bcdd5e09a297a4253f5ca13ae0bc953ff3e189a9\"\n },\n {\n \"path\": \"db/runtime_lease_replays.sqlite\",\n \"application_id\": 0,\n \"user_version\": 0,\n \"migration_versions\": [],\n \"schema_objects\": [\n {\n \"type\": \"index\",\n \"name\": \"idx_runtime_lease_replays_plugin\",\n \"table_name\": \"plugin_runtime_lease_replays\",\n \"sql\": \"CREATE INDEX idx_runtime_lease_replays_plugin ON plugin_runtime_lease_replays(plugin_instance_id, consumed_at)\"\n },\n {\n \"type\": \"table\",\n \"name\": \"plugin_runtime_lease_replays\",\n \"table_name\": \"plugin_runtime_lease_replays\",\n \"sql\": \"CREATE TABLE plugin_runtime_lease_replays ( lease_nonce_hash TEXT PRIMARY KEY, lease_id TEXT NOT NULL, plugin_instance_id TEXT NOT NULL, runtime_generation_id TEXT NOT NULL, method TEXT NOT NULL, policy_revision INTEGER NOT NULL, management_revision INTEGER NOT NULL, revoke_epoch INTEGER NOT NULL, consumed_at INTEGER NOT NULL, expires_at INTEGER NOT NULL )\"\n }\n ],\n \"schema_sha256\": \"a4428fbd7cb8614384b539b583e0653460b8bafa24238dc23b9e916d447393a9\"\n },\n {\n \"path\": \"db/secrets.sqlite\",\n \"application_id\": 0,\n \"user_version\": 0,\n \"migration_versions\": [],\n \"schema_objects\": [\n {\n \"type\": \"index\",\n \"name\": \"idx_plugin_secret_bindings_plugin\",\n \"table_name\": \"plugin_secret_bindings\",\n \"sql\": \"CREATE INDEX idx_plugin_secret_bindings_plugin ON plugin_secret_bindings(owner_env_hash, plugin_instance_id, scope, owner_user_hash, bound, updated_at)\"\n },\n {\n \"type\": \"table\",\n \"name\": \"plugin_secret_bindings\",\n \"table_name\": \"plugin_secret_bindings\",\n \"sql\": \"CREATE TABLE plugin_secret_bindings ( owner_env_hash TEXT NOT NULL, owner_user_hash TEXT NOT NULL, plugin_instance_id TEXT NOT NULL, secret_ref TEXT NOT NULL, scope TEXT NOT NULL, bound INTEGER NOT NULL, last_test_status TEXT NOT NULL, bound_at INTEGER, tested_at INTEGER, deleted_at INTEGER, updated_at INTEGER NOT NULL, PRIMARY KEY(owner_env_hash, owner_user_hash, plugin_instance_id, scope, secret_ref), CHECK((scope = 'environment' AND owner_user_hash = '') OR (scope = 'user' AND owner_user_hash <> '')) )\"\n }\n ],\n \"schema_sha256\": \"4f5f0abf69b4c9ab1558f349640ffa2de6755b60d5e121886fa402e8c7eaa27b\"\n },\n {\n \"path\": \"db/streams.sqlite\",\n \"application_id\": 0,\n \"user_version\": 0,\n \"migration_versions\": [],\n \"schema_objects\": [\n {\n \"type\": \"index\",\n \"name\": \"idx_plugin_streams_owner_plugin_instance\",\n \"table_name\": \"plugin_streams\",\n \"sql\": \"CREATE INDEX idx_plugin_streams_owner_plugin_instance ON plugin_streams(owner_env_hash, plugin_instance_id, created_at, stream_id)\"\n },\n {\n \"type\": \"index\",\n \"name\": \"idx_plugin_streams_owner_terminal_retention\",\n \"table_name\": \"plugin_streams\",\n \"sql\": \"CREATE INDEX idx_plugin_streams_owner_terminal_retention ON plugin_streams(owner_env_hash, plugin_instance_id, closed_at DESC, stream_id DESC) WHERE terminal_acknowledged = 1\"\n },\n {\n \"type\": \"index\",\n \"name\": \"idx_plugin_streams_plugin_instance\",\n \"table_name\": \"plugin_streams\",\n \"sql\": \"CREATE INDEX idx_plugin_streams_plugin_instance ON plugin_streams(plugin_instance_id, created_at, stream_id)\"\n },\n {\n \"type\": \"index\",\n \"name\": \"idx_plugin_streams_terminal_retention\",\n \"table_name\": \"plugin_streams\",\n \"sql\": \"CREATE INDEX idx_plugin_streams_terminal_retention ON plugin_streams(plugin_instance_id, closed_at DESC, stream_id DESC) WHERE terminal_acknowledged = 1\"\n },\n {\n \"type\": \"table\",\n \"name\": \"plugin_stream_events\",\n \"table_name\": \"plugin_stream_events\",\n \"sql\": \"CREATE TABLE plugin_stream_events ( stream_id TEXT NOT NULL, sequence INTEGER NOT NULL, kind TEXT NOT NULL, data BLOB, error TEXT NOT NULL, at INTEGER NOT NULL, PRIMARY KEY(stream_id, sequence), FOREIGN KEY(stream_id) REFERENCES plugin_streams(stream_id) ON DELETE CASCADE )\"\n },\n {\n \"type\": \"table\",\n \"name\": \"plugin_streams\",\n \"table_name\": \"plugin_streams\",\n \"sql\": \"CREATE TABLE plugin_streams ( stream_id TEXT PRIMARY KEY, plugin_id TEXT NOT NULL, plugin_instance_id TEXT NOT NULL, method TEXT NOT NULL, effect TEXT NOT NULL, execution TEXT NOT NULL, surface_instance_id TEXT NOT NULL, owner_session_hash TEXT NOT NULL, owner_user_hash TEXT NOT NULL, owner_env_hash TEXT NOT NULL, session_channel_id_hash TEXT NOT NULL, bridge_channel_id TEXT NOT NULL, execution_binding_json TEXT NOT NULL DEFAULT '{}', direction TEXT NOT NULL, status TEXT NOT NULL, failure_code TEXT NOT NULL, reason TEXT NOT NULL DEFAULT '', content_type TEXT NOT NULL, max_buffered_bytes INTEGER NOT NULL, buffered_bytes INTEGER NOT NULL, next_sequence INTEGER NOT NULL, pending_delivery_id TEXT NOT NULL, pending_read_id TEXT NOT NULL, pending_through_sequence INTEGER NOT NULL, pending_done INTEGER NOT NULL, pending_terminal_status TEXT NOT NULL, last_acknowledged_delivery_id TEXT NOT NULL, terminal_acknowledged INTEGER NOT NULL, created_at INTEGER NOT NULL, updated_at INTEGER NOT NULL, closed_at INTEGER )\"\n }\n ],\n \"schema_sha256\": \"12a5810b5112819cb046f40491d8a014856c8209185ce471706158c1a816b2a3\"\n }\n ],\n \"tree_rules\": {\n \"allowed_kinds\": [\n \"directory\",\n \"file\"\n ],\n \"allow_sqlite_wal_shm\": true,\n \"reject_hardlinks\": true,\n \"reject_symlinks\": true,\n \"variable_trees\": [\n \"assets\",\n \"storage\"\n ]\n }\n }\n ]\n}\n";
91
+ }, {
92
+ readonly id: "owner-scope-inventory-schema";
93
+ readonly path: "spec/plugin/owner-scope-inventory-v1.schema.json";
94
+ readonly version: "owner-scope-inventory-v1";
95
+ readonly sha256: "972e4fe3cc74339c211ba8a50951ad0f4ae4265d3d34b20f03d0e4888638e254";
96
+ readonly body: "{\n \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n \"$id\": \"https://schemas.redevplugin.dev/plugin/owner-scope-inventory-v1.schema.json\",\n \"title\": \"ReDevPlugin owner scope inventory registry v1\",\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"schema_version\", \"inventories\"],\n \"properties\": {\n \"schema_version\": { \"const\": \"owner-scope-inventory-v1\" },\n \"inventories\": {\n \"type\": \"array\",\n \"minItems\": 1,\n \"maxItems\": 32,\n \"items\": { \"$ref\": \"#/$defs/inventory\" }\n }\n },\n \"$defs\": {\n \"sha256\": { \"type\": \"string\", \"pattern\": \"^[0-9a-f]{64}$\" },\n \"identifier\": { \"type\": \"string\", \"pattern\": \"^[a-z][a-z0-9._-]{0,127}$\" },\n \"relative_path\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"maxLength\": 4096,\n \"pattern\": \"^[a-z][a-z0-9._-]*(?:/[a-z][a-z0-9._-]*)*$\"\n },\n \"inventory\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"id\", \"platform_versions\", \"root_entries\", \"sqlite_databases\", \"tree_rules\"],\n \"properties\": {\n \"id\": { \"$ref\": \"#/$defs/identifier\" },\n \"platform_versions\": {\n \"type\": \"array\",\n \"minItems\": 1,\n \"maxItems\": 32,\n \"uniqueItems\": true,\n \"items\": { \"type\": \"string\", \"pattern\": \"^0\\\\.[1-5]\\\\.[0-9]+$\" }\n },\n \"root_entries\": {\n \"const\": [\n { \"path\": \"assets\", \"kind\": \"directory\", \"scope\": \"durable\", \"disposition\": \"quarantine\" },\n { \"path\": \"db\", \"kind\": \"directory\", \"scope\": \"durable\", \"disposition\": \"quarantine\" },\n { \"path\": \"storage\", \"kind\": \"directory\", \"scope\": \"durable\", \"disposition\": \"quarantine\" }\n ]\n },\n \"sqlite_databases\": {\n \"type\": \"array\",\n \"minItems\": 1,\n \"maxItems\": 64,\n \"items\": { \"$ref\": \"#/$defs/sqlite_database\" }\n },\n \"tree_rules\": {\n \"const\": {\n \"allowed_kinds\": [\"directory\", \"file\"],\n \"allow_sqlite_wal_shm\": true,\n \"reject_hardlinks\": true,\n \"reject_symlinks\": true,\n \"variable_trees\": [\"assets\", \"storage\"]\n }\n }\n }\n },\n \"sqlite_database\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\n \"path\",\n \"application_id\",\n \"user_version\",\n \"migration_versions\",\n \"schema_objects\",\n \"schema_sha256\"\n ],\n \"properties\": {\n \"path\": { \"$ref\": \"#/$defs/relative_path\" },\n \"application_id\": { \"type\": \"integer\", \"minimum\": 0, \"maximum\": 4294967295 },\n \"user_version\": { \"type\": \"integer\", \"minimum\": 0, \"maximum\": 2147483647 },\n \"migration_versions\": {\n \"type\": \"array\",\n \"maxItems\": 16,\n \"items\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"table\", \"versions\"],\n \"properties\": {\n \"table\": { \"$ref\": \"#/$defs/identifier\" },\n \"versions\": {\n \"type\": \"array\",\n \"minItems\": 1,\n \"maxItems\": 64,\n \"uniqueItems\": true,\n \"items\": { \"type\": \"integer\", \"minimum\": 0, \"maximum\": 2147483647 }\n }\n }\n }\n },\n \"schema_objects\": {\n \"type\": \"array\",\n \"minItems\": 1,\n \"maxItems\": 128,\n \"items\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"type\", \"name\", \"table_name\", \"sql\"],\n \"properties\": {\n \"type\": { \"enum\": [\"index\", \"table\"] },\n \"name\": { \"$ref\": \"#/$defs/identifier\" },\n \"table_name\": { \"$ref\": \"#/$defs/identifier\" },\n \"sql\": { \"type\": \"string\", \"minLength\": 1, \"maxLength\": 16384 }\n }\n }\n },\n \"schema_sha256\": { \"$ref\": \"#/$defs/sha256\" }\n }\n }\n }\n}\n";
97
+ }, {
98
+ readonly id: "owner-scope-migration-schema";
99
+ readonly path: "spec/plugin/owner-scope-migration-v1.schema.json";
100
+ readonly version: "owner-scope-migration-v1";
101
+ readonly sha256: "e73443813e19e4cfb05748eb75d5cf04f43db3bed9d2be0c893c13bda88a5993";
102
+ readonly body: "{\n \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n \"$id\": \"https://schemas.redevplugin.dev/plugin/owner-scope-migration-v1.schema.json\",\n \"title\": \"ReDevPlugin owner scope migration journal v1\",\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\n \"schema_version\",\n \"migration_id\",\n \"root_identity_sha256\",\n \"legacy_snapshot_sha256\",\n \"inventory_id\",\n \"inventory_sha256\",\n \"state\",\n \"quarantine_id\",\n \"quarantine_sha256\",\n \"fresh_generation_id\",\n \"fresh_generation_sha256\",\n \"stores\"\n ],\n \"properties\": {\n \"schema_version\": { \"const\": \"owner-scope-migration-v1\" },\n \"migration_id\": { \"$ref\": \"#/$defs/opaque_id\" },\n \"root_identity_sha256\": { \"$ref\": \"#/$defs/sha256\" },\n \"legacy_snapshot_sha256\": { \"$ref\": \"#/$defs/sha256\" },\n \"inventory_id\": { \"type\": \"string\", \"maxLength\": 128, \"pattern\": \"^$|^[a-z][a-z0-9._-]+$\" },\n \"inventory_sha256\": { \"type\": \"string\", \"pattern\": \"^$|^[0-9a-f]{64}$\" },\n \"state\": {\n \"enum\": [\n \"prepared\",\n \"quarantine_writing\",\n \"quarantine_committed\",\n \"fresh_prepared\",\n \"fresh_committed\",\n \"reconcile_required\",\n \"failed\"\n ]\n },\n \"quarantine_id\": { \"type\": \"string\", \"maxLength\": 128, \"pattern\": \"^$|^quarantine_[0-9a-f]{32}$\" },\n \"quarantine_sha256\": { \"type\": \"string\", \"pattern\": \"^$|^[0-9a-f]{64}$\" },\n \"fresh_generation_id\": { \"type\": \"string\", \"maxLength\": 128, \"pattern\": \"^$|^generation_[0-9a-f]{32}$\" },\n \"fresh_generation_sha256\": { \"type\": \"string\", \"pattern\": \"^$|^[0-9a-f]{64}$\" },\n \"stores\": {\n \"type\": \"array\",\n \"maxItems\": 64,\n \"items\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"id\", \"scope\", \"disposition\", \"generation\", \"outcome\"],\n \"properties\": {\n \"id\": { \"type\": \"string\", \"pattern\": \"^[a-z][a-z0-9._-]{0,127}$\" },\n \"scope\": { \"enum\": [\"durable\", \"session\", \"transient\"] },\n \"disposition\": { \"enum\": [\"quarantine\", \"terminate\"] },\n \"generation\": { \"type\": \"string\", \"maxLength\": 128 },\n \"outcome\": { \"type\": \"string\", \"maxLength\": 128 }\n }\n }\n }\n },\n \"$defs\": {\n \"opaque_id\": { \"type\": \"string\", \"pattern\": \"^migration_[0-9a-f]{32}$\" },\n \"sha256\": { \"type\": \"string\", \"pattern\": \"^[0-9a-f]{64}$\" }\n }\n}\n";
103
+ }, {
104
+ readonly id: "package-signature-schema";
105
+ readonly path: "spec/plugin/package-signature-v1.schema.json";
106
+ readonly version: "package-signature-v1";
107
+ readonly sha256: "13951c0f6831ba28647774368c76a817868aeb7984628e2cf3dc4ad1b54f8284";
108
+ readonly body: "{\n \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n \"$id\": \"https://schemas.redevplugin.dev/plugin/package-signature-v1.schema.json\",\n \"title\": \"ReDevPlugin package detached signature v1\",\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\n \"schema_version\",\n \"algorithm\",\n \"key_id\",\n \"package_hash\",\n \"manifest_hash\",\n \"entries_hash\",\n \"signature\"\n ],\n \"properties\": {\n \"schema_version\": { \"const\": \"redevplugin.package_signature.v1\" },\n \"algorithm\": { \"enum\": [\"ed25519\"] },\n \"key_id\": { \"type\": \"string\", \"minLength\": 1 },\n \"publisher_id\": { \"type\": \"string\", \"minLength\": 1 },\n \"plugin_id\": { \"type\": \"string\", \"minLength\": 1 },\n \"package_hash\": { \"$ref\": \"#/$defs/sha256\" },\n \"manifest_hash\": { \"$ref\": \"#/$defs/sha256\" },\n \"entries_hash\": { \"$ref\": \"#/$defs/sha256\" },\n \"signature\": { \"type\": \"string\", \"minLength\": 1 },\n \"signed_at\": { \"type\": \"string\", \"format\": \"date-time\" }\n },\n \"$defs\": {\n \"sha256\": {\n \"type\": \"string\",\n \"pattern\": \"^sha256:[a-f0-9]{64}$\"\n }\n }\n}\n";
109
+ }, {
110
+ readonly id: "performance-contract";
111
+ readonly path: "spec/plugin/performance-contract-v3.json";
112
+ readonly version: "performance-contract-v3";
113
+ readonly sha256: "a4e1a099dc16f2b0a4d6bdc5fdf8f6ce622948ffec40f70bfc2743286a2b816b";
114
+ readonly body: "{\n \"schema_version\": \"redevplugin.performance_contract.v3\",\n \"comparison_probes\": [\n {\n \"id\": \"httpadapter.route-authorization-v051\",\n \"baseline_release\": \"0.5.1\",\n \"baseline_commit\": \"3febcc59bbdb2118a4f105781b4c743bc11ba09f\",\n \"repetitions\": 5,\n \"warmup_batches\": 8,\n \"requests_per_sample\": 32,\n \"measured_batches\": [\n { \"concurrency\": 1, \"batches\": 1000, \"samples\": 32000 },\n { \"concurrency\": 100, \"batches\": 64, \"samples\": 204800 },\n { \"concurrency\": 1000, \"batches\": 64, \"samples\": 2048000 }\n ],\n \"runner\": {\n \"path\": \"scripts/measure_http_route_authorization_performance.mjs\",\n \"sha256\": \"ccb704f1229b7aa41986d52d8eb473c0b6b1665594dc6094ab8072597d91e55f\"\n },\n \"comparison_logic\": {\n \"path\": \"scripts/route_authorization_comparison.mjs\",\n \"sha256\": \"f741b7f21ffc771c2064d7293fce9ec5138771ee6b0f62a374b80d899dc66fb6\"\n },\n \"baseline_probe\": {\n \"path\": \"testdata/performance/httpadapter-v051/route_authorization_performance_test.go\",\n \"sha256\": \"2a8891b9c2e962ba3660aadb25bdf9e2cca45565ad8dea6d7b59c08fc787c18f\"\n },\n \"candidate_probe\": {\n \"path\": \"pkg/httpadapter/route_authorization_performance_test.go\",\n \"sha256\": \"113eb3f0cf1d7383a6f14b8d7406e42c655c018c1455b47f0afd44869a354ff3\"\n },\n \"shared_probe\": {\n \"path\": \"internal/performanceevidence/route_authorization.go\",\n \"sha256\": \"5a2dd9f235eb80d2f7c6a2ddb5870e1d5aa9f9132b6a8abff51ce20b0f037910\"\n }\n }\n ],\n \"scenarios\": [\n {\n \"id\": \"runtime.blocked-hostcall-isolation\",\n \"sample_count\": 16,\n \"metrics\": [\n { \"name\": \"completed\", \"unit\": \"count\", \"comparator\": \"eq\", \"limit\": 16 },\n { \"name\": \"p95\", \"unit\": \"milliseconds\", \"comparator\": \"lte\", \"limit\": 250 }\n ]\n },\n {\n \"id\": \"runtime.cache-single-flight\",\n \"sample_count\": 32,\n \"metrics\": [\n { \"name\": \"artifact_reads\", \"unit\": \"count\", \"comparator\": \"eq\", \"limit\": 1 },\n { \"name\": \"module_compiles\", \"unit\": \"count\", \"comparator\": \"eq\", \"limit\": 1 },\n { \"name\": \"cache_entries\", \"unit\": \"count\", \"comparator\": \"eq\", \"limit\": 1 }\n ]\n },\n {\n \"id\": \"runtime.cancel-queued\",\n \"sample_count\": 20,\n \"metrics\": [\n { \"name\": \"p95\", \"unit\": \"milliseconds\", \"comparator\": \"lte\", \"limit\": 50 }\n ]\n },\n {\n \"id\": \"runtime.cancel-running\",\n \"sample_count\": 20,\n \"metrics\": [\n { \"name\": \"ack_p95\", \"unit\": \"milliseconds\", \"comparator\": \"lte\", \"limit\": 100 },\n { \"name\": \"runtime_ready\", \"unit\": \"count\", \"comparator\": \"eq\", \"limit\": 1 }\n ]\n },\n {\n \"id\": \"runtime.warm-invocations\",\n \"sample_count\": 32,\n \"metrics\": [\n { \"name\": \"completed\", \"unit\": \"count\", \"comparator\": \"eq\", \"limit\": 32 },\n { \"name\": \"p95\", \"unit\": \"milliseconds\", \"comparator\": \"lte\", \"limit\": 100 },\n { \"name\": \"max\", \"unit\": \"milliseconds\", \"comparator\": \"lte\", \"limit\": 500 }\n ]\n },\n {\n \"id\": \"runtime.ipc-writer-burst\",\n \"sample_count\": 10000,\n \"metrics\": [\n { \"name\": \"frames\", \"unit\": \"count\", \"comparator\": \"eq\", \"limit\": 10000 },\n { \"name\": \"queue_capacity\", \"unit\": \"count\", \"comparator\": \"eq\", \"limit\": 136 },\n { \"name\": \"blocked_at_capacity\", \"unit\": \"count\", \"comparator\": \"eq\", \"limit\": 1 },\n { \"name\": \"peak_rss_bytes\", \"unit\": \"bytes\", \"comparator\": \"lte\", \"limit\": 67108864 },\n { \"name\": \"flushes\", \"unit\": \"count\", \"comparator\": \"lte\", \"limit\": 625 }\n ]\n },\n {\n \"id\": \"runtime.scheduler-indexed-cancel\",\n \"sample_count\": 10000,\n \"metrics\": [\n { \"name\": \"index_lookups\", \"unit\": \"count\", \"comparator\": \"eq\", \"limit\": 10000 },\n { \"name\": \"compaction_entries_per_cancel\", \"unit\": \"basis_points\", \"comparator\": \"lte\", \"limit\": 25000 },\n { \"name\": \"remaining_requests\", \"unit\": \"count\", \"comparator\": \"eq\", \"limit\": 0 }\n ]\n },\n {\n \"id\": \"runtime.module-cache-indexed-eviction\",\n \"sample_count\": 10000,\n \"metrics\": [\n { \"name\": \"index_pops_per_eviction\", \"unit\": \"basis_points\", \"comparator\": \"eq\", \"limit\": 10000 },\n { \"name\": \"remaining_entries\", \"unit\": \"count\", \"comparator\": \"eq\", \"limit\": 128 }\n ]\n },\n {\n \"id\": \"httpadapter.route-authorization-c1\",\n \"sample_count\": 32000,\n \"metrics\": [\n { \"name\": \"p95_relative\", \"unit\": \"basis_points\", \"comparator\": \"lte\", \"limit\": 11000 },\n { \"name\": \"p99_relative\", \"unit\": \"basis_points\", \"comparator\": \"lte\", \"limit\": 11500 },\n { \"name\": \"allocations_increase\", \"unit\": \"count\", \"comparator\": \"lte\", \"limit\": 1 },\n { \"name\": \"allocated_bytes_relative\", \"unit\": \"basis_points\", \"comparator\": \"lte\", \"limit\": 10500 }\n ]\n },\n {\n \"id\": \"httpadapter.route-authorization-c100\",\n \"sample_count\": 204800,\n \"metrics\": [\n { \"name\": \"p95_relative\", \"unit\": \"basis_points\", \"comparator\": \"lte\", \"limit\": 11000 },\n { \"name\": \"p99_relative\", \"unit\": \"basis_points\", \"comparator\": \"lte\", \"limit\": 11500 },\n { \"name\": \"allocations_increase\", \"unit\": \"count\", \"comparator\": \"lte\", \"limit\": 1 },\n { \"name\": \"allocated_bytes_relative\", \"unit\": \"basis_points\", \"comparator\": \"lte\", \"limit\": 10500 }\n ]\n },\n {\n \"id\": \"httpadapter.route-authorization-c1000\",\n \"sample_count\": 2048000,\n \"metrics\": [\n { \"name\": \"p95_relative\", \"unit\": \"basis_points\", \"comparator\": \"lte\", \"limit\": 11000 },\n { \"name\": \"p99_relative\", \"unit\": \"basis_points\", \"comparator\": \"lte\", \"limit\": 11500 },\n { \"name\": \"allocations_increase\", \"unit\": \"count\", \"comparator\": \"lte\", \"limit\": 1 },\n { \"name\": \"allocated_bytes_relative\", \"unit\": \"basis_points\", \"comparator\": \"lte\", \"limit\": 10500 }\n ]\n },\n {\n \"id\": \"connectivity.http-keepalive\",\n \"sample_count\": 64,\n \"metrics\": [\n { \"name\": \"p95_relative_to_connect\", \"unit\": \"basis_points\", \"comparator\": \"lte\", \"limit\": 7000 },\n { \"name\": \"reused_connection_dials\", \"unit\": \"count\", \"comparator\": \"eq\", \"limit\": 1 }\n ]\n },\n {\n \"id\": \"connectivity.udp-limiter-scaling\",\n \"sample_count\": 1000,\n \"metrics\": [\n { \"name\": \"p95_large_relative_to_small\", \"unit\": \"basis_points\", \"comparator\": \"lte\", \"limit\": 20000 },\n { \"name\": \"bucket_capacity\", \"unit\": \"count\", \"comparator\": \"eq\", \"limit\": 65536 },\n { \"name\": \"overflow_denied\", \"unit\": \"count\", \"comparator\": \"eq\", \"limit\": 1 }\n ]\n },\n {\n \"id\": \"plugindata.namespace-cache-warm\",\n \"sample_count\": 100,\n \"metrics\": [\n { \"name\": \"relative_allocations\", \"unit\": \"basis_points\", \"comparator\": \"lte\", \"limit\": 3000 }\n ]\n },\n {\n \"id\": \"pluginpkg.package-owned-materialization\",\n \"sample_count\": 3,\n \"metrics\": [\n { \"name\": \"peak_rss_relative_to_cloned\", \"unit\": \"basis_points\", \"comparator\": \"lte\", \"limit\": 6500 }\n ]\n },\n {\n \"id\": \"pluginpkg.wasm-inspection-cache\",\n \"sample_count\": 1000,\n \"metrics\": [\n { \"name\": \"inspector_calls\", \"unit\": \"count\", \"comparator\": \"eq\", \"limit\": 1 },\n { \"name\": \"cache_entries\", \"unit\": \"count\", \"comparator\": \"eq\", \"limit\": 1 },\n { \"name\": \"cache_capacity\", \"unit\": \"count\", \"comparator\": \"eq\", \"limit\": 128 },\n { \"name\": \"warm_relative_allocations\", \"unit\": \"basis_points\", \"comparator\": \"lte\", \"limit\": 5000 }\n ]\n },\n {\n \"id\": \"registry.sqlite-authorization-scaling\",\n \"sample_count\": 500,\n \"metrics\": [\n { \"name\": \"p95_1000_grants_relative_to_1\", \"unit\": \"basis_points\", \"comparator\": \"lte\", \"limit\": 20000 }\n ]\n },\n {\n \"id\": \"operation.memory-store-snapshot\",\n \"sample_count\": 1000,\n \"metrics\": [\n { \"name\": \"relative_allocations\", \"unit\": \"basis_points\", \"comparator\": \"lte\", \"limit\": 2000 }\n ]\n },\n {\n \"id\": \"stream.memory-store-snapshot\",\n \"sample_count\": 1000,\n \"metrics\": [\n { \"name\": \"relative_allocations\", \"unit\": \"basis_points\", \"comparator\": \"lte\", \"limit\": 2000 }\n ]\n },\n {\n \"id\": \"stream.event-backpressure\",\n \"sample_count\": 257,\n \"metrics\": [\n { \"name\": \"accepted_events\", \"unit\": \"count\", \"comparator\": \"eq\", \"limit\": 256 },\n { \"name\": \"first_rejected_event\", \"unit\": \"count\", \"comparator\": \"eq\", \"limit\": 257 }\n ]\n },\n {\n \"id\": \"stream.idle-waiters\",\n \"sample_count\": 500,\n \"metrics\": [\n { \"name\": \"waiters\", \"unit\": \"count\", \"comparator\": \"eq\", \"limit\": 500 },\n { \"name\": \"periodic_store_queries\", \"unit\": \"queries\", \"comparator\": \"eq\", \"limit\": 0 },\n { \"name\": \"wake_p95\", \"unit\": \"milliseconds\", \"comparator\": \"lte\", \"limit\": 100 }\n ]\n },\n {\n \"id\": \"stream.sqlite-batch-delivery\",\n \"sample_count\": 256,\n \"metrics\": [\n { \"name\": \"events_selected\", \"unit\": \"count\", \"comparator\": \"eq\", \"limit\": 256 },\n { \"name\": \"bounded_selects\", \"unit\": \"queries\", \"comparator\": \"eq\", \"limit\": 1 },\n { \"name\": \"delivery_snapshots\", \"unit\": \"queries\", \"comparator\": \"eq\", \"limit\": 1 },\n { \"name\": \"range_deletes\", \"unit\": \"queries\", \"comparator\": \"eq\", \"limit\": 1 },\n { \"name\": \"remaining_events\", \"unit\": \"count\", \"comparator\": \"eq\", \"limit\": 256 }\n ]\n },\n {\n \"id\": \"ui.chromium-renderer\",\n \"sample_count\": 10,\n \"metrics\": [\n { \"name\": \"reverse_patch_p95\", \"unit\": \"milliseconds\", \"comparator\": \"lte\", \"limit\": 50 },\n { \"name\": \"long_tasks\", \"unit\": \"long_tasks\", \"comparator\": \"eq\", \"limit\": 0 },\n { \"name\": \"max_long_task\", \"unit\": \"milliseconds\", \"comparator\": \"lte\", \"limit\": 50 }\n ]\n },\n {\n \"id\": \"ui.keyed-reversal\",\n \"sample_count\": 30,\n \"metrics\": [\n { \"name\": \"moves\", \"unit\": \"count\", \"comparator\": \"eq\", \"limit\": 999 },\n { \"name\": \"p95\", \"unit\": \"milliseconds\", \"comparator\": \"lte\", \"limit\": 50 }\n ]\n },\n {\n \"id\": \"ui.single-leaf-reconciliation\",\n \"sample_count\": 40,\n \"metrics\": [\n { \"name\": \"p95\", \"unit\": \"milliseconds\", \"comparator\": \"lte\", \"limit\": 16 },\n { \"name\": \"max\", \"unit\": \"milliseconds\", \"comparator\": \"lte\", \"limit\": 50 }\n ]\n }\n ]\n}\n";
115
+ }, {
116
+ readonly id: "performance-evidence-schema";
117
+ readonly path: "spec/plugin/performance-evidence-v3.schema.json";
118
+ readonly version: "performance-evidence-v3";
119
+ readonly sha256: "a2f5e94071bb09a9327fc55ad3f6c39052b01c3e54cceb8b974dc244667a0326";
120
+ readonly body: "{\n \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n \"$id\": \"https://schemas.redevplugin.dev/plugin/performance-evidence-v3.schema.json\",\n \"title\": \"ReDevPlugin release performance evidence v3\",\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\n \"schema_version\",\n \"release_version\",\n \"source_commit\",\n \"generated_at\",\n \"environment\",\n \"scenarios\",\n \"comparisons\",\n \"contract_hashes\"\n ],\n \"properties\": {\n \"schema_version\": { \"const\": \"redevplugin.performance_evidence.v3\" },\n \"release_version\": { \"$ref\": \"#/$defs/semver\" },\n \"source_commit\": { \"type\": \"string\", \"pattern\": \"^[0-9a-f]{40}$\" },\n \"generated_at\": { \"type\": \"string\", \"format\": \"date-time\" },\n \"environment\": { \"$ref\": \"#/$defs/environment\" },\n \"scenarios\": {\n \"type\": \"array\",\n \"minItems\": 1,\n \"uniqueItems\": true,\n \"items\": { \"$ref\": \"#/$defs/scenario\" }\n },\n \"comparisons\": {\n \"type\": \"array\",\n \"minItems\": 1,\n \"uniqueItems\": true,\n \"items\": { \"$ref\": \"#/$defs/comparison\" }\n },\n \"contract_hashes\": {\n \"type\": \"array\",\n \"minItems\": 1,\n \"uniqueItems\": true,\n \"items\": { \"$ref\": \"#/$defs/contract_hash\" }\n }\n },\n \"$defs\": {\n \"semver\": {\n \"type\": \"string\",\n \"pattern\": \"^(0|[1-9][0-9]*)\\\\.(0|[1-9][0-9]*)\\\\.(0|[1-9][0-9]*)(?:-[0-9A-Za-z.-]+)?$\"\n },\n \"sha256\": {\n \"type\": \"string\",\n \"pattern\": \"^[0-9a-f]{64}$\"\n },\n \"environment\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"os\", \"arch\", \"logical_cpus\", \"go_version\", \"node_version\", \"rustc_version\", \"chromium_version\"],\n \"properties\": {\n \"os\": { \"type\": \"string\", \"minLength\": 1 },\n \"arch\": { \"type\": \"string\", \"minLength\": 1 },\n \"logical_cpus\": { \"type\": \"integer\", \"minimum\": 1 },\n \"go_version\": { \"type\": \"string\", \"minLength\": 1 },\n \"node_version\": { \"type\": \"string\", \"minLength\": 1 },\n \"rustc_version\": { \"type\": \"string\", \"minLength\": 1 },\n \"chromium_version\": { \"type\": \"string\", \"minLength\": 1 }\n }\n },\n \"scenario\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"id\", \"gate\", \"status\", \"sample_count\", \"metrics\"],\n \"properties\": {\n \"id\": { \"type\": \"string\", \"pattern\": \"^[a-z][a-z0-9._-]+$\" },\n \"gate\": { \"enum\": [\"fast\", \"smoke\", \"weekly\", \"full\", \"release\"] },\n \"status\": { \"const\": \"pass\" },\n \"sample_count\": { \"type\": \"integer\", \"minimum\": 1 },\n \"metrics\": {\n \"type\": \"array\",\n \"minItems\": 1,\n \"uniqueItems\": true,\n \"items\": { \"$ref\": \"#/$defs/metric\" }\n }\n }\n },\n \"metric\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"name\", \"unit\", \"observed\", \"limit\", \"comparator\"],\n \"properties\": {\n \"name\": { \"type\": \"string\", \"pattern\": \"^[a-z][a-z0-9._-]+$\" },\n \"unit\": { \"enum\": [\"milliseconds\", \"count\", \"bytes\", \"queries\", \"long_tasks\", \"basis_points\"] },\n \"observed\": { \"type\": \"number\", \"minimum\": 0 },\n \"limit\": { \"type\": \"number\", \"minimum\": 0 },\n \"comparator\": { \"enum\": [\"lte\", \"eq\"] }\n }\n },\n \"comparison\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\n \"id\",\n \"baseline_release\",\n \"baseline_commit\",\n \"candidate_commit\",\n \"runs\"\n ],\n \"properties\": {\n \"id\": { \"const\": \"httpadapter.route-authorization-v051\" },\n \"baseline_release\": { \"const\": \"0.5.1\" },\n \"baseline_commit\": { \"const\": \"3febcc59bbdb2118a4f105781b4c743bc11ba09f\" },\n \"candidate_commit\": { \"type\": \"string\", \"pattern\": \"^[0-9a-f]{40}$\" },\n \"runs\": {\n \"type\": \"array\",\n \"minItems\": 3,\n \"maxItems\": 3,\n \"items\": { \"$ref\": \"#/$defs/comparison_run\" }\n }\n }\n },\n \"comparison_run\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\n \"baseline_profile_sha256\",\n \"candidate_profile_sha256\",\n \"baseline_profile\",\n \"candidate_profile\"\n ],\n \"properties\": {\n \"baseline_profile_sha256\": { \"$ref\": \"#/$defs/sha256\" },\n \"candidate_profile_sha256\": { \"$ref\": \"#/$defs/sha256\" },\n \"baseline_profile\": { \"$ref\": \"#/$defs/route_authorization_profile\" },\n \"candidate_profile\": { \"$ref\": \"#/$defs/route_authorization_profile\" }\n }\n },\n \"route_authorization_profile\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"schema_version\", \"variant\", \"commit\", \"environment\", \"warmup_count\", \"requests_per_sample\", \"measurements\"],\n \"properties\": {\n \"schema_version\": { \"const\": \"redevplugin.route_authorization_performance.v1\" },\n \"variant\": { \"enum\": [\"v0.5.1\", \"v0.6.0\"] },\n \"commit\": { \"type\": \"string\", \"pattern\": \"^[0-9a-f]{40}$\" },\n \"environment\": { \"$ref\": \"#/$defs/route_authorization_environment\" },\n \"warmup_count\": { \"const\": 8 },\n \"requests_per_sample\": { \"const\": 32 },\n \"measurements\": {\n \"type\": \"array\",\n \"minItems\": 3,\n \"maxItems\": 3,\n \"uniqueItems\": true,\n \"items\": { \"$ref\": \"#/$defs/route_authorization_measurement\" }\n }\n }\n },\n \"route_authorization_environment\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"os\", \"arch\", \"logical_cpus\", \"gomaxprocs\", \"go_version\"],\n \"properties\": {\n \"os\": { \"type\": \"string\", \"minLength\": 1 },\n \"arch\": { \"type\": \"string\", \"minLength\": 1 },\n \"logical_cpus\": { \"type\": \"integer\", \"minimum\": 1, \"maximum\": 9007199254740991 },\n \"gomaxprocs\": { \"type\": \"integer\", \"minimum\": 1, \"maximum\": 9007199254740991 },\n \"go_version\": { \"type\": \"string\", \"minLength\": 1 }\n }\n },\n \"route_authorization_measurement\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\n \"concurrency\",\n \"batch_count\",\n \"sample_count\",\n \"median_nanoseconds\",\n \"p95_nanoseconds\",\n \"p99_nanoseconds\",\n \"allocations_per_request\",\n \"bytes_per_request\"\n ],\n \"properties\": {\n \"concurrency\": { \"enum\": [1, 100, 1000] },\n \"batch_count\": { \"type\": \"integer\", \"minimum\": 64, \"maximum\": 9007199254740991 },\n \"sample_count\": { \"type\": \"integer\", \"minimum\": 1, \"maximum\": 9007199254740991 },\n \"median_nanoseconds\": { \"type\": \"integer\", \"minimum\": 1, \"maximum\": 9007199254740991 },\n \"p95_nanoseconds\": { \"type\": \"integer\", \"minimum\": 1, \"maximum\": 9007199254740991 },\n \"p99_nanoseconds\": { \"type\": \"integer\", \"minimum\": 1, \"maximum\": 9007199254740991 },\n \"allocations_per_request\": { \"type\": \"number\", \"minimum\": 0 },\n \"bytes_per_request\": { \"type\": \"number\", \"minimum\": 0 }\n }\n },\n \"contract_hash\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"id\", \"sha256\"],\n \"properties\": {\n \"id\": { \"type\": \"string\", \"pattern\": \"^[a-z][a-z0-9-]+$\" },\n \"sha256\": { \"$ref\": \"#/$defs/sha256\" }\n }\n }\n }\n}\n";
121
+ }, {
122
+ readonly id: "platform-package-publication-schema";
123
+ readonly path: "spec/plugin/platform-package-publication-v1.schema.json";
124
+ readonly version: "platform-package-publication-v1";
125
+ readonly sha256: "20450b516c34d5a122020f4064ddfa03ffcb97ffea661e0868cd09760b3f08b0";
126
+ readonly body: "{\n \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n \"$id\": \"https://schemas.redevplugin.dev/plugin/platform-package-publication-v1.schema.json\",\n \"title\": \"ReDevPlugin Platform Package Publication V1\",\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"schema_version\", \"platform_version\", \"source_commit\", \"workflow\", \"go_module\", \"npm_packages\", \"rust_crates\", \"contract_set_sha256\"],\n \"properties\": {\n \"schema_version\": {\"const\": \"redevplugin.platform_package_publication.v1\"},\n \"platform_version\": {\"$ref\": \"#/$defs/version\"},\n \"source_commit\": {\"$ref\": \"#/$defs/commit\"},\n \"workflow\": {\"$ref\": \"#/$defs/workflow\"},\n \"go_module\": {\"$ref\": \"#/$defs/go_module\"},\n \"npm_packages\": {\n \"type\": \"array\",\n \"minItems\": 2,\n \"maxItems\": 2,\n \"uniqueItems\": true,\n \"prefixItems\": [\n {\"$ref\": \"#/$defs/npm_contracts\"},\n {\"$ref\": \"#/$defs/npm_ui\"}\n ],\n \"items\": false\n },\n \"rust_crates\": {\n \"type\": \"array\",\n \"minItems\": 6,\n \"maxItems\": 6,\n \"uniqueItems\": true,\n \"prefixItems\": [\n {\"$ref\": \"#/$defs/rust_contracts\"},\n {\"$ref\": \"#/$defs/rust_ipc\"},\n {\"$ref\": \"#/$defs/rust_wasm_abi\"},\n {\"$ref\": \"#/$defs/rust_target_classifier\"},\n {\"$ref\": \"#/$defs/rust_worker_sdk\"},\n {\"$ref\": \"#/$defs/rust_runtime\"}\n ],\n \"items\": false\n },\n \"contract_set_sha256\": {\"$ref\": \"#/$defs/sha256\"}\n },\n \"$defs\": {\n \"version\": {\n \"type\": \"string\",\n \"minLength\": 5,\n \"maxLength\": 64,\n \"pattern\": \"^(0|[1-9][0-9]*)\\\\.(0|[1-9][0-9]*)\\\\.(0|[1-9][0-9]*)$\"\n },\n \"commit\": {\"type\": \"string\", \"pattern\": \"^[0-9a-f]{40}$\"},\n \"sha256\": {\"type\": \"string\", \"pattern\": \"^[0-9a-f]{64}$\"},\n \"workflow\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"repository\", \"path\", \"ref\", \"sha\"],\n \"properties\": {\n \"repository\": {\"const\": \"floegence/redevplugin\"},\n \"path\": {\"const\": \".github/workflows/release.yml\"},\n \"ref\": {\"type\": \"string\", \"minLength\": 15, \"maxLength\": 80, \"pattern\": \"^refs/tags/v(0|[1-9][0-9]*)\\\\.(0|[1-9][0-9]*)\\\\.(0|[1-9][0-9]*)$\"},\n \"sha\": {\"$ref\": \"#/$defs/commit\"}\n }\n },\n \"go_module\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"module\", \"version\", \"h1\", \"go_mod_h1\"],\n \"properties\": {\n \"module\": {\"const\": \"github.com/floegence/redevplugin\"},\n \"version\": {\"type\": \"string\", \"minLength\": 6, \"maxLength\": 65, \"pattern\": \"^v(0|[1-9][0-9]*)\\\\.(0|[1-9][0-9]*)\\\\.(0|[1-9][0-9]*)$\"},\n \"h1\": {\"type\": \"string\", \"pattern\": \"^h1:[A-Za-z0-9+/]{43}=$\"},\n \"go_mod_h1\": {\"type\": \"string\", \"pattern\": \"^h1:[A-Za-z0-9+/]{43}=$\"}\n }\n },\n \"npm_package\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"name\", \"version\", \"integrity\", \"provenance_subject_sha512\"],\n \"properties\": {\n \"name\": {\"type\": \"string\", \"minLength\": 1, \"maxLength\": 128},\n \"version\": {\"$ref\": \"#/$defs/version\"},\n \"integrity\": {\"type\": \"string\", \"pattern\": \"^sha512-[A-Za-z0-9+/]{86}==$\"},\n \"provenance_subject_sha512\": {\"type\": \"string\", \"pattern\": \"^[0-9a-f]{128}$\"}\n }\n },\n \"npm_contracts\": {\n \"allOf\": [\n {\"$ref\": \"#/$defs/npm_package\"},\n {\"properties\": {\"name\": {\"const\": \"@floegence/redevplugin-contracts\"}}}\n ]\n },\n \"npm_ui\": {\n \"allOf\": [\n {\"$ref\": \"#/$defs/npm_package\"},\n {\"properties\": {\"name\": {\"const\": \"@floegence/redevplugin-ui\"}}}\n ]\n },\n \"rust_crate\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"name\", \"version\", \"registry_checksum_sha256\"],\n \"properties\": {\n \"name\": {\"type\": \"string\", \"minLength\": 1, \"maxLength\": 128},\n \"version\": {\"$ref\": \"#/$defs/version\"},\n \"registry_checksum_sha256\": {\"$ref\": \"#/$defs/sha256\"}\n }\n },\n \"rust_contracts\": {\n \"allOf\": [\n {\"$ref\": \"#/$defs/rust_crate\"},\n {\"properties\": {\"name\": {\"const\": \"redevplugin-contracts\"}}}\n ]\n },\n \"rust_ipc\": {\n \"allOf\": [\n {\"$ref\": \"#/$defs/rust_crate\"},\n {\"properties\": {\"name\": {\"const\": \"redevplugin-ipc\"}}}\n ]\n },\n \"rust_wasm_abi\": {\n \"allOf\": [\n {\"$ref\": \"#/$defs/rust_crate\"},\n {\"properties\": {\"name\": {\"const\": \"redevplugin-wasm-abi\"}}}\n ]\n },\n \"rust_target_classifier\": {\n \"allOf\": [\n {\"$ref\": \"#/$defs/rust_crate\"},\n {\"properties\": {\"name\": {\"const\": \"redevplugin-target-classifier\"}}}\n ]\n },\n \"rust_worker_sdk\": {\n \"allOf\": [\n {\"$ref\": \"#/$defs/rust_crate\"},\n {\"properties\": {\"name\": {\"const\": \"redevplugin-worker-sdk\"}}}\n ]\n },\n \"rust_runtime\": {\n \"allOf\": [\n {\"$ref\": \"#/$defs/rust_crate\"},\n {\"properties\": {\"name\": {\"const\": \"redevplugin-runtime\"}}}\n ]\n }\n }\n}\n";
127
+ }, {
128
+ readonly id: "platform-package-set-schema";
129
+ readonly path: "spec/plugin/platform-package-set-v1.schema.json";
130
+ readonly version: "platform-package-set-v1";
131
+ readonly sha256: "4d9979f5205ec047895b64c995312c588d998bb1c1448f6c9c559f1b7ab0d796";
132
+ readonly body: "{\n \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n \"$id\": \"https://schemas.redevplugin.dev/plugin/platform-package-set-v1.schema.json\",\n \"title\": \"ReDevPlugin Platform Package Set V1\",\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"schema_version\", \"platform_version\", \"go_module\", \"npm_packages\", \"rust_crates\", \"contract_registry_version\", \"contract_set_sha256\"],\n \"properties\": {\n \"schema_version\": {\"const\": \"redevplugin.platform_package_set.v1\"},\n \"platform_version\": {\"$ref\": \"#/$defs/version\"},\n \"go_module\": {\"$ref\": \"#/$defs/go_module\"},\n \"npm_packages\": {\n \"type\": \"array\",\n \"minItems\": 2,\n \"maxItems\": 2,\n \"uniqueItems\": true,\n \"prefixItems\": [\n {\"$ref\": \"#/$defs/npm_contracts\"},\n {\"$ref\": \"#/$defs/npm_ui\"}\n ],\n \"items\": false\n },\n \"rust_crates\": {\n \"type\": \"array\",\n \"minItems\": 6,\n \"maxItems\": 6,\n \"uniqueItems\": true,\n \"prefixItems\": [\n {\"$ref\": \"#/$defs/rust_contracts\"},\n {\"$ref\": \"#/$defs/rust_ipc\"},\n {\"$ref\": \"#/$defs/rust_wasm_abi\"},\n {\"$ref\": \"#/$defs/rust_target_classifier\"},\n {\"$ref\": \"#/$defs/rust_worker_sdk\"},\n {\"$ref\": \"#/$defs/rust_runtime\"}\n ],\n \"items\": false\n },\n \"contract_registry_version\": {\"const\": \"contract-registry-v2\"},\n \"contract_set_sha256\": {\"$ref\": \"#/$defs/sha256\"}\n },\n \"$defs\": {\n \"version\": {\n \"type\": \"string\",\n \"minLength\": 5,\n \"maxLength\": 64,\n \"pattern\": \"^(0|[1-9][0-9]*)\\\\.(0|[1-9][0-9]*)\\\\.(0|[1-9][0-9]*)$\"\n },\n \"sha256\": {\"type\": \"string\", \"pattern\": \"^[0-9a-f]{64}$\"},\n \"go_module\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"module\", \"version\"],\n \"properties\": {\n \"module\": {\"const\": \"github.com/floegence/redevplugin\"},\n \"version\": {\"type\": \"string\", \"minLength\": 6, \"maxLength\": 65, \"pattern\": \"^v(0|[1-9][0-9]*)\\\\.(0|[1-9][0-9]*)\\\\.(0|[1-9][0-9]*)$\"}\n }\n },\n \"npm_package\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"name\", \"version\"],\n \"properties\": {\n \"name\": {\"type\": \"string\", \"minLength\": 1, \"maxLength\": 128},\n \"version\": {\"$ref\": \"#/$defs/version\"}\n }\n },\n \"npm_contracts\": {\n \"allOf\": [\n {\"$ref\": \"#/$defs/npm_package\"},\n {\"properties\": {\"name\": {\"const\": \"@floegence/redevplugin-contracts\"}}}\n ]\n },\n \"npm_ui\": {\n \"allOf\": [\n {\"$ref\": \"#/$defs/npm_package\"},\n {\"properties\": {\"name\": {\"const\": \"@floegence/redevplugin-ui\"}}}\n ]\n },\n \"rust_crate\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"name\", \"version\", \"role\"],\n \"properties\": {\n \"name\": {\"type\": \"string\", \"minLength\": 1, \"maxLength\": 128},\n \"version\": {\"$ref\": \"#/$defs/version\"},\n \"role\": {\"enum\": [\"contracts\", \"ipc\", \"wasm_abi\", \"target_classifier\", \"worker_sdk\", \"runtime\"]}\n }\n },\n \"rust_contracts\": {\n \"allOf\": [\n {\"$ref\": \"#/$defs/rust_crate\"},\n {\"properties\": {\"name\": {\"const\": \"redevplugin-contracts\"}, \"role\": {\"const\": \"contracts\"}}}\n ]\n },\n \"rust_ipc\": {\n \"allOf\": [\n {\"$ref\": \"#/$defs/rust_crate\"},\n {\"properties\": {\"name\": {\"const\": \"redevplugin-ipc\"}, \"role\": {\"const\": \"ipc\"}}}\n ]\n },\n \"rust_wasm_abi\": {\n \"allOf\": [\n {\"$ref\": \"#/$defs/rust_crate\"},\n {\"properties\": {\"name\": {\"const\": \"redevplugin-wasm-abi\"}, \"role\": {\"const\": \"wasm_abi\"}}}\n ]\n },\n \"rust_target_classifier\": {\n \"allOf\": [\n {\"$ref\": \"#/$defs/rust_crate\"},\n {\"properties\": {\"name\": {\"const\": \"redevplugin-target-classifier\"}, \"role\": {\"const\": \"target_classifier\"}}}\n ]\n },\n \"rust_worker_sdk\": {\n \"allOf\": [\n {\"$ref\": \"#/$defs/rust_crate\"},\n {\"properties\": {\"name\": {\"const\": \"redevplugin-worker-sdk\"}, \"role\": {\"const\": \"worker_sdk\"}}}\n ]\n },\n \"rust_runtime\": {\n \"allOf\": [\n {\"$ref\": \"#/$defs/rust_crate\"},\n {\"properties\": {\"name\": {\"const\": \"redevplugin-runtime\"}, \"role\": {\"const\": \"runtime\"}}}\n ]\n }\n }\n}\n";
133
+ }, {
134
+ readonly id: "plugin-platform-openapi";
135
+ readonly path: "spec/openapi/plugin-platform-v8.yaml";
136
+ readonly version: "plugin-platform-v8";
137
+ readonly sha256: "290883ff79b74badbf9f6feddb4dfbef820a4ef4622a7e3fca815e3abb2c4eac";
138
+ readonly body: "openapi: 3.1.0\ninfo:\n title: ReDevPlugin Plugin Platform API\n version: plugin-platform-v8\n description: Host-agnostic plugin management, bridge, operation, data, and sandbox routes. Release-ref install and update routes resolve host-controlled package artifacts server-side and do not accept requested trust_state values; local-import package install/update routes are explicit developer/import flows and also do not accept caller-supplied trust_state values.\nx-redevplugin-query-policy:\n reject_url_query_strings: true\n require_closed_json_bodies: true\n require_exact_origin: true\n require_csrf: true\npaths:\n /_redevplugin/api/plugins/{plugin_instance_id}/local-import:\n post:\n operationId: importLocalPackage\n x-redevplugin-route-effect: mutation\n parameters:\n - $ref: \"#/components/parameters/PluginInstanceID\"\n requestBody:\n required: true\n content:\n application/vnd.redevplugin.package+zip:\n schema: { type: string, format: binary }\n responses:\n \"200\": { $ref: \"#/components/responses/PluginRecordResponse\" }\n default: { $ref: \"#/components/responses/MutationPlatformErrorResponse\" }\n put:\n operationId: updateLocalPackage\n x-redevplugin-route-effect: mutation\n parameters:\n - $ref: \"#/components/parameters/PluginInstanceID\"\n - name: X-ReDevPlugin-Expected-Management-Revision\n in: header\n required: true\n description: Canonical decimal management revision. Duplicate, combined, empty, or whitespace-padded values are rejected.\n schema: { type: integer, minimum: 1, maximum: 9007199254740991 }\n requestBody:\n required: true\n content:\n application/vnd.redevplugin.package+zip:\n schema: { type: string, format: binary }\n responses:\n \"200\": { $ref: \"#/components/responses/PluginRecordResponse\" }\n default: { $ref: \"#/components/responses/MutationPlatformErrorResponse\" }\n /_redevplugin/api/plugins/install-release-ref:\n post:\n operationId: installReleaseRef\n x-redevplugin-route-effect: mutation\n requestBody:\n $ref: \"#/components/requestBodies/InstallReleaseRefRequest\"\n responses:\n \"200\": { $ref: \"#/components/responses/PluginRecordResponse\" }\n default: { $ref: \"#/components/responses/MutationPlatformErrorResponse\" }\n /_redevplugin/api/plugins/enable:\n post:\n operationId: enablePlugin\n x-redevplugin-route-effect: mutation\n requestBody:\n $ref: \"#/components/requestBodies/EnableRequest\"\n responses:\n \"200\": { $ref: \"#/components/responses/PluginRecordResponse\" }\n default: { $ref: \"#/components/responses/MutationPlatformErrorResponse\" }\n /_redevplugin/api/plugins/disable:\n post:\n operationId: disablePlugin\n x-redevplugin-route-effect: mutation\n requestBody:\n $ref: \"#/components/requestBodies/DisableRequest\"\n responses:\n \"200\": { $ref: \"#/components/responses/PluginRecordResponse\" }\n default: { $ref: \"#/components/responses/MutationPlatformErrorResponse\" }\n /_redevplugin/api/plugins/uninstall:\n post:\n operationId: uninstallPlugin\n x-redevplugin-route-effect: mutation\n requestBody:\n $ref: \"#/components/requestBodies/UninstallRequest\"\n responses:\n \"200\": { $ref: \"#/components/responses/PluginRecordResponse\" }\n default: { $ref: \"#/components/responses/MutationPlatformErrorResponse\" }\n /_redevplugin/api/plugins/update-release-ref:\n post:\n operationId: updateReleaseRef\n x-redevplugin-route-effect: mutation\n requestBody:\n $ref: \"#/components/requestBodies/UpdateReleaseRefRequest\"\n responses:\n \"200\": { $ref: \"#/components/responses/PluginRecordResponse\" }\n default: { $ref: \"#/components/responses/MutationPlatformErrorResponse\" }\n /_redevplugin/api/plugins/downgrade:\n post:\n operationId: downgradePlugin\n x-redevplugin-route-effect: mutation\n requestBody:\n $ref: \"#/components/requestBodies/DowngradeRequest\"\n responses:\n \"200\": { $ref: \"#/components/responses/PluginRecordResponse\" }\n default: { $ref: \"#/components/responses/MutationPlatformErrorResponse\" }\n /_redevplugin/api/plugins/catalog/query:\n post:\n operationId: listPlugins\n x-redevplugin-route-effect: query\n requestBody:\n $ref: \"#/components/requestBodies/EmptyQueryRequest\"\n responses:\n \"200\": { $ref: \"#/components/responses/PluginCatalogResponse\" }\n default: { $ref: \"#/components/responses/PlatformErrorResponse\" }\n /_redevplugin/api/plugins/features/query:\n post:\n operationId: getPluginFeatures\n x-redevplugin-route-effect: query\n requestBody:\n $ref: \"#/components/requestBodies/EmptyQueryRequest\"\n responses:\n \"200\": { $ref: \"#/components/responses/PluginFeaturesResponse\" }\n default: { $ref: \"#/components/responses/PlatformErrorResponse\" }\n /_redevplugin/api/plugins/platform/compatibility/query:\n post:\n operationId: getPluginPlatformCompatibility\n x-redevplugin-route-effect: query\n description: Returns the host-consumable ReDevPlugin compatibility manifest for the mounted platform artifact set.\n requestBody:\n $ref: \"#/components/requestBodies/EmptyQueryRequest\"\n responses:\n \"200\": { $ref: \"#/components/responses/CompatibilityResponse\" }\n default: { $ref: \"#/components/responses/PlatformErrorResponse\" }\n /_redevplugin/api/plugins/surfaces/open:\n post:\n operationId: openPluginSurface\n x-redevplugin-route-effect: mutation\n requestBody:\n $ref: \"#/components/requestBodies/OpenSurfaceRequest\"\n responses:\n \"200\": { $ref: \"#/components/responses/SurfaceBootstrapResponse\" }\n default: { $ref: \"#/components/responses/MutationPlatformErrorResponse\" }\n /_redevplugin/api/plugins/session/revoke-scope:\n post:\n operationId: revokePluginSessionScope\n x-redevplugin-route-effect: mutation\n description: Irreversibly fences the authenticated session, drains every exact-session platform and runtime resource, and returns only public cumulative counts.\n requestBody:\n $ref: \"#/components/requestBodies/RevokeSessionScopeRequest\"\n responses:\n \"200\": { $ref: \"#/components/responses/SessionScopeRevokeResponse\" }\n default: { $ref: \"#/components/responses/MutationPlatformErrorResponse\" }\n /_redevplugin/api/plugins/surfaces/{surface_instance_id}/prepare:\n post:\n operationId: preparePluginSurface\n x-redevplugin-route-effect: mutation\n parameters:\n - $ref: \"#/components/parameters/SurfaceInstanceID\"\n requestBody:\n $ref: \"#/components/requestBodies/PrepareSurfaceRequest\"\n responses:\n \"200\": { $ref: \"#/components/responses/SurfacePreparationResponse\" }\n default: { $ref: \"#/components/responses/MutationPlatformErrorResponse\" }\n /_redevplugin/api/plugins/surfaces/{surface_instance_id}/bridge-token:\n post:\n operationId: createSurfaceBridgeToken\n x-redevplugin-route-effect: mutation\n parameters:\n - $ref: \"#/components/parameters/SurfaceInstanceID\"\n requestBody:\n $ref: \"#/components/requestBodies/TrustedParentBridgeTokenRequest\"\n responses:\n \"200\": { $ref: \"#/components/responses/BridgeTokenResponse\" }\n default: { $ref: \"#/components/responses/MutationPlatformErrorResponse\" }\n /_redevplugin/api/plugins/surfaces/{surface_instance_id}/assets/read:\n post:\n operationId: readPreparedSurfaceAsset\n x-redevplugin-route-effect: query\n parameters:\n - $ref: \"#/components/parameters/SurfaceInstanceID\"\n requestBody:\n $ref: \"#/components/requestBodies/ReadSurfaceAssetRequest\"\n responses:\n \"200\": { $ref: \"#/components/responses/SurfaceAssetResponse\" }\n default: { $ref: \"#/components/responses/PlatformErrorResponse\" }\n /_redevplugin/api/plugins/surfaces/{surface_instance_id}/streams/read:\n post:\n operationId: readPreparedSurfaceStream\n x-redevplugin-route-effect: query\n parameters:\n - $ref: \"#/components/parameters/SurfaceInstanceID\"\n requestBody:\n $ref: \"#/components/requestBodies/ReadSurfaceStreamRequest\"\n responses:\n \"200\": { $ref: \"#/components/responses/SurfaceStreamResponse\" }\n default: { $ref: \"#/components/responses/PlatformErrorResponse\" }\n /_redevplugin/api/plugins/surfaces/{surface_instance_id}/streams/ack:\n post:\n operationId: acknowledgePreparedSurfaceStream\n x-redevplugin-route-effect: mutation\n parameters:\n - $ref: \"#/components/parameters/SurfaceInstanceID\"\n requestBody:\n $ref: \"#/components/requestBodies/AcknowledgeSurfaceStreamRequest\"\n responses:\n \"200\": { $ref: \"#/components/responses/SurfaceStreamAcknowledgementResponse\" }\n default: { $ref: \"#/components/responses/MutationPlatformErrorResponse\" }\n /_redevplugin/api/plugins/surfaces/{surface_instance_id}/operations/cancel:\n post:\n operationId: cancelSurfacePluginOperation\n x-redevplugin-route-effect: mutation\n description: Cancels an operation only when it belongs to the authenticated surface, session, and private bridge channel.\n parameters:\n - $ref: \"#/components/parameters/SurfaceInstanceID\"\n requestBody:\n $ref: \"#/components/requestBodies/CancelSurfaceOperationRequest\"\n responses:\n \"200\": { $ref: \"#/components/responses/OperationRecordResponse\" }\n default: { $ref: \"#/components/responses/MutationPlatformErrorResponse\" }\n /_redevplugin/api/plugins/surfaces/{surface_instance_id}/confirmations/reject:\n post:\n operationId: rejectSurfacePluginConfirmation\n x-redevplugin-route-effect: mutation\n description: Atomically rejects a pending confirmation only when it belongs to the authenticated surface, session, current plugin revision, and private bridge channel.\n parameters:\n - $ref: \"#/components/parameters/SurfaceInstanceID\"\n requestBody:\n $ref: \"#/components/requestBodies/RejectSurfaceConfirmationRequest\"\n responses:\n \"200\": { $ref: \"#/components/responses/ConfirmationRejectionResponse\" }\n default: { $ref: \"#/components/responses/MutationPlatformErrorResponse\" }\n /_redevplugin/api/plugins/surfaces/{surface_instance_id}/dispose:\n post:\n operationId: disposePluginSurface\n x-redevplugin-route-effect: mutation\n parameters:\n - $ref: \"#/components/parameters/SurfaceInstanceID\"\n requestBody:\n $ref: \"#/components/requestBodies/DisposeSurfaceRequest\"\n responses:\n \"200\": { $ref: \"#/components/responses/SurfaceDisposeResponse\" }\n default: { $ref: \"#/components/responses/MutationPlatformErrorResponse\" }\n /_redevplugin/api/plugins/rpc:\n post:\n operationId: callPluginMethod\n x-redevplugin-route-effect: mutation\n requestBody:\n $ref: \"#/components/requestBodies/RPCRequest\"\n responses:\n \"200\": { $ref: \"#/components/responses/RPCResponse\" }\n default: { $ref: \"#/components/responses/MutationPlatformErrorResponse\" }\n /_redevplugin/api/plugins/confirmations/prepare:\n post:\n operationId: preparePluginMethodConfirmation\n x-redevplugin-route-effect: mutation\n requestBody:\n $ref: \"#/components/requestBodies/PrepareMethodConfirmationRequest\"\n responses:\n \"200\": { $ref: \"#/components/responses/PluginMethodConfirmationPreparationResponse\" }\n default: { $ref: \"#/components/responses/MutationPlatformErrorResponse\" }\n /_redevplugin/api/plugins/intents/query:\n post:\n operationId: listPluginIntents\n x-redevplugin-route-effect: query\n description: 'Lists enabled, runnable plugin intents available to host-mediated interop. The response data is `{ \"intents\": [...] }`.'\n requestBody:\n $ref: \"#/components/requestBodies/ListIntentsQueryRequest\"\n responses:\n \"200\": { $ref: \"#/components/responses/IntentListResponse\" }\n default: { $ref: \"#/components/responses/PlatformErrorResponse\" }\n /_redevplugin/api/plugins/intents/invoke:\n post:\n operationId: invokePluginIntent\n x-redevplugin-route-effect: mutation\n description: Invokes a host-mediated plugin intent without iframe gateway tokens while preserving local policy, permission grants, and dangerous-method fail-closed checks.\n requestBody:\n $ref: \"#/components/requestBodies/InvokeIntentRequest\"\n responses:\n \"200\": { $ref: \"#/components/responses/RPCResponse\" }\n default: { $ref: \"#/components/responses/MutationPlatformErrorResponse\" }\n /_redevplugin/api/plugins/operations/query:\n post:\n operationId: listPluginOperations\n x-redevplugin-route-effect: query\n requestBody:\n $ref: \"#/components/requestBodies/ListOperationsQueryRequest\"\n responses:\n \"200\": { $ref: \"#/components/responses/OperationListResponse\" }\n default: { $ref: \"#/components/responses/PlatformErrorResponse\" }\n /_redevplugin/api/plugins/operations/{operation_id}/query:\n post:\n operationId: getPluginOperation\n x-redevplugin-route-effect: query\n parameters:\n - $ref: \"#/components/parameters/OperationID\"\n requestBody:\n $ref: \"#/components/requestBodies/EmptyQueryRequest\"\n responses:\n \"200\": { $ref: \"#/components/responses/OperationRecordResponse\" }\n default: { $ref: \"#/components/responses/PlatformErrorResponse\" }\n /_redevplugin/api/plugins/operations/{operation_id}/cancel:\n post:\n operationId: cancelPluginOperation\n x-redevplugin-route-effect: mutation\n parameters:\n - $ref: \"#/components/parameters/OperationID\"\n requestBody:\n $ref: \"#/components/requestBodies/CancelOperationRequest\"\n responses:\n \"200\": { $ref: \"#/components/responses/OperationRecordResponse\" }\n default: { $ref: \"#/components/responses/MutationPlatformErrorResponse\" }\n /_redevplugin/api/plugins/runtime/start:\n post:\n operationId: startPluginRuntime\n x-redevplugin-route-effect: mutation\n requestBody:\n $ref: \"#/components/requestBodies/StartRuntimeRequest\"\n responses:\n \"200\": { $ref: \"#/components/responses/RuntimeHealthResponse\" }\n default: { $ref: \"#/components/responses/MutationPlatformErrorResponse\" }\n /_redevplugin/api/plugins/runtime/stop:\n post:\n operationId: stopPluginRuntime\n x-redevplugin-route-effect: mutation\n requestBody:\n $ref: \"#/components/requestBodies/EmptyRequest\"\n responses:\n \"200\": { $ref: \"#/components/responses/RuntimeStopResponse\" }\n default: { $ref: \"#/components/responses/MutationPlatformErrorResponse\" }\n /_redevplugin/api/plugins/runtime/refresh-enabled:\n post:\n operationId: refreshEnabledPluginRuntimeState\n x-redevplugin-route-effect: mutation\n description: 'Replays runtime-derived state for enabled plugins after the embedding host process restarts or reattaches adapters. The response data is `{ \"results\": [...] }`.'\n requestBody:\n $ref: \"#/components/requestBodies/EmptyRequest\"\n responses:\n \"200\": { $ref: \"#/components/responses/RuntimeRefreshResponse\" }\n default: { $ref: \"#/components/responses/MutationPlatformErrorResponse\" }\n /_redevplugin/api/plugins/runtime/health/query:\n post:\n operationId: getPluginRuntimeHealth\n x-redevplugin-route-effect: query\n requestBody:\n $ref: \"#/components/requestBodies/EmptyQueryRequest\"\n responses:\n \"200\": { $ref: \"#/components/responses/RuntimeHealthResponse\" }\n default: { $ref: \"#/components/responses/PlatformErrorResponse\" }\n /_redevplugin/api/plugins/data/export:\n post:\n operationId: exportPluginData\n x-redevplugin-route-effect: mutation\n requestBody:\n $ref: \"#/components/requestBodies/ExportDataRequest\"\n responses:\n \"200\": { $ref: \"#/components/responses/DataExportResponse\" }\n default: { $ref: \"#/components/responses/MutationPlatformErrorResponse\" }\n /_redevplugin/api/plugins/data/export/delete:\n post:\n operationId: deletePluginDataExport\n x-redevplugin-route-effect: mutation\n requestBody:\n $ref: \"#/components/requestBodies/DeleteDataExportRequest\"\n responses:\n \"200\": { $ref: \"#/components/responses/DataExportDeleteResponse\" }\n default: { $ref: \"#/components/responses/MutationPlatformErrorResponse\" }\n /_redevplugin/api/plugins/data/import:\n post:\n operationId: importPluginData\n x-redevplugin-route-effect: mutation\n requestBody:\n $ref: \"#/components/requestBodies/ImportDataRequest\"\n responses:\n \"200\": { $ref: \"#/components/responses/DataImportResponse\" }\n default: { $ref: \"#/components/responses/MutationPlatformErrorResponse\" }\n /_redevplugin/api/plugins/retained-data/query:\n post:\n operationId: listPluginRetainedData\n x-redevplugin-route-effect: query\n requestBody:\n $ref: \"#/components/requestBodies/ListRetainedDataQueryRequest\"\n responses:\n \"200\": { $ref: \"#/components/responses/RetainedDataListResponse\" }\n default: { $ref: \"#/components/responses/PlatformErrorResponse\" }\n /_redevplugin/api/plugins/retained-data/delete:\n post:\n operationId: deletePluginRetainedData\n x-redevplugin-route-effect: mutation\n requestBody:\n $ref: \"#/components/requestBodies/DeleteRetainedDataRequest\"\n responses:\n \"200\": { $ref: \"#/components/responses/RetainedDataBindingResponse\" }\n default: { $ref: \"#/components/responses/MutationPlatformErrorResponse\" }\n /_redevplugin/api/plugins/retained-data/bind:\n post:\n operationId: bindPluginRetainedData\n x-redevplugin-route-effect: mutation\n requestBody:\n $ref: \"#/components/requestBodies/BindRetainedDataRequest\"\n responses:\n \"200\": { $ref: \"#/components/responses/RetainedDataBindingResponse\" }\n default: { $ref: \"#/components/responses/MutationPlatformErrorResponse\" }\n /_redevplugin/api/plugins/retained-data/cleanup-expired:\n post:\n operationId: cleanupExpiredPluginRetainedData\n x-redevplugin-route-effect: mutation\n requestBody:\n $ref: \"#/components/requestBodies/CleanupExpiredRetainedDataRequest\"\n responses:\n \"200\": { $ref: \"#/components/responses/RetainedDataCleanupResponse\" }\n default: { $ref: \"#/components/responses/MutationPlatformErrorResponse\" }\n /_redevplugin/api/plugins/permissions/query:\n post:\n operationId: listPluginPermissionGrants\n x-redevplugin-route-effect: query\n requestBody:\n $ref: \"#/components/requestBodies/ListPermissionsQueryRequest\"\n responses:\n \"200\": { $ref: \"#/components/responses/PermissionListResponse\" }\n default: { $ref: \"#/components/responses/PlatformErrorResponse\" }\n /_redevplugin/api/plugins/permissions/grant:\n post:\n operationId: grantPluginPermission\n x-redevplugin-route-effect: mutation\n requestBody:\n $ref: \"#/components/requestBodies/GrantPermissionRequest\"\n responses:\n \"200\": { $ref: \"#/components/responses/PermissionMutationResponse\" }\n default: { $ref: \"#/components/responses/MutationPlatformErrorResponse\" }\n /_redevplugin/api/plugins/permissions/revoke:\n post:\n operationId: revokePluginPermission\n x-redevplugin-route-effect: mutation\n requestBody:\n $ref: \"#/components/requestBodies/RevokePermissionRequest\"\n responses:\n \"200\": { $ref: \"#/components/responses/PermissionMutationResponse\" }\n default: { $ref: \"#/components/responses/MutationPlatformErrorResponse\" }\n /_redevplugin/api/plugins/security-policies/query:\n post:\n operationId: listPluginSecurityPolicies\n x-redevplugin-route-effect: query\n requestBody:\n $ref: \"#/components/requestBodies/EmptyQueryRequest\"\n responses:\n \"200\": { $ref: \"#/components/responses/SecurityPolicyListResponse\" }\n default: { $ref: \"#/components/responses/PlatformErrorResponse\" }\n /_redevplugin/api/plugins/security-policies/{plugin_instance_id}/query:\n post:\n operationId: getPluginSecurityPolicy\n x-redevplugin-route-effect: query\n parameters:\n - $ref: \"#/components/parameters/PluginInstanceID\"\n requestBody:\n $ref: \"#/components/requestBodies/EmptyQueryRequest\"\n responses:\n \"200\": { $ref: \"#/components/responses/SecurityPolicyRecordResponse\" }\n default: { $ref: \"#/components/responses/PlatformErrorResponse\" }\n /_redevplugin/api/plugins/security-policies/{plugin_instance_id}:\n put:\n operationId: putPluginSecurityPolicy\n x-redevplugin-route-effect: mutation\n parameters:\n - $ref: \"#/components/parameters/PluginInstanceID\"\n requestBody:\n $ref: \"#/components/requestBodies/PutSecurityPolicyRequest\"\n responses:\n \"200\": { $ref: \"#/components/responses/SecurityPolicyRecordResponse\" }\n default: { $ref: \"#/components/responses/MutationPlatformErrorResponse\" }\n delete:\n operationId: deletePluginSecurityPolicy\n x-redevplugin-route-effect: mutation\n parameters:\n - $ref: \"#/components/parameters/PluginInstanceID\"\n requestBody:\n $ref: \"#/components/requestBodies/DeleteSecurityPolicyRequest\"\n responses:\n \"200\": { $ref: \"#/components/responses/SecurityPolicyDeleteResponse\" }\n default: { $ref: \"#/components/responses/MutationPlatformErrorResponse\" }\n /_redevplugin/api/plugins/diagnostics/query:\n post:\n operationId: listPluginDiagnosticEvents\n x-redevplugin-route-effect: query\n requestBody:\n $ref: \"#/components/requestBodies/ListDiagnosticsQueryRequest\"\n responses:\n \"200\": { $ref: \"#/components/responses/DiagnosticEventListResponse\" }\n default: { $ref: \"#/components/responses/PlatformErrorResponse\" }\n /_redevplugin/api/plugins/secrets/bind:\n post:\n operationId: bindPluginSecret\n x-redevplugin-route-effect: mutation\n requestBody:\n $ref: \"#/components/requestBodies/SecretRefRequest\"\n responses:\n \"200\": { $ref: \"#/components/responses/SecretBindResponse\" }\n default: { $ref: \"#/components/responses/MutationPlatformErrorResponse\" }\n /_redevplugin/api/plugins/secrets/test:\n post:\n operationId: testPluginSecret\n x-redevplugin-route-effect: mutation\n requestBody:\n $ref: \"#/components/requestBodies/SecretRefRequest\"\n responses:\n \"200\": { $ref: \"#/components/responses/SecretTestResponse\" }\n default: { $ref: \"#/components/responses/MutationPlatformErrorResponse\" }\n /_redevplugin/api/plugins/secrets/delete:\n post:\n operationId: deletePluginSecret\n x-redevplugin-route-effect: mutation\n requestBody:\n $ref: \"#/components/requestBodies/SecretRefRequest\"\n responses:\n \"200\": { $ref: \"#/components/responses/SecretDeleteResponse\" }\n default: { $ref: \"#/components/responses/MutationPlatformErrorResponse\" }\n /_redevplugin/api/plugins/{plugin_instance_id}/settings/schema/query:\n post:\n operationId: getPluginSettingsSchema\n x-redevplugin-route-effect: query\n parameters:\n - $ref: \"#/components/parameters/PluginInstanceID\"\n requestBody:\n $ref: \"#/components/requestBodies/SettingsQueryRequest\"\n responses:\n \"200\": { $ref: \"#/components/responses/SettingsSchemaResponse\" }\n default: { $ref: \"#/components/responses/PlatformErrorResponse\" }\n /_redevplugin/api/plugins/{plugin_instance_id}/settings/query:\n post:\n operationId: getPluginSettings\n x-redevplugin-route-effect: query\n parameters:\n - $ref: \"#/components/parameters/PluginInstanceID\"\n requestBody:\n $ref: \"#/components/requestBodies/SettingsQueryRequest\"\n responses:\n \"200\": { $ref: \"#/components/responses/SettingsSnapshotResponse\" }\n default: { $ref: \"#/components/responses/PlatformErrorResponse\" }\n /_redevplugin/api/plugins/{plugin_instance_id}/settings:\n patch:\n operationId: patchPluginSettings\n x-redevplugin-route-effect: mutation\n parameters:\n - $ref: \"#/components/parameters/PluginInstanceID\"\n requestBody:\n $ref: \"#/components/requestBodies/PatchSettingsRequest\"\n responses:\n \"200\": { $ref: \"#/components/responses/SettingsSnapshotResponse\" }\n default: { $ref: \"#/components/responses/MutationPlatformErrorResponse\" }\ncomponents:\n parameters:\n OperationID:\n name: operation_id\n in: path\n required: true\n schema: { type: string }\n PluginInstanceID:\n name: plugin_instance_id\n in: path\n required: true\n schema: { type: string }\n SurfaceInstanceID:\n name: surface_instance_id\n in: path\n required: true\n schema: { type: string }\n responses:\n PlatformErrorResponse:\n description: Closed non-success response for read-only platform operations.\n content:\n application/json:\n schema:\n $ref: \"#/components/schemas/PlatformErrorResponse\"\n MutationPlatformErrorResponse:\n description: Closed non-success response for operations that may change durable platform state.\n content:\n application/json:\n schema:\n $ref: \"#/components/schemas/MutationPlatformErrorResponse\"\n RPCResponse:\n description: Typed plugin method result. Subscriptions always bind one operation and one stream.\n content:\n application/json:\n schema:\n $ref: \"#/components/schemas/RPCSuccessResponse\"\n SurfaceBootstrapResponse:\n description: Trusted-parent surface bootstrap. Capability-bearing fields are never forwarded into the opaque iframe or plugin worker.\n content:\n application/json:\n schema:\n $ref: \"#/components/schemas/SurfaceBootstrapSuccessResponse\"\n SurfacePreparationResponse:\n description: Trusted-parent asset-session exchange and validated opaque surface document.\n content:\n application/json:\n schema:\n $ref: \"#/components/schemas/SurfacePreparationSuccessResponse\"\n BridgeTokenResponse:\n description: Trusted-parent plugin gateway token response.\n content:\n application/json:\n schema:\n $ref: \"#/components/schemas/BridgeTokenSuccessResponse\"\n SurfaceAssetResponse:\n description: Trusted-parent package asset response. The plugin receives only a renderer-created blob URL.\n content:\n application/json:\n schema:\n $ref: \"#/components/schemas/SurfaceAssetSuccessResponse\"\n SurfaceStreamResponse:\n description: Trusted-parent stream redemption response. Stream tickets remain outside the plugin worker.\n content:\n application/json:\n schema:\n $ref: \"#/components/schemas/SurfaceStreamSuccessResponse\"\n SurfaceStreamAcknowledgementResponse:\n description: Confirms one exact stream delivery so the platform may release its events.\n content:\n application/json:\n schema:\n $ref: \"#/components/schemas/SurfaceStreamAcknowledgementSuccessResponse\"\n SurfaceDisposeResponse:\n description: Surface revocation response.\n content:\n application/json:\n schema:\n $ref: \"#/components/schemas/SurfaceDisposeSuccessResponse\"\n SessionScopeRevokeResponse:\n description: Completed authenticated-session teardown response.\n content:\n application/json:\n schema:\n $ref: \"#/components/schemas/SessionScopeRevokeSuccessResponse\"\n PluginRecordResponse:\n description: Plugin lifecycle response with typed registry trust assessment.\n content:\n application/json:\n schema:\n $ref: \"#/components/schemas/PluginRecordSuccessResponse\"\n PluginCatalogResponse:\n description: Installed plugin catalog response with typed registry records.\n content:\n application/json:\n schema:\n $ref: \"#/components/schemas/PluginCatalogSuccessResponse\"\n PluginFeaturesResponse:\n description: Closed set of optional host modules configured for this platform.\n content:\n application/json:\n schema:\n $ref: \"#/components/schemas/PluginFeaturesSuccessResponse\"\n CompatibilityResponse:\n description: Released platform compatibility manifest.\n content:\n application/json:\n schema:\n $ref: \"#/components/schemas/CompatibilitySuccessResponse\"\n PluginMethodConfirmationPreparationResponse:\n description: Prepared plugin method confirmation. The raw confirmation token stays server-side and is never returned to parent JavaScript or the plugin iframe.\n content:\n application/json:\n schema:\n $ref: \"#/components/schemas/PluginMethodConfirmationPreparationSuccessResponse\"\n ConfirmationRejectionResponse:\n description: Trusted-parent acknowledgement that the pending confirmation was atomically rejected and cannot be replayed.\n content:\n application/json:\n schema:\n $ref: \"#/components/schemas/ConfirmationRejectionSuccessResponse\"\n IntentListResponse:\n description: Enabled plugin intent records.\n content:\n application/json:\n schema:\n $ref: \"#/components/schemas/IntentListSuccessResponse\"\n RetainedDataListResponse:\n description: Retained plugin data list response.\n content:\n application/json:\n schema:\n $ref: \"#/components/schemas/RetainedDataListSuccessResponse\"\n RetainedDataBindingResponse:\n description: Plugin data binding returned after a retained-data mutation.\n content:\n application/json:\n schema:\n $ref: \"#/components/schemas/RetainedDataBindingSuccessResponse\"\n RetainedDataCleanupResponse:\n description: Retained plugin data cleanup response.\n content:\n application/json:\n schema:\n $ref: \"#/components/schemas/RetainedDataCleanupSuccessResponse\"\n OperationRecordResponse:\n description: Host-owned operation record with its immutable execution binding.\n content:\n application/json:\n schema:\n $ref: \"#/components/schemas/OperationRecordSuccessResponse\"\n OperationListResponse:\n description: Host-owned operation records with immutable execution bindings.\n content:\n application/json:\n schema:\n $ref: \"#/components/schemas/OperationListSuccessResponse\"\n RuntimeHealthResponse:\n description: Runtime manager and shard health.\n content:\n application/json:\n schema:\n $ref: \"#/components/schemas/RuntimeHealthSuccessResponse\"\n RuntimeStopResponse:\n description: Runtime manager stop acknowledgement.\n content:\n application/json:\n schema:\n $ref: \"#/components/schemas/RuntimeStopSuccessResponse\"\n RuntimeRefreshResponse:\n description: Enabled plugin runtime refresh result.\n content:\n application/json:\n schema:\n $ref: \"#/components/schemas/RuntimeRefreshSuccessResponse\"\n DataExportResponse:\n description: Plugin data export result.\n content:\n application/json:\n schema:\n $ref: \"#/components/schemas/DataExportSuccessResponse\"\n DataExportDeleteResponse:\n description: Immutable plugin data export deletion acknowledgement.\n content:\n application/json:\n schema:\n $ref: \"#/components/schemas/DataExportDeleteSuccessResponse\"\n DataImportResponse:\n description: Plugin record after the imported dataset becomes active.\n content:\n application/json:\n schema:\n $ref: \"#/components/schemas/PluginRecordSuccessResponse\"\n PermissionListResponse:\n description: Permission grants for the requested plugin scope.\n content:\n application/json:\n schema:\n $ref: \"#/components/schemas/PermissionListSuccessResponse\"\n PermissionMutationResponse:\n description: Permission grant mutation result.\n content:\n application/json:\n schema:\n $ref: \"#/components/schemas/PermissionMutationSuccessResponse\"\n SecurityPolicyListResponse:\n description: Complete list of configured plugin security policies.\n content:\n application/json:\n schema:\n $ref: \"#/components/schemas/SecurityPolicyListSuccessResponse\"\n SecurityPolicyRecordResponse:\n description: Complete security policy for one plugin instance.\n content:\n application/json:\n schema:\n $ref: \"#/components/schemas/SecurityPolicyRecordSuccessResponse\"\n SecurityPolicyDeleteResponse:\n description: Security policy deletion acknowledgement.\n content:\n application/json:\n schema:\n $ref: \"#/components/schemas/SecurityPolicyDeleteSuccessResponse\"\n DiagnosticEventListResponse:\n description: Diagnostic events matching the requested filters.\n content:\n application/json:\n schema:\n $ref: \"#/components/schemas/DiagnosticEventListSuccessResponse\"\n SecretBindResponse:\n description: Secret reference bind acknowledgement.\n content:\n application/json:\n schema:\n $ref: \"#/components/schemas/SecretBindSuccessResponse\"\n SecretTestResponse:\n description: Secret reference test acknowledgement.\n content:\n application/json:\n schema:\n $ref: \"#/components/schemas/SecretTestSuccessResponse\"\n SecretDeleteResponse:\n description: Secret reference deletion acknowledgement.\n content:\n application/json:\n schema:\n $ref: \"#/components/schemas/SecretDeleteSuccessResponse\"\n SettingsSchemaResponse:\n description: Plugin settings schema.\n content:\n application/json:\n schema:\n $ref: \"#/components/schemas/SettingsSchemaSuccessResponse\"\n SettingsSnapshotResponse:\n description: Plugin settings snapshot.\n content:\n application/json:\n schema:\n $ref: \"#/components/schemas/SettingsSnapshotSuccessResponse\"\n requestBodies:\n InstallReleaseRefRequest:\n required: true\n content:\n application/json:\n schema:\n $ref: \"#/components/schemas/InstallReleaseRefRequest\"\n UpdateReleaseRefRequest:\n required: true\n content:\n application/json:\n schema:\n $ref: \"#/components/schemas/UpdateReleaseRefRequest\"\n DowngradeRequest:\n required: true\n content:\n application/json:\n schema:\n $ref: \"#/components/schemas/DowngradeRequest\"\n EnableRequest:\n required: true\n content:\n application/json:\n schema:\n $ref: \"#/components/schemas/EnableRequest\"\n DisableRequest:\n required: true\n content:\n application/json:\n schema:\n $ref: \"#/components/schemas/DisableRequest\"\n UninstallRequest:\n required: true\n content:\n application/json:\n schema:\n $ref: \"#/components/schemas/UninstallRequest\"\n OpenSurfaceRequest:\n required: true\n content:\n application/json:\n schema:\n $ref: \"#/components/schemas/OpenSurfaceRequest\"\n RevokeSessionScopeRequest:\n required: true\n content:\n application/json:\n schema:\n $ref: \"#/components/schemas/RevokeSessionScopeRequest\"\n EmptyRequest:\n required: true\n content:\n application/json:\n schema:\n $ref: \"#/components/schemas/EmptyRequest\"\n EmptyQueryRequest:\n required: true\n content:\n application/json:\n schema:\n $ref: \"#/components/schemas/EmptyQueryRequest\"\n ListIntentsQueryRequest:\n required: true\n content:\n application/json:\n schema:\n $ref: \"#/components/schemas/ListIntentsQueryRequest\"\n ListOperationsQueryRequest:\n required: true\n content:\n application/json:\n schema:\n $ref: \"#/components/schemas/ListOperationsQueryRequest\"\n ListRetainedDataQueryRequest:\n required: true\n content:\n application/json:\n schema:\n $ref: \"#/components/schemas/ListRetainedDataQueryRequest\"\n ListPermissionsQueryRequest:\n required: true\n content:\n application/json:\n schema:\n $ref: \"#/components/schemas/ListPermissionsQueryRequest\"\n ListDiagnosticsQueryRequest:\n required: true\n content:\n application/json:\n schema:\n $ref: \"#/components/schemas/ListDiagnosticsQueryRequest\"\n SettingsQueryRequest:\n required: true\n content:\n application/json:\n schema:\n $ref: \"#/components/schemas/SettingsQueryRequest\"\n PrepareSurfaceRequest:\n required: true\n content:\n application/json:\n schema:\n $ref: \"#/components/schemas/PrepareSurfaceRequest\"\n TrustedParentBridgeTokenRequest:\n required: true\n content:\n application/json:\n schema:\n $ref: \"#/components/schemas/TrustedParentBridgeTokenRequest\"\n ReadSurfaceAssetRequest:\n required: true\n content:\n application/json:\n schema:\n $ref: \"#/components/schemas/ReadSurfaceAssetRequest\"\n ReadSurfaceStreamRequest:\n required: true\n content:\n application/json:\n schema:\n $ref: \"#/components/schemas/ReadSurfaceStreamRequest\"\n AcknowledgeSurfaceStreamRequest:\n required: true\n content:\n application/json:\n schema:\n $ref: \"#/components/schemas/AcknowledgeSurfaceStreamRequest\"\n CancelSurfaceOperationRequest:\n required: true\n content:\n application/json:\n schema:\n $ref: \"#/components/schemas/CancelSurfaceOperationRequest\"\n RejectSurfaceConfirmationRequest:\n required: true\n content:\n application/json:\n schema:\n $ref: \"#/components/schemas/RejectSurfaceConfirmationRequest\"\n DisposeSurfaceRequest:\n required: true\n content:\n application/json:\n schema:\n $ref: \"#/components/schemas/DisposeSurfaceRequest\"\n RPCRequest:\n required: true\n content:\n application/json:\n schema:\n $ref: \"#/components/schemas/RPCRequest\"\n PrepareMethodConfirmationRequest:\n required: true\n content:\n application/json:\n schema:\n $ref: \"#/components/schemas/PrepareMethodConfirmationRequest\"\n InvokeIntentRequest:\n required: true\n content:\n application/json:\n schema:\n $ref: \"#/components/schemas/InvokeIntentRequest\"\n CancelOperationRequest:\n required: true\n content:\n application/json:\n schema:\n $ref: \"#/components/schemas/CancelOperationRequest\"\n StartRuntimeRequest:\n required: true\n content:\n application/json:\n schema:\n $ref: \"#/components/schemas/StartRuntimeRequest\"\n ExportDataRequest:\n required: true\n content:\n application/json:\n schema:\n $ref: \"#/components/schemas/ExportDataRequest\"\n DeleteDataExportRequest:\n required: true\n content:\n application/json:\n schema:\n $ref: \"#/components/schemas/DeleteDataExportRequest\"\n ImportDataRequest:\n required: true\n content:\n application/json:\n schema:\n $ref: \"#/components/schemas/ImportDataRequest\"\n DeleteRetainedDataRequest:\n required: true\n content:\n application/json:\n schema:\n $ref: \"#/components/schemas/DeleteRetainedDataRequest\"\n BindRetainedDataRequest:\n required: true\n content:\n application/json:\n schema:\n $ref: \"#/components/schemas/BindRetainedDataRequest\"\n CleanupExpiredRetainedDataRequest:\n required: true\n content:\n application/json:\n schema:\n $ref: \"#/components/schemas/CleanupExpiredRetainedDataRequest\"\n GrantPermissionRequest:\n required: true\n content:\n application/json:\n schema:\n $ref: \"#/components/schemas/GrantPermissionRequest\"\n RevokePermissionRequest:\n required: true\n content:\n application/json:\n schema:\n $ref: \"#/components/schemas/RevokePermissionRequest\"\n PutSecurityPolicyRequest:\n required: true\n content:\n application/json:\n schema:\n $ref: \"#/components/schemas/PutSecurityPolicyRequest\"\n DeleteSecurityPolicyRequest:\n required: true\n content:\n application/json:\n schema:\n $ref: \"#/components/schemas/DeleteSecurityPolicyRequest\"\n SecretRefRequest:\n required: true\n content:\n application/json:\n schema:\n $ref: \"#/components/schemas/SecretRefRequest\"\n PatchSettingsRequest:\n required: true\n content:\n application/json:\n schema:\n $ref: \"#/components/schemas/PatchSettingsRequest\"\n schemas:\n PlatformErrorResponse:\n type: object\n required: [ok, error]\n additionalProperties: false\n properties:\n ok: { const: false }\n error:\n $ref: \"#/components/schemas/PlatformError\"\n MutationPlatformErrorResponse:\n type: object\n required: [ok, error]\n additionalProperties: false\n properties:\n ok: { const: false }\n error:\n $ref: \"#/components/schemas/MutationPlatformError\"\n RPCSuccessResponse:\n type: object\n required: [ok, data]\n additionalProperties: false\n properties:\n ok: { const: true }\n data: { $ref: \"#/components/schemas/RPCResult\" }\n SurfaceBootstrapSuccessResponse:\n type: object\n required: [ok, data]\n additionalProperties: false\n properties:\n ok: { const: true }\n data: { $ref: \"#/components/schemas/SurfaceBootstrap\" }\n SurfacePreparationSuccessResponse:\n type: object\n required: [ok, data]\n additionalProperties: false\n properties:\n ok: { const: true }\n data: { $ref: \"#/components/schemas/SurfacePreparation\" }\n BridgeTokenSuccessResponse:\n type: object\n required: [ok, data]\n additionalProperties: false\n properties:\n ok: { const: true }\n data: { $ref: \"#/components/schemas/BridgeTokenResult\" }\n SurfaceAssetSuccessResponse:\n type: object\n required: [ok, data]\n additionalProperties: false\n properties:\n ok: { const: true }\n data: { $ref: \"#/components/schemas/SurfaceAssetResult\" }\n SurfaceStreamSuccessResponse:\n type: object\n required: [ok, data]\n additionalProperties: false\n properties:\n ok: { const: true }\n data: { $ref: \"#/components/schemas/SurfaceStreamResult\" }\n SurfaceStreamAcknowledgementSuccessResponse:\n type: object\n required: [ok, data]\n additionalProperties: false\n properties:\n ok: { const: true }\n data: { $ref: \"#/components/schemas/SurfaceStreamAcknowledgementResult\" }\n SurfaceDisposeSuccessResponse:\n type: object\n required: [ok, data]\n additionalProperties: false\n properties:\n ok: { const: true }\n data: { $ref: \"#/components/schemas/SurfaceDisposeResult\" }\n SessionScopeRevokeSuccessResponse:\n type: object\n required: [ok, data]\n additionalProperties: false\n properties:\n ok: { const: true }\n data: { $ref: \"#/components/schemas/SessionScopeRevokeCompleteResult\" }\n PluginRecordSuccessResponse:\n type: object\n required: [ok, data]\n additionalProperties: false\n properties:\n ok: { const: true }\n data: { $ref: \"#/components/schemas/PluginRecord\" }\n PluginCatalogSuccessResponse:\n type: object\n required: [ok, data]\n additionalProperties: false\n properties:\n ok: { const: true }\n data: { $ref: \"#/components/schemas/PluginCatalogResult\" }\n PluginFeaturesSuccessResponse:\n type: object\n required: [ok, data]\n additionalProperties: false\n properties:\n ok: { const: true }\n data:\n type: array\n uniqueItems: true\n items:\n type: string\n enum: [release, runtime, capability, connectivity, secrets, core_action]\n CompatibilitySuccessResponse:\n type: object\n required: [ok, data]\n additionalProperties: false\n properties:\n ok: { const: true }\n data: { $ref: \"#/components/schemas/PluginCompatibilityManifest\" }\n PluginMethodConfirmationPreparationSuccessResponse:\n type: object\n required: [ok, data]\n additionalProperties: false\n properties:\n ok: { const: true }\n data: { $ref: \"#/components/schemas/PluginMethodConfirmationPreparation\" }\n ConfirmationRejectionSuccessResponse:\n type: object\n required: [ok, data]\n additionalProperties: false\n properties:\n ok: { const: true }\n data: { $ref: \"#/components/schemas/ConfirmationRejectionResult\" }\n IntentListSuccessResponse:\n type: object\n required: [ok, data]\n additionalProperties: false\n properties:\n ok: { const: true }\n data: { $ref: \"#/components/schemas/PluginIntentList\" }\n RetainedDataListSuccessResponse:\n type: object\n required: [ok, data]\n additionalProperties: false\n properties:\n ok: { const: true }\n data: { $ref: \"#/components/schemas/RetainedDataList\" }\n RetainedDataBindingSuccessResponse:\n type: object\n required: [ok, data]\n additionalProperties: false\n properties:\n ok: { const: true }\n data: { $ref: \"#/components/schemas/PluginDataBinding\" }\n RetainedDataCleanupSuccessResponse:\n type: object\n required: [ok, data]\n additionalProperties: false\n properties:\n ok: { const: true }\n data: { $ref: \"#/components/schemas/RetainedDataCleanupResult\" }\n OperationRecordSuccessResponse:\n type: object\n required: [ok, data]\n additionalProperties: false\n properties:\n ok: { const: true }\n data: { $ref: \"#/components/schemas/OperationRecord\" }\n OperationListSuccessResponse:\n type: object\n required: [ok, data]\n additionalProperties: false\n properties:\n ok: { const: true }\n data: { $ref: \"#/components/schemas/PluginOperationList\" }\n RuntimeHealthSuccessResponse:\n type: object\n required: [ok, data]\n additionalProperties: false\n properties:\n ok: { const: true }\n data: { $ref: \"#/components/schemas/PluginRuntimeHealth\" }\n RuntimeStopSuccessResponse:\n type: object\n required: [ok, data]\n additionalProperties: false\n properties:\n ok: { const: true }\n data: { $ref: \"#/components/schemas/PluginRuntimeStopResult\" }\n RuntimeRefreshSuccessResponse:\n type: object\n required: [ok, data]\n additionalProperties: false\n properties:\n ok: { const: true }\n data: { $ref: \"#/components/schemas/PluginRuntimeRefreshResult\" }\n DataExportSuccessResponse:\n type: object\n required: [ok, data]\n additionalProperties: false\n properties:\n ok: { const: true }\n data: { $ref: \"#/components/schemas/PluginDataExportResult\" }\n DataExportDeleteSuccessResponse:\n type: object\n required: [ok, data]\n additionalProperties: false\n properties:\n ok: { const: true }\n data: { $ref: \"#/components/schemas/PluginDataExportDeleteResult\" }\n PermissionListSuccessResponse:\n type: object\n required: [ok, data]\n additionalProperties: false\n properties:\n ok: { const: true }\n data: { $ref: \"#/components/schemas/PluginPermissionList\" }\n PermissionMutationSuccessResponse:\n type: object\n required: [ok, data]\n additionalProperties: false\n properties:\n ok: { const: true }\n data: { $ref: \"#/components/schemas/PluginPermissionMutationResult\" }\n SecurityPolicyListSuccessResponse:\n type: object\n required: [ok, data]\n additionalProperties: false\n properties:\n ok: { const: true }\n data: { $ref: \"#/components/schemas/PluginSecurityPolicyList\" }\n SecurityPolicyRecordSuccessResponse:\n type: object\n required: [ok, data]\n additionalProperties: false\n properties:\n ok: { const: true }\n data: { $ref: \"#/components/schemas/PluginSecurityPolicy\" }\n SecurityPolicyDeleteSuccessResponse:\n type: object\n required: [ok, data]\n additionalProperties: false\n properties:\n ok: { const: true }\n data: { $ref: \"#/components/schemas/PluginSecurityPolicyDeleteResult\" }\n DiagnosticEventListSuccessResponse:\n type: object\n required: [ok, data]\n additionalProperties: false\n properties:\n ok: { const: true }\n data: { $ref: \"#/components/schemas/PluginDiagnosticEventList\" }\n SecretBindSuccessResponse:\n type: object\n required: [ok, data]\n additionalProperties: false\n properties:\n ok: { const: true }\n data: { $ref: \"#/components/schemas/PluginSecretBindResult\" }\n SecretTestSuccessResponse:\n type: object\n required: [ok, data]\n additionalProperties: false\n properties:\n ok: { const: true }\n data: { $ref: \"#/components/schemas/PluginSecretTestResult\" }\n SecretDeleteSuccessResponse:\n type: object\n required: [ok, data]\n additionalProperties: false\n properties:\n ok: { const: true }\n data: { $ref: \"#/components/schemas/PluginSecretDeleteResult\" }\n SettingsSchemaSuccessResponse:\n type: object\n required: [ok, data]\n additionalProperties: false\n properties:\n ok: { const: true }\n data: { $ref: \"#/components/schemas/PluginSettingsSchema\" }\n SettingsSnapshotSuccessResponse:\n type: object\n required: [ok, data]\n additionalProperties: false\n properties:\n ok: { const: true }\n data: { $ref: \"#/components/schemas/PluginSettingsSnapshot\" }\n PlatformError:\n oneOf:\n - $ref: \"#/components/schemas/GenericPlatformError\"\n - $ref: \"#/components/schemas/JSONLimitPlatformError\"\n - $ref: \"#/components/schemas/PackageValidationPlatformError\"\n - $ref: \"#/components/schemas/ManagementRevisionPlatformError\"\n - $ref: \"#/components/schemas/AuthorizationRevisionPlatformError\"\n - $ref: \"#/components/schemas/BindingRevisionPlatformError\"\n - $ref: \"#/components/schemas/ValuesRevisionPlatformError\"\n - $ref: \"#/components/schemas/CapabilityPlatformError\"\n - $ref: \"#/components/schemas/WorkerPlatformError\"\n MutationPlatformError:\n oneOf:\n - $ref: \"#/components/schemas/MutationGenericPlatformError\"\n - $ref: \"#/components/schemas/MutationJSONLimitPlatformError\"\n - $ref: \"#/components/schemas/MutationPackageValidationPlatformError\"\n - $ref: \"#/components/schemas/MutationManagementRevisionPlatformError\"\n - $ref: \"#/components/schemas/MutationAuthorizationRevisionPlatformError\"\n - $ref: \"#/components/schemas/MutationBindingRevisionPlatformError\"\n - $ref: \"#/components/schemas/MutationValuesRevisionPlatformError\"\n - $ref: \"#/components/schemas/MutationCapabilityPlatformError\"\n - $ref: \"#/components/schemas/MutationWorkerPlatformError\"\n - $ref: \"#/components/schemas/MutationSessionTeardownPlatformError\"\n GenericPlatformError:\n type: object\n required: [code, message, details]\n additionalProperties: false\n properties:\n code:\n $ref: \"#/components/schemas/GenericPlatformErrorCode\"\n message: { $ref: \"#/components/schemas/PlatformErrorMessage\" }\n details:\n $ref: \"#/components/schemas/EmptyErrorDetails\"\n JSONLimitPlatformError:\n type: object\n required: [code, message, details]\n additionalProperties: false\n properties:\n code: { const: PLUGIN_JSON_LIMIT_EXCEEDED }\n message: { $ref: \"#/components/schemas/PlatformErrorMessage\" }\n details: { $ref: \"#/components/schemas/JSONLimitErrorDetails\" }\n PackageValidationPlatformError:\n type: object\n required: [code, message, details]\n additionalProperties: false\n properties:\n code:\n type: string\n enum: [PLUGIN_MANIFEST_INVALID, PLUGIN_PACKAGE_INVALID, PLUGIN_PACKAGE_TOO_LARGE, PLUGIN_PACKAGE_PATH_FORBIDDEN]\n message: { $ref: \"#/components/schemas/PlatformErrorMessage\" }\n details: { $ref: \"#/components/schemas/PackageValidationErrorDetails\" }\n ManagementRevisionPlatformError:\n type: object\n required: [code, message, details]\n additionalProperties: false\n properties:\n code: { const: PLUGIN_MANAGEMENT_REVISION_MISMATCH }\n message: { $ref: \"#/components/schemas/PlatformErrorMessage\" }\n details: { $ref: \"#/components/schemas/ManagementRevisionMismatchDetails\" }\n AuthorizationRevisionPlatformError:\n type: object\n required: [code, message, details]\n additionalProperties: false\n properties:\n code: { const: PLUGIN_AUTHORIZATION_REVISION_MISMATCH }\n message: { $ref: \"#/components/schemas/PlatformErrorMessage\" }\n details: { $ref: \"#/components/schemas/AuthorizationRevisionMismatchDetails\" }\n BindingRevisionPlatformError:\n type: object\n required: [code, message, details]\n additionalProperties: false\n properties:\n code: { const: PLUGIN_BINDING_REVISION_MISMATCH }\n message: { $ref: \"#/components/schemas/PlatformErrorMessage\" }\n details: { $ref: \"#/components/schemas/BindingRevisionMismatchDetails\" }\n ValuesRevisionPlatformError:\n type: object\n required: [code, message, details]\n additionalProperties: false\n properties:\n code: { const: PLUGIN_VALUES_REVISION_MISMATCH }\n message: { $ref: \"#/components/schemas/PlatformErrorMessage\" }\n details: { $ref: \"#/components/schemas/ValuesRevisionMismatchDetails\" }\n CapabilityPlatformError:\n type: object\n required: [code, message, details]\n additionalProperties: false\n properties:\n code: { const: PLUGIN_CAPABILITY_ERROR }\n message: { $ref: \"#/components/schemas/PlatformErrorMessage\" }\n details: { $ref: \"#/components/schemas/CapabilityBusinessErrorDetails\" }\n WorkerPlatformError:\n type: object\n required: [code, message, details]\n additionalProperties: false\n properties:\n code: { const: PLUGIN_WORKER_ERROR }\n message: { $ref: \"#/components/schemas/PlatformErrorMessage\" }\n details: { $ref: \"#/components/schemas/WorkerErrorDetails\" }\n MutationGenericPlatformError:\n type: object\n required: [code, message, details, mutation_outcome]\n additionalProperties: false\n properties:\n code: { $ref: \"#/components/schemas/GenericPlatformErrorCode\" }\n message: { $ref: \"#/components/schemas/PlatformErrorMessage\" }\n details: { $ref: \"#/components/schemas/EmptyErrorDetails\" }\n mutation_outcome: { $ref: \"#/components/schemas/MutationOutcome\" }\n MutationJSONLimitPlatformError:\n type: object\n required: [code, message, details, mutation_outcome]\n additionalProperties: false\n properties:\n code: { const: PLUGIN_JSON_LIMIT_EXCEEDED }\n message: { $ref: \"#/components/schemas/PlatformErrorMessage\" }\n details: { $ref: \"#/components/schemas/JSONLimitErrorDetails\" }\n mutation_outcome: { $ref: \"#/components/schemas/MutationOutcome\" }\n MutationPackageValidationPlatformError:\n type: object\n required: [code, message, details, mutation_outcome]\n additionalProperties: false\n properties:\n code:\n type: string\n enum: [PLUGIN_MANIFEST_INVALID, PLUGIN_PACKAGE_INVALID, PLUGIN_PACKAGE_TOO_LARGE, PLUGIN_PACKAGE_PATH_FORBIDDEN]\n message: { $ref: \"#/components/schemas/PlatformErrorMessage\" }\n details: { $ref: \"#/components/schemas/PackageValidationErrorDetails\" }\n mutation_outcome: { $ref: \"#/components/schemas/MutationOutcome\" }\n MutationManagementRevisionPlatformError:\n type: object\n required: [code, message, details, mutation_outcome]\n additionalProperties: false\n properties:\n code: { const: PLUGIN_MANAGEMENT_REVISION_MISMATCH }\n message: { $ref: \"#/components/schemas/PlatformErrorMessage\" }\n details: { $ref: \"#/components/schemas/ManagementRevisionMismatchDetails\" }\n mutation_outcome: { $ref: \"#/components/schemas/MutationOutcome\" }\n MutationAuthorizationRevisionPlatformError:\n type: object\n required: [code, message, details, mutation_outcome]\n additionalProperties: false\n properties:\n code: { const: PLUGIN_AUTHORIZATION_REVISION_MISMATCH }\n message: { $ref: \"#/components/schemas/PlatformErrorMessage\" }\n details: { $ref: \"#/components/schemas/AuthorizationRevisionMismatchDetails\" }\n mutation_outcome: { $ref: \"#/components/schemas/MutationOutcome\" }\n MutationBindingRevisionPlatformError:\n type: object\n required: [code, message, details, mutation_outcome]\n additionalProperties: false\n properties:\n code: { const: PLUGIN_BINDING_REVISION_MISMATCH }\n message: { $ref: \"#/components/schemas/PlatformErrorMessage\" }\n details: { $ref: \"#/components/schemas/BindingRevisionMismatchDetails\" }\n mutation_outcome: { $ref: \"#/components/schemas/MutationOutcome\" }\n MutationValuesRevisionPlatformError:\n type: object\n required: [code, message, details, mutation_outcome]\n additionalProperties: false\n properties:\n code: { const: PLUGIN_VALUES_REVISION_MISMATCH }\n message: { $ref: \"#/components/schemas/PlatformErrorMessage\" }\n details: { $ref: \"#/components/schemas/ValuesRevisionMismatchDetails\" }\n mutation_outcome: { $ref: \"#/components/schemas/MutationOutcome\" }\n MutationCapabilityPlatformError:\n type: object\n required: [code, message, details, mutation_outcome]\n additionalProperties: false\n properties:\n code: { const: PLUGIN_CAPABILITY_ERROR }\n message: { $ref: \"#/components/schemas/PlatformErrorMessage\" }\n details: { $ref: \"#/components/schemas/CapabilityBusinessErrorDetails\" }\n mutation_outcome: { $ref: \"#/components/schemas/MutationOutcome\" }\n MutationWorkerPlatformError:\n type: object\n required: [code, message, details, mutation_outcome]\n additionalProperties: false\n properties:\n code: { const: PLUGIN_WORKER_ERROR }\n message: { $ref: \"#/components/schemas/PlatformErrorMessage\" }\n details: { $ref: \"#/components/schemas/WorkerErrorDetails\" }\n mutation_outcome: { $ref: \"#/components/schemas/MutationOutcome\" }\n MutationSessionTeardownPlatformError:\n type: object\n required: [code, message, details, mutation_outcome]\n additionalProperties: false\n properties:\n code: { const: PLUGIN_SESSION_TEARDOWN_INCOMPLETE }\n message: { $ref: \"#/components/schemas/PlatformErrorMessage\" }\n details: { $ref: \"#/components/schemas/SessionTeardownIncompleteErrorDetails\" }\n mutation_outcome: { const: committed }\n MutationOutcome:\n type: string\n enum: [committed, not_committed, unknown]\n EmptyErrorDetails:\n type: object\n additionalProperties: false\n JSONLimitErrorDetails:\n type: object\n required: [reason]\n additionalProperties: false\n properties:\n reason:\n type: string\n enum: [payload_bytes, json_depth, prototype_key, number_precision]\n PackageValidationErrorDetails:\n type: object\n required: [reason]\n additionalProperties: false\n properties:\n reason:\n type: string\n enum: [manifest_missing, manifest_field, manifest_decode, zip_invalid, file_count, duplicate_entry, ambiguous_entry, non_regular_entry, invalid_utf8_path, non_nfc_path, symlink_entry, directory_entry, entry_bytes, path_length, compression_ratio, total_uncompressed_bytes, entry_open_failed, entry_read_failed, entry_close_failed, entry_size_mismatch, unsupported_signature_entry, manifest_artifact, package_asset_security, package_artifact_boundary, entry_path, manifest_canonical_json, canonical_hash, package_signature, empty_path, slash_separator, non_canonical_path, path_traversal, hidden_path, external_icon_path, unsupported_icon_format, missing_icon_asset, icon_magic_mismatch, query_or_fragment]\n path:\n type: string\n description: Package-local entry path related to the error, when available.\n pointer:\n type: string\n description: JSON Pointer into manifest.json related to the error, when available.\n CapabilityBusinessErrorDetails:\n type: object\n additionalProperties: false\n required: [capability_id, capability_version, detail_schema_sha256, business_error_code]\n properties:\n capability_id:\n type: string\n minLength: 1\n capability_version:\n $ref: \"#/components/schemas/StrictSemVer\"\n detail_schema_sha256:\n type: string\n pattern: \"^[0-9a-f]{64}$\"\n business_error_code:\n type: string\n pattern: \"^[A-Z][A-Z0-9_]*$\"\n business_error_details:\n type: object\n additionalProperties: true\n WorkerErrorDetails:\n type: object\n additionalProperties: false\n required: [worker_error_code, worker_error_message, worker_error_origin]\n properties:\n worker_error_code:\n type: string\n pattern: \"^[A-Z][A-Z0-9_]*$\"\n worker_error_message:\n type: string\n minLength: 1\n maxLength: 4096\n worker_error_origin:\n type: string\n enum: [runtime, hostcall, plugin]\n SessionTeardownIncompleteErrorDetails:\n type: object\n additionalProperties: false\n required: [session_scope]\n properties:\n session_scope:\n $ref: \"#/components/schemas/SessionScopeRevokeIncompleteResult\"\n ManagementRevisionMismatchDetails:\n type: object\n additionalProperties: false\n required: [plugin_instance_id, expected_management_revision, actual_management_revision]\n properties:\n plugin_instance_id: { type: string, minLength: 1 }\n expected_management_revision: { type: integer, minimum: 1, maximum: 9007199254740991 }\n actual_management_revision: { type: integer, minimum: 1, maximum: 9007199254740991 }\n AuthorizationRevisionMismatchDetails:\n type: object\n additionalProperties: false\n required:\n - plugin_instance_id\n - expected_policy_revision\n - actual_policy_revision\n - expected_management_revision\n - actual_management_revision\n - expected_revoke_epoch\n - actual_revoke_epoch\n properties:\n plugin_instance_id: { type: string, minLength: 1 }\n expected_policy_revision: { type: integer, minimum: 1, maximum: 9007199254740991 }\n actual_policy_revision: { type: integer, minimum: 1, maximum: 9007199254740991 }\n expected_management_revision: { type: integer, minimum: 1, maximum: 9007199254740991 }\n actual_management_revision: { type: integer, minimum: 1, maximum: 9007199254740991 }\n expected_revoke_epoch: { type: integer, minimum: 0, maximum: 9007199254740991 }\n actual_revoke_epoch: { type: integer, minimum: 0, maximum: 9007199254740991 }\n BindingRevisionMismatchDetails:\n type: object\n additionalProperties: false\n required: [plugin_instance_id, expected_binding_revision, actual_binding_revision]\n properties:\n plugin_instance_id: { type: string, minLength: 1 }\n expected_binding_revision: { type: integer, minimum: 1, maximum: 9007199254740991 }\n actual_binding_revision: { type: integer, minimum: 1, maximum: 9007199254740991 }\n ValuesRevisionMismatchDetails:\n type: object\n additionalProperties: false\n required: [plugin_instance_id, expected_values_revision, actual_values_revision]\n properties:\n plugin_instance_id: { type: string, minLength: 1 }\n expected_values_revision: { type: integer, minimum: 1, maximum: 9007199254740991 }\n actual_values_revision: { type: integer, minimum: 1, maximum: 9007199254740991 }\n ErrorCode:\n $ref: \"../plugin/error-codes-v6.schema.json#/$defs/platform_error_code\"\n PlatformErrorMessage:\n type: string\n minLength: 1\n maxLength: 4096\n pattern: \".*\\\\S.*\"\n GenericPlatformErrorCode:\n type: string\n enum:\n - PLUGIN_INVALID_REQUEST\n - PLUGIN_SIGNATURE_INVALID\n - PLUGIN_TRUST_STATE_DENIED\n - PLUGIN_TRUST_VERIFICATION_REQUIRED\n - PLUGIN_TRUST_VERIFICATION_INVALID\n - PLUGIN_RELEASE_REF_VERIFICATION_FAILED\n - PLUGIN_RELEASE_REF_POLICY_DENIED\n - PLUGIN_DISABLED\n - PLUGIN_DISABLED_BY_POLICY\n - PLUGIN_PERMISSION_DENIED\n - PLUGIN_ORIGIN_DENIED\n - PLUGIN_ACTION_DENIED\n - PLUGIN_OWNER_SCOPE_MISMATCH\n - PLUGIN_SECRET_SCOPE_MISMATCH\n - PLUGIN_STORAGE_SCOPE_MISMATCH\n - PLUGIN_ADAPTER_FAILURE\n - PLUGIN_SESSION_REVOKED\n - PLUGIN_SESSION_TEARDOWN_INCOMPLETE\n - PLUGIN_SESSION_FENCE_CAPACITY\n - PLUGIN_CONFIRMATION_REQUIRED\n - PLUGIN_CONFIRMATION_INVALID\n - PLUGIN_TOKEN_EXPIRED\n - PLUGIN_TOKEN_REPLAY\n - PLUGIN_GATEWAY_TOKEN_INVALID\n - PLUGIN_GATEWAY_TOKEN_REPLAYED\n - PLUGIN_GATEWAY_TOKEN_CHANNEL_MISMATCH\n - PLUGIN_ASSET_TICKET_INVALID\n - PLUGIN_ASSET_SESSION_INVALID\n - PLUGIN_STREAM_TICKET_INVALID\n - PLUGIN_STREAM_DELIVERY_INVALID\n - PLUGIN_STREAM_CANCELLED\n - PLUGIN_LEASE_INVALID\n - PLUGIN_LEASE_REPLAYED\n - PLUGIN_GRANT_INVALID\n - PLUGIN_STORAGE_QUOTA_EXCEEDED\n - PLUGIN_OPERATION_BLOCKED\n - PLUGIN_OPERATION_NOT_FOUND\n - PLUGIN_OPERATION_NOT_CANCELABLE\n - PLUGIN_NETWORK_TARGET_DENIED\n - PLUGIN_NETWORK_RATE_LIMITED\n - PLUGIN_RUNTIME_UNAVAILABLE\n - PLUGIN_RUNTIME_VERSION_MISMATCH\n - PLUGIN_RUNTIME_CONTRACT_MISMATCH\n - PLUGIN_UI_PROTOCOL_UNSUPPORTED\n - PLUGIN_UI_PROTOCOL_VIOLATION\n - PLUGIN_SURFACE_QUIESCE_TIMEOUT\n - PLUGIN_CONTRACT_MISMATCH\n - PLUGIN_CSRF_REQUIRED\n - PLUGIN_CSRF_INVALID\n - PLUGIN_FEATURE_NOT_CONFIGURED\n SurfaceDisposeResult:\n type: object\n required: [disposed]\n additionalProperties: false\n properties:\n disposed: { const: true }\n SessionScopeRevokeCounts:\n $ref: \"../plugin/session-scope-v1.schema.json#/$defs/revoke_counts\"\n SessionScopeRevokeResult:\n $ref: \"../plugin/session-scope-v1.schema.json#/$defs/public_revoke_result\"\n SessionScopeRevokeCompleteResult:\n $ref: \"../plugin/session-scope-v1.schema.json#/$defs/complete_revoke_result\"\n SessionScopeRevokeIncompleteResult:\n $ref: \"../plugin/session-scope-v1.schema.json#/$defs/incomplete_revoke_result\"\n PluginCatalogResult:\n type: object\n required: [plugins]\n additionalProperties: false\n properties:\n plugins:\n type: array\n items: { $ref: \"#/components/schemas/PluginRecord\" }\n PluginCompatibilityManifest:\n $ref: \"../plugin/compatibility-manifest-v8.schema.json\"\n PluginOperationList:\n type: object\n required: [operations]\n additionalProperties: false\n properties:\n operations:\n type: array\n items: { $ref: \"#/components/schemas/OperationRecord\" }\n next_cursor: { type: string, maxLength: 1024 }\n PluginIntentRecord:\n type: object\n required: [plugin_id, plugin_instance_id, publisher_id, display_name, version, active_fingerprint, intent_id, method, effect, execution]\n additionalProperties: false\n properties:\n plugin_id: { type: string }\n plugin_instance_id: { type: string }\n publisher_id: { type: string }\n display_name: { type: string }\n version: { $ref: \"#/components/schemas/StrictSemVer\" }\n active_fingerprint: { type: string }\n intent_id: { type: string }\n method: { type: string }\n effect: { type: string, enum: [read, write, delete, execute, admin] }\n execution: { type: string, enum: [sync, operation, subscription] }\n payload_schema:\n type: object\n additionalProperties: true\n PluginIntentList:\n type: object\n required: [intents]\n additionalProperties: false\n properties:\n intents:\n type: array\n items: { $ref: \"#/components/schemas/PluginIntentRecord\" }\n PluginPermissionGrant:\n type: object\n description: Explicit public HTTP projection of a permission grant. Internal actor ownership hashes are never returned.\n required: [plugin_instance_id, permission_id, effect, granted_at]\n additionalProperties: false\n properties:\n plugin_instance_id: { type: string }\n permission_id: { type: string }\n effect: { type: string, enum: [grant, deny] }\n granted_at: { type: string, format: date-time }\n expires_at: { type: string, format: date-time }\n revoked_at: { type: string, format: date-time }\n revoked_reason: { type: string }\n PluginPermissionList:\n type: object\n required: [permissions]\n additionalProperties: false\n properties:\n permissions:\n type: array\n items: { $ref: \"#/components/schemas/PluginPermissionGrant\" }\n AuthorizationRevisions:\n type: object\n required: [policy_revision, management_revision, revoke_epoch]\n additionalProperties: false\n properties:\n policy_revision: { type: integer, minimum: 1, maximum: 9007199254740991 }\n management_revision: { type: integer, minimum: 1, maximum: 9007199254740991 }\n revoke_epoch: { type: integer, minimum: 0, maximum: 9007199254740991 }\n PluginPermissionMutationResult:\n type: object\n required: [permission, revisions]\n additionalProperties: false\n properties:\n permission: { $ref: \"#/components/schemas/PluginPermissionGrant\" }\n revisions: { $ref: \"#/components/schemas/AuthorizationRevisions\" }\n PluginSecurityPolicy:\n type: object\n required: [plugin_instance_id, allowed_permissions, denied_methods, policy_revision, management_revision, revoke_epoch, updated_at]\n additionalProperties: false\n properties:\n plugin_instance_id: { type: string, minLength: 1 }\n allowed_permissions:\n type: array\n uniqueItems: true\n items: { type: string, minLength: 1 }\n denied_methods:\n type: array\n uniqueItems: true\n items: { type: string, minLength: 1 }\n policy_revision: { type: integer, minimum: 1, maximum: 9007199254740991 }\n management_revision: { type: integer, minimum: 1, maximum: 9007199254740991 }\n revoke_epoch: { type: integer, minimum: 0, maximum: 9007199254740991 }\n updated_at: { type: string, format: date-time }\n PluginSecurityPolicyList:\n type: object\n required: [security_policies]\n additionalProperties: false\n properties:\n security_policies:\n type: array\n items: { $ref: \"#/components/schemas/PluginSecurityPolicy\" }\n PluginSecurityPolicyDeleteResult:\n type: object\n required: [plugin_instance_id, deleted, policy_revision, management_revision, revoke_epoch]\n additionalProperties: false\n properties:\n plugin_instance_id: { type: string, minLength: 1 }\n deleted: { const: true }\n policy_revision: { type: integer, minimum: 1, maximum: 9007199254740991 }\n management_revision: { type: integer, minimum: 1, maximum: 9007199254740991 }\n revoke_epoch: { type: integer, minimum: 0, maximum: 9007199254740991 }\n DiagnosticMutationOutcome:\n type: string\n enum: [committed, not_committed, unknown]\n PluginDiagnosticDetails:\n type: object\n additionalProperties: false\n properties:\n operations_deleted: { type: integer, minimum: 0, maximum: 9007199254740991 }\n streams_deleted: { type: integer, minimum: 0, maximum: 9007199254740991 }\n invocation_id: { type: string }\n method: { type: string }\n failure_code: { type: string }\n runtime_process_failure_code:\n $ref: \"../plugin/error-codes-v6.schema.json#/$defs/runtime_process_failure_code\"\n operation_id: { type: string }\n stream_id: { type: string }\n runtime_instance_id: { type: string }\n runtime_generation_id: { type: string }\n runtime_version: { type: string }\n rust_ipc_version: { type: string }\n wasm_abi_version: { type: string }\n contract_set_sha256: { type: string, pattern: '^[0-9a-f]{64}$' }\n runtime_target_os: { type: string }\n runtime_target_arch: { type: string }\n runtime_binary_sha256: { type: string, pattern: '^[0-9a-f]{64}$' }\n os: { type: string }\n arch: { type: string }\n stream: { type: string }\n package_hash: { type: string }\n artifact: { type: string }\n plugin_instance_id: { type: string }\n store_id: { type: string }\n operation: { type: string }\n hostcall: { type: string }\n code: { type: string }\n connector_id: { type: string }\n transport: { type: string }\n revoke_epoch: { type: integer, minimum: 0, maximum: 9007199254740991 }\n stage_id: { type: string }\n reason: { type: string }\n surface_instance_id: { type: string }\n PluginDiagnosticEvent:\n type: object\n required: [type, severity, message]\n additionalProperties: false\n properties:\n event_id: { type: string }\n type: { type: string }\n severity: { type: string, enum: [info, warning] }\n message: { type: string }\n plugin_id: { type: string }\n plugin_instance_id: { type: string }\n surface_id: { type: string }\n surface_instance_id: { type: string }\n active_fingerprint: { type: string }\n request_id: { type: string }\n correlation_id: { type: string }\n mutation_outcome: { $ref: \"#/components/schemas/DiagnosticMutationOutcome\" }\n occurred_at: { type: string, format: date-time }\n details: { $ref: \"#/components/schemas/PluginDiagnosticDetails\" }\n PluginDiagnosticEventList:\n type: object\n required: [diagnostic_events]\n additionalProperties: false\n properties:\n diagnostic_events:\n type: array\n items: { $ref: \"#/components/schemas/PluginDiagnosticEvent\" }\n PluginRuntimeShardHealth:\n type: object\n description: Explicit public HTTP projection of runtime shard health. IPC channel credentials and connection nonces are excluded.\n required: [runtime_shard_id, runtime_instance_id, runtime_generation_id, descriptor, ready, active_invocations, queued_invocations, limits, module_cache]\n additionalProperties: false\n properties:\n runtime_shard_id: { type: string }\n runtime_instance_id: { type: string }\n runtime_generation_id: { type: string }\n descriptor: { $ref: \"#/components/schemas/RuntimeDescriptor\" }\n ready: { type: boolean }\n active_invocations: { type: integer, minimum: 0 }\n queued_invocations: { type: integer, minimum: 0 }\n limits: { $ref: \"#/components/schemas/RuntimeLimits\" }\n module_cache: { $ref: \"#/components/schemas/RuntimeModuleCacheMetrics\" }\n PluginRuntimeHealth:\n type: object\n description: Explicit public HTTP projection of runtime manager health.\n required: [ready, descriptor, shards]\n additionalProperties: false\n properties:\n ready: { type: boolean }\n descriptor: { $ref: \"#/components/schemas/RuntimeDescriptor\" }\n shards:\n type: array\n items: { $ref: \"#/components/schemas/PluginRuntimeShardHealth\" }\n RuntimeTarget:\n oneOf:\n - type: object\n required: [os, arch]\n additionalProperties: false\n properties:\n os: { const: darwin }\n arch: { const: amd64 }\n - type: object\n required: [os, arch]\n additionalProperties: false\n properties:\n os: { const: darwin }\n arch: { const: arm64 }\n - type: object\n required: [os, arch]\n additionalProperties: false\n properties:\n os: { const: linux }\n arch: { const: amd64 }\n - type: object\n required: [os, arch]\n additionalProperties: false\n properties:\n os: { const: linux }\n arch: { const: arm64 }\n RuntimeAdmissionTarget:\n type: string\n enum: [linux/amd64, linux/arm64]\n StrictSemVer:\n type: string\n pattern: '^(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)(?:-(?:(?:0|[1-9][0-9]*|[0-9A-Za-z-]*[A-Za-z-][0-9A-Za-z-]*)(?:\\.(?:0|[1-9][0-9]*|[0-9A-Za-z-]*[A-Za-z-][0-9A-Za-z-]*))*))?(?:\\+[0-9A-Za-z-]+(?:\\.[0-9A-Za-z-]+)*)?$'\n RuntimeDescriptor:\n type: object\n required: [schema_version, platform_version, target, rust_ipc_version, wasm_abi_version, contract_set_sha256, binary_sha256]\n additionalProperties: false\n properties:\n schema_version: { const: runtime-descriptor-v2 }\n platform_version: { $ref: \"#/components/schemas/StrictSemVer\" }\n target: { $ref: \"#/components/schemas/RuntimeAdmissionTarget\" }\n rust_ipc_version: { const: rust-ipc-v6 }\n wasm_abi_version: { const: redevplugin-wasm-worker-v2 }\n contract_set_sha256: { type: string, pattern: '^[0-9a-f]{64}$' }\n binary_sha256: { type: string, pattern: '^[0-9a-f]{64}$' }\n RuntimeLimits:\n type: object\n description: \"Negotiated runtime capacities. per_plugin_concurrency must not exceed worker_count. Route capacities are derived exactly from negotiated limits: active hostcall routes = worker_count, canceled hostcall retention = worker_count + queue_capacity, and compile-flight artifact routes = worker_count.\"\n required: [worker_count, queue_capacity, per_plugin_concurrency, module_cache_entries, module_cache_source_bytes]\n additionalProperties: false\n properties:\n worker_count: { type: integer, minimum: 1, maximum: 64, description: \"Number of runtime worker threads.\" }\n queue_capacity: { type: integer, minimum: 1, maximum: 64, description: \"Maximum queued worker invocations.\" }\n per_plugin_concurrency: { type: integer, minimum: 1, maximum: 64, description: \"Maximum concurrent invocations for one plugin; must not exceed worker_count.\" }\n module_cache_entries: { type: integer, minimum: 1, maximum: 1024, description: \"Maximum compiled modules retained by the runtime cache.\" }\n module_cache_source_bytes: { type: integer, minimum: 1, maximum: 134217728, description: \"Maximum source WASM bytes retained by the runtime cache (128 MiB).\" }\n RuntimeModuleCacheMetrics:\n type: object\n required: [hits, misses, compiles, entries, source_bytes]\n additionalProperties: false\n properties:\n hits: { type: integer, minimum: 0, maximum: 9007199254740991 }\n misses: { type: integer, minimum: 0, maximum: 9007199254740991 }\n compiles: { type: integer, minimum: 0, maximum: 9007199254740991 }\n entries: { type: integer, minimum: 0, maximum: 1024 }\n source_bytes: { type: integer, minimum: 0, maximum: 134217728 }\n PluginRuntimeStopResult:\n type: object\n required: [stopped]\n additionalProperties: false\n properties:\n stopped: { const: true }\n PluginRuntimeRefreshResult:\n type: object\n required: [results]\n additionalProperties: false\n properties:\n results:\n type: array\n items: { $ref: \"#/components/schemas/PluginRuntimeRefreshEntry\" }\n PluginRuntimeRefreshEntry:\n oneOf:\n - $ref: \"#/components/schemas/PluginRuntimeRefreshSuccess\"\n - $ref: \"#/components/schemas/PluginRuntimeRefreshFailure\"\n PluginRuntimeRefreshSuccess:\n type: object\n required: [plugin_instance_id, status]\n additionalProperties: false\n properties:\n plugin_instance_id: { type: string, minLength: 1 }\n status: { const: refreshed }\n PluginRuntimeRefreshFailure:\n type: object\n required: [plugin_instance_id, status, error]\n additionalProperties: false\n properties:\n plugin_instance_id: { type: string, minLength: 1 }\n status: { const: failed }\n error: { $ref: \"#/components/schemas/PluginRuntimeRefreshPublicError\" }\n PluginRuntimeRefreshPublicError:\n type: object\n required: [code, message]\n additionalProperties: false\n properties:\n code:\n type: string\n enum: [PLUGIN_RUNTIME_UNAVAILABLE]\n message: { const: \"Plugin runtime state could not be refreshed\" }\n PluginDataExportResult:\n type: object\n required: [bundle_ref]\n additionalProperties: false\n properties:\n bundle_ref: { type: string, minLength: 1 }\n PluginDataExportDeleteResult:\n type: object\n required: [deleted]\n additionalProperties: false\n properties:\n deleted: { const: true }\n PluginSecretBindResult:\n type: object\n required: [bound]\n additionalProperties: false\n properties:\n bound: { const: true }\n PluginSecretTestResult:\n type: object\n required: [tested]\n additionalProperties: false\n properties:\n tested: { const: true }\n PluginSecretDeleteResult:\n type: object\n required: [deleted]\n additionalProperties: false\n properties:\n deleted: { const: true }\n PluginSettingsField:\n type: object\n required: [key, type, label, scope]\n additionalProperties: false\n properties:\n key: { type: string }\n type: { type: string }\n label: { type: string }\n scope: { $ref: \"#/components/schemas/ResourceScopeKind\" }\n default: true\n secret_ref: { type: string }\n options:\n type: array\n items: { type: string }\n validation:\n type: object\n additionalProperties: true\n PluginSettingsSchema:\n type: object\n description: Explicit public HTTP projection of the settings schema for one owner scope.\n required: [plugin_instance_id, scope, schema_version, fields, values_revision]\n additionalProperties: false\n properties:\n plugin_instance_id: { type: string }\n scope: { $ref: \"#/components/schemas/ResourceScopeKind\" }\n schema_version: { type: integer, minimum: 1 }\n fields:\n type: array\n items: { $ref: \"#/components/schemas/PluginSettingsField\" }\n values_revision: { type: integer, minimum: 1, maximum: 9007199254740991 }\n PluginSettingsSnapshot:\n type: object\n description: Explicit public HTTP projection of settings values and redacted secret metadata for one owner scope.\n required: [plugin_instance_id, scope, schema_version, values_revision, values, secret_metadata]\n additionalProperties: false\n properties:\n plugin_instance_id: { type: string }\n scope: { $ref: \"#/components/schemas/ResourceScopeKind\" }\n schema_version: { type: integer, minimum: 1 }\n values_revision: { type: integer, minimum: 1, maximum: 9007199254740991 }\n values:\n type: object\n additionalProperties: true\n secret_metadata:\n type: array\n items: { $ref: \"#/components/schemas/PluginSettingsSecretMetadata\" }\n PluginSettingsSecretMetadata:\n type: object\n required: [key, secret_ref, scope, bound]\n additionalProperties: false\n properties:\n key: { type: string, minLength: 1 }\n secret_ref: { type: string, minLength: 1 }\n scope: { type: string, enum: [user, environment] }\n bound: { type: boolean }\n last_test_status: { type: string }\n bound_at: { type: string, format: date-time }\n tested_at: { type: string, format: date-time }\n updated_at: { type: string, format: date-time }\n TrustState:\n type: string\n enum: [verified, unsigned_local, untrusted, needs_review, trust_unavailable, blocked_security]\n TrustHashSet:\n type: object\n required: [package_sha256, manifest_sha256, entries_sha256]\n additionalProperties: false\n properties:\n package_sha256: { type: string, pattern: \"^(sha256:)?[0-9a-f]{64}$\" }\n manifest_sha256: { type: string, pattern: \"^(sha256:)?[0-9a-f]{64}$\" }\n entries_sha256: { type: string, pattern: \"^(sha256:)?[0-9a-f]{64}$\" }\n VerifiedSignature:\n type: object\n required: [algorithm, key_id]\n additionalProperties: false\n properties:\n algorithm: { type: string, minLength: 1 }\n key_id: { type: string, minLength: 1 }\n TrustAssessment:\n type: object\n required: [trust_state, verified_hashes]\n additionalProperties: false\n properties:\n trust_state:\n $ref: \"#/components/schemas/TrustState\"\n reason_codes:\n type: array\n items: { type: string }\n verified_hashes:\n $ref: \"#/components/schemas/TrustHashSet\"\n verified_signature:\n $ref: \"#/components/schemas/VerifiedSignature\"\n trust_assessment_epoch: { type: string }\n policy_epoch: { type: string }\n revocation_epoch: { type: string }\n metadata:\n type: object\n additionalProperties: { type: string }\n PluginVersion:\n type: object\n required: [version, active_fingerprint, package_hash, manifest_hash, entries_hash, trust_state, trust_assessment, manifest, package_entries, activated_at]\n additionalProperties: false\n properties:\n version: { $ref: \"#/components/schemas/StrictSemVer\" }\n active_fingerprint: { type: string, minLength: 1 }\n package_hash: { type: string, minLength: 1 }\n manifest_hash: { type: string, minLength: 1 }\n entries_hash: { type: string, minLength: 1 }\n trust_state:\n $ref: \"#/components/schemas/TrustState\"\n trust_assessment:\n $ref: \"#/components/schemas/TrustAssessment\"\n source_policy_snapshot_hash: { type: string, pattern: \"^(sha256:)?[0-9a-f]{64}$\" }\n source_policy_snapshot:\n type: object\n additionalProperties: true\n local_import_provenance:\n $ref: \"#/components/schemas/LocalImportProvenance\"\n capability_contracts:\n type: array\n items: { $ref: \"#/components/schemas/CapabilityContractPin\" }\n manifest:\n $ref: \"../plugin/manifest-v5.schema.json\"\n package_entries:\n type: array\n items: { $ref: \"#/components/schemas/PackageEntry\" }\n runtime_requirement: { $ref: \"#/components/schemas/RuntimeRequirement\" }\n activated_at: { type: string, format: date-time }\n metadata:\n type: object\n additionalProperties: { type: string }\n PluginRecord:\n type: object\n description: Explicit public HTTP projection of a registry record. Persistent owner identity is excluded.\n required: [plugin_instance_id, publisher_id, plugin_id, version, active_fingerprint, package_hash, manifest_hash, entries_hash, trust_state, trust_assessment, enable_state, policy_revision, management_revision, revoke_epoch, manifest, package_entries, installed_at, updated_at]\n additionalProperties: false\n properties:\n plugin_instance_id: { type: string, minLength: 1 }\n publisher_id: { type: string }\n plugin_id: { type: string, minLength: 1 }\n version: { $ref: \"#/components/schemas/StrictSemVer\" }\n active_fingerprint: { type: string, minLength: 1 }\n package_hash: { type: string }\n manifest_hash: { type: string }\n entries_hash: { type: string }\n trust_state:\n $ref: \"#/components/schemas/TrustState\"\n trust_assessment:\n $ref: \"#/components/schemas/TrustAssessment\"\n source_policy_snapshot_hash: { type: string, pattern: \"^(sha256:)?[0-9a-f]{64}$\" }\n source_policy_snapshot:\n type: object\n additionalProperties: true\n local_import_provenance:\n $ref: \"#/components/schemas/LocalImportProvenance\"\n capability_contracts:\n type: array\n items: { $ref: \"#/components/schemas/CapabilityContractPin\" }\n enable_state:\n type: string\n enum: [disabled, enabled, disabled_by_policy, disabled_incompatible]\n disabled_reason: { type: string }\n policy_revision: { type: integer, minimum: 0, maximum: 9007199254740991 }\n management_revision: { type: integer, minimum: 0, maximum: 9007199254740991 }\n revoke_epoch: { type: integer, minimum: 0, maximum: 9007199254740991 }\n manifest:\n $ref: \"../plugin/manifest-v5.schema.json\"\n package_entries:\n type: array\n items: { $ref: \"#/components/schemas/PackageEntry\" }\n runtime_requirement: { $ref: \"#/components/schemas/RuntimeRequirement\" }\n version_history:\n type: array\n items:\n $ref: \"#/components/schemas/PluginVersion\"\n installed_at: { type: string, format: date-time }\n enabled_at: { type: string, format: date-time }\n updated_at: { type: string, format: date-time }\n deleted_at: { type: string, format: date-time }\n metadata:\n type: object\n additionalProperties: { type: string }\n PackageEntry:\n type: object\n required: [path, size, sha256, mode]\n additionalProperties: false\n properties:\n path: { type: string, minLength: 1 }\n size: { type: integer, minimum: 0 }\n sha256: { type: string, pattern: \"^[0-9a-f]{64}$\" }\n mode: { type: string, minLength: 1 }\n content_type: { type: string }\n RuntimeRequirement:\n type: object\n required: [min_version]\n additionalProperties: false\n properties:\n min_version: { $ref: \"#/components/schemas/StrictSemVer\" }\n supported_targets:\n type: array\n uniqueItems: true\n items:\n type: string\n enum: [darwin/amd64, darwin/arm64, linux/amd64, linux/arm64]\n LocalImportProvenance:\n type: object\n required: [import_id, distribution, policy_epoch, unsigned_policy, assessed_at]\n additionalProperties: false\n properties:\n import_id: { type: string, minLength: 1 }\n distribution: { enum: [local_import] }\n policy_epoch: { type: string, minLength: 1 }\n unsigned_policy: { enum: [dev_only, review_required, block] }\n assessed_at: { type: string, format: date-time }\n PackageHashSet:\n type: object\n required: [package_sha256, manifest_sha256, entries_sha256]\n additionalProperties: false\n properties:\n package_sha256: { type: string, pattern: \"^(sha256:)?[0-9a-f]{64}$\" }\n manifest_sha256: { type: string, pattern: \"^(sha256:)?[0-9a-f]{64}$\" }\n entries_sha256: { type: string, pattern: \"^(sha256:)?[0-9a-f]{64}$\" }\n PluginReleaseRef:\n type: object\n required: [source_id, channel, release_metadata_ref, release_metadata_sha256, publisher_id, plugin_id, version, expected_hashes]\n additionalProperties: false\n properties:\n source_id: { type: string, minLength: 1 }\n channel: { type: string, pattern: \"^[a-z][a-z0-9._-]{0,127}$\" }\n release_metadata_ref: { type: string, minLength: 1 }\n release_metadata_sha256: { type: string, pattern: \"^(sha256:)?[0-9a-f]{64}$\" }\n publisher_id: { type: string, minLength: 1 }\n plugin_id: { type: string, minLength: 1 }\n version: { $ref: \"#/components/schemas/StrictSemVer\" }\n expected_hashes:\n $ref: \"#/components/schemas/PackageHashSet\"\n InstallReleaseRefRequest:\n type: object\n required: [plugin_instance_id, release_ref]\n additionalProperties: false\n properties:\n release_ref:\n $ref: \"#/components/schemas/PluginReleaseRef\"\n plugin_instance_id: { type: string, minLength: 1 }\n UpdateReleaseRefRequest:\n type: object\n required: [plugin_instance_id, release_ref, expected_management_revision]\n additionalProperties: false\n properties:\n plugin_instance_id: { type: string, minLength: 1 }\n release_ref:\n $ref: \"#/components/schemas/PluginReleaseRef\"\n expected_management_revision: { type: integer, minimum: 1, maximum: 9007199254740991 }\n DowngradeRequest:\n type: object\n required: [plugin_instance_id, expected_management_revision]\n additionalProperties: false\n properties:\n plugin_instance_id: { type: string, minLength: 1 }\n version: { $ref: \"#/components/schemas/StrictSemVer\" }\n package_hash: { type: string }\n expected_management_revision: { type: integer, minimum: 1, maximum: 9007199254740991 }\n EnableRequest:\n type: object\n required: [plugin_instance_id, expected_management_revision]\n additionalProperties: false\n properties:\n plugin_instance_id: { type: string, minLength: 1 }\n expected_management_revision: { type: integer, minimum: 1, maximum: 9007199254740991 }\n DisableRequest:\n type: object\n required: [plugin_instance_id, expected_management_revision]\n additionalProperties: false\n properties:\n plugin_instance_id: { type: string, minLength: 1 }\n reason: { type: string }\n expected_management_revision: { type: integer, minimum: 1, maximum: 9007199254740991 }\n UninstallRequest:\n type: object\n required: [plugin_instance_id, delete_data, expected_management_revision]\n additionalProperties: false\n properties:\n plugin_instance_id: { type: string, minLength: 1 }\n delete_data: { type: boolean }\n expected_management_revision: { type: integer, minimum: 1, maximum: 9007199254740991 }\n OpenSurfaceRequest:\n type: object\n required: [plugin_instance_id, surface_id, expected_management_revision]\n additionalProperties: false\n properties:\n plugin_instance_id: { type: string, minLength: 1 }\n surface_id: { type: string, minLength: 1 }\n surface_instance_id: { type: string }\n expected_management_revision: { type: integer, minimum: 1, maximum: 9007199254740991 }\n RevokeSessionScopeRequest:\n type: object\n additionalProperties: false\n maxProperties: 0\n EmptyRequest:\n type: object\n additionalProperties: false\n maxProperties: 0\n EmptyQueryRequest:\n type: object\n additionalProperties: false\n maxProperties: 0\n ListIntentsQueryRequest:\n type: object\n additionalProperties: false\n properties:\n intent_id: { type: string, minLength: 1 }\n plugin_instance_id: { type: string, minLength: 1 }\n ListOperationsQueryRequest:\n type: object\n additionalProperties: false\n properties:\n plugin_instance_id: { type: string, minLength: 1 }\n cursor: { type: string, minLength: 1, maxLength: 1024 }\n limit: { type: integer, minimum: 1, maximum: 500 }\n ListRetainedDataQueryRequest:\n type: object\n additionalProperties: false\n properties:\n plugin_instance_id: { type: string, minLength: 1 }\n ListPermissionsQueryRequest:\n type: object\n additionalProperties: false\n properties:\n plugin_instance_id: { type: string, minLength: 1 }\n active_only: { type: boolean }\n ListDiagnosticsQueryRequest:\n type: object\n additionalProperties: false\n properties:\n plugin_id: { type: string, minLength: 1 }\n plugin_instance_id: { type: string, minLength: 1 }\n surface_instance_id: { type: string, minLength: 1 }\n type: { type: string, minLength: 1 }\n severity: { type: string, enum: [info, warning] }\n limit: { type: integer, minimum: 1, maximum: 1000 }\n SettingsQueryRequest:\n type: object\n additionalProperties: false\n required: [scope]\n properties:\n scope: { $ref: \"#/components/schemas/ResourceScopeKind\" }\n SurfaceBootstrap:\n type: object\n additionalProperties: false\n required:\n - plugin_id\n - plugin_instance_id\n - plugin_version\n - surface_id\n - surface_instance_id\n - active_fingerprint\n - entry_path\n - entry_sha256\n - asset_session_nonce\n - management_revision\n - revoke_epoch\n - runtime_generation_id\n - asset_ticket\n - asset_ticket_id\n - bridge_nonce\n - issued_at\n - expires_at\n properties:\n plugin_id: { type: string, minLength: 1 }\n plugin_instance_id: { type: string, minLength: 1 }\n plugin_version: { $ref: \"#/components/schemas/StrictSemVer\" }\n surface_id: { type: string, minLength: 1 }\n surface_instance_id: { type: string, minLength: 1 }\n active_fingerprint: { type: string, minLength: 1 }\n entry_path: { type: string, minLength: 1 }\n entry_sha256: { type: string, pattern: '^sha256:[0-9a-f]{64}$' }\n asset_session_nonce: { type: string, minLength: 16 }\n management_revision: { type: integer, minimum: 1, maximum: 9007199254740991 }\n revoke_epoch: { type: integer, minimum: 1, maximum: 9007199254740991 }\n runtime_generation_id: { type: string, minLength: 1 }\n asset_ticket: { type: string, minLength: 1 }\n asset_ticket_id: { type: string, minLength: 1 }\n bridge_nonce: { type: string, minLength: 16 }\n issued_at: { type: string, format: date-time }\n expires_at: { type: string, format: date-time }\n PrepareSurfaceRequest:\n type: object\n required: [asset_ticket]\n additionalProperties: false\n properties:\n asset_ticket: { type: string, minLength: 1 }\n SurfacePreparation:\n type: object\n additionalProperties: false\n required:\n - asset_session\n - asset_session_id\n - asset_session_nonce\n - entry_path\n - entry_sha256\n - management_revision\n - revoke_epoch\n - issued_at\n - expires_at\n - document\n properties:\n asset_session: { type: string, minLength: 1 }\n asset_session_id: { type: string, minLength: 1 }\n asset_session_nonce: { type: string, minLength: 16 }\n entry_path: { type: string, minLength: 1 }\n entry_sha256: { type: string, pattern: '^sha256:[0-9a-f]{64}$' }\n management_revision: { type: integer, minimum: 1, maximum: 9007199254740991 }\n revoke_epoch: { type: integer, minimum: 1, maximum: 9007199254740991 }\n issued_at: { type: string, format: date-time }\n expires_at: { type: string, format: date-time }\n document:\n $ref: \"../plugin/opaque-surface-document-v3.schema.json\"\n TrustedParentBridgeHandshake:\n type: object\n required: [type, plugin_id, surface_id, surface_instance_id, active_fingerprint, bridge_nonce, asset_session_nonce, management_revision, revoke_epoch, ui_protocol_version]\n additionalProperties: false\n properties:\n type: { const: redevplugin.bridge.handshake }\n plugin_id: { type: string, minLength: 1 }\n surface_id: { type: string, minLength: 1 }\n surface_instance_id: { type: string, minLength: 1 }\n active_fingerprint: { type: string, minLength: 1 }\n bridge_nonce: { type: string, minLength: 16 }\n asset_session_nonce: { type: string, minLength: 16 }\n management_revision: { type: integer, minimum: 1, maximum: 9007199254740991 }\n revoke_epoch: { type: integer, minimum: 1, maximum: 9007199254740991 }\n ui_protocol_version: { const: plugin-ui-v5 }\n TrustedParentBridgeTokenRequest:\n type: object\n required: [handshake, bridge_channel_id, handshake_transcript_sha256]\n additionalProperties: false\n properties:\n handshake:\n $ref: \"#/components/schemas/TrustedParentBridgeHandshake\"\n bridge_channel_id: { type: string, minLength: 1 }\n handshake_transcript_sha256:\n type: string\n pattern: '^sha256:[0-9a-f]{64}$'\n previous_plugin_gateway_token:\n type: string\n minLength: 1\n description: Required only when renewing the current bridge channel lease.\n BridgeTokenResult:\n type: object\n additionalProperties: false\n required: [plugin_gateway_token, plugin_gateway_token_id, asset_session, asset_session_id, issued_at, expires_at]\n properties:\n plugin_gateway_token: { type: string, minLength: 1 }\n plugin_gateway_token_id: { type: string, minLength: 1 }\n asset_session: { type: string, minLength: 1 }\n asset_session_id: { type: string, minLength: 1 }\n issued_at: { type: string, format: date-time }\n expires_at: { type: string, format: date-time }\n ReadSurfaceAssetRequest:\n type: object\n additionalProperties: false\n required: [asset_session, asset_session_id, binding_id]\n properties:\n asset_session: { type: string, minLength: 1 }\n asset_session_id: { type: string, minLength: 1 }\n binding_id: { type: string, pattern: '^asset_[A-Za-z0-9_-]{8,128}$' }\n SurfaceAssetResult:\n type: object\n additionalProperties: false\n required: [path, sha256, content_type, content_base64]\n properties:\n path: { type: string, minLength: 1 }\n sha256: { type: string, pattern: '^sha256:[0-9a-f]{64}$' }\n content_type: { type: string, minLength: 1 }\n content_base64: { type: string, contentEncoding: base64 }\n ReadSurfaceStreamRequest:\n type: object\n additionalProperties: false\n required: [stream_id, stream_ticket, read_id]\n properties:\n stream_id: { type: string, minLength: 1 }\n stream_ticket: { type: string, minLength: 1 }\n read_id: { type: string, pattern: '^read_[A-Za-z0-9_-]{8,128}$' }\n AcknowledgeSurfaceStreamRequest:\n type: object\n additionalProperties: false\n required: [stream_id, stream_ticket, delivery_id]\n properties:\n stream_id: { type: string, minLength: 1 }\n stream_ticket: { type: string, minLength: 1 }\n delivery_id: { type: string, pattern: '^delivery_[A-Za-z0-9_-]{8,128}$' }\n SurfaceStreamResult:\n type: object\n additionalProperties: false\n required: [read_id, events, done]\n properties:\n delivery_id: { type: string, pattern: '^delivery_[A-Za-z0-9_-]{8,128}$' }\n read_id: { type: string, pattern: '^read_[A-Za-z0-9_-]{8,128}$' }\n events:\n type: array\n items:\n $ref: \"#/components/schemas/StreamEvent\"\n done: { type: boolean }\n terminal_status:\n enum: [closed, canceled, failed, orphaned_after_disable, orphaned_after_uninstall]\n allOf:\n - if:\n properties: { events: { minItems: 1 } }\n required: [events]\n then:\n required: [delivery_id]\n - if:\n properties: { done: { const: false } }\n required: [done]\n then:\n not:\n required: [terminal_status]\n - if:\n properties: { done: { const: true } }\n required: [done]\n then:\n required: [delivery_id, terminal_status]\n SurfaceStreamAcknowledgementResult:\n type: object\n required: [acknowledged]\n additionalProperties: false\n properties:\n acknowledged: { const: true }\n CancelSurfaceOperationRequest:\n type: object\n additionalProperties: false\n required: [operation_id, bridge_channel_id]\n properties:\n operation_id: { type: string, pattern: '^operation_[A-Za-z0-9_-]{8,150}$' }\n bridge_channel_id: { type: string, minLength: 1, maxLength: 256 }\n reason: { type: string, maxLength: 256 }\n RejectSurfaceConfirmationRequest:\n type: object\n additionalProperties: false\n required: [plugin_instance_id, bridge_channel_id, plugin_gateway_token, confirmation_id]\n properties:\n plugin_instance_id: { type: string, minLength: 1 }\n bridge_channel_id: { type: string, minLength: 1, maxLength: 256 }\n plugin_gateway_token: { type: string, minLength: 1 }\n confirmation_id: { type: string, pattern: '^confirmation_[A-Za-z0-9_-]{8,128}$' }\n ConfirmationRejectionResult:\n type: object\n additionalProperties: false\n required: [rejected]\n properties:\n rejected: { const: true }\n StreamEvent:\n type: object\n additionalProperties: false\n required: [stream_id, sequence, kind, at]\n properties:\n stream_id: { type: string, minLength: 1 }\n sequence: { type: integer, minimum: 0 }\n kind: { type: string, minLength: 1 }\n data: { type: string, contentEncoding: base64 }\n error: { type: string }\n at: { type: string, format: date-time }\n DisposeSurfaceRequest:\n type: object\n additionalProperties: false\n required: [bridge_nonce]\n properties:\n bridge_nonce: { type: string, minLength: 16 }\n RPCRequest:\n type: object\n required: [plugin_instance_id, surface_instance_id, bridge_channel_id, plugin_gateway_token, method]\n additionalProperties: false\n properties:\n plugin_instance_id: { type: string, minLength: 1 }\n surface_instance_id: { type: string, minLength: 1 }\n bridge_channel_id: { type: string, minLength: 1 }\n plugin_gateway_token: { type: string, minLength: 1 }\n confirmation_id: { type: string }\n method: { type: string, minLength: 1 }\n params:\n type: object\n additionalProperties: true\n PrepareMethodConfirmationRequest:\n type: object\n required: [plugin_instance_id, surface_instance_id, bridge_channel_id, plugin_gateway_token, method]\n additionalProperties: false\n properties:\n plugin_instance_id: { type: string, minLength: 1 }\n surface_instance_id: { type: string, minLength: 1 }\n bridge_channel_id: { type: string, minLength: 1 }\n plugin_gateway_token: { type: string, minLength: 1 }\n method: { type: string, minLength: 1 }\n params:\n type: object\n additionalProperties: true\n RPCResult:\n oneOf:\n - type: object\n additionalProperties: false\n properties:\n data: true\n not:\n anyOf:\n - required: [operation_id]\n - required: [stream_id]\n - required: [confirmation_required]\n - type: object\n additionalProperties: false\n required: [operation_id]\n properties:\n data: true\n operation_id: { type: string, minLength: 1 }\n - type: object\n additionalProperties: false\n required: [operation_id, stream_id, stream_ticket, stream_ticket_id, stream_expires_at]\n properties:\n data: true\n operation_id: { type: string, minLength: 1 }\n stream_id: { type: string, minLength: 1 }\n stream_ticket: { type: string, minLength: 1 }\n stream_ticket_id: { type: string, minLength: 1 }\n stream_expires_at: { type: string, format: date-time }\n - type: object\n additionalProperties: false\n required: [confirmation_required, confirmation_token_id, request_hash, plan_hash]\n properties:\n confirmation_required: { const: true }\n confirmation_token_id: { type: string, minLength: 1 }\n request_hash: { type: string, pattern: '^sha256:[0-9a-f]{64}$' }\n plan_hash: { type: string, pattern: '^sha256:[0-9a-f]{64}$' }\n RiskFlag:\n type: object\n required: [id, severity, summary]\n additionalProperties: false\n properties:\n id:\n type: string\n minLength: 1\n description: Stable machine-readable risk identifier.\n severity:\n type: string\n enum: [info, low, medium, high, critical]\n summary: { type: string, minLength: 1 }\n description: { type: string }\n requires_confirmation: { type: boolean }\n requires_admin: { type: boolean }\n data_loss_risk: { type: boolean }\n destructive: { type: boolean }\n RiskPlan:\n type: object\n required: [schema_version, summary, risk_flags]\n additionalProperties: false\n properties:\n schema_version: { const: redevplugin.capability.risk_plan.v1 }\n capability_id: { type: string }\n binding_id: { type: string }\n method: { type: string }\n target_method: { type: string }\n action: { type: string }\n effect:\n type: string\n enum: [read, write, execute, delete, admin]\n resource_ref: { type: string }\n resource_display_name: { type: string }\n summary: { type: string, minLength: 1 }\n risk_flags:\n type: array\n items:\n $ref: \"#/components/schemas/RiskFlag\"\n requires_confirmation: { type: boolean }\n requires_admin: { type: boolean }\n data_loss_risk: { type: boolean }\n destructive: { type: boolean }\n deny_reason: { type: string }\n details:\n type: object\n additionalProperties: true\n PluginMethodConfirmationPreparation:\n type: object\n required: [confirmation_id, confirmation_token_id, request_hash, plan_hash, expires_at]\n additionalProperties: false\n properties:\n confirmation_id: { type: string, minLength: 1 }\n confirmation_token_id:\n type: string\n minLength: 1\n description: Opaque audit/display id for the server-held confirmation token. It is not a credential.\n request_hash:\n type: string\n pattern: \"^sha256:[0-9a-f]{64}$\"\n plan_hash:\n type: string\n pattern: \"^sha256:[0-9a-f]{64}$\"\n plan:\n description: Host-redacted confirmation plan payload returned by the declared preflight method, when available.\n oneOf:\n - $ref: \"#/components/schemas/RiskPlan\"\n - type: object\n additionalProperties: true\n expires_at: { type: string, format: date-time }\n InvokeIntentRequest:\n type: object\n required: [intent_id]\n additionalProperties: false\n properties:\n plugin_instance_id: { type: string }\n intent_id: { type: string, minLength: 1 }\n params:\n type: object\n additionalProperties: true\n CancelOperationRequest:\n type: object\n additionalProperties: false\n properties:\n reason: { type: string }\n CapabilityContractPin:\n $ref: \"../plugin/host-capability-pin-v1.schema.json\"\n PublicOperationBinding:\n type: object\n description: Public immutable execution evidence embedded into operation responses. Session and bridge channel ownership fields are excluded.\n required:\n - invocation_id\n - audit_correlation_id\n - publisher_id\n - plugin_id\n - plugin_instance_id\n - plugin_version\n - active_fingerprint\n - route_kind\n - capability_id\n - capability_version\n - binding_id\n - method\n - target_method\n - effect\n - execution\n - permissions\n - confirmation\n - revision\n - quota\n - target\n - target_descriptor_sha256\n properties:\n invocation_id: { type: string, minLength: 1 }\n audit_correlation_id: { type: string, minLength: 1 }\n operation_id: { type: string, minLength: 1 }\n stream_id: { type: string, minLength: 1 }\n publisher_id: { type: string, minLength: 1 }\n plugin_id: { type: string, minLength: 1 }\n plugin_instance_id: { type: string, minLength: 1 }\n plugin_version: { $ref: \"#/components/schemas/StrictSemVer\" }\n active_fingerprint: { type: string, minLength: 1 }\n surface_instance_id: { type: string }\n route_kind: { type: string, enum: [capability, worker, core_action] }\n capability_id: { type: string, minLength: 1 }\n capability_version: { $ref: \"#/components/schemas/StrictSemVer\" }\n binding_id: { type: string, minLength: 1 }\n contract:\n $ref: \"#/components/schemas/CapabilityContractPin\"\n method: { type: string, minLength: 1 }\n target_method: { type: string, minLength: 1 }\n effect: { type: string, enum: [read, write, execute, delete, admin] }\n execution: { type: string, enum: [sync, operation, subscription] }\n permissions:\n type: object\n additionalProperties: false\n required: [required, granted]\n properties:\n required: { type: array, items: { type: string } }\n granted: { type: array, items: { type: string } }\n confirmation:\n type: object\n additionalProperties: false\n required: [required, confirmed]\n properties:\n required: { type: boolean }\n confirmed: { type: boolean }\n confirmation_id: { type: string }\n request_sha256: { type: string }\n plan_sha256: { type: string }\n target_sha256: { type: string }\n revision:\n type: object\n additionalProperties: false\n required: [policy_revision, management_revision, revoke_epoch]\n properties:\n policy_revision: { type: integer, minimum: 0, maximum: 9007199254740991 }\n management_revision: { type: integer, minimum: 0, maximum: 9007199254740991 }\n revoke_epoch: { type: integer, minimum: 0, maximum: 9007199254740991 }\n quota:\n type: object\n additionalProperties: false\n properties:\n max_concurrent: { type: integer, minimum: 0, maximum: 9007199254740991 }\n max_duration_ms: { type: integer, minimum: 0, maximum: 9007199254740991 }\n max_stream_bytes: { type: integer, minimum: 0, maximum: 9007199254740991 }\n expires_at: { type: string, format: date-time }\n target:\n type: object\n additionalProperties: false\n required: [kind, fields]\n properties:\n kind: { type: string, minLength: 1 }\n fields: { type: object, additionalProperties: true }\n target_descriptor_sha256: { type: string, pattern: '^sha256:[0-9a-f]{64}$' }\n stream_event_type_name: { type: string, minLength: 1 }\n stream_event_schema_sha256: { type: string, pattern: '^[0-9a-f]{64}$' }\n oneOf:\n - required: [route_kind, contract]\n properties:\n route_kind: { const: capability }\n - required: [route_kind]\n properties:\n route_kind: { const: worker }\n not:\n required: [contract]\n - required: [route_kind]\n properties:\n route_kind: { const: core_action }\n not:\n required: [contract]\n OperationRecord:\n allOf:\n - $ref: \"#/components/schemas/PublicOperationBinding\"\n - type: object\n required:\n - operation_id\n - cancelable\n - created_at\n - updated_at\n properties:\n operation_id: { type: string, minLength: 1 }\n execution: { type: string, enum: [operation, subscription] }\n cancelable: { type: boolean }\n cancel_ack_timeout_ms: { type: integer, minimum: 0 }\n disable_behavior: { type: string, enum: [cancel, orphan, wait] }\n uninstall_behavior: { type: string, enum: [cancel_then_block_delete, force_cleanup_allowed] }\n created_at: { type: string, format: date-time }\n updated_at: { type: string, format: date-time }\n cancel_requested_at: { type: string, format: date-time }\n orphaned_at: { type: string, format: date-time }\n terminal_at: { type: string, format: date-time }\n oneOf:\n - type: object\n required: [status, failure_code, reason]\n properties:\n status: { const: failed }\n failure_code: { $ref: \"#/components/schemas/ExecutionFailureCode\" }\n reason: { const: \"execution failed\" }\n - type: object\n required: [status]\n properties:\n status:\n enum: [running, cancel_requested, canceled, completed, orphaned_after_disable, orphaned_after_uninstall]\n reason: { type: string }\n not:\n required: [failure_code]\n unevaluatedProperties: false\n ExecutionFailureCode:\n type: string\n enum: [adapter_failed, contract_invalid, platform_failed, quota_exceeded, runtime_failed]\n StartRuntimeRequest:\n type: object\n required: [target]\n additionalProperties: false\n properties:\n target: { $ref: \"#/components/schemas/RuntimeTarget\" }\n ExportDataRequest:\n type: object\n required: [plugin_instance_id]\n additionalProperties: false\n properties:\n plugin_instance_id: { type: string, minLength: 1 }\n DeleteDataExportRequest:\n type: object\n required: [plugin_instance_id, bundle_ref]\n additionalProperties: false\n properties:\n plugin_instance_id: { type: string, minLength: 1 }\n bundle_ref: { type: string, minLength: 1 }\n ImportDataRequest:\n type: object\n required: [plugin_instance_id, bundle_ref, expected_management_revision]\n additionalProperties: false\n properties:\n plugin_instance_id: { type: string, minLength: 1 }\n bundle_ref: { type: string, minLength: 1 }\n expected_management_revision: { type: integer, minimum: 1, maximum: 9007199254740991 }\n PluginDataBinding:\n type: object\n required: [plugin_instance_id, generation_id, state, revision, shape_hash]\n additionalProperties: false\n properties:\n plugin_instance_id: { type: string, minLength: 1 }\n generation_id: { type: string, minLength: 1 }\n state: { type: string, enum: [active, retained] }\n revision: { type: integer, minimum: 1, maximum: 9007199254740991 }\n shape_hash: { type: string, pattern: \"^[0-9a-f]{64}$\" }\n retained_at: { type: string, format: date-time }\n expires_at: { type: string, format: date-time }\n RetainedDataList:\n type: object\n required: [retained_data]\n additionalProperties: false\n properties:\n retained_data:\n type: array\n items:\n $ref: \"#/components/schemas/PluginDataBinding\"\n RetainedDataCleanupResult:\n type: object\n required: [deleted]\n additionalProperties: false\n properties:\n deleted:\n type: array\n items:\n $ref: \"#/components/schemas/PluginDataBinding\"\n DeleteRetainedDataRequest:\n type: object\n required: [plugin_instance_id, expected_binding_revision]\n additionalProperties: false\n properties:\n plugin_instance_id: { type: string, minLength: 1 }\n expected_binding_revision: { type: integer, minimum: 1, maximum: 9007199254740991 }\n BindRetainedDataRequest:\n type: object\n required: [source_plugin_instance_id, expected_source_binding_revision, target_plugin_instance_id, target_expected_management_revision]\n additionalProperties: false\n properties:\n source_plugin_instance_id: { type: string, minLength: 1 }\n expected_source_binding_revision: { type: integer, minimum: 1, maximum: 9007199254740991 }\n target_plugin_instance_id: { type: string, minLength: 1 }\n target_expected_management_revision: { type: integer, minimum: 1, maximum: 9007199254740991 }\n CleanupExpiredRetainedDataRequest:\n type: object\n additionalProperties: false\n GrantPermissionRequest:\n type: object\n required: [plugin_instance_id, permission_id, expected_policy_revision, expected_management_revision, expected_revoke_epoch]\n additionalProperties: false\n properties:\n plugin_instance_id: { type: string, minLength: 1 }\n permission_id: { type: string, minLength: 1 }\n expected_policy_revision: { type: integer, minimum: 1, maximum: 9007199254740991 }\n expected_management_revision: { type: integer, minimum: 1, maximum: 9007199254740991 }\n expected_revoke_epoch: { type: integer, minimum: 0, maximum: 9007199254740991 }\n expires_at: { type: string, format: date-time }\n RevokePermissionRequest:\n type: object\n required: [plugin_instance_id, permission_id, expected_policy_revision, expected_management_revision, expected_revoke_epoch]\n additionalProperties: false\n properties:\n plugin_instance_id: { type: string, minLength: 1 }\n permission_id: { type: string, minLength: 1 }\n expected_policy_revision: { type: integer, minimum: 1, maximum: 9007199254740991 }\n expected_management_revision: { type: integer, minimum: 1, maximum: 9007199254740991 }\n expected_revoke_epoch: { type: integer, minimum: 0, maximum: 9007199254740991 }\n reason: { type: string }\n PutSecurityPolicyRequest:\n type: object\n required: [expected_policy_revision, expected_management_revision, expected_revoke_epoch, allowed_permissions, denied_methods]\n additionalProperties: false\n properties:\n expected_policy_revision: { type: integer, minimum: 1, maximum: 9007199254740991 }\n expected_management_revision: { type: integer, minimum: 1, maximum: 9007199254740991 }\n expected_revoke_epoch: { type: integer, minimum: 0, maximum: 9007199254740991 }\n allowed_permissions:\n type: array\n uniqueItems: true\n items: { type: string, minLength: 1 }\n denied_methods:\n type: array\n uniqueItems: true\n items: { type: string, minLength: 1 }\n DeleteSecurityPolicyRequest:\n type: object\n required: [expected_policy_revision, expected_management_revision, expected_revoke_epoch]\n additionalProperties: false\n properties:\n expected_policy_revision: { type: integer, minimum: 1, maximum: 9007199254740991 }\n expected_management_revision: { type: integer, minimum: 1, maximum: 9007199254740991 }\n expected_revoke_epoch: { type: integer, minimum: 0, maximum: 9007199254740991 }\n SecretRefRequest:\n type: object\n required: [plugin_instance_id, secret_ref, scope]\n additionalProperties: false\n properties:\n plugin_instance_id: { type: string, minLength: 1 }\n secret_ref: { type: string, minLength: 1 }\n scope: { type: string, enum: [user, environment] }\n ResourceScopeKind:\n type: string\n enum: [user, environment]\n PatchSettingsRequest:\n type: object\n required: [scope, expected_values_revision]\n additionalProperties: false\n minProperties: 3\n properties:\n scope: { $ref: \"#/components/schemas/ResourceScopeKind\" }\n expected_values_revision: { type: integer, minimum: 1, maximum: 9007199254740991 }\n set:\n type: object\n minProperties: 1\n additionalProperties: true\n remove:\n type: array\n minItems: 1\n uniqueItems: true\n items: { type: string, minLength: 1 }\n";
139
+ }, {
140
+ readonly id: "process-containment-schema";
141
+ readonly path: "spec/plugin/process-containment-v1.schema.json";
142
+ readonly version: "process-containment-v1";
143
+ readonly sha256: "930ea44b1f62361706e994649e84f62af0a6418b77a661ae9bf9c10f1398e3fc";
144
+ readonly body: "{\n \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n \"$id\": \"https://schemas.redevplugin.dev/plugin/process-containment-v1.schema.json\",\n \"title\": \"ReDevPlugin runtime process containment evidence v1\",\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"schema_version\", \"profile\", \"seccomp_policy_sha256\", \"no_new_privs\", \"seccomp_tsync\", \"process_creation_denied\", \"reexec_denied\", \"active\"],\n \"properties\": {\n \"schema_version\": {\"const\": \"redevplugin.process_containment.v1\"},\n \"profile\": {\"const\": \"linux-runtime-v1\"},\n \"seccomp_policy_sha256\": {\"type\": \"string\", \"pattern\": \"^[0-9a-f]{64}$\"},\n \"no_new_privs\": {\"const\": true},\n \"seccomp_tsync\": {\"const\": true},\n \"process_creation_denied\": {\"const\": true},\n \"reexec_denied\": {\"const\": true},\n \"active\": {\"const\": true}\n }\n}\n";
145
+ }, {
146
+ readonly id: "quarantine-cleanup-schema";
147
+ readonly path: "spec/plugin/quarantine-cleanup-v1.schema.json";
148
+ readonly version: "quarantine-cleanup-v1";
149
+ readonly sha256: "0aced01a8d409953d5075a799ac273cae79e285ac82debe93ac4d8b706571ad1";
150
+ readonly body: "{\n \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n \"$id\": \"https://schemas.redevplugin.dev/plugin/quarantine-cleanup-v1.schema.json\",\n \"title\": \"ReDevPlugin quarantine cleanup journal v1\",\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\n \"schema_version\",\n \"migration_id\",\n \"root_identity_sha256\",\n \"quarantine_id\",\n \"quarantine_sha256\",\n \"state\",\n \"entries\"\n ],\n \"properties\": {\n \"schema_version\": { \"const\": \"quarantine-cleanup-v1\" },\n \"migration_id\": { \"type\": \"string\", \"pattern\": \"^migration_[0-9a-f]{32}$\" },\n \"root_identity_sha256\": { \"$ref\": \"#/$defs/sha256\" },\n \"quarantine_id\": { \"type\": \"string\", \"pattern\": \"^quarantine_[0-9a-f]{32}$\" },\n \"quarantine_sha256\": { \"$ref\": \"#/$defs/sha256\" },\n \"state\": { \"enum\": [\"delete_prepared\", \"deleting\", \"delete_reconcile_required\", \"deleted\"] },\n \"entries\": {\n \"type\": \"array\",\n \"minItems\": 1,\n \"maxItems\": 200000,\n \"items\": { \"$ref\": \"#/$defs/entry\" }\n }\n },\n \"$defs\": {\n \"sha256\": { \"type\": \"string\", \"pattern\": \"^[0-9a-f]{64}$\" },\n \"entry\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"path\", \"kind\", \"device\", \"inode\", \"uid\", \"mode\", \"size\", \"nlink\", \"sha256\"],\n \"properties\": {\n \"path\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"maxLength\": 4096,\n \"pattern\": \"^[^/\\\\\\\\]+(?:/[^/\\\\\\\\]+)*$\",\n \"not\": { \"pattern\": \"(^|/)\\\\.\\\\.?($|/)\" }\n },\n \"kind\": { \"enum\": [\"directory\", \"file\"] },\n \"device\": { \"type\": \"integer\", \"minimum\": 0, \"maximum\": 18446744073709551615 },\n \"inode\": { \"type\": \"integer\", \"minimum\": 1, \"maximum\": 18446744073709551615 },\n \"uid\": { \"type\": \"integer\", \"minimum\": 0, \"maximum\": 4294967295 },\n \"mode\": { \"type\": \"integer\", \"minimum\": 0, \"maximum\": 4095 },\n \"size\": { \"type\": \"integer\", \"minimum\": 0, \"maximum\": 4294967296 },\n \"nlink\": { \"type\": \"integer\", \"minimum\": 0, \"maximum\": 1 },\n \"sha256\": { \"type\": \"string\", \"pattern\": \"^$|^[0-9a-f]{64}$\" }\n }\n }\n }\n}\n";
151
+ }, {
152
+ readonly id: "release-metadata-schema";
153
+ readonly path: "spec/plugin/release-metadata-v5.schema.json";
154
+ readonly version: "release-metadata-v5";
155
+ readonly sha256: "255ef3deb7d2758a43e69e533a08aa28106f8edc2e7385ab0aec0d50c1ef3d7a";
156
+ readonly body: "{\n \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n \"$id\": \"https://schemas.redevplugin.dev/plugin/release-metadata-v5.schema.json\",\n \"title\": \"ReDevPlugin signed plugin release metadata v5\",\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\n \"schema_version\",\n \"source_id\",\n \"release_metadata_ref\",\n \"publisher_id\",\n \"plugin_id\",\n \"version\",\n \"distribution_ref\",\n \"hashes\",\n \"release_metadata_signature\",\n \"package_signature\",\n \"compatibility\"\n ],\n \"properties\": {\n \"schema_version\": { \"const\": \"redevplugin.release_metadata.v5\" },\n \"source_id\": { \"type\": \"string\", \"minLength\": 1 },\n \"release_metadata_ref\": { \"$ref\": \"#/$defs/artifact_ref\" },\n \"publisher_id\": { \"type\": \"string\", \"minLength\": 1 },\n \"plugin_id\": { \"type\": \"string\", \"minLength\": 1 },\n \"version\": { \"$ref\": \"#/$defs/semver\" },\n \"distribution_ref\": { \"$ref\": \"#/$defs/distribution_ref\" },\n \"hashes\": { \"$ref\": \"#/$defs/package_hash_set\" },\n \"release_metadata_signature\": { \"$ref\": \"#/$defs/release_metadata_signature\" },\n \"package_signature\": { \"$ref\": \"#/$defs/package_release_signature\" },\n \"compatibility\": { \"$ref\": \"#/$defs/release_compatibility\" },\n \"host_requirements\": {\n \"type\": \"array\",\n \"items\": { \"$ref\": \"#/$defs/host_requirement\" }\n },\n \"release_evidence\": { \"$ref\": \"#/$defs/release_evidence\" },\n \"metadata\": {\n \"type\": \"object\",\n \"additionalProperties\": { \"type\": \"string\" }\n }\n },\n \"$defs\": {\n \"semver\": {\n \"type\": \"string\",\n \"pattern\": \"^(0|[1-9][0-9]*)\\\\.(0|[1-9][0-9]*)\\\\.(0|[1-9][0-9]*)(?:-(?:(?:0|[1-9][0-9]*|[0-9A-Za-z-]*[A-Za-z-][0-9A-Za-z-]*)(?:\\\\.(?:0|[1-9][0-9]*|[0-9A-Za-z-]*[A-Za-z-][0-9A-Za-z-]*))*))?(?:\\\\+[0-9A-Za-z-]+(?:\\\\.[0-9A-Za-z-]+)*)?$\"\n },\n \"artifact_ref\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"pattern\": \"^[A-Za-z0-9._/@+-]+$\",\n \"not\": {\n \"anyOf\": [\n { \"pattern\": \"^/\" },\n { \"pattern\": \"(^|/)\\\\.\\\\.(/|$)\" },\n { \"pattern\": \"\\\\\\\\\" },\n { \"pattern\": \"[?#]\" }\n ]\n }\n },\n \"sha256\": {\n \"type\": \"string\",\n \"pattern\": \"^(sha256:)?[a-f0-9]{64}$\"\n },\n \"distribution_ref\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"distribution\", \"artifact_ref\"],\n \"properties\": {\n \"distribution\": { \"enum\": [\"registry_ref\", \"host_artifact_ref\"] },\n \"artifact_ref\": { \"$ref\": \"#/$defs/artifact_ref\" }\n }\n },\n \"package_hash_set\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"package_sha256\", \"manifest_sha256\", \"entries_sha256\"],\n \"properties\": {\n \"package_sha256\": { \"$ref\": \"#/$defs/sha256\" },\n \"manifest_sha256\": { \"$ref\": \"#/$defs/sha256\" },\n \"entries_sha256\": { \"$ref\": \"#/$defs/sha256\" }\n }\n },\n \"release_metadata_signature\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"algorithm\", \"key_id\", \"signature_ref\", \"source_policy_epoch\", \"revocation_epoch\"],\n \"properties\": {\n \"algorithm\": { \"enum\": [\"ed25519\"] },\n \"key_id\": { \"type\": \"string\", \"minLength\": 1 },\n \"signature_ref\": { \"$ref\": \"#/$defs/artifact_ref\" },\n \"source_policy_epoch\": { \"$ref\": \"#/$defs/decimal_epoch\" },\n \"revocation_epoch\": { \"$ref\": \"#/$defs/decimal_epoch\" }\n }\n },\n \"package_release_signature\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"algorithm\", \"key_id\", \"signature_bundle_ref\", \"source_policy_epoch\", \"revocation_epoch\"],\n \"properties\": {\n \"algorithm\": { \"enum\": [\"ed25519\"] },\n \"key_id\": { \"type\": \"string\", \"minLength\": 1 },\n \"signature_bundle_ref\": { \"$ref\": \"#/$defs/artifact_ref\" },\n \"source_policy_epoch\": { \"$ref\": \"#/$defs/decimal_epoch\" },\n \"revocation_epoch\": { \"$ref\": \"#/$defs/decimal_epoch\" }\n }\n },\n \"release_compatibility\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"min_redevplugin_version\", \"min_runtime_version\", \"ui_protocol_version\"],\n \"properties\": {\n \"min_redevplugin_version\": { \"$ref\": \"#/$defs/semver\" },\n \"min_runtime_version\": { \"$ref\": \"#/$defs/semver\" },\n \"ui_protocol_version\": { \"const\": \"plugin-ui-v5\" },\n \"supported_targets\": {\n \"type\": \"array\",\n \"uniqueItems\": true,\n \"items\": { \"enum\": [\"darwin/amd64\", \"darwin/arm64\", \"linux/amd64\", \"linux/arm64\"] }\n }\n }\n },\n \"host_requirement\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"host_id\"],\n \"properties\": {\n \"host_id\": { \"type\": \"string\", \"minLength\": 1 },\n \"min_host_version\": { \"$ref\": \"#/$defs/semver\" },\n \"required_capability_contracts\": {\n \"type\": \"array\",\n \"items\": { \"$ref\": \"#/$defs/host_capability_requirement\" }\n }\n }\n },\n \"host_capability_requirement\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\n \"capability_id\",\n \"capability_version\",\n \"contract\"\n ],\n \"properties\": {\n \"capability_id\": { \"type\": \"string\", \"minLength\": 1 },\n \"capability_version\": { \"$ref\": \"#/$defs/semver\" },\n \"contract\": { \"$ref\": \"#/$defs/host_capability_contract_ref\" }\n }\n },\n \"host_capability_contract_ref\": {\n \"$ref\": \"host-capability-pin-v1.schema.json\"\n },\n \"release_evidence\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"notices_sha256\": { \"$ref\": \"#/$defs/sha256\" },\n \"provenance_sha256\": { \"$ref\": \"#/$defs/sha256\" },\n \"generated_at\": { \"type\": \"string\", \"format\": \"date-time\" }\n }\n },\n \"decimal_epoch\": {\n \"type\": \"string\",\n \"pattern\": \"^(0|[1-9][0-9]*)$\"\n }\n }\n}\n";
157
+ }, {
158
+ readonly id: "release-revocation-pointer-schema";
159
+ readonly path: "spec/plugin/release-revocation-pointer-v1.schema.json";
160
+ readonly version: "release-revocation-pointer-v1";
161
+ readonly sha256: "a9b7b64cb2dbf89500f0d191a6b2b9ab42eb806a452eb8338895a48ec7d7551e";
162
+ readonly body: "{\n \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n \"$id\": \"https://schemas.redevplugin.dev/plugin/release-revocation-pointer-v1.schema.json\",\n \"title\": \"ReDevPlugin release revocation pointer v1\",\n \"$ref\": \"#/$defs/pointer\",\n \"$defs\": {\n \"pointer\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\n \"schema_version\",\n \"source_id\",\n \"channel\",\n \"epoch\",\n \"previous_epoch\",\n \"previous_document_sha256\",\n \"ref\",\n \"document_sha256\",\n \"generated_at\",\n \"expires_at\",\n \"key_id\",\n \"signature\"\n ],\n \"properties\": {\n \"schema_version\": { \"const\": \"redevplugin.release_revocation_pointer.v1\" },\n \"source_id\": { \"$ref\": \"#/$defs/id\" },\n \"channel\": { \"$ref\": \"#/$defs/id\" },\n \"epoch\": { \"$ref\": \"#/$defs/positive_epoch\" },\n \"previous_epoch\": { \"$ref\": \"#/$defs/epoch\" },\n \"previous_document_sha256\": { \"$ref\": \"#/$defs/sha256\" },\n \"ref\": { \"$ref\": \"#/$defs/artifact_ref\" },\n \"document_sha256\": { \"$ref\": \"#/$defs/sha256\" },\n \"generated_at\": { \"$ref\": \"#/$defs/canonical_time\" },\n \"expires_at\": { \"$ref\": \"#/$defs/canonical_time\" },\n \"key_id\": { \"$ref\": \"#/$defs/id\" },\n \"signature\": { \"$ref\": \"#/$defs/signature\" }\n }\n },\n \"id\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"maxLength\": 128,\n \"pattern\": \"^[a-z][a-z0-9._-]*$\"\n },\n \"artifact_ref\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"maxLength\": 1024,\n \"pattern\": \"^[A-Za-z0-9._@+-]+(?:/[A-Za-z0-9._@+-]+)*$\",\n \"not\": {\n \"anyOf\": [\n { \"pattern\": \"^/\" },\n { \"pattern\": \"(^|/)\\\\.(/|$)\" },\n { \"pattern\": \"(^|/)\\\\.\\\\.(/|$)\" },\n { \"pattern\": \"\\\\\\\\\" },\n { \"pattern\": \"[?#]\" }\n ]\n }\n },\n \"epoch\": { \"type\": \"string\", \"pattern\": \"^(0|[1-9][0-9]*)$\" },\n \"positive_epoch\": { \"type\": \"string\", \"pattern\": \"^[1-9][0-9]*$\" },\n \"sha256\": { \"type\": \"string\", \"pattern\": \"^[0-9a-f]{64}$\" },\n \"canonical_time\": {\n \"type\": \"string\",\n \"format\": \"date-time\",\n \"pattern\": \"^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$\"\n },\n \"signature\": { \"type\": \"string\", \"pattern\": \"^[A-Za-z0-9+/]{86}==$\" }\n }\n}\n";
163
+ }, {
164
+ readonly id: "release-revocation-schema";
165
+ readonly path: "spec/plugin/release-revocation-v2.schema.json";
166
+ readonly version: "release-revocation-v2";
167
+ readonly sha256: "c3b40c05bc0dea422a272ee62ca45d0efb6456278b0707c5a12f39b004b84cb4";
168
+ readonly body: "{\n \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n \"$id\": \"https://schemas.redevplugin.dev/plugin/release-revocation-v2.schema.json\",\n \"title\": \"ReDevPlugin release revocation v2\",\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\n \"schema_version\",\n \"source_id\",\n \"channel\",\n \"epoch\",\n \"previous_epoch\",\n \"previous_document_sha256\",\n \"root_epoch\",\n \"generated_at\",\n \"expires_at\",\n \"revoked_key_ids\",\n \"revoked_releases\",\n \"key_id\",\n \"signature\"\n ],\n \"properties\": {\n \"schema_version\": { \"const\": \"redevplugin.release_revocation.v2\" },\n \"source_id\": { \"$ref\": \"#/$defs/id\" },\n \"channel\": { \"$ref\": \"#/$defs/id\" },\n \"epoch\": { \"$ref\": \"#/$defs/positive_epoch\" },\n \"previous_epoch\": { \"$ref\": \"#/$defs/epoch\" },\n \"previous_document_sha256\": { \"$ref\": \"#/$defs/sha256\" },\n \"root_epoch\": { \"$ref\": \"#/$defs/positive_epoch\" },\n \"generated_at\": { \"$ref\": \"#/$defs/canonical_time\" },\n \"expires_at\": { \"$ref\": \"#/$defs/canonical_time\" },\n \"revoked_key_ids\": {\n \"type\": \"array\",\n \"maxItems\": 4096,\n \"uniqueItems\": true,\n \"items\": { \"$ref\": \"#/$defs/id\" }\n },\n \"revoked_releases\": {\n \"type\": \"array\",\n \"maxItems\": 16384,\n \"items\": { \"$ref\": \"#/$defs/revoked_release\" }\n },\n \"key_id\": { \"$ref\": \"#/$defs/id\" },\n \"signature\": { \"$ref\": \"#/$defs/signature\" }\n },\n \"$defs\": {\n \"revoked_release\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\n \"publisher_id\",\n \"plugin_id\",\n \"version\",\n \"release_metadata_sha256\",\n \"revoked_at\"\n ],\n \"properties\": {\n \"publisher_id\": { \"$ref\": \"#/$defs/legacy_id\" },\n \"plugin_id\": { \"$ref\": \"#/$defs/legacy_id\" },\n \"version\": { \"$ref\": \"#/$defs/semver\" },\n \"release_metadata_sha256\": { \"$ref\": \"#/$defs/sha256\" },\n \"revoked_at\": { \"$ref\": \"#/$defs/canonical_time\" }\n }\n },\n \"id\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"maxLength\": 128,\n \"pattern\": \"^[a-z][a-z0-9._-]*$\"\n },\n \"legacy_id\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"maxLength\": 128,\n \"pattern\": \"^[A-Za-z0-9][A-Za-z0-9._-]*$\"\n },\n \"epoch\": { \"type\": \"string\", \"pattern\": \"^(0|[1-9][0-9]*)$\" },\n \"positive_epoch\": { \"type\": \"string\", \"pattern\": \"^[1-9][0-9]*$\" },\n \"sha256\": { \"type\": \"string\", \"pattern\": \"^[0-9a-f]{64}$\" },\n \"canonical_time\": {\n \"type\": \"string\",\n \"format\": \"date-time\",\n \"pattern\": \"^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$\"\n },\n \"semver\": {\n \"type\": \"string\",\n \"pattern\": \"^(0|[1-9][0-9]*)\\\\.(0|[1-9][0-9]*)\\\\.(0|[1-9][0-9]*)(?:-(?:(?:0|[1-9][0-9]*|[0-9A-Za-z-]*[A-Za-z-][0-9A-Za-z-]*)(?:\\\\.(?:0|[1-9][0-9]*|[0-9A-Za-z-]*[A-Za-z-][0-9A-Za-z-]*))*))?(?:\\\\+[0-9A-Za-z-]+(?:\\\\.[0-9A-Za-z-]+)*)?$\"\n },\n \"signature\": { \"type\": \"string\", \"pattern\": \"^[A-Za-z0-9+/]{86}==$\" }\n }\n}\n";
169
+ }, {
170
+ readonly id: "release-root-delegation-schema";
171
+ readonly path: "spec/plugin/release-root-delegation-v1.schema.json";
172
+ readonly version: "release-root-delegation-v1";
173
+ readonly sha256: "c1adbb13eaeeca145d5ee787ff43777e60a5f329e460d20b8db358e4f5fc4825";
174
+ readonly body: "{\n \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n \"$id\": \"https://schemas.redevplugin.dev/plugin/release-root-delegation-v1.schema.json\",\n \"title\": \"ReDevPlugin release root delegation v1\",\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\n \"schema_version\",\n \"source_id\",\n \"root_epoch\",\n \"previous_root_epoch\",\n \"previous_delegation_sha256\",\n \"generated_at\",\n \"expires_at\",\n \"delegated_keys\",\n \"key_id\",\n \"signature\"\n ],\n \"properties\": {\n \"schema_version\": { \"const\": \"redevplugin.release_root_delegation.v1\" },\n \"source_id\": { \"$ref\": \"#/$defs/id\" },\n \"root_epoch\": { \"$ref\": \"#/$defs/positive_epoch\" },\n \"previous_root_epoch\": { \"$ref\": \"#/$defs/epoch\" },\n \"previous_delegation_sha256\": { \"$ref\": \"#/$defs/sha256\" },\n \"generated_at\": { \"$ref\": \"#/$defs/canonical_time\" },\n \"expires_at\": { \"$ref\": \"#/$defs/canonical_time\" },\n \"delegated_keys\": {\n \"type\": \"array\",\n \"minItems\": 1,\n \"maxItems\": 32,\n \"items\": { \"$ref\": \"#/$defs/delegated_key\" }\n },\n \"key_id\": { \"$ref\": \"#/$defs/id\" },\n \"signature\": { \"$ref\": \"#/$defs/signature\" }\n },\n \"$defs\": {\n \"delegated_key\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\n \"algorithm\",\n \"key_id\",\n \"public_key\",\n \"usages\",\n \"channels\",\n \"valid_from\",\n \"valid_until\"\n ],\n \"properties\": {\n \"algorithm\": { \"const\": \"ed25519\" },\n \"key_id\": { \"$ref\": \"#/$defs/id\" },\n \"public_key\": { \"$ref\": \"#/$defs/public_key\" },\n \"usages\": {\n \"type\": \"array\",\n \"minItems\": 1,\n \"maxItems\": 9,\n \"uniqueItems\": true,\n \"items\": {\n \"enum\": [\n \"package\",\n \"release_metadata\",\n \"host_capability_contract\",\n \"source_policy_document\",\n \"source_policy_pointer\",\n \"revocation_document\",\n \"revocation_pointer\",\n \"signing_ledger\",\n \"trusted_time\"\n ]\n }\n },\n \"channels\": {\n \"type\": \"array\",\n \"minItems\": 0,\n \"maxItems\": 16,\n \"uniqueItems\": true,\n \"items\": { \"$ref\": \"#/$defs/id\" }\n },\n \"valid_from\": { \"$ref\": \"#/$defs/canonical_time\" },\n \"valid_until\": { \"$ref\": \"#/$defs/canonical_time\" }\n },\n \"allOf\": [\n {\n \"if\": {\n \"properties\": {\n \"usages\": { \"contains\": { \"enum\": [\"signing_ledger\", \"trusted_time\"] } }\n },\n \"required\": [\"usages\"]\n },\n \"then\": {\n \"properties\": {\n \"usages\": { \"items\": { \"enum\": [\"signing_ledger\", \"trusted_time\"] } },\n \"channels\": { \"maxItems\": 0 }\n }\n },\n \"else\": {\n \"properties\": {\n \"channels\": { \"minItems\": 1 },\n \"usages\": {\n \"items\": {\n \"enum\": [\n \"package\", \"release_metadata\", \"host_capability_contract\", \"source_policy_document\", \"source_policy_pointer\",\n \"revocation_document\", \"revocation_pointer\"\n ]\n }\n }\n }\n }\n }\n ]\n },\n \"id\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"maxLength\": 128,\n \"pattern\": \"^[a-z][a-z0-9._-]*$\"\n },\n \"epoch\": { \"type\": \"string\", \"pattern\": \"^(0|[1-9][0-9]*)$\" },\n \"positive_epoch\": { \"type\": \"string\", \"pattern\": \"^[1-9][0-9]*$\" },\n \"sha256\": { \"type\": \"string\", \"pattern\": \"^[0-9a-f]{64}$\" },\n \"canonical_time\": {\n \"type\": \"string\",\n \"format\": \"date-time\",\n \"pattern\": \"^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$\"\n },\n \"public_key\": { \"type\": \"string\", \"pattern\": \"^[A-Za-z0-9+/]{43}=$\" },\n \"signature\": { \"type\": \"string\", \"pattern\": \"^[A-Za-z0-9+/]{86}==$\" }\n }\n}\n";
175
+ }, {
176
+ readonly id: "release-signature-envelope-schema";
177
+ readonly path: "spec/plugin/release-signature-envelope-v1.schema.json";
178
+ readonly version: "release-signature-envelope-v1";
179
+ readonly sha256: "7df9afd22bfdebfa89dc3bdb46ecdbe22a91ecce35fa46c492dd9795c66fae29";
180
+ readonly body: "{\n \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n \"$id\": \"https://schemas.redevplugin.dev/plugin/release-signature-envelope-v1.schema.json\",\n \"title\": \"ReDevPlugin release signature envelope v1\",\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\n \"schema_version\", \"subject_identity_sha256\", \"signing_preimage_sha256\",\n \"algorithm\", \"key_id\", \"signature\"\n ],\n \"properties\": {\n \"schema_version\": { \"const\": \"redevplugin.release_signature_envelope.v1\" },\n \"subject_identity_sha256\": { \"$ref\": \"#/$defs/sha256\" },\n \"signing_preimage_sha256\": { \"$ref\": \"#/$defs/sha256\" },\n \"algorithm\": { \"const\": \"ed25519\" },\n \"key_id\": { \"$ref\": \"#/$defs/id\" },\n \"signature\": { \"type\": \"string\", \"pattern\": \"^[A-Za-z0-9+/]{86}==$\" }\n },\n \"$defs\": {\n \"id\": { \"type\": \"string\", \"pattern\": \"^[a-z][a-z0-9._-]{0,127}$\" },\n \"sha256\": { \"type\": \"string\", \"pattern\": \"^[0-9a-f]{64}$\" }\n }\n}\n";
181
+ }, {
182
+ readonly id: "release-signing-ledger-evidence-schema";
183
+ readonly path: "spec/plugin/release-signing-ledger-evidence-v1.schema.json";
184
+ readonly version: "release-signing-ledger-evidence-v1";
185
+ readonly sha256: "9ab8b7f65dedcd119d578debb4f6ff97fc35f4c7ac95c0e5435f8b0959bc1a5c";
186
+ readonly body: "{\n \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n \"$id\": \"https://schemas.redevplugin.dev/plugin/release-signing-ledger-evidence-v1.schema.json\",\n \"title\": \"ReDevPlugin release signing ledger evidence v1\",\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\n \"schema_version\",\n \"source_id\",\n \"subject_identity_sha256\",\n \"signing_preimage_sha256\",\n \"signature_envelope_sha256\",\n \"receipt_ref\",\n \"receipt_sha256\",\n \"checkpoint_ref\",\n \"checkpoint_sha256\",\n \"inclusion_proof_ref\",\n \"inclusion_proof_sha256\",\n \"latest_proof_ref\",\n \"latest_proof_sha256\"\n ],\n \"dependentRequired\": {\n \"consistency_proof_ref\": [\"consistency_proof_sha256\"],\n \"consistency_proof_sha256\": [\"consistency_proof_ref\"]\n },\n \"properties\": {\n \"schema_version\": { \"const\": \"redevplugin.release_signing_ledger_evidence.v1\" },\n \"source_id\": { \"$ref\": \"#/$defs/id\" },\n \"channel\": { \"$ref\": \"#/$defs/id\" },\n \"subject_identity_sha256\": { \"$ref\": \"#/$defs/sha256\" },\n \"signing_preimage_sha256\": { \"$ref\": \"#/$defs/sha256\" },\n \"signature_envelope_sha256\": { \"$ref\": \"#/$defs/sha256\" },\n \"receipt_ref\": { \"$ref\": \"#/$defs/artifact_ref\" },\n \"receipt_sha256\": { \"$ref\": \"#/$defs/sha256\" },\n \"checkpoint_ref\": { \"$ref\": \"#/$defs/artifact_ref\" },\n \"checkpoint_sha256\": { \"$ref\": \"#/$defs/sha256\" },\n \"inclusion_proof_ref\": { \"$ref\": \"#/$defs/artifact_ref\" },\n \"inclusion_proof_sha256\": { \"$ref\": \"#/$defs/sha256\" },\n \"latest_proof_ref\": { \"$ref\": \"#/$defs/artifact_ref\" },\n \"latest_proof_sha256\": { \"$ref\": \"#/$defs/sha256\" },\n \"consistency_proof_ref\": { \"$ref\": \"#/$defs/artifact_ref\" },\n \"consistency_proof_sha256\": { \"$ref\": \"#/$defs/sha256\" }\n },\n \"$defs\": {\n \"id\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"maxLength\": 128,\n \"pattern\": \"^[a-z][a-z0-9._-]*$\"\n },\n \"sha256\": { \"type\": \"string\", \"pattern\": \"^[0-9a-f]{64}$\" },\n \"artifact_ref\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"maxLength\": 1024,\n \"pattern\": \"^[A-Za-z0-9._@+-]+(?:/[A-Za-z0-9._@+-]+)*$\",\n \"not\": {\n \"anyOf\": [\n { \"pattern\": \"^/\" },\n { \"pattern\": \"(^|/)\\\\.(/|$)\" },\n { \"pattern\": \"(^|/)\\\\.\\\\.(/|$)\" },\n { \"pattern\": \"\\\\\\\\\" },\n { \"pattern\": \"[?#]\" }\n ]\n }\n }\n }\n}\n";
187
+ }, {
188
+ readonly id: "release-signing-ledger-receipt-schema";
189
+ readonly path: "spec/plugin/release-signing-ledger-receipt-v1.schema.json";
190
+ readonly version: "release-signing-ledger-receipt-v1";
191
+ readonly sha256: "29210cfefd967017c5c74bcf8489bd50511c5c9f36d17b0200056ccb90c30561";
192
+ readonly body: "{\n \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n \"$id\": \"https://schemas.redevplugin.dev/plugin/release-signing-ledger-receipt-v1.schema.json\",\n \"title\": \"ReDevPlugin release signing ledger receipt v1\",\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\n \"schema_version\", \"log_id\", \"source_id\", \"subject_identity_sha256\", \"signing_preimage_sha256\",\n \"signature_envelope_sha256\", \"sequence\", \"leaf_index\", \"tree_size\", \"log_root_hash\",\n \"latest_map_root_hash\", \"checkpoint_sha256\", \"checkpoint_time\", \"key_id\", \"signature\"\n ],\n \"properties\": {\n \"schema_version\": { \"const\": \"redevplugin.release_signing_ledger_receipt.v1\" },\n \"log_id\": { \"$ref\": \"#/$defs/id\" },\n \"source_id\": { \"$ref\": \"#/$defs/id\" },\n \"channel\": { \"$ref\": \"#/$defs/id\" },\n \"subject_identity_sha256\": { \"$ref\": \"#/$defs/sha256\" },\n \"signing_preimage_sha256\": { \"$ref\": \"#/$defs/sha256\" },\n \"signature_envelope_sha256\": { \"$ref\": \"#/$defs/sha256\" },\n \"sequence\": { \"type\": \"integer\", \"minimum\": 1, \"maximum\": 9007199254740991 },\n \"leaf_index\": { \"type\": \"integer\", \"minimum\": 0, \"maximum\": 9007199254740990 },\n \"tree_size\": { \"type\": \"integer\", \"minimum\": 1, \"maximum\": 9007199254740991 },\n \"log_root_hash\": { \"$ref\": \"#/$defs/sha256\" },\n \"latest_map_root_hash\": { \"$ref\": \"#/$defs/sha256\" },\n \"checkpoint_sha256\": { \"$ref\": \"#/$defs/sha256\" },\n \"checkpoint_time\": { \"$ref\": \"#/$defs/time\" },\n \"key_id\": { \"$ref\": \"#/$defs/id\" },\n \"signature\": { \"type\": \"string\", \"pattern\": \"^[A-Za-z0-9+/]{86}==$\" }\n },\n \"$defs\": {\n \"id\": { \"type\": \"string\", \"pattern\": \"^[a-z][a-z0-9._-]{0,127}$\" },\n \"sha256\": { \"type\": \"string\", \"pattern\": \"^[0-9a-f]{64}$\" },\n \"time\": { \"type\": \"string\", \"format\": \"date-time\", \"pattern\": \"^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$\" }\n }\n}\n";
193
+ }, {
194
+ readonly id: "release-signing-ledger-schema";
195
+ readonly path: "spec/plugin/release-signing-ledger-v1.schema.json";
196
+ readonly version: "release-signing-ledger-v1";
197
+ readonly sha256: "0c72b30bfd6b857b9809e48e1b7eaaeb7134d5afd6a935aa8373465054403765";
198
+ readonly body: "{\n \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n \"$id\": \"https://schemas.redevplugin.dev/plugin/release-signing-ledger-v1.schema.json\",\n \"title\": \"ReDevPlugin release signing ledger v1\",\n \"oneOf\": [\n { \"$ref\": \"#/$defs/entry\" },\n { \"$ref\": \"#/$defs/log_leaf\" },\n { \"$ref\": \"#/$defs/checkpoint\" },\n { \"$ref\": \"#/$defs/inclusion_proof\" },\n { \"$ref\": \"#/$defs/latest_proof\" },\n { \"$ref\": \"#/$defs/consistency_proof\" }\n ],\n \"$defs\": {\n\t\"log_leaf\": {\n\t \"type\": \"object\",\n\t \"additionalProperties\": false,\n\t \"required\": [\n\t\t\"schema_version\", \"source_id\", \"subject_identity_sha256\", \"signing_preimage_sha256\",\n\t\t\"signature_envelope_sha256\", \"sequence\"\n\t ],\n\t \"properties\": {\n\t\t\"schema_version\": { \"const\": \"redevplugin.release_signing_ledger_log_leaf.v1\" },\n\t\t\"source_id\": { \"$ref\": \"#/$defs/id\" },\n\t\t\"channel\": { \"$ref\": \"#/$defs/id\" },\n\t\t\"subject_identity_sha256\": { \"$ref\": \"#/$defs/sha256\" },\n\t\t\"signing_preimage_sha256\": { \"$ref\": \"#/$defs/sha256\" },\n\t\t\"signature_envelope_sha256\": { \"$ref\": \"#/$defs/sha256\" },\n\t\t\"sequence\": { \"type\": \"integer\", \"minimum\": 1, \"maximum\": 9007199254740991 }\n\t }\n\t},\n \"entry\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\n \"schema_version\", \"state\", \"subject\", \"subject_identity_sha256\", \"signing_preimage_sha256\",\n \"algorithm\", \"key_id\", \"revision\", \"reserved_at\"\n ],\n \"properties\": {\n \"schema_version\": { \"const\": \"redevplugin.release_signing_ledger_entry.v1\" },\n \"state\": { \"enum\": [\"reserved\", \"finalized\", \"terminal_failed\"] },\n \"subject\": { \"$ref\": \"https://schemas.redevplugin.dev/plugin/release-signing-subject-v1.schema.json\" },\n \"subject_identity_sha256\": { \"$ref\": \"#/$defs/sha256\" },\n \"signing_preimage_sha256\": { \"$ref\": \"#/$defs/sha256\" },\n \"algorithm\": { \"const\": \"ed25519\" },\n \"key_id\": { \"$ref\": \"#/$defs/id\" },\n \"revision\": { \"type\": \"integer\", \"minimum\": 1, \"maximum\": 9007199254740991 },\n \"reserved_at\": { \"$ref\": \"#/$defs/time\" },\n \"signature_envelope\": { \"$ref\": \"https://schemas.redevplugin.dev/plugin/release-signature-envelope-v1.schema.json\" },\n \"signature_envelope_sha256\": { \"$ref\": \"#/$defs/sha256\" },\n \"finalized_at\": { \"$ref\": \"#/$defs/time\" },\n \"failure_code\": { \"enum\": [\"signer_rejected\", \"subject_conflict\", \"ledger_rejected\"] },\n \"failed_at\": { \"$ref\": \"#/$defs/time\" }\n },\n \"allOf\": [\n {\n \"if\": { \"properties\": { \"state\": { \"const\": \"reserved\" } }, \"required\": [\"state\"] },\n \"then\": {\n \"not\": {\n \"anyOf\": [\n { \"required\": [\"signature_envelope\"] }, { \"required\": [\"signature_envelope_sha256\"] },\n { \"required\": [\"finalized_at\"] }, { \"required\": [\"failure_code\"] }, { \"required\": [\"failed_at\"] }\n ]\n }\n }\n },\n {\n \"if\": { \"properties\": { \"state\": { \"const\": \"finalized\" } }, \"required\": [\"state\"] },\n \"then\": { \"required\": [\"signature_envelope\", \"signature_envelope_sha256\", \"finalized_at\"] },\n \"else\": {\n \"not\": {\n \"anyOf\": [\n { \"required\": [\"signature_envelope\"] }, { \"required\": [\"signature_envelope_sha256\"] },\n { \"required\": [\"finalized_at\"] }\n ]\n }\n }\n },\n {\n \"if\": { \"properties\": { \"state\": { \"const\": \"terminal_failed\" } }, \"required\": [\"state\"] },\n \"then\": { \"required\": [\"failure_code\", \"failed_at\"] },\n \"else\": {\n \"not\": { \"anyOf\": [{ \"required\": [\"failure_code\"] }, { \"required\": [\"failed_at\"] }] }\n }\n }\n ]\n },\n \"checkpoint\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\n \"schema_version\", \"kind\", \"log_id\", \"tree_size\", \"log_root_hash\", \"latest_map_root_hash\",\n \"checkpoint_time\", \"key_id\", \"signature\"\n ],\n \"properties\": {\n \"schema_version\": { \"const\": \"redevplugin.release_signing_ledger.v1\" },\n \"kind\": { \"const\": \"checkpoint\" },\n \"log_id\": { \"$ref\": \"#/$defs/id\" },\n \"tree_size\": { \"$ref\": \"#/$defs/tree_size\" },\n \"log_root_hash\": { \"$ref\": \"#/$defs/sha256\" },\n \"latest_map_root_hash\": { \"$ref\": \"#/$defs/sha256\" },\n \"checkpoint_time\": { \"$ref\": \"#/$defs/time\" },\n \"key_id\": { \"$ref\": \"#/$defs/id\" },\n \"signature\": { \"$ref\": \"#/$defs/signature\" }\n }\n },\n \"inclusion_proof\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"schema_version\", \"kind\", \"log_id\", \"leaf_index\", \"tree_size\", \"nodes\"],\n \"properties\": {\n \"schema_version\": { \"const\": \"redevplugin.release_signing_ledger.v1\" },\n \"kind\": { \"const\": \"inclusion_proof\" },\n \"log_id\": { \"$ref\": \"#/$defs/id\" },\n \"leaf_index\": { \"type\": \"integer\", \"minimum\": 0, \"maximum\": 9007199254740990 },\n \"tree_size\": { \"$ref\": \"#/$defs/tree_size\" },\n \"nodes\": { \"$ref\": \"#/$defs/log_proof\" }\n }\n },\n \"latest_proof\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"schema_version\", \"kind\", \"log_id\", \"subject_identity_sha256\", \"present\", \"siblings\"],\n \"properties\": {\n \"schema_version\": { \"const\": \"redevplugin.release_signing_ledger.v1\" },\n \"kind\": { \"const\": \"latest_proof\" },\n \"log_id\": { \"$ref\": \"#/$defs/id\" },\n \"subject_identity_sha256\": { \"$ref\": \"#/$defs/sha256\" },\n \"present\": { \"type\": \"boolean\" },\n \"sequence\": { \"type\": \"integer\", \"minimum\": 1, \"maximum\": 9007199254740991 },\n \"signing_preimage_sha256\": { \"$ref\": \"#/$defs/sha256\" },\n \"signature_envelope_sha256\": { \"$ref\": \"#/$defs/sha256\" },\n \"siblings\": {\n \"type\": \"array\", \"minItems\": 256, \"maxItems\": 256,\n \"items\": { \"$ref\": \"#/$defs/sha256\" }\n }\n },\n \"allOf\": [\n {\n \"if\": { \"properties\": { \"present\": { \"const\": true } }, \"required\": [\"present\"] },\n \"then\": { \"required\": [\"sequence\", \"signing_preimage_sha256\", \"signature_envelope_sha256\"] },\n \"else\": {\n \"not\": {\n \"anyOf\": [\n { \"required\": [\"sequence\"] },\n { \"required\": [\"signing_preimage_sha256\"] },\n { \"required\": [\"signature_envelope_sha256\"] }\n ]\n }\n }\n }\n ]\n },\n \"consistency_proof\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"schema_version\", \"kind\", \"log_id\", \"old_tree_size\", \"new_tree_size\", \"nodes\"],\n \"properties\": {\n \"schema_version\": { \"const\": \"redevplugin.release_signing_ledger.v1\" },\n \"kind\": { \"const\": \"consistency_proof\" },\n \"log_id\": { \"$ref\": \"#/$defs/id\" },\n \"old_tree_size\": { \"$ref\": \"#/$defs/tree_size\" },\n \"new_tree_size\": { \"$ref\": \"#/$defs/tree_size\" },\n \"nodes\": { \"$ref\": \"#/$defs/log_proof\" }\n }\n },\n \"id\": { \"type\": \"string\", \"pattern\": \"^[a-z][a-z0-9._-]{0,127}$\" },\n \"sha256\": { \"type\": \"string\", \"pattern\": \"^[0-9a-f]{64}$\" },\n \"tree_size\": { \"type\": \"integer\", \"minimum\": 1, \"maximum\": 9007199254740991 },\n \"time\": { \"type\": \"string\", \"format\": \"date-time\", \"pattern\": \"^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$\" },\n \"signature\": { \"type\": \"string\", \"pattern\": \"^[A-Za-z0-9+/]{86}==$\" },\n \"log_proof\": {\n \"type\": \"array\", \"maxItems\": 64,\n \"items\": { \"$ref\": \"#/$defs/sha256\" }\n }\n }\n}\n";
199
+ }, {
200
+ readonly id: "release-signing-subject-schema";
201
+ readonly path: "spec/plugin/release-signing-subject-v1.schema.json";
202
+ readonly version: "release-signing-subject-v1";
203
+ readonly sha256: "876b1459824f90042bd141e96bfea4633333bdf2a227e15b6e25c72db1179c8e";
204
+ readonly body: "{\n \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n \"$id\": \"https://schemas.redevplugin.dev/plugin/release-signing-subject-v1.schema.json\",\n \"title\": \"ReDevPlugin release signing subject v1\",\n \"oneOf\": [\n { \"$ref\": \"#/$defs/root_subject\" },\n { \"$ref\": \"#/$defs/release_subject\" },\n { \"$ref\": \"#/$defs/epoch_subject\" }\n ],\n \"$defs\": {\n \"root_subject\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"schema_version\", \"usage\", \"source_id\", \"root_epoch\"],\n \"properties\": {\n \"schema_version\": { \"const\": \"redevplugin.release_signing_subject.v1\" },\n \"usage\": { \"const\": \"root_delegation\" },\n \"source_id\": { \"$ref\": \"#/$defs/id\" },\n \"root_epoch\": { \"$ref\": \"#/$defs/positive_epoch\" }\n }\n },\n \"release_subject\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\n \"schema_version\", \"usage\", \"source_id\", \"channel\", \"publisher_id\",\n \"plugin_id\", \"version\", \"artifact_or_metadata_identity_sha256\"\n ],\n \"properties\": {\n \"schema_version\": { \"const\": \"redevplugin.release_signing_subject.v1\" },\n \"usage\": { \"enum\": [\"package\", \"release_metadata\"] },\n \"source_id\": { \"$ref\": \"#/$defs/id\" },\n \"channel\": { \"$ref\": \"#/$defs/id\" },\n \"publisher_id\": { \"$ref\": \"#/$defs/legacy_id\" },\n \"plugin_id\": { \"$ref\": \"#/$defs/legacy_id\" },\n \"version\": { \"$ref\": \"#/$defs/semver\" },\n \"artifact_or_metadata_identity_sha256\": { \"$ref\": \"#/$defs/sha256\" }\n }\n },\n \"epoch_subject\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"schema_version\", \"usage\", \"source_id\", \"channel\", \"epoch\"],\n \"properties\": {\n \"schema_version\": { \"const\": \"redevplugin.release_signing_subject.v1\" },\n \"usage\": {\n \"enum\": [\"source_policy_document\", \"source_policy_pointer\", \"revocation_document\", \"revocation_pointer\"]\n },\n \"source_id\": { \"$ref\": \"#/$defs/id\" },\n \"channel\": { \"$ref\": \"#/$defs/id\" },\n \"epoch\": { \"$ref\": \"#/$defs/positive_epoch\" }\n }\n },\n \"id\": { \"type\": \"string\", \"pattern\": \"^[a-z][a-z0-9._-]{0,127}$\" },\n \"legacy_id\": { \"type\": \"string\", \"pattern\": \"^[A-Za-z0-9][A-Za-z0-9._-]{0,127}$\" },\n \"positive_epoch\": { \"type\": \"string\", \"pattern\": \"^[1-9][0-9]*$\" },\n \"sha256\": { \"type\": \"string\", \"pattern\": \"^[0-9a-f]{64}$\" },\n \"semver\": {\n \"type\": \"string\",\n \"pattern\": \"^(0|[1-9][0-9]*)\\\\.(0|[1-9][0-9]*)\\\\.(0|[1-9][0-9]*)(?:-(?:(?:0|[1-9][0-9]*|[0-9A-Za-z-]*[A-Za-z-][0-9A-Za-z-]*)(?:\\\\.(?:0|[1-9][0-9]*|[0-9A-Za-z-]*[A-Za-z-][0-9A-Za-z-]*))*))?(?:\\\\+[0-9A-Za-z-]+(?:\\\\.[0-9A-Za-z-]+)*)?$\"\n }\n }\n}\n";
205
+ }, {
206
+ readonly id: "release-source-policy-pointer-schema";
207
+ readonly path: "spec/plugin/release-source-policy-pointer-v1.schema.json";
208
+ readonly version: "release-source-policy-pointer-v1";
209
+ readonly sha256: "1a78cc3897ffbcdb605d2e9265d765207a4647d3f53fa5736aec65bf5f54e81c";
210
+ readonly body: "{\n \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n \"$id\": \"https://schemas.redevplugin.dev/plugin/release-source-policy-pointer-v1.schema.json\",\n \"title\": \"ReDevPlugin release source policy pointer v1\",\n \"$ref\": \"#/$defs/pointer\",\n \"$defs\": {\n \"pointer\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\n \"schema_version\",\n \"source_id\",\n \"channel\",\n \"epoch\",\n \"previous_epoch\",\n \"previous_document_sha256\",\n \"ref\",\n \"document_sha256\",\n \"generated_at\",\n \"expires_at\",\n \"key_id\",\n \"signature\"\n ],\n \"properties\": {\n \"schema_version\": { \"const\": \"redevplugin.release_source_policy_pointer.v1\" },\n \"source_id\": { \"$ref\": \"#/$defs/id\" },\n \"channel\": { \"$ref\": \"#/$defs/id\" },\n \"epoch\": { \"$ref\": \"#/$defs/positive_epoch\" },\n \"previous_epoch\": { \"$ref\": \"#/$defs/epoch\" },\n \"previous_document_sha256\": { \"$ref\": \"#/$defs/sha256\" },\n \"ref\": { \"$ref\": \"#/$defs/artifact_ref\" },\n \"document_sha256\": { \"$ref\": \"#/$defs/sha256\" },\n \"generated_at\": { \"$ref\": \"#/$defs/canonical_time\" },\n \"expires_at\": { \"$ref\": \"#/$defs/canonical_time\" },\n \"key_id\": { \"$ref\": \"#/$defs/id\" },\n \"signature\": { \"$ref\": \"#/$defs/signature\" }\n }\n },\n \"id\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"maxLength\": 128,\n \"pattern\": \"^[a-z][a-z0-9._-]*$\"\n },\n \"artifact_ref\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"maxLength\": 1024,\n \"pattern\": \"^[A-Za-z0-9._@+-]+(?:/[A-Za-z0-9._@+-]+)*$\",\n \"not\": {\n \"anyOf\": [\n { \"pattern\": \"^/\" },\n { \"pattern\": \"(^|/)\\\\.(/|$)\" },\n { \"pattern\": \"(^|/)\\\\.\\\\.(/|$)\" },\n { \"pattern\": \"\\\\\\\\\" },\n { \"pattern\": \"[?#]\" }\n ]\n }\n },\n \"epoch\": { \"type\": \"string\", \"pattern\": \"^(0|[1-9][0-9]*)$\" },\n \"positive_epoch\": { \"type\": \"string\", \"pattern\": \"^[1-9][0-9]*$\" },\n \"sha256\": { \"type\": \"string\", \"pattern\": \"^[0-9a-f]{64}$\" },\n \"canonical_time\": {\n \"type\": \"string\",\n \"format\": \"date-time\",\n \"pattern\": \"^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$\"\n },\n \"signature\": { \"type\": \"string\", \"pattern\": \"^[A-Za-z0-9+/]{86}==$\" }\n }\n}\n";
211
+ }, {
212
+ readonly id: "release-source-policy-schema";
213
+ readonly path: "spec/plugin/release-source-policy-v2.schema.json";
214
+ readonly version: "release-source-policy-v2";
215
+ readonly sha256: "6a5a5eab317a86beea925a611ca8a7a2d937547c039ce147b5993f69a5611237";
216
+ readonly body: "{\n \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n \"$id\": \"https://schemas.redevplugin.dev/plugin/release-source-policy-v2.schema.json\",\n \"title\": \"ReDevPlugin release source policy v2\",\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\n \"schema_version\",\n \"source_id\",\n \"channel\",\n \"epoch\",\n \"previous_epoch\",\n \"previous_document_sha256\",\n \"root_epoch\",\n \"source_type\",\n \"source_class\",\n \"allowed_publishers\",\n \"allowed_artifact_hosts\",\n \"active_keys\",\n \"capability_publisher_scopes\",\n \"require_signature\",\n \"install_policy\",\n \"unsigned_policy\",\n \"downgrade_policy\",\n \"minimum_revocation_epoch\",\n \"limits\",\n \"generated_at\",\n \"expires_at\",\n \"key_id\",\n \"signature\"\n ],\n \"properties\": {\n \"schema_version\": { \"const\": \"redevplugin.release_source_policy.v2\" },\n \"source_id\": { \"$ref\": \"#/$defs/id\" },\n \"channel\": { \"$ref\": \"#/$defs/id\" },\n \"epoch\": { \"$ref\": \"#/$defs/positive_epoch\" },\n \"previous_epoch\": { \"$ref\": \"#/$defs/epoch\" },\n \"previous_document_sha256\": { \"$ref\": \"#/$defs/sha256\" },\n \"root_epoch\": { \"$ref\": \"#/$defs/positive_epoch\" },\n \"source_type\": { \"enum\": [\"registry\", \"host_artifact\"] },\n \"source_class\": { \"enum\": [\"official\", \"curated\", \"community\", \"private\"] },\n \"allowed_publishers\": {\n \"type\": \"array\",\n \"minItems\": 1,\n \"maxItems\": 1024,\n \"uniqueItems\": true,\n \"items\": { \"$ref\": \"#/$defs/id\" }\n },\n \"allowed_artifact_hosts\": {\n \"type\": \"array\",\n \"maxItems\": 1024,\n \"uniqueItems\": true,\n \"items\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"maxLength\": 253,\n \"pattern\": \"^[a-z0-9](?:[a-z0-9.-]*[a-z0-9])?$\"\n }\n },\n \"active_keys\": { \"$ref\": \"#/$defs/active_keys\" },\n \"capability_publisher_scopes\": { \"$ref\": \"#/$defs/capability_publisher_scopes\" },\n \"require_signature\": { \"type\": \"boolean\" },\n \"install_policy\": { \"enum\": [\"allow\", \"review_required\", \"block\"] },\n \"unsigned_policy\": { \"enum\": [\"dev_only\", \"review_required\", \"block\"] },\n \"downgrade_policy\": { \"enum\": [\"review_required\", \"block\"] },\n \"minimum_revocation_epoch\": { \"$ref\": \"#/$defs/epoch\" },\n \"limits\": { \"$ref\": \"#/$defs/limits\" },\n \"generated_at\": { \"$ref\": \"#/$defs/canonical_time\" },\n \"expires_at\": { \"$ref\": \"#/$defs/canonical_time\" },\n \"key_id\": { \"$ref\": \"#/$defs/id\" },\n \"signature\": { \"$ref\": \"#/$defs/signature\" }\n },\n \"$defs\": {\n \"active_keys\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\n \"package\",\n \"release_metadata\",\n \"host_capability_contract\",\n \"source_policy_pointer\",\n \"revocation_document\",\n \"revocation_pointer\"\n ],\n \"properties\": {\n \"package\": { \"$ref\": \"#/$defs/key_ids\" },\n \"release_metadata\": { \"$ref\": \"#/$defs/key_ids\" },\n \"host_capability_contract\": { \"$ref\": \"#/$defs/optional_key_ids\" },\n \"source_policy_pointer\": { \"$ref\": \"#/$defs/key_ids\" },\n \"revocation_document\": { \"$ref\": \"#/$defs/key_ids\" },\n \"revocation_pointer\": { \"$ref\": \"#/$defs/key_ids\" }\n }\n },\n \"key_ids\": {\n \"type\": \"array\",\n \"minItems\": 1,\n \"maxItems\": 16,\n \"uniqueItems\": true,\n \"items\": { \"$ref\": \"#/$defs/id\" }\n },\n \"optional_key_ids\": {\n \"type\": \"array\",\n \"maxItems\": 16,\n \"uniqueItems\": true,\n \"items\": { \"$ref\": \"#/$defs/id\" }\n },\n \"capability_publisher_scopes\": {\n \"type\": \"array\",\n \"uniqueItems\": true,\n \"items\": { \"$ref\": \"#/$defs/capability_publisher_scope\" }\n },\n \"capability_publisher_scope\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"key_id\", \"allowed_publishers\"],\n \"properties\": {\n \"key_id\": { \"$ref\": \"#/$defs/id\" },\n \"allowed_publishers\": {\n \"type\": \"array\",\n \"minItems\": 1,\n \"maxItems\": 1024,\n \"uniqueItems\": true,\n \"items\": { \"$ref\": \"#/$defs/legacy_id\" }\n }\n }\n },\n \"limits\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\n \"document_max_lifetime_seconds\",\n \"future_skew_seconds\",\n \"activation_lease_max_seconds\",\n \"refresh_interval_max_seconds\",\n \"failure_teardown_deadline_seconds\"\n ],\n \"properties\": {\n \"document_max_lifetime_seconds\": { \"const\": 86400 },\n \"future_skew_seconds\": { \"const\": 300 },\n \"activation_lease_max_seconds\": { \"const\": 300 },\n \"refresh_interval_max_seconds\": { \"const\": 60 },\n \"failure_teardown_deadline_seconds\": { \"const\": 30 }\n }\n },\n \"id\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"maxLength\": 128,\n \"pattern\": \"^[a-z][a-z0-9._-]*$\"\n },\n \"legacy_id\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"maxLength\": 128,\n \"pattern\": \"^[A-Za-z0-9][A-Za-z0-9._-]*$\"\n },\n \"epoch\": { \"type\": \"string\", \"pattern\": \"^(0|[1-9][0-9]*)$\" },\n \"positive_epoch\": { \"type\": \"string\", \"pattern\": \"^[1-9][0-9]*$\" },\n \"sha256\": { \"type\": \"string\", \"pattern\": \"^[0-9a-f]{64}$\" },\n \"canonical_time\": {\n \"type\": \"string\",\n \"format\": \"date-time\",\n \"pattern\": \"^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$\"\n },\n \"signature\": { \"type\": \"string\", \"pattern\": \"^[A-Za-z0-9+/]{86}==$\" }\n }\n}\n";
217
+ }, {
218
+ readonly id: "release-trust-state-schema";
219
+ readonly path: "spec/plugin/release-trust-state-v1.schema.json";
220
+ readonly version: "release-trust-state-v1";
221
+ readonly sha256: "19ffa182932a22401a33ee4c9921e957c67895c2d8b041c9a27ee3530bdfb2d2";
222
+ readonly body: "{\n \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n \"$id\": \"https://schemas.redevplugin.dev/plugin/release-trust-state-v1.schema.json\",\n \"title\": \"ReDevPlugin release trust state v1\",\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"schema_version\", \"source_id\", \"revision\", \"external_counter\", \"trusted_time\", \"channels\"],\n \"properties\": {\n \"schema_version\": { \"const\": \"redevplugin.release_trust_state.v1\" },\n \"source_id\": { \"$ref\": \"#/$defs/id\" },\n \"revision\": { \"$ref\": \"#/$defs/revision\" },\n \"external_counter\": { \"$ref\": \"#/$defs/counter\" },\n \"root\": { \"$ref\": \"#/$defs/root_head\" },\n \"trusted_time\": { \"$ref\": \"#/$defs/trusted_time\" },\n\t\"signing_ledger\": { \"$ref\": \"#/$defs/signing_ledger\" },\n \"channels\": {\n \"type\": \"array\",\n \"maxItems\": 16,\n \"items\": { \"$ref\": \"#/$defs/channel\" }\n }\n },\n \"$defs\": {\n \"id\": { \"type\": \"string\", \"pattern\": \"^[a-z][a-z0-9._-]{0,127}$\" },\n \"sha256\": { \"type\": \"string\", \"pattern\": \"^[0-9a-f]{64}$\" },\n \"counter\": { \"type\": \"integer\", \"minimum\": 0, \"maximum\": 9007199254740991 },\n \"revision\": { \"type\": \"integer\", \"minimum\": 1, \"maximum\": 9007199254740991 },\n \"epoch\": { \"type\": \"string\", \"pattern\": \"^(0|[1-9][0-9]{0,19})$\" },\n \"time\": { \"type\": \"string\", \"format\": \"date-time\", \"maxLength\": 35 },\n \"locator\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"maxLength\": 1024,\n \"pattern\": \"^(?:[A-Za-z0-9_@+-][A-Za-z0-9._@+-]*|\\\\.[A-Za-z0-9_@+-][A-Za-z0-9._@+-]*|\\\\.{2}[A-Za-z0-9_@+-][A-Za-z0-9._@+-]*|\\\\.{3,}[A-Za-z0-9._@+-]*)(?:/(?:[A-Za-z0-9_@+-][A-Za-z0-9._@+-]*|\\\\.[A-Za-z0-9_@+-][A-Za-z0-9._@+-]*|\\\\.{2}[A-Za-z0-9_@+-][A-Za-z0-9._@+-]*|\\\\.{3,}[A-Za-z0-9._@+-]*))*$\"\n },\n \"transport_token\": { \"type\": \"string\", \"minLength\": 1, \"maxLength\": 512, \"pattern\": \"^[A-Za-z0-9._:@+-]+$\" },\n \"root_head\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"epoch\", \"document_sha256\", \"generated_at\", \"expires_at\", \"key_id\"],\n \"properties\": {\n \"epoch\": { \"$ref\": \"#/$defs/epoch\" },\n \"document_sha256\": { \"$ref\": \"#/$defs/sha256\" },\n \"generated_at\": { \"$ref\": \"#/$defs/time\" },\n \"expires_at\": { \"$ref\": \"#/$defs/time\" },\n \"key_id\": { \"$ref\": \"#/$defs/id\" }\n }\n },\n \"checkpoint\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"schema_version\", \"log_id\", \"tree_size\", \"root_hash\", \"checkpoint_time\", \"key_id\", \"signature\"],\n \"properties\": {\n \"schema_version\": { \"const\": \"redevplugin.trusted_time_checkpoint.v1\" },\n \"log_id\": { \"$ref\": \"#/$defs/id\" },\n \"tree_size\": { \"type\": \"integer\", \"minimum\": 1, \"maximum\": 9007199254740991 },\n \"root_hash\": { \"$ref\": \"#/$defs/sha256\" },\n \"checkpoint_time\": { \"$ref\": \"#/$defs/time\" },\n \"key_id\": { \"$ref\": \"#/$defs/id\" },\n \"signature\": { \"type\": \"string\", \"pattern\": \"^[A-Za-z0-9+/]{86}==$\" }\n }\n },\n \"trusted_time\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"floor\", \"checkpoint_sha256\", \"checkpoint\"],\n \"properties\": {\n \"floor\": { \"$ref\": \"#/$defs/time\" },\n \"checkpoint_sha256\": { \"$ref\": \"#/$defs/sha256\" },\n \"checkpoint\": { \"$ref\": \"#/$defs/checkpoint\" }\n }\n },\n\t\"signing_ledger\": {\n\t \"type\": \"object\",\n\t \"additionalProperties\": false,\n\t \"required\": [\"checkpoint_sha256\", \"checkpoint\"],\n\t \"properties\": {\n\t\t\"checkpoint_sha256\": { \"$ref\": \"#/$defs/sha256\" },\n\t\t\"checkpoint\": {\n\t\t \"allOf\": [\n\t\t\t{ \"$ref\": \"https://schemas.redevplugin.dev/plugin/release-signing-ledger-v1.schema.json\" },\n\t\t\t{ \"properties\": { \"kind\": { \"const\": \"checkpoint\" } }, \"required\": [\"kind\"] }\n\t\t ]\n\t\t}\n\t }\n\t},\n \"document_head\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\n \"pointer_locator\",\n \"pointer_transport_token\",\n \"pointer_epoch\",\n \"pointer_sha256\",\n \"document_locator\",\n \"document_transport_token\",\n \"document_sha256\",\n \"generated_at\",\n \"expires_at\",\n \"key_id\"\n ],\n \"properties\": {\n \"pointer_locator\": { \"$ref\": \"#/$defs/locator\" },\n \"pointer_transport_token\": { \"$ref\": \"#/$defs/transport_token\" },\n \"pointer_epoch\": { \"$ref\": \"#/$defs/epoch\" },\n \"pointer_sha256\": { \"$ref\": \"#/$defs/sha256\" },\n \"document_locator\": { \"$ref\": \"#/$defs/locator\" },\n \"document_transport_token\": { \"$ref\": \"#/$defs/transport_token\" },\n \"document_sha256\": { \"$ref\": \"#/$defs/sha256\" },\n \"generated_at\": { \"$ref\": \"#/$defs/time\" },\n \"expires_at\": { \"$ref\": \"#/$defs/time\" },\n \"key_id\": { \"$ref\": \"#/$defs/id\" }\n }\n },\n \"channel\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"channel\"],\n \"properties\": {\n \"channel\": { \"$ref\": \"#/$defs/id\" },\n \"policy\": { \"$ref\": \"#/$defs/document_head\" },\n \"revocation\": { \"$ref\": \"#/$defs/document_head\" },\n\t\t\"fence_generation\": { \"$ref\": \"#/$defs/counter\" },\n\t\t\"fence\": { \"$ref\": \"#/$defs/fence\" }\n }\n },\n\t\"fence\": {\n\t \"type\": \"object\",\n\t \"additionalProperties\": false,\n\t \"required\": [\"generation\", \"reason\", \"fenced_at\"],\n\t \"properties\": {\n\t\t\"generation\": { \"$ref\": \"#/$defs/revision\" },\n\t\t\"reason\": { \"enum\": [\"refresh_failed\", \"expired\", \"trust_advanced\", \"restart_recovery\"] },\n\t\t\"fenced_at\": { \"$ref\": \"#/$defs/time\" }\n\t }\n }\n }\n}\n";
223
+ }, {
224
+ readonly id: "resource-scope-schema";
225
+ readonly path: "spec/plugin/resource-scope-v1.schema.json";
226
+ readonly version: "resource-scope-v1";
227
+ readonly sha256: "e6021bd576c7220ad5536645a7ad8e57ee7aeb9901c31a89444fa6b695d8dc6f";
228
+ readonly body: "{\n \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n \"$id\": \"https://schemas.redevplugin.dev/plugin/resource-scope-v1.schema.json\",\n \"title\": \"ReDevPlugin persistent resource scope v1\",\n \"description\": \"Host-issued ownership scope for persistent plugin resources. Session and channel hashes are intentionally excluded.\",\n \"oneOf\": [\n { \"$ref\": \"#/$defs/user_scope\" },\n { \"$ref\": \"#/$defs/environment_scope\" }\n ],\n \"$defs\": {\n \"owner_hash\": {\n \"type\": \"string\",\n \"pattern\": \"^[A-Za-z0-9][A-Za-z0-9._:-]{0,255}$\"\n },\n \"scope_kind\": {\n \"type\": \"string\",\n \"enum\": [\"user\", \"environment\"]\n },\n \"owner_scope_migration_required_code\": {\n \"type\": \"string\",\n \"const\": \"owner_scope_migration_required\"\n },\n \"user_scope\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"kind\", \"owner_env_hash\", \"owner_user_hash\"],\n \"properties\": {\n \"kind\": { \"const\": \"user\" },\n \"owner_env_hash\": { \"$ref\": \"#/$defs/owner_hash\" },\n \"owner_user_hash\": { \"$ref\": \"#/$defs/owner_hash\" }\n }\n },\n \"environment_scope\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"kind\", \"owner_env_hash\"],\n \"properties\": {\n \"kind\": { \"const\": \"environment\" },\n \"owner_env_hash\": { \"$ref\": \"#/$defs/owner_hash\" }\n }\n }\n }\n}\n";
229
+ }, {
230
+ readonly id: "runtime-admission-schema";
231
+ readonly path: "spec/plugin/runtime-admission-v1.schema.json";
232
+ readonly version: "runtime-admission-v1";
233
+ readonly sha256: "bee7b149876447d663a4099dbd71e71fa97f8ff80ddf4e12cbfba951a47c4beb";
234
+ readonly body: "{\n \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n \"$id\": \"https://schemas.redevplugin.dev/plugin/runtime-admission-v1.schema.json\",\n \"title\": \"ReDevPlugin runtime admission v1\",\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"schema_version\", \"target\", \"binary_name\", \"binary_sha256\"],\n \"properties\": {\n \"schema_version\": {\"const\": \"redevplugin.runtime_admission.v1\"},\n \"target\": {\"$ref\": \"#/$defs/target\"},\n \"binary_name\": {\"const\": \"redevplugin-runtime\"},\n \"binary_sha256\": {\"$ref\": \"#/$defs/sha256\"}\n },\n \"$defs\": {\n \"target\": {\"type\": \"string\", \"enum\": [\"linux/amd64\", \"linux/arm64\"]},\n \"sha256\": {\"type\": \"string\", \"pattern\": \"^[0-9a-f]{64}$\"}\n }\n}\n";
235
+ }, {
236
+ readonly id: "runtime-descriptor-schema";
237
+ readonly path: "spec/plugin/runtime-descriptor-v2.schema.json";
238
+ readonly version: "runtime-descriptor-v2";
239
+ readonly sha256: "2ba59f6fb70d4ad757f60aca5541f4a44886542525e5bf76c393cd2368188351";
240
+ readonly body: "{\n \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n \"$id\": \"https://schemas.redevplugin.dev/plugin/runtime-descriptor-v2.schema.json\",\n \"title\": \"ReDevPlugin runtime descriptor v2\",\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"schema_version\", \"platform_version\", \"target\", \"rust_ipc_version\", \"wasm_abi_version\", \"contract_set_sha256\", \"binary_sha256\"],\n \"properties\": {\n \"schema_version\": {\"const\": \"runtime-descriptor-v2\"},\n \"platform_version\": {\"$ref\": \"#/$defs/semver\"},\n \"target\": {\"type\": \"string\", \"enum\": [\"linux/amd64\", \"linux/arm64\"]},\n \"rust_ipc_version\": {\"const\": \"rust-ipc-v6\"},\n \"wasm_abi_version\": {\"const\": \"redevplugin-wasm-worker-v2\"},\n \"contract_set_sha256\": {\"$ref\": \"#/$defs/sha256\"},\n \"binary_sha256\": {\"$ref\": \"#/$defs/sha256\"}\n },\n \"$defs\": {\n \"semver\": {\"type\": \"string\", \"pattern\": \"^(0|[1-9][0-9]*)\\\\.(0|[1-9][0-9]*)\\\\.(0|[1-9][0-9]*)(?:-[0-9A-Za-z.-]+)?$\"},\n \"sha256\": {\"type\": \"string\", \"pattern\": \"^[0-9a-f]{64}$\"}\n }\n}\n";
241
+ }, {
242
+ readonly id: "runtime-exec-journal-schema";
243
+ readonly path: "spec/plugin/runtime-exec-journal-v1.schema.json";
244
+ readonly version: "runtime-exec-journal-v1";
245
+ readonly sha256: "2bddbba383843b8ebc1554009909f0bb25e98616be763826a697cb0f408870d2";
246
+ readonly body: "{\n \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n \"$id\": \"https://schemas.redevplugin.dev/plugin/runtime-exec-journal-v1.schema.json\",\n \"title\": \"ReDevPlugin runtime execution journal v1\",\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"schema_version\", \"module_id\", \"descriptor_digest\", \"state\", \"containment_identity\", \"mutation_outcome\"],\n \"properties\": {\n \"schema_version\": {\"const\": \"redevplugin.runtime_exec_journal.v1\"},\n \"module_id\": {\"type\": \"string\", \"pattern\": \"^[A-Za-z0-9._-]{16,128}$\"},\n \"descriptor_digest\": {\"type\": \"string\", \"pattern\": \"^[0-9a-f]{64}$\"},\n \"state\": {\"enum\": [\"opened\", \"consumed\", \"bound\", \"running\", \"stopping\", \"closed\", \"reconcile_required\"]},\n \"containment_identity\": {\"type\": \"string\", \"pattern\": \"^[A-Za-z0-9._:-]{1,256}$\"},\n \"mutation_outcome\": {\"enum\": [\"committed\", \"not_committed\", \"unknown\"]}\n }\n}\n";
247
+ }, {
248
+ readonly id: "rust-ipc-schema";
249
+ readonly path: "spec/plugin/ipc-v6.schema.json";
250
+ readonly version: "rust-ipc-v6";
251
+ readonly sha256: "9814ca091ac2e4e8435c1ab553e248e9d2e792de93ce9fd27bd030486774837f";
252
+ readonly body: "{\n \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n \"$id\": \"https://schemas.redevplugin.dev/plugin/ipc-v6.schema.json\",\n \"title\": \"ReDevPlugin Rust IPC v6\",\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"ipc_version\", \"frame_type\", \"request_id\"],\n \"properties\": {\n \"ipc_version\": { \"const\": \"rust-ipc-v6\" },\n \"frame_type\": {\n \"enum\": [\"hello\", \"hello_ack\", \"heartbeat\", \"invoke_worker\", \"invoke_worker_result\", \"cancel_invoke\", \"cancel_invoke_ack\", \"compile_flight_register\", \"compile_flight_complete\", \"open_handle\", \"validate_handle_grant\", \"storage_file\", \"storage_kv\", \"storage_sqlite\", \"network_grant\", \"network_execute\", \"revoke_epoch\", \"revoke_epoch_ack\", \"session_revoke\", \"session_revoke_ack\", \"diagnostic\"]\n },\n \"request_id\": { \"type\": \"string\", \"minLength\": 1 },\n \"parent_request_id\": { \"type\": \"string\", \"minLength\": 1 },\n \"runtime_generation_id\": { \"type\": \"string\" },\n \"payload\": true\n },\n \"allOf\": [\n {\n \"if\": { \"properties\": { \"frame_type\": { \"const\": \"hello\" } }, \"required\": [\"frame_type\"] },\n \"then\": {\n \"required\": [\"runtime_generation_id\", \"payload\"],\n \"properties\": {\n \"payload\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"target\", \"host_process_id\", \"host_ipc_version\", \"host_wasm_abi\", \"contract_set_sha256\", \"started_unix_nano\", \"channel_nonce\", \"runtime_lease_public_keys\", \"limits\"],\n \"properties\": {\n \"target\": { \"$ref\": \"#/$defs/runtime_target\" },\n \"host_process_id\": { \"type\": \"integer\", \"minimum\": 1 },\n \"host_ipc_version\": { \"const\": \"rust-ipc-v6\" },\n \"host_wasm_abi\": { \"const\": \"redevplugin-wasm-worker-v2\" },\n \"contract_set_sha256\": { \"$ref\": \"#/$defs/lower_sha256\" },\n \"started_unix_nano\": { \"type\": \"integer\", \"minimum\": 1 },\n \"channel_nonce\": { \"type\": \"string\", \"minLength\": 16 },\n \"runtime_lease_public_keys\": {\n \"type\": \"array\",\n \"minItems\": 1,\n \"items\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"algorithm\", \"key_id\", \"public_key_base64\"],\n \"properties\": {\n \"algorithm\": { \"const\": \"ed25519\" },\n \"key_id\": { \"type\": \"string\", \"minLength\": 1 },\n \"public_key_base64\": { \"type\": \"string\", \"contentEncoding\": \"base64\" }\n }\n },\n \"uniqueItems\": true\n },\n \"limits\": { \"$ref\": \"#/$defs/runtime_limits\" }\n }\n }\n }\n }\n },\n {\n \"if\": { \"properties\": { \"frame_type\": { \"const\": \"hello_ack\" } }, \"required\": [\"frame_type\"] },\n \"then\": {\n \"required\": [\"runtime_generation_id\", \"payload\"],\n \"properties\": {\n \"payload\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"runtime_version\", \"actual_target\", \"rust_ipc_version\", \"wasm_abi_version\", \"contract_set_sha256\", \"channel_nonce\", \"limits\", \"process_containment\"],\n \"properties\": {\n \"runtime_version\": { \"$ref\": \"#/$defs/semver\" },\n \"actual_target\": { \"$ref\": \"#/$defs/runtime_target\" },\n \"rust_ipc_version\": { \"const\": \"rust-ipc-v6\" },\n \"wasm_abi_version\": { \"const\": \"redevplugin-wasm-worker-v2\" },\n \"contract_set_sha256\": { \"$ref\": \"#/$defs/lower_sha256\" },\n \"channel_nonce\": { \"type\": \"string\", \"minLength\": 16 },\n \"limits\": { \"$ref\": \"#/$defs/runtime_limits\" },\n \"process_containment\": { \"$ref\": \"#/$defs/process_containment\" }\n }\n }\n }\n }\n },\n {\n \"if\": { \"properties\": { \"frame_type\": { \"const\": \"heartbeat\" } }, \"required\": [\"frame_type\"] },\n \"then\": {\n \"required\": [\"runtime_generation_id\", \"payload\"],\n \"properties\": {\n \"payload\": {\n \"oneOf\": [\n { \"$ref\": \"#/$defs/heartbeat_request_payload\" },\n { \"$ref\": \"#/$defs/heartbeat_response_payload\" }\n ]\n }\n }\n }\n },\n {\n \"if\": { \"properties\": { \"frame_type\": { \"const\": \"invoke_worker\" } }, \"required\": [\"frame_type\"] },\n \"then\": {\n \"required\": [\"runtime_generation_id\", \"payload\"],\n \"properties\": {\n \"payload\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"lease\", \"method\", \"invocation\"],\n \"properties\": {\n \"lease\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\n \"lease_id\",\n \"token_id\",\n \"lease_nonce\",\n \"runtime_generation_id\",\n \"plugin_instance_id\",\n \"plugin_id\",\n \"plugin_version\",\n \"active_fingerprint\",\n \"owner_env_hash\",\n \"issued_at_unix_ms\",\n \"method\",\n \"effect\",\n \"execution\",\n \"audit_correlation_id\",\n \"target_descriptor_hashes\",\n \"limits\",\n \"policy_revision\",\n \"management_revision\",\n \"revoke_epoch\",\n \"runtime_shard_id\",\n \"runtime_instance_id\",\n \"ipc_channel_id\",\n \"connection_nonce\",\n \"key_id\",\n \"signature\",\n \"expires_at_unix_ms\"\n ],\n \"properties\": {\n \"lease_id\": { \"type\": \"string\", \"minLength\": 1 },\n \"token_id\": { \"type\": \"string\", \"minLength\": 1 },\n \"lease_nonce\": { \"type\": \"string\", \"minLength\": 16 },\n \"runtime_generation_id\": { \"type\": \"string\", \"minLength\": 1 },\n \"plugin_instance_id\": { \"type\": \"string\", \"minLength\": 1 },\n \"plugin_id\": { \"type\": \"string\", \"minLength\": 1 },\n \"plugin_version\": { \"type\": \"string\", \"minLength\": 1 },\n \"active_fingerprint\": { \"type\": \"string\", \"minLength\": 1 },\n \"issued_at_unix_ms\": { \"type\": \"integer\", \"minimum\": 1, \"maximum\": 9007199254740991 },\n \"method\": { \"type\": \"string\", \"minLength\": 1 },\n \"effect\": { \"enum\": [\"read\", \"write\", \"execute\", \"delete\", \"admin\"] },\n \"execution\": { \"enum\": [\"sync\", \"operation\", \"subscription\"] },\n \"operation_id\": { \"type\": \"string\", \"minLength\": 1 },\n \"stream_id\": { \"type\": \"string\", \"minLength\": 1 },\n \"audit_correlation_id\": { \"type\": \"string\", \"minLength\": 1 },\n \"surface_instance_id\": { \"type\": \"string\", \"minLength\": 1 },\n \"owner_session_hash\": { \"type\": \"string\", \"minLength\": 1 },\n \"owner_user_hash\": { \"type\": \"string\", \"minLength\": 1 },\n \"owner_env_hash\": { \"type\": \"string\", \"minLength\": 1 },\n \"session_channel_id_hash\": { \"type\": \"string\", \"minLength\": 1 },\n \"bridge_channel_id\": { \"type\": \"string\", \"minLength\": 1 },\n \"target_descriptor_hashes\": {\n \"type\": \"array\",\n \"minItems\": 1,\n \"items\": { \"type\": \"string\", \"minLength\": 1 },\n \"uniqueItems\": true\n },\n \"limits\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"timeout_ms\", \"memory_bytes\", \"max_payload_bytes\", \"max_stream_bytes_per_sec\"],\n \"properties\": {\n \"timeout_ms\": { \"type\": \"integer\", \"minimum\": 0, \"maximum\": 9007199254740991 },\n \"memory_bytes\": { \"type\": \"integer\", \"minimum\": 1, \"maximum\": 268435456 },\n \"max_payload_bytes\": { \"type\": \"integer\", \"minimum\": 0, \"maximum\": 9007199254740991 },\n \"max_stream_bytes_per_sec\": { \"type\": \"integer\", \"minimum\": 0, \"maximum\": 9007199254740991 }\n }\n },\n \"policy_revision\": { \"type\": \"integer\", \"minimum\": 0, \"maximum\": 9007199254740991 },\n \"management_revision\": { \"type\": \"integer\", \"minimum\": 0, \"maximum\": 9007199254740991 },\n \"revoke_epoch\": { \"type\": \"integer\", \"minimum\": 1, \"maximum\": 9007199254740991 },\n \"runtime_shard_id\": { \"type\": \"string\", \"minLength\": 1 },\n \"runtime_instance_id\": { \"type\": \"string\", \"minLength\": 1 },\n \"ipc_channel_id\": { \"type\": \"string\", \"minLength\": 1 },\n \"connection_nonce\": { \"type\": \"string\", \"minLength\": 16 },\n \"key_id\": { \"type\": \"string\", \"minLength\": 1 },\n \"signature\": { \"type\": \"string\", \"pattern\": \"^ed25519:.+\" },\n \"expires_at_unix_ms\": { \"type\": \"integer\", \"minimum\": 1, \"maximum\": 9007199254740991 }\n },\n \"allOf\": [\n {\n \"if\": { \"properties\": { \"execution\": { \"const\": \"sync\" } }, \"required\": [\"execution\"] },\n \"then\": { \"not\": { \"anyOf\": [{ \"required\": [\"operation_id\"] }, { \"required\": [\"stream_id\"] }] } }\n },\n {\n \"if\": { \"properties\": { \"execution\": { \"const\": \"operation\" } }, \"required\": [\"execution\"] },\n \"then\": { \"required\": [\"operation_id\"], \"not\": { \"required\": [\"stream_id\"] } }\n },\n {\n \"if\": { \"properties\": { \"execution\": { \"const\": \"subscription\" } }, \"required\": [\"execution\"] },\n \"then\": { \"required\": [\"operation_id\", \"stream_id\"] }\n }\n ]\n },\n \"method\": { \"type\": \"string\", \"minLength\": 1 },\n \"invocation\": {\n \"$ref\": \"https://schemas.redevplugin.dev/plugin/worker-invocation-v3.schema.json\"\n }\n }\n }\n }\n }\n },\n {\n \"if\": { \"properties\": { \"frame_type\": { \"const\": \"invoke_worker_result\" } }, \"required\": [\"frame_type\"] },\n \"then\": { \"$ref\": \"#/$defs/runtime_response_frame\" }\n },\n {\n \"if\": { \"properties\": { \"frame_type\": { \"const\": \"cancel_invoke\" } }, \"required\": [\"frame_type\"] },\n \"then\": {\n \"required\": [\"runtime_generation_id\", \"payload\"],\n \"properties\": {\n \"payload\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"invocation_request_id\"],\n \"properties\": {\n \"invocation_request_id\": { \"type\": \"string\", \"minLength\": 1 }\n }\n }\n }\n }\n },\n {\n \"if\": { \"properties\": { \"frame_type\": { \"const\": \"cancel_invoke_ack\" } }, \"required\": [\"frame_type\"] },\n \"then\": {\n \"required\": [\"runtime_generation_id\", \"payload\"],\n \"properties\": {\n \"payload\": { \"$ref\": \"#/$defs/cancel_invoke_ack_response_payload\" }\n }\n }\n },\n {\n \"if\": { \"properties\": { \"frame_type\": { \"const\": \"compile_flight_register\" } }, \"required\": [\"frame_type\"] },\n \"then\": {\n \"required\": [\"parent_request_id\", \"runtime_generation_id\", \"payload\"],\n \"properties\": {\n \"payload\": { \"$ref\": \"#/$defs/compile_flight_lifecycle_payload\" }\n }\n }\n },\n {\n \"if\": { \"properties\": { \"frame_type\": { \"const\": \"compile_flight_complete\" } }, \"required\": [\"frame_type\"] },\n \"then\": {\n \"required\": [\"parent_request_id\", \"runtime_generation_id\", \"payload\"],\n \"properties\": {\n \"payload\": { \"$ref\": \"#/$defs/compile_flight_lifecycle_payload\" }\n }\n }\n },\n {\n \"if\": { \"properties\": { \"frame_type\": { \"const\": \"open_handle\" } }, \"required\": [\"frame_type\"] },\n \"then\": {\n \"required\": [\"runtime_generation_id\", \"payload\"],\n \"properties\": {\n \"payload\": {\n \"oneOf\": [\n { \"$ref\": \"#/$defs/open_handle_request_payload\" },\n { \"$ref\": \"#/$defs/open_handle_response_payload\" }\n ]\n }\n }\n }\n },\n {\n \"if\": { \"properties\": { \"frame_type\": { \"const\": \"validate_handle_grant\" } }, \"required\": [\"frame_type\"] },\n \"then\": {\n \"required\": [\"runtime_generation_id\", \"payload\"],\n \"properties\": {\n \"payload\": {\n \"oneOf\": [\n { \"$ref\": \"#/$defs/validate_handle_grant_request_payload\" },\n { \"$ref\": \"#/$defs/validate_handle_grant_response_payload\" }\n ]\n }\n }\n }\n },\n {\n \"if\": { \"properties\": { \"frame_type\": { \"const\": \"storage_file\" } }, \"required\": [\"frame_type\"] },\n \"then\": {\n \"required\": [\"runtime_generation_id\", \"payload\"],\n \"properties\": {\n \"payload\": {\n \"oneOf\": [\n { \"$ref\": \"#/$defs/storage_file_request_payload\" },\n { \"$ref\": \"#/$defs/storage_file_response_payload\" }\n ]\n }\n }\n }\n },\n {\n \"if\": { \"properties\": { \"frame_type\": { \"const\": \"storage_kv\" } }, \"required\": [\"frame_type\"] },\n \"then\": {\n \"required\": [\"runtime_generation_id\", \"payload\"],\n \"properties\": {\n \"payload\": {\n \"oneOf\": [\n { \"$ref\": \"#/$defs/storage_kv_request_payload\" },\n { \"$ref\": \"#/$defs/storage_kv_response_payload\" }\n ]\n }\n }\n }\n },\n {\n \"if\": { \"properties\": { \"frame_type\": { \"const\": \"storage_sqlite\" } }, \"required\": [\"frame_type\"] },\n \"then\": {\n \"required\": [\"runtime_generation_id\", \"payload\"],\n \"properties\": {\n \"payload\": {\n \"oneOf\": [\n { \"$ref\": \"#/$defs/storage_sqlite_request_payload\" },\n { \"$ref\": \"#/$defs/storage_sqlite_response_payload\" }\n ]\n }\n }\n }\n },\n {\n \"if\": { \"properties\": { \"frame_type\": { \"const\": \"network_grant\" } }, \"required\": [\"frame_type\"] },\n \"then\": {\n \"required\": [\"runtime_generation_id\", \"payload\"],\n \"properties\": {\n \"payload\": {\n \"oneOf\": [\n { \"$ref\": \"#/$defs/network_grant_request_payload\" },\n { \"$ref\": \"#/$defs/network_grant_response_payload\" }\n ]\n }\n }\n }\n },\n {\n \"if\": { \"properties\": { \"frame_type\": { \"const\": \"network_execute\" } }, \"required\": [\"frame_type\"] },\n \"then\": {\n \"required\": [\"runtime_generation_id\", \"payload\"],\n \"properties\": {\n \"payload\": {\n \"oneOf\": [\n { \"$ref\": \"#/$defs/network_execute_request_payload\" },\n { \"$ref\": \"#/$defs/network_execute_response_payload\" }\n ]\n }\n }\n }\n },\n {\n \"if\": { \"properties\": { \"frame_type\": { \"const\": \"revoke_epoch\" } }, \"required\": [\"frame_type\"] },\n \"then\": {\n \"required\": [\"runtime_generation_id\", \"payload\"],\n \"properties\": {\n \"payload\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"resource_scope\", \"plugin_instance_id\", \"revoke_epoch\"],\n \"properties\": {\n \"resource_scope\": { \"$ref\": \"#/$defs/environment_resource_scope\" },\n \"plugin_instance_id\": { \"type\": \"string\", \"minLength\": 1 },\n \"revoke_epoch\": { \"type\": \"integer\", \"minimum\": 1, \"maximum\": 9007199254740991 }\n }\n }\n }\n }\n },\n {\n \"if\": { \"properties\": { \"frame_type\": { \"const\": \"revoke_epoch_ack\" } }, \"required\": [\"frame_type\"] },\n \"then\": {\n \"required\": [\"runtime_generation_id\", \"payload\"],\n \"properties\": {\n \"payload\": { \"$ref\": \"#/$defs/revoke_epoch_ack_response_payload\" }\n }\n }\n },\n {\n \"if\": { \"properties\": { \"frame_type\": { \"const\": \"session_revoke\" } }, \"required\": [\"frame_type\"] },\n \"then\": {\n \"required\": [\"runtime_generation_id\", \"payload\"],\n \"properties\": {\n \"payload\": { \"$ref\": \"#/$defs/session_revoke_request_payload\" }\n }\n }\n },\n {\n \"if\": { \"properties\": { \"frame_type\": { \"const\": \"session_revoke_ack\" } }, \"required\": [\"frame_type\"] },\n \"then\": {\n \"required\": [\"runtime_generation_id\", \"payload\"],\n \"properties\": {\n \"payload\": { \"$ref\": \"#/$defs/session_revoke_ack_response_payload\" }\n }\n }\n },\n {\n \"if\": { \"properties\": { \"frame_type\": { \"const\": \"diagnostic\" } }, \"required\": [\"frame_type\"] },\n \"then\": { \"$ref\": \"#/$defs/runtime_response_frame\" }\n },\n {\n \"if\": {\n \"properties\": {\n \"frame_type\": {\n \"enum\": [\"compile_flight_register\", \"compile_flight_complete\", \"open_handle\", \"validate_handle_grant\", \"storage_file\", \"storage_kv\", \"storage_sqlite\", \"network_grant\", \"network_execute\"]\n }\n },\n \"required\": [\"frame_type\"]\n },\n \"then\": { \"required\": [\"parent_request_id\"] }\n }\n ],\n \"$defs\": {\n \"semver\": {\n \"type\": \"string\",\n \"pattern\": \"^(0|[1-9][0-9]*)\\\\.(0|[1-9][0-9]*)\\\\.(0|[1-9][0-9]*)(?:-(?:(?:0|[1-9][0-9]*|[0-9A-Za-z-]*[A-Za-z-][0-9A-Za-z-]*)(?:\\\\.(?:0|[1-9][0-9]*|[0-9A-Za-z-]*[A-Za-z-][0-9A-Za-z-]*))*))?(?:\\\\+[0-9A-Za-z-]+(?:\\\\.[0-9A-Za-z-]+)*)?$\"\n },\n \"runtime_target\": {\"type\": \"string\", \"enum\": [\"linux/amd64\", \"linux/arm64\"]},\n \"lower_sha256\": {\"type\": \"string\", \"pattern\": \"^[0-9a-f]{64}$\"},\n \"runtime_limits\": {\n \"type\": \"object\",\n \"description\": \"Negotiated runtime capacities. per_plugin_concurrency must not exceed worker_count. Route capacities are derived exactly from negotiated limits: active hostcall routes = worker_count, canceled hostcall retention = worker_count + queue_capacity, and compile-flight artifact routes = worker_count.\",\n \"additionalProperties\": false,\n \"required\": [\"worker_count\", \"queue_capacity\", \"per_plugin_concurrency\", \"module_cache_entries\", \"module_cache_source_bytes\"],\n \"properties\": {\n \"worker_count\": { \"type\": \"integer\", \"minimum\": 1, \"maximum\": 64, \"description\": \"Number of runtime worker threads.\" },\n \"queue_capacity\": { \"type\": \"integer\", \"minimum\": 1, \"maximum\": 64, \"description\": \"Maximum queued worker invocations.\" },\n \"per_plugin_concurrency\": { \"type\": \"integer\", \"minimum\": 1, \"maximum\": 64, \"description\": \"Maximum concurrent invocations for one plugin; must not exceed worker_count.\" },\n \"module_cache_entries\": { \"type\": \"integer\", \"minimum\": 1, \"maximum\": 1024, \"description\": \"Maximum compiled modules retained by the runtime cache.\" },\n \"module_cache_source_bytes\": { \"type\": \"integer\", \"minimum\": 1, \"maximum\": 134217728, \"description\": \"Maximum source WASM bytes retained by the runtime cache (128 MiB).\" }\n }\n },\n \"process_containment\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"schema_version\", \"profile\", \"seccomp_policy_sha256\", \"no_new_privs\", \"seccomp_tsync\", \"process_creation_denied\", \"reexec_denied\", \"active\"],\n \"properties\": {\n \"schema_version\": { \"const\": \"redevplugin.process_containment.v1\" },\n \"profile\": { \"const\": \"linux-runtime-v1\" },\n \"seccomp_policy_sha256\": { \"const\": \"6305735925c1fbacaf4950df2e535d3a11cebec8ab7aa16ce37fca3c31745543\" },\n \"no_new_privs\": { \"const\": true },\n \"seccomp_tsync\": { \"const\": true },\n \"process_creation_denied\": { \"const\": true },\n \"reexec_denied\": { \"const\": true },\n \"active\": { \"const\": true }\n }\n },\n \"module_cache_metrics\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"hits\", \"misses\", \"compiles\", \"entries\", \"source_bytes\"],\n \"properties\": {\n \"hits\": { \"type\": \"integer\", \"minimum\": 0 },\n \"misses\": { \"type\": \"integer\", \"minimum\": 0 },\n \"compiles\": { \"type\": \"integer\", \"minimum\": 0 },\n \"entries\": { \"type\": \"integer\", \"minimum\": 0 },\n \"source_bytes\": { \"type\": \"integer\", \"minimum\": 0 }\n }\n },\n \"sha256\": {\n \"type\": \"string\",\n \"pattern\": \"^sha256:[a-f0-9]{64}$\"\n },\n \"worker_artifact_path\": {\n \"type\": \"string\",\n \"pattern\": \"^workers/.+\\\\.wasm$\",\n \"not\": {\n \"anyOf\": [\n { \"pattern\": \"(^|/)\\\\.\" },\n { \"pattern\": \"//\" },\n { \"pattern\": \"\\\\\\\\\" }\n ]\n }\n },\n \"heartbeat_request_payload\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"sent_unix_nano\", \"max_staleness_ms\"],\n \"properties\": {\n \"sent_unix_nano\": { \"type\": \"integer\", \"minimum\": 1 },\n \"max_staleness_ms\": { \"type\": \"integer\", \"minimum\": 1 }\n }\n },\n \"heartbeat_response_payload\": {\n \"oneOf\": [\n {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"ok\", \"result\"],\n \"properties\": {\n \"ok\": { \"const\": true },\n \"result\": { \"$ref\": \"#/$defs/heartbeat_ack_result\" }\n }\n },\n {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"ok\", \"code\", \"message\", \"error_origin\"],\n \"properties\": {\n \"ok\": { \"const\": false },\n \"code\": { \"type\": \"string\", \"minLength\": 1 },\n \"message\": { \"type\": \"string\", \"minLength\": 1 },\n \"error_origin\": { \"enum\": [\"runtime\", \"hostcall\", \"plugin\"] }\n }\n }\n ]\n },\n \"heartbeat_ack_result\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\n \"runtime_generation_id\",\n \"runtime_unix_nano\",\n \"max_staleness_ms\",\n \"host_sent_unix_nano\",\n \"active_invocations\",\n \"queued_invocations\",\n \"limits\",\n \"module_cache\"\n ],\n \"properties\": {\n \"runtime_generation_id\": { \"type\": \"string\", \"minLength\": 1 },\n \"runtime_unix_nano\": { \"type\": \"integer\", \"minimum\": 1 },\n \"max_staleness_ms\": { \"type\": \"integer\", \"minimum\": 1 },\n \"host_sent_unix_nano\": { \"type\": \"integer\", \"minimum\": 1 },\n \"active_invocations\": { \"type\": \"integer\", \"minimum\": 0 },\n \"queued_invocations\": { \"type\": \"integer\", \"minimum\": 0 },\n \"limits\": { \"$ref\": \"#/$defs/runtime_limits\" },\n \"module_cache\": { \"$ref\": \"#/$defs/module_cache_metrics\" }\n }\n },\n \"cancel_invoke_ack_response_payload\": {\n \"oneOf\": [\n {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"ok\", \"result\"],\n \"properties\": {\n \"ok\": { \"const\": true },\n \"result\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"invocation_request_id\", \"disposition\"],\n \"properties\": {\n \"invocation_request_id\": { \"type\": \"string\", \"minLength\": 1 },\n \"disposition\": { \"enum\": [\"queued\", \"running\", \"complete\"] }\n }\n }\n }\n },\n {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"ok\", \"code\", \"message\", \"error_origin\"],\n \"properties\": {\n \"ok\": { \"const\": false },\n \"code\": { \"type\": \"string\", \"minLength\": 1 },\n \"message\": { \"type\": \"string\", \"minLength\": 1 },\n \"error_origin\": { \"enum\": [\"runtime\", \"hostcall\", \"plugin\"] }\n }\n }\n ]\n },\n \"hostcall_failure_response_payload\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"ok\", \"code\", \"message\", \"error_origin\"],\n \"properties\": {\n \"ok\": { \"const\": false },\n \"code\": { \"type\": \"string\", \"minLength\": 1, \"maxLength\": 128, \"pattern\": \"^[A-Z][A-Z0-9_]{0,127}$\" },\n \"message\": { \"type\": \"string\", \"minLength\": 1, \"maxLength\": 4096 },\n \"error_origin\": { \"const\": \"hostcall\" }\n }\n },\n \"compile_flight_lifecycle_payload\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"artifact_request_id\", \"package_hash\", \"artifact\", \"artifact_sha256\", \"wasm_abi_version\"],\n \"properties\": {\n \"artifact_request_id\": { \"type\": \"string\", \"minLength\": 1 },\n \"package_hash\": { \"$ref\": \"#/$defs/sha256\" },\n \"artifact\": { \"$ref\": \"#/$defs/worker_artifact_path\" },\n \"artifact_sha256\": { \"$ref\": \"#/$defs/sha256\" },\n \"wasm_abi_version\": { \"const\": \"redevplugin-wasm-worker-v2\" }\n }\n },\n \"open_handle_request_payload\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"package_hash\", \"artifact\", \"artifact_sha256\"],\n \"properties\": {\n \"package_hash\": { \"$ref\": \"#/$defs/sha256\" },\n \"artifact\": { \"$ref\": \"#/$defs/worker_artifact_path\" },\n \"artifact_sha256\": { \"$ref\": \"#/$defs/sha256\" }\n }\n },\n \"open_handle_response_payload\": {\n \"oneOf\": [\n {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"ok\", \"package_hash\", \"artifact\", \"sha256\", \"content_base64\"],\n \"properties\": {\n \"ok\": { \"const\": true },\n \"package_hash\": { \"$ref\": \"#/$defs/sha256\" },\n \"artifact\": { \"$ref\": \"#/$defs/worker_artifact_path\" },\n \"sha256\": { \"$ref\": \"#/$defs/sha256\" },\n \"content_base64\": { \"type\": \"string\", \"contentEncoding\": \"base64\" }\n }\n },\n { \"$ref\": \"#/$defs/hostcall_failure_response_payload\" }\n ]\n },\n \"validate_handle_grant_request_payload\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\n \"handle_grant_token\",\n \"plugin_instance_id\",\n \"active_fingerprint\",\n \"runtime_instance_id\",\n \"runtime_generation_id\",\n \"runtime_shard_id\",\n \"owner_session_hash\",\n \"owner_user_hash\",\n \"owner_env_hash\",\n \"session_channel_id_hash\",\n \"handle_id\",\n \"method\",\n \"resource_scope\",\n \"policy_revision\",\n \"management_revision\",\n \"revoke_epoch\"\n ],\n \"properties\": {\n \"handle_grant_token\": { \"type\": \"string\", \"minLength\": 1 },\n \"plugin_instance_id\": { \"type\": \"string\", \"minLength\": 1 },\n \"active_fingerprint\": { \"type\": \"string\", \"minLength\": 1 },\n \"runtime_instance_id\": { \"type\": \"string\", \"minLength\": 1 },\n \"runtime_generation_id\": { \"type\": \"string\", \"minLength\": 1 },\n \"runtime_shard_id\": { \"type\": \"string\", \"minLength\": 1 },\n \"owner_session_hash\": { \"type\": \"string\", \"minLength\": 1 },\n \"owner_user_hash\": { \"type\": \"string\", \"minLength\": 1 },\n \"owner_env_hash\": { \"type\": \"string\", \"minLength\": 1 },\n \"session_channel_id_hash\": { \"type\": \"string\", \"minLength\": 1 },\n \"handle_id\": { \"type\": \"string\", \"minLength\": 1 },\n \"method\": { \"type\": \"string\", \"minLength\": 1 },\n \"resource_scope\": { \"$ref\": \"#/$defs/resource_scope\" },\n \"policy_revision\": { \"type\": \"integer\", \"minimum\": 0, \"maximum\": 9007199254740991 },\n \"management_revision\": { \"type\": \"integer\", \"minimum\": 0, \"maximum\": 9007199254740991 },\n \"revoke_epoch\": { \"type\": \"integer\", \"minimum\": 1, \"maximum\": 9007199254740991 }\n }\n },\n \"validate_handle_grant_response_payload\": {\n \"oneOf\": [\n {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"ok\", \"handle_grant_id\", \"handle_id\", \"method\", \"runtime_generation_id\", \"resource_scope\"],\n \"properties\": {\n \"ok\": { \"const\": true },\n \"handle_grant_id\": { \"type\": \"string\", \"minLength\": 1 },\n \"handle_id\": { \"type\": \"string\", \"minLength\": 1 },\n \"method\": { \"type\": \"string\", \"minLength\": 1 },\n \"runtime_generation_id\": { \"type\": \"string\", \"minLength\": 1 },\n \"resource_scope\": { \"$ref\": \"#/$defs/resource_scope\" },\n \"max_bytes_per_second\": { \"type\": \"integer\", \"minimum\": 0 },\n \"max_total_bytes\": { \"type\": \"integer\", \"minimum\": 0 }\n }\n },\n { \"$ref\": \"#/$defs/hostcall_failure_response_payload\" }\n ]\n },\n \"storage_file_request_payload\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\n \"handle_grant_token\",\n \"plugin_instance_id\",\n \"active_fingerprint\",\n \"runtime_instance_id\",\n \"runtime_generation_id\",\n \"runtime_shard_id\",\n \"handle_id\",\n \"method\",\n \"resource_scope\",\n \"policy_revision\",\n \"management_revision\",\n \"revoke_epoch\",\n \"operation\",\n \"store_id\"\n ],\n \"properties\": {\n \"handle_grant_token\": { \"type\": \"string\", \"minLength\": 1 },\n \"plugin_instance_id\": { \"type\": \"string\", \"minLength\": 1 },\n \"active_fingerprint\": { \"type\": \"string\", \"minLength\": 1 },\n \"runtime_instance_id\": { \"type\": \"string\", \"minLength\": 1 },\n \"runtime_generation_id\": { \"type\": \"string\", \"minLength\": 1 },\n \"runtime_shard_id\": { \"type\": \"string\", \"minLength\": 1 },\n \"handle_id\": { \"type\": \"string\", \"pattern\": \"^storage:[A-Za-z0-9_.-]+$\" },\n \"method\": { \"const\": \"storage.files\" },\n \"resource_scope\": { \"$ref\": \"#/$defs/resource_scope\" },\n \"policy_revision\": { \"type\": \"integer\", \"minimum\": 0, \"maximum\": 9007199254740991 },\n \"management_revision\": { \"type\": \"integer\", \"minimum\": 0, \"maximum\": 9007199254740991 },\n \"revoke_epoch\": { \"type\": \"integer\", \"minimum\": 1, \"maximum\": 9007199254740991 },\n \"operation\": { \"enum\": [\"read\", \"write\", \"delete\", \"list\"] },\n \"store_id\": { \"type\": \"string\", \"pattern\": \"^[A-Za-z0-9_.-]+$\" },\n \"path\": { \"type\": \"string\" },\n \"data_base64\": { \"type\": \"string\", \"contentEncoding\": \"base64\" },\n \"max_bytes\": { \"type\": \"integer\", \"minimum\": 0 },\n \"max_entries\": { \"type\": \"integer\", \"minimum\": 0 },\n \"recursive\": { \"type\": \"boolean\" }\n }\n },\n \"storage_file_response_payload\": {\n \"oneOf\": [\n { \"$ref\": \"#/$defs/storage_file_read_success_response_payload\" },\n { \"$ref\": \"#/$defs/storage_file_write_success_response_payload\" },\n { \"$ref\": \"#/$defs/storage_file_delete_success_response_payload\" },\n { \"$ref\": \"#/$defs/storage_file_list_success_response_payload\" },\n { \"$ref\": \"#/$defs/hostcall_failure_response_payload\" }\n ]\n },\n \"storage_file_read_success_response_payload\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"ok\", \"path\", \"data_base64\", \"size_bytes\", \"usage\"],\n \"properties\": {\n \"ok\": { \"const\": true },\n \"path\": { \"type\": \"string\" },\n \"data_base64\": { \"type\": \"string\", \"contentEncoding\": \"base64\" },\n \"size_bytes\": { \"type\": \"integer\", \"minimum\": 0 },\n \"usage\": { \"$ref\": \"#/$defs/storage_usage\" }\n }\n },\n \"storage_file_write_success_response_payload\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"ok\", \"path\", \"size_bytes\", \"usage\"],\n \"properties\": {\n \"ok\": { \"const\": true },\n \"path\": { \"type\": \"string\" },\n \"size_bytes\": { \"type\": \"integer\", \"minimum\": 0 },\n \"usage\": { \"$ref\": \"#/$defs/storage_usage\" }\n }\n },\n \"storage_file_delete_success_response_payload\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"ok\", \"path\"],\n \"properties\": {\n \"ok\": { \"const\": true },\n \"path\": { \"type\": \"string\" }\n }\n },\n \"storage_file_list_success_response_payload\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"ok\", \"path\", \"entries\", \"usage\"],\n \"properties\": {\n \"ok\": { \"const\": true },\n \"path\": { \"type\": \"string\" },\n \"entries\": {\n \"type\": \"array\",\n \"items\": { \"$ref\": \"#/$defs/storage_file_entry\" }\n },\n \"usage\": { \"$ref\": \"#/$defs/storage_usage\" }\n }\n },\n \"storage_file_entry\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"path\", \"dir\", \"updated_at\"],\n \"properties\": {\n \"path\": { \"type\": \"string\", \"minLength\": 1 },\n \"dir\": { \"type\": \"boolean\" },\n \"size_bytes\": { \"type\": \"integer\", \"minimum\": 0 },\n \"updated_at\": { \"type\": \"string\", \"format\": \"date-time\" }\n }\n },\n \"storage_kv_request_payload\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\n \"handle_grant_token\",\n \"plugin_instance_id\",\n \"active_fingerprint\",\n \"runtime_instance_id\",\n \"runtime_generation_id\",\n \"runtime_shard_id\",\n \"handle_id\",\n \"method\",\n \"resource_scope\",\n \"policy_revision\",\n \"management_revision\",\n \"revoke_epoch\",\n \"operation\",\n \"store_id\"\n ],\n \"properties\": {\n \"handle_grant_token\": { \"type\": \"string\", \"minLength\": 1 },\n \"plugin_instance_id\": { \"type\": \"string\", \"minLength\": 1 },\n \"active_fingerprint\": { \"type\": \"string\", \"minLength\": 1 },\n \"runtime_instance_id\": { \"type\": \"string\", \"minLength\": 1 },\n \"runtime_generation_id\": { \"type\": \"string\", \"minLength\": 1 },\n \"runtime_shard_id\": { \"type\": \"string\", \"minLength\": 1 },\n \"handle_id\": { \"type\": \"string\", \"pattern\": \"^storage:[A-Za-z0-9_.-]+$\" },\n \"method\": { \"const\": \"storage.kv\" },\n \"resource_scope\": { \"$ref\": \"#/$defs/resource_scope\" },\n \"policy_revision\": { \"type\": \"integer\", \"minimum\": 0, \"maximum\": 9007199254740991 },\n \"management_revision\": { \"type\": \"integer\", \"minimum\": 0, \"maximum\": 9007199254740991 },\n \"revoke_epoch\": { \"type\": \"integer\", \"minimum\": 1, \"maximum\": 9007199254740991 },\n \"operation\": { \"enum\": [\"get\", \"put\", \"delete\", \"list\"] },\n \"store_id\": { \"type\": \"string\", \"pattern\": \"^[A-Za-z0-9_.-]+$\" },\n \"key\": { \"type\": \"string\" },\n \"value_base64\": { \"type\": \"string\", \"contentEncoding\": \"base64\" },\n \"prefix\": { \"type\": \"string\" },\n \"max_bytes\": { \"type\": \"integer\", \"minimum\": 0 },\n \"max_entries\": { \"type\": \"integer\", \"minimum\": 0 }\n }\n },\n \"storage_kv_response_payload\": {\n \"oneOf\": [\n { \"$ref\": \"#/$defs/storage_kv_get_success_response_payload\" },\n { \"$ref\": \"#/$defs/storage_kv_put_success_response_payload\" },\n { \"$ref\": \"#/$defs/storage_kv_delete_success_response_payload\" },\n { \"$ref\": \"#/$defs/storage_kv_list_success_response_payload\" },\n { \"$ref\": \"#/$defs/hostcall_failure_response_payload\" }\n ]\n },\n \"storage_kv_get_success_response_payload\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"ok\", \"key\", \"value_base64\", \"size_bytes\", \"usage\"],\n \"properties\": {\n \"ok\": { \"const\": true },\n \"key\": { \"type\": \"string\" },\n \"value_base64\": { \"type\": \"string\", \"contentEncoding\": \"base64\" },\n \"size_bytes\": { \"type\": \"integer\", \"minimum\": 0 },\n \"usage\": { \"$ref\": \"#/$defs/storage_usage\" }\n }\n },\n \"storage_kv_put_success_response_payload\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"ok\", \"key\", \"size_bytes\", \"usage\"],\n \"properties\": {\n \"ok\": { \"const\": true },\n \"key\": { \"type\": \"string\" },\n \"size_bytes\": { \"type\": \"integer\", \"minimum\": 0 },\n \"usage\": { \"$ref\": \"#/$defs/storage_usage\" }\n }\n },\n \"storage_kv_delete_success_response_payload\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"ok\", \"key\"],\n \"properties\": {\n \"ok\": { \"const\": true },\n \"key\": { \"type\": \"string\" }\n }\n },\n \"storage_kv_list_success_response_payload\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"ok\", \"entries\", \"usage\"],\n \"properties\": {\n \"ok\": { \"const\": true },\n \"prefix\": { \"type\": \"string\" },\n \"entries\": {\n \"type\": \"array\",\n \"items\": { \"$ref\": \"#/$defs/storage_kv_entry\" }\n },\n \"usage\": { \"$ref\": \"#/$defs/storage_usage\" }\n }\n },\n \"storage_kv_entry\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"key\", \"size_bytes\", \"updated_at\"],\n \"properties\": {\n \"key\": { \"type\": \"string\", \"minLength\": 1 },\n \"size_bytes\": { \"type\": \"integer\", \"minimum\": 0 },\n \"updated_at\": { \"type\": \"string\", \"format\": \"date-time\" }\n }\n },\n \"storage_sqlite_request_payload\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\n \"handle_grant_token\",\n \"plugin_instance_id\",\n \"active_fingerprint\",\n \"runtime_instance_id\",\n \"runtime_generation_id\",\n \"runtime_shard_id\",\n \"handle_id\",\n \"method\",\n \"resource_scope\",\n \"policy_revision\",\n \"management_revision\",\n \"revoke_epoch\",\n \"operation\",\n \"store_id\",\n \"sql\"\n ],\n \"properties\": {\n \"handle_grant_token\": { \"type\": \"string\", \"minLength\": 1 },\n \"plugin_instance_id\": { \"type\": \"string\", \"minLength\": 1 },\n \"active_fingerprint\": { \"type\": \"string\", \"minLength\": 1 },\n \"runtime_instance_id\": { \"type\": \"string\", \"minLength\": 1 },\n \"runtime_generation_id\": { \"type\": \"string\", \"minLength\": 1 },\n \"runtime_shard_id\": { \"type\": \"string\", \"minLength\": 1 },\n \"handle_id\": { \"type\": \"string\", \"pattern\": \"^storage:[A-Za-z0-9_.-]+$\" },\n \"method\": { \"const\": \"storage.sqlite\" },\n \"resource_scope\": { \"$ref\": \"#/$defs/resource_scope\" },\n \"policy_revision\": { \"type\": \"integer\", \"minimum\": 0, \"maximum\": 9007199254740991 },\n \"management_revision\": { \"type\": \"integer\", \"minimum\": 0, \"maximum\": 9007199254740991 },\n \"revoke_epoch\": { \"type\": \"integer\", \"minimum\": 1, \"maximum\": 9007199254740991 },\n \"operation\": { \"enum\": [\"exec\", \"query\"] },\n \"store_id\": { \"type\": \"string\", \"pattern\": \"^[A-Za-z0-9_.-]+$\" },\n \"database\": { \"type\": \"string\" },\n \"sql\": { \"type\": \"string\", \"minLength\": 1 },\n \"args\": {\n \"type\": \"array\",\n \"items\": { \"$ref\": \"#/$defs/storage_sqlite_value\" }\n },\n \"max_rows\": { \"type\": \"integer\", \"minimum\": 0 },\n \"max_response_bytes\": { \"type\": \"integer\", \"minimum\": 0 },\n \"timeout_ms\": { \"type\": \"integer\", \"minimum\": 0 }\n }\n },\n \"storage_sqlite_response_payload\": {\n \"oneOf\": [\n { \"$ref\": \"#/$defs/storage_sqlite_exec_success_response_payload\" },\n { \"$ref\": \"#/$defs/storage_sqlite_query_success_response_payload\" },\n { \"$ref\": \"#/$defs/hostcall_failure_response_payload\" }\n ]\n },\n \"storage_sqlite_exec_success_response_payload\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"ok\", \"database\", \"rows_affected\", \"usage\"],\n \"properties\": {\n \"ok\": { \"const\": true },\n \"database\": { \"type\": \"string\" },\n \"rows_affected\": { \"type\": \"integer\", \"minimum\": 0 },\n \"last_insert_id\": { \"type\": \"integer\", \"minimum\": 0 },\n \"usage\": { \"$ref\": \"#/$defs/storage_usage\" }\n }\n },\n \"storage_sqlite_query_success_response_payload\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"ok\", \"database\", \"columns\", \"rows\", \"usage\"],\n \"properties\": {\n \"ok\": { \"const\": true },\n \"database\": { \"type\": \"string\" },\n \"columns\": {\n \"type\": \"array\",\n \"items\": { \"type\": \"string\" }\n },\n \"rows\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"array\",\n \"items\": { \"$ref\": \"#/$defs/storage_sqlite_value\" }\n }\n },\n \"usage\": { \"$ref\": \"#/$defs/storage_usage\" }\n }\n },\n \"storage_sqlite_value\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"oneOf\": [\n { \"required\": [\"null\"], \"properties\": { \"null\": { \"const\": true } } },\n { \"required\": [\"int\"] },\n { \"required\": [\"float\"] },\n { \"required\": [\"text\"] },\n { \"required\": [\"blob_base64\"] }\n ],\n \"properties\": {\n \"null\": { \"type\": \"boolean\" },\n \"int\": { \"type\": \"integer\" },\n \"float\": { \"type\": \"number\" },\n \"text\": { \"type\": \"string\" },\n \"blob_base64\": { \"type\": \"string\", \"contentEncoding\": \"base64\" }\n }\n },\n \"storage_usage\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"plugin_instance_id\", \"store_id\", \"usage_bytes\", \"quota_bytes\", \"usage_files\", \"quota_files\"],\n \"properties\": {\n \"plugin_instance_id\": { \"type\": \"string\", \"minLength\": 1 },\n \"store_id\": { \"type\": \"string\", \"minLength\": 1 },\n \"usage_bytes\": { \"type\": \"integer\", \"minimum\": 0 },\n \"quota_bytes\": { \"type\": \"integer\", \"minimum\": 0 },\n \"usage_files\": { \"type\": \"integer\", \"minimum\": 0 },\n \"quota_files\": { \"type\": \"integer\", \"minimum\": 0 }\n }\n },\n \"network_grant_request_payload\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\n \"plugin_instance_id\",\n \"active_fingerprint\",\n \"resource_scope\",\n \"runtime_instance_id\",\n \"runtime_generation_id\",\n \"runtime_shard_id\",\n \"policy_revision\",\n \"management_revision\",\n \"revoke_epoch\",\n \"connector_id\",\n \"transport\",\n \"destination\"\n ],\n \"properties\": {\n \"plugin_instance_id\": { \"type\": \"string\", \"minLength\": 1 },\n \"active_fingerprint\": { \"type\": \"string\", \"minLength\": 1 },\n \"resource_scope\": { \"$ref\": \"#/$defs/resource_scope\" },\n \"runtime_instance_id\": { \"type\": \"string\", \"minLength\": 1 },\n \"runtime_generation_id\": { \"type\": \"string\", \"minLength\": 1 },\n \"runtime_shard_id\": { \"type\": \"string\", \"minLength\": 1 },\n \"policy_revision\": { \"type\": \"integer\", \"minimum\": 0, \"maximum\": 9007199254740991 },\n \"management_revision\": { \"type\": \"integer\", \"minimum\": 0, \"maximum\": 9007199254740991 },\n \"revoke_epoch\": { \"type\": \"integer\", \"minimum\": 1, \"maximum\": 9007199254740991 },\n \"connector_id\": { \"type\": \"string\", \"minLength\": 1 },\n \"transport\": { \"enum\": [\"http\", \"websocket\", \"tcp\", \"udp\"] },\n \"destination\": { \"type\": \"string\", \"minLength\": 1 },\n \"ttl_ms\": { \"type\": \"integer\", \"minimum\": 0 }\n }\n },\n \"network_grant_response_payload\": {\n \"oneOf\": [\n {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\n \"ok\", \"grant_id\", \"plugin_instance_id\", \"active_fingerprint\",\n \"resource_scope\",\n \"policy_revision\", \"management_revision\", \"revoke_epoch\", \"connector_id\",\n \"transport\", \"destination\", \"runtime_generation_id\",\n \"target_classifier_version\", \"expires_at\"\n ],\n \"properties\": {\n \"ok\": { \"const\": true },\n \"grant_id\": { \"type\": \"string\", \"pattern\": \"^netgrant_[0-9a-f]{32}$\" },\n \"plugin_instance_id\": { \"type\": \"string\", \"minLength\": 1 },\n \"active_fingerprint\": { \"type\": \"string\", \"minLength\": 1 },\n \"resource_scope\": { \"$ref\": \"#/$defs/resource_scope\" },\n \"policy_revision\": { \"type\": \"integer\", \"minimum\": 0, \"maximum\": 9007199254740991 },\n \"management_revision\": { \"type\": \"integer\", \"minimum\": 0, \"maximum\": 9007199254740991 },\n \"revoke_epoch\": { \"type\": \"integer\", \"minimum\": 1, \"maximum\": 9007199254740991 },\n \"connector_id\": { \"type\": \"string\", \"minLength\": 1 },\n \"transport\": { \"enum\": [\"http\", \"websocket\", \"tcp\", \"udp\"] },\n \"destination\": { \"$ref\": \"#/$defs/network_destination\" },\n \"runtime_generation_id\": { \"type\": \"string\", \"minLength\": 1 },\n \"target_classifier_version\": { \"const\": \"target-classifier-v2\" },\n \"expires_at\": { \"type\": \"string\", \"format\": \"date-time\" }\n }\n },\n { \"$ref\": \"#/$defs/hostcall_failure_response_payload\" }\n ]\n },\n \"network_execute_request_payload\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\n \"plugin_id\",\n \"plugin_instance_id\",\n \"active_fingerprint\",\n \"resource_scope\",\n \"runtime_instance_id\",\n \"runtime_generation_id\",\n \"runtime_shard_id\",\n \"policy_revision\",\n \"management_revision\",\n \"revoke_epoch\",\n \"connector_id\",\n \"transport\",\n \"destination\",\n \"owner_session_hash\",\n \"owner_user_hash\",\n \"owner_env_hash\",\n \"session_channel_id_hash\"\n ],\n \"properties\": {\n \"plugin_id\": { \"type\": \"string\", \"minLength\": 1 },\n \"plugin_instance_id\": { \"type\": \"string\", \"minLength\": 1 },\n \"active_fingerprint\": { \"type\": \"string\", \"minLength\": 1 },\n \"resource_scope\": { \"$ref\": \"#/$defs/resource_scope\" },\n \"runtime_instance_id\": { \"type\": \"string\", \"minLength\": 1 },\n \"runtime_generation_id\": { \"type\": \"string\", \"minLength\": 1 },\n \"runtime_shard_id\": { \"type\": \"string\", \"minLength\": 1 },\n \"policy_revision\": { \"type\": \"integer\", \"minimum\": 0, \"maximum\": 9007199254740991 },\n \"management_revision\": { \"type\": \"integer\", \"minimum\": 0, \"maximum\": 9007199254740991 },\n \"revoke_epoch\": { \"type\": \"integer\", \"minimum\": 1, \"maximum\": 9007199254740991 },\n \"connector_id\": { \"type\": \"string\", \"minLength\": 1 },\n \"transport\": { \"enum\": [\"http\", \"websocket\", \"tcp\", \"udp\"] },\n \"destination\": { \"type\": \"string\", \"minLength\": 1 },\n \"ttl_ms\": { \"type\": \"integer\", \"minimum\": 0 },\n \"operation\": { \"enum\": [\"http\", \"http_stream\", \"websocket_round_trip\", \"tcp_round_trip\", \"udp_round_trip\"] },\n \"method\": { \"type\": \"string\", \"minLength\": 1 },\n \"path\": { \"type\": \"string\" },\n \"query\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"array\",\n \"items\": { \"type\": \"string\" }\n }\n },\n \"headers\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"array\",\n \"items\": { \"type\": \"string\" }\n }\n },\n \"message_type\": { \"enum\": [\"text\", \"binary\"] },\n \"body_base64\": { \"type\": \"string\", \"contentEncoding\": \"base64\" },\n \"payload_base64\": { \"type\": \"string\", \"contentEncoding\": \"base64\" },\n \"max_request_bytes\": { \"type\": \"integer\", \"minimum\": 0 },\n \"max_response_bytes\": { \"type\": \"integer\", \"minimum\": 0 },\n \"max_chunk_bytes\": { \"type\": \"integer\", \"minimum\": 0 },\n \"max_buffered_bytes\": { \"type\": \"integer\", \"minimum\": 0 },\n \"timeout_ms\": { \"type\": \"integer\", \"minimum\": 0 },\n \"stream_id\": { \"type\": \"string\" },\n \"stream_method\": { \"type\": \"string\" },\n \"stream_effect\": { \"enum\": [\"read\", \"write\", \"execute\", \"delete\", \"admin\"] },\n \"stream_execution\": { \"enum\": [\"sync\", \"operation\", \"subscription\"] },\n \"surface_instance_id\": { \"type\": \"string\" },\n \"owner_session_hash\": { \"type\": \"string\" },\n \"owner_user_hash\": { \"type\": \"string\" },\n \"owner_env_hash\": { \"type\": \"string\", \"minLength\": 1 },\n \"session_channel_id_hash\": { \"type\": \"string\" },\n \"bridge_channel_id\": { \"type\": \"string\" },\n \"content_type\": { \"type\": \"string\" }\n }\n },\n \"network_execute_response_payload\": {\n \"oneOf\": [\n {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"ok\", \"transport\", \"destination\", \"grant_id\", \"connector_id\", \"runtime_generation_id\"],\n \"properties\": {\n \"ok\": { \"const\": true },\n \"transport\": { \"enum\": [\"http\", \"websocket\", \"tcp\", \"udp\"] },\n \"destination\": { \"$ref\": \"#/$defs/network_destination\" },\n \"status_code\": { \"type\": \"integer\", \"minimum\": 100, \"maximum\": 599 },\n \"headers\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"array\",\n \"items\": { \"type\": \"string\" }\n }\n },\n \"message_type\": { \"enum\": [\"text\", \"binary\"] },\n \"body_base64\": { \"type\": \"string\", \"contentEncoding\": \"base64\" },\n \"payload_base64\": { \"type\": \"string\", \"contentEncoding\": \"base64\" },\n \"stream_id\": { \"type\": \"string\", \"minLength\": 1 },\n \"bytes_read\": { \"type\": \"integer\", \"minimum\": 0 },\n \"chunk_count\": { \"type\": \"integer\", \"minimum\": 0 },\n \"grant_id\": { \"type\": \"string\", \"pattern\": \"^netgrant_[0-9a-f]{32}$\" },\n \"connector_id\": { \"type\": \"string\", \"minLength\": 1 },\n \"runtime_generation_id\": { \"type\": \"string\", \"minLength\": 1 }\n }\n },\n { \"$ref\": \"#/$defs/hostcall_failure_response_payload\" }\n ]\n },\n \"resource_scope\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"kind\", \"owner_env_hash\"],\n \"properties\": {\n \"kind\": { \"enum\": [\"user\", \"environment\"] },\n \"owner_env_hash\": { \"type\": \"string\", \"pattern\": \"^[A-Za-z0-9][A-Za-z0-9._:-]{0,255}$\" },\n \"owner_user_hash\": { \"type\": \"string\", \"pattern\": \"^[A-Za-z0-9][A-Za-z0-9._:-]{0,255}$\" }\n },\n \"oneOf\": [\n { \"properties\": { \"kind\": { \"const\": \"user\" } }, \"required\": [\"owner_user_hash\"] },\n { \"properties\": { \"kind\": { \"const\": \"environment\" } }, \"not\": { \"required\": [\"owner_user_hash\"] } }\n ]\n },\n \"environment_resource_scope\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"kind\", \"owner_env_hash\"],\n \"properties\": {\n \"kind\": { \"const\": \"environment\" },\n \"owner_env_hash\": { \"type\": \"string\", \"pattern\": \"^[A-Za-z0-9][A-Za-z0-9._:-]{0,255}$\" }\n }\n },\n \"network_destination\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"transport\", \"host\", \"port\"],\n \"properties\": {\n \"transport\": { \"enum\": [\"http\", \"websocket\", \"tcp\", \"udp\"] },\n \"scheme\": { \"enum\": [\"http\", \"https\", \"ws\", \"wss\"] },\n \"host\": { \"type\": \"string\", \"minLength\": 1 },\n \"port\": { \"type\": \"integer\", \"minimum\": 1, \"maximum\": 65535 }\n }\n },\n \"revoke_epoch_ack_response_payload\": {\n \"oneOf\": [\n {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"ok\", \"result\"],\n \"properties\": {\n \"ok\": { \"const\": true },\n \"result\": { \"$ref\": \"#/$defs/revoke_epoch_ack_result\" }\n }\n },\n {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"ok\", \"code\", \"message\", \"error_origin\"],\n \"properties\": {\n \"ok\": { \"const\": false },\n \"code\": { \"type\": \"string\", \"minLength\": 1 },\n \"message\": { \"type\": \"string\", \"minLength\": 1 },\n \"error_origin\": { \"enum\": [\"runtime\", \"hostcall\", \"plugin\"] }\n }\n }\n ]\n },\n \"revoke_epoch_ack_result\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\n \"resource_scope\",\n \"plugin_instance_id\",\n \"revoke_epoch\",\n \"closed_socket_count\",\n \"closed_stream_count\",\n \"closed_storage_handle_count\"\n ],\n \"properties\": {\n \"resource_scope\": { \"$ref\": \"#/$defs/environment_resource_scope\" },\n \"plugin_instance_id\": { \"type\": \"string\", \"minLength\": 1 },\n \"revoke_epoch\": { \"type\": \"integer\", \"minimum\": 1, \"maximum\": 9007199254740991 },\n \"closed_socket_count\": { \"type\": \"integer\", \"minimum\": 0 },\n \"closed_stream_count\": { \"type\": \"integer\", \"minimum\": 0 },\n \"closed_storage_handle_count\": { \"type\": \"integer\", \"minimum\": 0 }\n }\n },\n \"session_revoke_request_payload\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\n \"session_revoke_sequence\",\n \"owner_session_hash\",\n \"owner_user_hash\",\n \"owner_env_hash\",\n \"session_channel_id_hash\"\n ],\n \"properties\": {\n \"session_revoke_sequence\": { \"type\": \"integer\", \"minimum\": 1, \"maximum\": 9007199254740991 },\n \"owner_session_hash\": { \"$ref\": \"#/$defs/session_owner_hash\" },\n \"owner_user_hash\": { \"$ref\": \"#/$defs/session_owner_hash\" },\n \"owner_env_hash\": { \"$ref\": \"#/$defs/session_owner_hash\" },\n \"session_channel_id_hash\": { \"$ref\": \"#/$defs/session_owner_hash\" }\n }\n },\n \"session_owner_hash\": {\n \"type\": \"string\",\n \"pattern\": \"^[A-Za-z0-9][A-Za-z0-9._:-]{0,255}$\"\n },\n \"session_revoke_ack_response_payload\": {\n \"oneOf\": [\n {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"ok\", \"result\"],\n \"properties\": {\n \"ok\": { \"const\": true },\n \"result\": { \"$ref\": \"#/$defs/session_revoke_ack_result\" }\n }\n },\n {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"ok\", \"code\", \"message\", \"error_origin\"],\n \"properties\": {\n \"ok\": { \"const\": false },\n \"code\": {\n \"enum\": [\n \"SESSION_REVOKE_SEQUENCE_STALE\",\n \"SESSION_REVOKE_DRAIN_TIMEOUT\",\n \"WORKER_INVOCATION_INVALID\"\n ]\n },\n \"message\": { \"type\": \"string\", \"minLength\": 1, \"maxLength\": 4096 },\n \"error_origin\": { \"const\": \"runtime\" }\n }\n }\n ]\n },\n \"session_revoke_ack_result\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"session_revoke_sequence\", \"state\", \"counts\"],\n \"properties\": {\n \"session_revoke_sequence\": { \"type\": \"integer\", \"minimum\": 1, \"maximum\": 9007199254740991 },\n \"state\": { \"const\": \"complete\" },\n \"counts\": { \"$ref\": \"#/$defs/session_revoke_ack_counts\" }\n }\n },\n \"session_revoke_ack_counts\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\n \"queued_invocations\",\n \"running_invocations\",\n \"storage_hostcalls\",\n \"active_network_requests\",\n \"sockets\",\n \"network_streams\"\n ],\n \"properties\": {\n \"queued_invocations\": { \"$ref\": \"#/$defs/session_revoke_count\" },\n \"running_invocations\": { \"$ref\": \"#/$defs/session_revoke_count\" },\n \"storage_hostcalls\": { \"$ref\": \"#/$defs/session_revoke_count\" },\n \"active_network_requests\": { \"$ref\": \"#/$defs/session_revoke_count\" },\n \"sockets\": { \"$ref\": \"#/$defs/session_revoke_count\" },\n \"network_streams\": { \"$ref\": \"#/$defs/session_revoke_count\" }\n }\n },\n \"session_revoke_count\": {\n \"type\": \"integer\",\n \"minimum\": 0,\n \"maximum\": 9007199254740991\n },\n \"runtime_response_frame\": {\n \"required\": [\"runtime_generation_id\", \"payload\"],\n \"properties\": {\n \"payload\": {\n \"oneOf\": [\n {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"ok\", \"result\"],\n \"properties\": {\n \"ok\": { \"const\": true },\n \"result\": true\n }\n },\n {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"ok\", \"code\", \"message\", \"error_origin\"],\n \"properties\": {\n \"ok\": { \"const\": false },\n \"code\": { \"type\": \"string\", \"minLength\": 1 },\n \"message\": { \"type\": \"string\", \"minLength\": 1 },\n \"error_origin\": { \"enum\": [\"runtime\", \"hostcall\", \"plugin\"] }\n }\n }\n ]\n }\n }\n }\n }\n}\n";
253
+ }, {
254
+ readonly id: "session-scope-schema";
255
+ readonly path: "spec/plugin/session-scope-v1.schema.json";
256
+ readonly version: "session-scope-v1";
257
+ readonly sha256: "3df0084264f0aff9fe2261c237cea439adb5cdc2534bfaaa0488d5992d4a7d2e";
258
+ readonly body: "{\n \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n \"$id\": \"https://schemas.redevplugin.dev/plugin/session-scope-v1.schema.json\",\n \"title\": \"ReDevPlugin session scope lifecycle v1\",\n \"description\": \"Exact authenticated-session ownership, teardown phases, and public revoke results. Teardown identities and closed-session proofs are intentionally excluded from every wire shape.\",\n \"$ref\": \"#/$defs/public_revoke_result\",\n \"$defs\": {\n \"owner_hash\": {\n \"type\": \"string\",\n \"pattern\": \"^[A-Za-z0-9][A-Za-z0-9._:-]{0,255}$\"\n },\n \"session_scope\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\n \"owner_session_hash\",\n \"owner_user_hash\",\n \"owner_env_hash\",\n \"session_channel_id_hash\"\n ],\n \"properties\": {\n \"owner_session_hash\": { \"$ref\": \"#/$defs/owner_hash\" },\n \"owner_user_hash\": { \"$ref\": \"#/$defs/owner_hash\" },\n \"owner_env_hash\": { \"$ref\": \"#/$defs/owner_hash\" },\n \"session_channel_id_hash\": { \"$ref\": \"#/$defs/owner_hash\" }\n }\n },\n \"teardown_phase\": {\n \"type\": \"string\",\n \"enum\": [\"bridge\", \"confirmation\", \"execution\", \"operation\", \"stream\", \"runtime\"]\n },\n \"revoke_counts\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\n \"surfaces\",\n \"asset_tickets\",\n \"asset_sessions\",\n \"plugin_gateway_tokens\",\n \"confirmation_tokens\",\n \"stream_tickets\",\n \"handle_grants\",\n \"confirmations\",\n \"operations\",\n \"streams\",\n \"runtime_executions\",\n \"active_network_requests\",\n \"sockets\",\n \"network_streams\",\n \"storage_hostcalls\"\n ],\n \"properties\": {\n \"surfaces\": { \"$ref\": \"#/$defs/count\" },\n \"asset_tickets\": { \"$ref\": \"#/$defs/count\" },\n \"asset_sessions\": { \"$ref\": \"#/$defs/count\" },\n \"plugin_gateway_tokens\": { \"$ref\": \"#/$defs/count\" },\n \"confirmation_tokens\": { \"$ref\": \"#/$defs/count\" },\n \"stream_tickets\": { \"$ref\": \"#/$defs/count\" },\n \"handle_grants\": { \"$ref\": \"#/$defs/count\" },\n \"confirmations\": { \"$ref\": \"#/$defs/count\" },\n \"operations\": { \"$ref\": \"#/$defs/count\" },\n \"streams\": { \"$ref\": \"#/$defs/count\" },\n \"runtime_executions\": { \"$ref\": \"#/$defs/count\" },\n \"active_network_requests\": { \"$ref\": \"#/$defs/count\" },\n \"sockets\": { \"$ref\": \"#/$defs/count\" },\n \"network_streams\": { \"$ref\": \"#/$defs/count\" },\n \"storage_hostcalls\": { \"$ref\": \"#/$defs/count\" }\n }\n },\n \"count\": {\n \"type\": \"integer\",\n \"minimum\": 0,\n \"maximum\": 9007199254740991\n },\n \"complete_revoke_result\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"state\", \"fenced\", \"complete\", \"counts\"],\n \"properties\": {\n \"state\": { \"const\": \"complete\" },\n \"fenced\": { \"const\": true },\n \"complete\": { \"const\": true },\n \"counts\": { \"$ref\": \"#/$defs/revoke_counts\" }\n }\n },\n \"incomplete_revoke_result\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"state\", \"fenced\", \"complete\", \"counts\"],\n \"properties\": {\n \"state\": { \"const\": \"incomplete\" },\n \"fenced\": { \"const\": true },\n \"complete\": { \"const\": false },\n \"counts\": { \"$ref\": \"#/$defs/revoke_counts\" }\n }\n },\n \"public_revoke_result\": {\n \"oneOf\": [\n { \"$ref\": \"#/$defs/complete_revoke_result\" },\n { \"$ref\": \"#/$defs/incomplete_revoke_result\" }\n ]\n }\n }\n}\n";
259
+ }, {
260
+ readonly id: "target-classifier-fixture";
261
+ readonly path: "spec/plugin/target-classifier-v2.json";
262
+ readonly version: "target-classifier-v2";
263
+ readonly sha256: "ae7336cce77a2e820f96f1cc309b93f8442c932dcebec25e3890d31cd098e2d1";
264
+ readonly body: "{\n \"version\": \"target-classifier-v2\",\n \"default_policy\": \"allow_public_unicast_only\",\n \"normalization\": {\n \"dns_names\": \"ASCII lowercase with one trailing dot stripped before special-host checks\",\n \"ip_literals\": \"netip canonical form; IPv4-mapped IPv6 addresses are unmapped before blocked-range checks\"\n },\n \"blocked_ip_ranges\": [\n \"0.0.0.0/8\",\n \"10.0.0.0/8\",\n \"100.64.0.0/10\",\n \"127.0.0.0/8\",\n \"169.254.0.0/16\",\n \"172.16.0.0/12\",\n \"192.0.0.0/24\",\n \"192.0.2.0/24\",\n \"192.31.196.0/24\",\n \"192.52.193.0/24\",\n \"192.88.99.0/24\",\n \"192.168.0.0/16\",\n \"192.175.48.0/24\",\n \"198.18.0.0/15\",\n \"198.51.100.0/24\",\n \"203.0.113.0/24\",\n \"224.0.0.0/4\",\n \"240.0.0.0/4\",\n \"::/96\",\n \"::1/128\",\n \"64:ff9b::/96\",\n \"64:ff9b:1::/48\",\n \"100::/64\",\n \"2001::/23\",\n \"2001:db8::/32\",\n \"2002::/16\",\n \"3fff::/20\",\n \"5f00::/16\",\n \"2620:4f:8000::/48\",\n \"fc00::/7\",\n \"fe80::/10\",\n \"fec0::/10\",\n \"ff00::/8\"\n ],\n \"special_hosts\": [\n \"localhost\",\n \"metadata.google.internal\",\n \"metadata.goog\",\n \"instance-data\",\n \"instance-data.ec2.internal\",\n \"metadata.azure.internal\",\n \"169.254.169.254\"\n ],\n \"fixtures\": [\n {\n \"name\": \"public-http-origin\",\n \"transport\": \"http\",\n \"destination\": \"https://api.example.com\",\n \"resolved_address\": \"93.184.216.34\",\n \"decision\": \"allow\"\n },\n {\n \"name\": \"public-ipv4-literal\",\n \"transport\": \"tcp\",\n \"destination\": \"1.1.1.1:443\",\n \"decision\": \"allow\"\n },\n {\n \"name\": \"public-ipv4-mapped-resolved\",\n \"transport\": \"tcp\",\n \"destination\": \"dns.example.com:853\",\n \"resolved_address\": \"::ffff:8.8.8.8\",\n \"decision\": \"allow\"\n },\n {\n \"name\": \"public-ipv6-resolved\",\n \"transport\": \"tcp\",\n \"destination\": \"dns.example.com:853\",\n \"resolved_address\": \"2606:4700:4700::1111\",\n \"decision\": \"allow\"\n },\n {\n \"name\": \"punycode-public-host\",\n \"transport\": \"http\",\n \"destination\": \"https://xn--bcher-kva.example\",\n \"resolved_address\": \"1.0.0.1\",\n \"decision\": \"allow\"\n },\n {\n \"name\": \"localhost-special-host\",\n \"transport\": \"http\",\n \"destination\": \"http://localhost\",\n \"decision\": \"deny\"\n },\n {\n \"name\": \"metadata-special-host-trailing-dot\",\n \"transport\": \"websocket\",\n \"destination\": \"wss://metadata.google.internal.\",\n \"decision\": \"deny\"\n },\n {\n \"name\": \"instance-data-special-host\",\n \"transport\": \"http\",\n \"destination\": \"http://instance-data.ec2.internal\",\n \"decision\": \"deny\"\n },\n {\n \"name\": \"this-network-ipv4-literal\",\n \"transport\": \"udp\",\n \"destination\": \"0.1.2.3:53\",\n \"decision\": \"deny\"\n },\n {\n \"name\": \"private-ipv4-resolved\",\n \"transport\": \"tcp\",\n \"destination\": \"db.example.com:5432\",\n \"resolved_address\": \"10.0.0.10\",\n \"decision\": \"deny\"\n },\n {\n \"name\": \"shared-address-space-resolved\",\n \"transport\": \"tcp\",\n \"destination\": \"db.example.com:5432\",\n \"resolved_address\": \"100.64.0.1\",\n \"decision\": \"deny\"\n },\n {\n \"name\": \"loopback-ipv4-literal\",\n \"transport\": \"tcp\",\n \"destination\": \"127.0.0.1:443\",\n \"decision\": \"deny\"\n },\n {\n \"name\": \"link-local-ipv4-resolved\",\n \"transport\": \"udp\",\n \"destination\": \"dns.example.com:53\",\n \"resolved_address\": \"169.254.169.254\",\n \"decision\": \"deny\"\n },\n {\n \"name\": \"private-172-resolved\",\n \"transport\": \"tcp\",\n \"destination\": \"db.example.com:5432\",\n \"resolved_address\": \"172.31.255.255\",\n \"decision\": \"deny\"\n },\n {\n \"name\": \"ietf-protocol-assignments-resolved\",\n \"transport\": \"tcp\",\n \"destination\": \"service.example.com:443\",\n \"resolved_address\": \"192.0.0.9\",\n \"decision\": \"deny\"\n },\n {\n \"name\": \"documentation-192-resolved\",\n \"transport\": \"tcp\",\n \"destination\": \"service.example.com:443\",\n \"resolved_address\": \"192.0.2.1\",\n \"decision\": \"deny\"\n },\n {\n \"name\": \"as112-v4-resolved\",\n \"transport\": \"udp\",\n \"destination\": \"dns.example.com:53\",\n \"resolved_address\": \"192.31.196.1\",\n \"decision\": \"deny\"\n },\n {\n \"name\": \"amt-v4-resolved\",\n \"transport\": \"udp\",\n \"destination\": \"service.example.com:2268\",\n \"resolved_address\": \"192.52.193.1\",\n \"decision\": \"deny\"\n },\n {\n \"name\": \"6to4-relay-resolved\",\n \"transport\": \"tcp\",\n \"destination\": \"service.example.com:443\",\n \"resolved_address\": \"192.88.99.1\",\n \"decision\": \"deny\"\n },\n {\n \"name\": \"private-192-resolved\",\n \"transport\": \"tcp\",\n \"destination\": \"db.example.com:5432\",\n \"resolved_address\": \"192.168.1.1\",\n \"decision\": \"deny\"\n },\n {\n \"name\": \"direct-delegation-as112-resolved\",\n \"transport\": \"udp\",\n \"destination\": \"dns.example.com:53\",\n \"resolved_address\": \"192.175.48.1\",\n \"decision\": \"deny\"\n },\n {\n \"name\": \"benchmark-ipv4-resolved\",\n \"transport\": \"tcp\",\n \"destination\": \"service.example.com:443\",\n \"resolved_address\": \"198.18.0.1\",\n \"decision\": \"deny\"\n },\n {\n \"name\": \"documentation-198-resolved\",\n \"transport\": \"tcp\",\n \"destination\": \"service.example.com:443\",\n \"resolved_address\": \"198.51.100.1\",\n \"decision\": \"deny\"\n },\n {\n \"name\": \"documentation-203-resolved\",\n \"transport\": \"tcp\",\n \"destination\": \"service.example.com:443\",\n \"resolved_address\": \"203.0.113.1\",\n \"decision\": \"deny\"\n },\n {\n \"name\": \"multicast-ipv4-resolved\",\n \"transport\": \"udp\",\n \"destination\": \"service.example.com:5000\",\n \"resolved_address\": \"239.1.2.3\",\n \"decision\": \"deny\"\n },\n {\n \"name\": \"reserved-ipv4-resolved\",\n \"transport\": \"tcp\",\n \"destination\": \"service.example.com:443\",\n \"resolved_address\": \"240.0.0.1\",\n \"decision\": \"deny\"\n },\n {\n \"name\": \"ipv4-mapped-shared-resolved\",\n \"transport\": \"tcp\",\n \"destination\": \"service.example.com:443\",\n \"resolved_address\": \"::ffff:100.64.0.1\",\n \"decision\": \"deny\"\n },\n {\n \"name\": \"ipv4-compatible-ipv6-resolved\",\n \"transport\": \"tcp\",\n \"destination\": \"service.example.com:443\",\n \"resolved_address\": \"::192.0.2.1\",\n \"decision\": \"deny\"\n },\n {\n \"name\": \"unspecified-ipv6-literal\",\n \"transport\": \"tcp\",\n \"destination\": \"[::]:443\",\n \"decision\": \"deny\"\n },\n {\n \"name\": \"loopback-ipv6-literal\",\n \"transport\": \"tcp\",\n \"destination\": \"[::1]:443\",\n \"decision\": \"deny\"\n },\n {\n \"name\": \"nat64-well-known-resolved\",\n \"transport\": \"tcp\",\n \"destination\": \"service.example.com:443\",\n \"resolved_address\": \"64:ff9b::c000:201\",\n \"decision\": \"deny\"\n },\n {\n \"name\": \"nat64-local-use-resolved\",\n \"transport\": \"tcp\",\n \"destination\": \"service.example.com:443\",\n \"resolved_address\": \"64:ff9b:1::1\",\n \"decision\": \"deny\"\n },\n {\n \"name\": \"discard-only-ipv6-resolved\",\n \"transport\": \"udp\",\n \"destination\": \"service.example.com:5000\",\n \"resolved_address\": \"100::1\",\n \"decision\": \"deny\"\n },\n {\n \"name\": \"ietf-special-ipv6-resolved\",\n \"transport\": \"tcp\",\n \"destination\": \"service.example.com:443\",\n \"resolved_address\": \"2001::1\",\n \"decision\": \"deny\"\n },\n {\n \"name\": \"documentation-ipv6-resolved\",\n \"transport\": \"tcp\",\n \"destination\": \"service.example.com:443\",\n \"resolved_address\": \"2001:db8::1\",\n \"decision\": \"deny\"\n },\n {\n \"name\": \"six-to-four-ipv6-resolved\",\n \"transport\": \"tcp\",\n \"destination\": \"service.example.com:443\",\n \"resolved_address\": \"2002:c000:0201::1\",\n \"decision\": \"deny\"\n },\n {\n \"name\": \"documentation-3fff-resolved\",\n \"transport\": \"tcp\",\n \"destination\": \"service.example.com:443\",\n \"resolved_address\": \"3fff::1\",\n \"decision\": \"deny\"\n },\n {\n \"name\": \"segment-routing-sid-resolved\",\n \"transport\": \"tcp\",\n \"destination\": \"service.example.com:443\",\n \"resolved_address\": \"5f00::1\",\n \"decision\": \"deny\"\n },\n {\n \"name\": \"direct-delegation-as112-ipv6-resolved\",\n \"transport\": \"udp\",\n \"destination\": \"dns.example.com:53\",\n \"resolved_address\": \"2620:4f:8000::1\",\n \"decision\": \"deny\"\n },\n {\n \"name\": \"ula-resolved\",\n \"transport\": \"tcp\",\n \"destination\": \"db.example.com:5432\",\n \"resolved_address\": \"fd00::10\",\n \"decision\": \"deny\"\n },\n {\n \"name\": \"ipv6-link-local-resolved\",\n \"transport\": \"tcp\",\n \"destination\": \"db.example.com:5432\",\n \"resolved_address\": \"fe80::1\",\n \"decision\": \"deny\"\n },\n {\n \"name\": \"site-local-resolved\",\n \"transport\": \"tcp\",\n \"destination\": \"db.example.com:5432\",\n \"resolved_address\": \"fec0::1\",\n \"decision\": \"deny\"\n },\n {\n \"name\": \"multicast-ipv6-resolved\",\n \"transport\": \"udp\",\n \"destination\": \"service.example.com:5000\",\n \"resolved_address\": \"ff02::1\",\n \"decision\": \"deny\"\n }\n ]\n}\n";
265
+ }, {
266
+ readonly id: "token-ticket-schema";
267
+ readonly path: "spec/plugin/token-ticket-v4.schema.json";
268
+ readonly version: "token-ticket-v4";
269
+ readonly sha256: "5cf365b5b52a331ac0d3ad35a98be3c2ce668804ae88fdeaf9679a44db14feb1";
270
+ readonly body: "{\n \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n \"$id\": \"https://schemas.redevplugin.dev/plugin/token-ticket-v4.schema.json\",\n \"title\": \"ReDevPlugin token and ticket v4\",\n \"description\": \"Host-issued token records. Exact session-bound audiences participate in the session-scope-v1 revocation lifecycle.\",\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\n \"token_kind\",\n \"token_id\",\n \"audience\",\n \"revision\",\n \"issued_at\",\n \"expires_at\",\n \"nonce\",\n \"use\"\n ],\n \"properties\": {\n \"token_kind\": { \"$ref\": \"#/$defs/token_kind\" },\n \"token_id\": { \"$ref\": \"#/$defs/token_id\" },\n \"token_hash\": {\n \"type\": \"string\",\n \"pattern\": \"^sha256:[0-9a-f]{64}$\",\n \"description\": \"Server-side record only. Cleartext token is returned exactly once and must not be persisted.\"\n },\n \"audience\": { \"$ref\": \"#/$defs/audience\" },\n \"revision\": { \"$ref\": \"#/$defs/revision\" },\n \"issued_at\": { \"type\": \"string\", \"format\": \"date-time\" },\n \"expires_at\": { \"type\": \"string\", \"format\": \"date-time\" },\n \"nonce\": { \"type\": \"string\", \"minLength\": 16 },\n \"use\": { \"enum\": [\"single_use\", \"reusable\"] },\n \"consumed\": { \"type\": \"boolean\" },\n \"consumed_at\": { \"type\": [\"string\", \"null\"], \"format\": \"date-time\" },\n \"revoked\": { \"type\": \"boolean\" },\n \"revoked_at\": { \"type\": [\"string\", \"null\"], \"format\": \"date-time\" },\n \"bound_bridge_channel_id\": { \"type\": \"string\" },\n \"limits\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"max_bytes_per_second\": { \"type\": \"integer\", \"minimum\": 0, \"maximum\": 9007199254740991 },\n \"max_total_bytes\": { \"type\": \"integer\", \"minimum\": 0, \"maximum\": 9007199254740991 }\n }\n }\n },\n \"$defs\": {\n \"token_kind\": {\n \"enum\": [\n \"asset_ticket\",\n \"asset_session\",\n \"plugin_gateway_token\",\n \"confirmation_token\",\n \"handle_grant\",\n \"stream_ticket\"\n ]\n },\n \"token_id\": {\n \"type\": \"string\",\n \"description\": \"Opaque token or ticket identifier. Prefixes are stable namespaces: at_ asset tickets, as_ asset sessions, pgt_ plugin gateway tokens, ct_ confirmation tokens, hg_ handle grants, and st_ stream tickets.\",\n \"pattern\": \"^(at|as|pgt|ct|hg|st)_[A-Za-z0-9_-]+$\"\n },\n \"audience\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"plugin_instance_id\", \"active_fingerprint\"],\n \"properties\": {\n \"plugin_id\": { \"type\": \"string\", \"minLength\": 1 },\n \"plugin_instance_id\": { \"type\": \"string\", \"minLength\": 1 },\n \"plugin_version\": { \"type\": \"string\", \"minLength\": 1 },\n \"active_fingerprint\": { \"type\": \"string\", \"minLength\": 1 },\n \"surface_id\": { \"type\": \"string\", \"minLength\": 1 },\n \"surface_instance_id\": { \"type\": \"string\" },\n \"entry_path\": { \"type\": \"string\", \"minLength\": 1 },\n \"entry_sha256\": {\n \"type\": \"string\",\n \"pattern\": \"^sha256:[0-9a-f]{64}$\"\n },\n \"asset_session_nonce\": { \"type\": \"string\", \"minLength\": 16 },\n \"route_role\": { \"enum\": [\"trusted_parent\", \"trusted_intent\"] },\n \"owner_session_hash\": { \"type\": \"string\", \"minLength\": 1 },\n \"owner_user_hash\": { \"type\": \"string\", \"pattern\": \"^[A-Za-z0-9][A-Za-z0-9._:-]{0,255}$\" },\n \"owner_env_hash\": { \"type\": \"string\", \"pattern\": \"^[A-Za-z0-9][A-Za-z0-9._:-]{0,255}$\" },\n \"session_channel_id_hash\": { \"type\": \"string\", \"minLength\": 1 },\n \"bridge_channel_id\": { \"type\": \"string\" },\n \"runtime_instance_id\": { \"type\": \"string\" },\n \"runtime_generation_id\": { \"type\": \"string\" },\n \"runtime_shard_id\": { \"type\": \"string\" },\n \"ipc_channel_id\": { \"type\": \"string\" },\n \"connection_nonce\": { \"type\": \"string\", \"minLength\": 16 },\n \"stream_id\": { \"type\": \"string\" },\n \"operation_id\": { \"type\": \"string\" },\n \"audit_correlation_id\": { \"type\": \"string\" },\n \"stream_direction\": { \"enum\": [\"read\", \"write\", \"duplex\"] },\n \"handle_id\": { \"type\": \"string\" },\n \"confirmation_id\": { \"type\": \"string\" },\n \"method\": { \"type\": \"string\" },\n \"resource_scope\": { \"$ref\": \"https://schemas.redevplugin.dev/plugin/resource-scope-v1.schema.json\" },\n \"request_hash\": {\n \"type\": \"string\",\n \"pattern\": \"^sha256:[0-9a-f]{64}$\"\n },\n \"plan_hash\": {\n \"type\": \"string\",\n \"pattern\": \"^sha256:[0-9a-f]{64}$\"\n }\n }\n },\n \"revision\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"policy_revision\", \"management_revision\", \"revoke_epoch\"],\n \"properties\": {\n \"policy_revision\": { \"type\": \"integer\", \"minimum\": 0, \"maximum\": 9007199254740991 },\n \"management_revision\": { \"type\": \"integer\", \"minimum\": 0, \"maximum\": 9007199254740991 },\n \"revoke_epoch\": { \"type\": \"integer\", \"minimum\": 1, \"maximum\": 9007199254740991 }\n }\n }\n },\n \"allOf\": [\n {\n \"if\": { \"properties\": { \"token_kind\": { \"const\": \"asset_ticket\" } }, \"required\": [\"token_kind\"] },\n \"then\": {\n \"properties\": {\n \"token_id\": { \"pattern\": \"^at_[A-Za-z0-9_-]+$\" },\n \"use\": { \"const\": \"single_use\" },\n \"audience\": {\n \"not\": { \"required\": [\"resource_scope\"] },\n \"required\": [\n \"plugin_id\",\n \"plugin_instance_id\",\n \"plugin_version\",\n \"active_fingerprint\",\n \"surface_id\",\n \"surface_instance_id\",\n \"entry_path\",\n \"entry_sha256\",\n \"asset_session_nonce\",\n \"route_role\",\n \"owner_session_hash\",\n \"owner_user_hash\",\n \"owner_env_hash\",\n \"session_channel_id_hash\",\n \"runtime_generation_id\"\n ]\n }\n },\n \"required\": [\"token_kind\", \"audience\", \"revision\", \"use\"]\n }\n },\n {\n \"if\": { \"properties\": { \"token_kind\": { \"const\": \"asset_session\" } }, \"required\": [\"token_kind\"] },\n \"then\": {\n \"properties\": {\n \"token_id\": { \"pattern\": \"^as_[A-Za-z0-9_-]+$\" },\n \"use\": { \"const\": \"reusable\" },\n \"audience\": {\n \"not\": { \"required\": [\"resource_scope\"] },\n \"required\": [\n \"plugin_id\",\n \"plugin_instance_id\",\n \"plugin_version\",\n \"active_fingerprint\",\n \"surface_id\",\n \"surface_instance_id\",\n \"entry_path\",\n \"entry_sha256\",\n \"asset_session_nonce\",\n \"route_role\",\n \"owner_session_hash\",\n \"owner_user_hash\",\n \"owner_env_hash\",\n \"session_channel_id_hash\",\n \"runtime_generation_id\"\n ]\n }\n },\n \"required\": [\"token_kind\", \"audience\", \"revision\", \"use\"]\n }\n },\n {\n \"if\": { \"properties\": { \"token_kind\": { \"const\": \"plugin_gateway_token\" } }, \"required\": [\"token_kind\"] },\n \"then\": {\n \"properties\": {\n \"token_id\": { \"pattern\": \"^pgt_[A-Za-z0-9_-]+$\" },\n \"use\": { \"const\": \"reusable\" },\n \"audience\": {\n \"not\": { \"required\": [\"resource_scope\"] },\n \"required\": [\n \"plugin_id\",\n \"plugin_instance_id\",\n \"plugin_version\",\n \"active_fingerprint\",\n \"surface_id\",\n \"surface_instance_id\",\n \"entry_path\",\n \"entry_sha256\",\n \"asset_session_nonce\",\n \"route_role\",\n \"owner_session_hash\",\n \"owner_user_hash\",\n \"owner_env_hash\",\n \"session_channel_id_hash\",\n \"bridge_channel_id\",\n \"runtime_generation_id\"\n ]\n }\n },\n \"required\": [\"token_kind\", \"audience\", \"revision\", \"use\"]\n }\n },\n {\n \"if\": { \"properties\": { \"token_kind\": { \"const\": \"confirmation_token\" } }, \"required\": [\"token_kind\"] },\n \"then\": {\n \"properties\": {\n \"token_id\": { \"pattern\": \"^ct_[A-Za-z0-9_-]+$\" },\n \"use\": { \"const\": \"single_use\" },\n \"audience\": {\n \"not\": { \"required\": [\"resource_scope\"] },\n \"required\": [\n \"plugin_id\",\n \"plugin_instance_id\",\n \"plugin_version\",\n \"active_fingerprint\",\n \"surface_id\",\n \"surface_instance_id\",\n \"entry_path\",\n \"entry_sha256\",\n \"asset_session_nonce\",\n \"route_role\",\n \"owner_session_hash\",\n \"owner_user_hash\",\n \"owner_env_hash\",\n \"session_channel_id_hash\",\n \"confirmation_id\",\n \"bridge_channel_id\",\n \"method\",\n \"request_hash\",\n \"plan_hash\",\n \"runtime_generation_id\"\n ]\n }\n },\n \"required\": [\"token_kind\", \"audience\", \"revision\", \"use\"]\n }\n },\n {\n \"if\": { \"properties\": { \"token_kind\": { \"const\": \"handle_grant\" } }, \"required\": [\"token_kind\"] },\n \"then\": {\n \"properties\": {\n \"token_id\": { \"pattern\": \"^hg_[A-Za-z0-9_-]+$\" },\n \"use\": { \"const\": \"reusable\" },\n \"audience\": {\n \"required\": [\n \"plugin_instance_id\",\n \"active_fingerprint\",\n \"runtime_generation_id\",\n \"owner_session_hash\",\n \"owner_user_hash\",\n \"owner_env_hash\",\n \"session_channel_id_hash\",\n \"handle_id\",\n \"method\",\n \"resource_scope\"\n ]\n }\n },\n \"required\": [\"token_kind\", \"audience\", \"revision\", \"use\"]\n }\n },\n {\n \"if\": { \"properties\": { \"token_kind\": { \"const\": \"stream_ticket\" } }, \"required\": [\"token_kind\"] },\n \"then\": {\n \"properties\": {\n \"token_id\": { \"pattern\": \"^st_[A-Za-z0-9_-]+$\" },\n \"use\": { \"const\": \"single_use\" },\n \"audience\": {\n \"not\": { \"required\": [\"resource_scope\"] },\n \"required\": [\n \"plugin_id\",\n \"plugin_instance_id\",\n \"plugin_version\",\n \"active_fingerprint\",\n \"route_role\",\n \"owner_session_hash\",\n \"owner_user_hash\",\n \"owner_env_hash\",\n \"session_channel_id_hash\",\n \"stream_id\",\n \"operation_id\",\n \"stream_direction\",\n \"method\"\n ],\n \"allOf\": [\n {\n \"if\": {\n \"properties\": { \"route_role\": { \"const\": \"trusted_parent\" } },\n \"required\": [\"route_role\"]\n },\n \"then\": {\n \"required\": [\n \"surface_id\",\n \"surface_instance_id\",\n \"entry_path\",\n \"entry_sha256\",\n \"asset_session_nonce\",\n \"bridge_channel_id\",\n \"runtime_generation_id\"\n ]\n }\n }\n ]\n }\n },\n \"required\": [\"token_kind\", \"audience\", \"revision\", \"use\"]\n }\n }\n ]\n}\n";
271
+ }, {
272
+ readonly id: "trusted-time-evidence-schema";
273
+ readonly path: "spec/plugin/trusted-time-evidence-v1.schema.json";
274
+ readonly version: "trusted-time-evidence-v1";
275
+ readonly sha256: "4398cbd2a3eea42a85008ee16a69d7adb265673e6749b1f13a4f1610f36e5e38";
276
+ readonly body: "{\n \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n \"$id\": \"https://schemas.redevplugin.dev/plugin/trusted-time-evidence-v1.schema.json\",\n \"title\": \"ReDevPlugin trusted time transparency evidence v1\",\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\n \"schema_version\",\n \"kind\",\n \"leaf\",\n \"leaf_sha256\",\n \"integrated_time\",\n \"signed_entry_timestamp\",\n \"checkpoint\",\n \"leaf_index\",\n \"inclusion_proof\",\n \"consistency_proof\"\n ],\n \"properties\": {\n \"schema_version\": { \"const\": \"redevplugin.trusted_time_evidence.v1\" },\n \"kind\": { \"const\": \"transparency\" },\n \"leaf\": { \"$ref\": \"#/$defs/leaf\" },\n \"leaf_sha256\": { \"$ref\": \"#/$defs/sha256\" },\n \"integrated_time\": { \"type\": \"string\", \"format\": \"date-time\", \"maxLength\": 35 },\n \"signed_entry_timestamp\": { \"$ref\": \"#/$defs/signature\" },\n \"checkpoint\": { \"$ref\": \"#/$defs/checkpoint\" },\n \"leaf_index\": { \"type\": \"integer\", \"minimum\": 0, \"maximum\": 9007199254740990 },\n \"inclusion_proof\": { \"$ref\": \"#/$defs/proof\" },\n \"consistency_proof\": { \"$ref\": \"#/$defs/proof\" }\n },\n \"$defs\": {\n \"id\": { \"type\": \"string\", \"pattern\": \"^[a-z][a-z0-9._-]{0,127}$\" },\n \"sha256\": { \"type\": \"string\", \"pattern\": \"^[0-9a-f]{64}$\" },\n \"leaf\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"schema_version\", \"source_id\", \"channel\", \"nonce\", \"minimum_time\", \"claimed_time\", \"request_sha256\", \"log_id\"],\n \"properties\": {\n \"schema_version\": { \"const\": \"redevplugin.trusted_time_leaf.v1\" },\n \"source_id\": { \"$ref\": \"#/$defs/id\" },\n \"channel\": { \"$ref\": \"#/$defs/id\" },\n \"nonce\": { \"type\": \"string\", \"pattern\": \"^[A-Za-z0-9_-]{43}$\" },\n \"minimum_time\": { \"type\": \"string\", \"format\": \"date-time\", \"maxLength\": 35 },\n \"claimed_time\": { \"type\": \"string\", \"format\": \"date-time\", \"maxLength\": 35 },\n \"request_sha256\": { \"$ref\": \"#/$defs/sha256\" },\n \"log_id\": { \"$ref\": \"#/$defs/id\" }\n }\n },\n \"signature\": { \"type\": \"string\", \"pattern\": \"^[A-Za-z0-9+/]{86}==$\" },\n \"proof\": {\n \"type\": \"array\",\n \"maxItems\": 64,\n \"items\": { \"$ref\": \"#/$defs/sha256\" }\n },\n \"checkpoint\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"schema_version\", \"log_id\", \"tree_size\", \"root_hash\", \"checkpoint_time\", \"key_id\", \"signature\"],\n \"properties\": {\n \"schema_version\": { \"const\": \"redevplugin.trusted_time_checkpoint.v1\" },\n \"log_id\": { \"$ref\": \"#/$defs/id\" },\n \"tree_size\": { \"type\": \"integer\", \"minimum\": 1, \"maximum\": 9007199254740991 },\n \"root_hash\": { \"$ref\": \"#/$defs/sha256\" },\n \"checkpoint_time\": { \"type\": \"string\", \"format\": \"date-time\", \"maxLength\": 35 },\n \"key_id\": { \"$ref\": \"#/$defs/id\" },\n \"signature\": { \"$ref\": \"#/$defs/signature\" }\n }\n }\n }\n}\n";
277
+ }, {
278
+ readonly id: "trusted-time-leaf-schema";
279
+ readonly path: "spec/plugin/trusted-time-leaf-v1.schema.json";
280
+ readonly version: "trusted-time-leaf-v1";
281
+ readonly sha256: "1c25eb0040800eef145aa2bb4c0e1ae197ae584d365e9595ab89037e26fe5ddb";
282
+ readonly body: "{\n \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n \"$id\": \"https://schemas.redevplugin.dev/plugin/trusted-time-leaf-v1.schema.json\",\n \"title\": \"ReDevPlugin trusted time leaf v1\",\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"schema_version\", \"source_id\", \"channel\", \"nonce\", \"minimum_time\", \"claimed_time\", \"request_sha256\", \"log_id\"],\n \"properties\": {\n \"schema_version\": { \"const\": \"redevplugin.trusted_time_leaf.v1\" },\n \"source_id\": { \"$ref\": \"#/$defs/id\" },\n \"channel\": { \"$ref\": \"#/$defs/id\" },\n \"nonce\": { \"type\": \"string\", \"pattern\": \"^[A-Za-z0-9_-]{43}$\" },\n \"minimum_time\": { \"type\": \"string\", \"format\": \"date-time\", \"maxLength\": 35 },\n \"claimed_time\": { \"type\": \"string\", \"format\": \"date-time\", \"maxLength\": 35 },\n \"request_sha256\": { \"$ref\": \"#/$defs/sha256\" },\n \"log_id\": { \"$ref\": \"#/$defs/id\" }\n },\n \"$defs\": {\n \"id\": { \"type\": \"string\", \"pattern\": \"^[a-z][a-z0-9._-]{0,127}$\" },\n \"sha256\": { \"type\": \"string\", \"pattern\": \"^[0-9a-f]{64}$\" }\n }\n}\n";
283
+ }, {
284
+ readonly id: "wasm-worker-schema";
285
+ readonly path: "spec/plugin/wasm-worker-v2.schema.json";
286
+ readonly version: "redevplugin-wasm-worker-v2";
287
+ readonly sha256: "00bf123f3a9ed932de4b71c180e2a5c34af0f82050defb271fedec42cf217902";
288
+ readonly body: "{\n \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n \"$id\": \"https://schemas.redevplugin.dev/plugin/wasm-worker-v2.schema.json\",\n \"title\": \"ReDevPlugin WASM worker executable contract v2\",\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"abi_version\", \"memory\", \"table\", \"exports\", \"imports\"],\n \"properties\": {\n \"abi_version\": { \"const\": \"redevplugin-wasm-worker-v2\" },\n \"memory\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"count\", \"export\", \"memory64\", \"shared\", \"page_size_bytes\"],\n \"properties\": {\n \"count\": { \"const\": 1 },\n \"export\": { \"const\": \"memory\" },\n \"memory64\": { \"const\": false },\n \"shared\": { \"const\": false },\n \"page_size_bytes\": { \"const\": 65536 }\n }\n },\n \"table\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"max_count\", \"max_elements\", \"table64\", \"shared\"],\n \"properties\": {\n \"max_count\": { \"const\": 1 },\n \"max_elements\": { \"const\": 65536 },\n \"table64\": { \"const\": false },\n \"shared\": { \"const\": false }\n }\n },\n \"exports\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"alloc\", \"dealloc\", \"invoke\"],\n \"properties\": {\n \"alloc\": {\n \"$ref\": \"#/$defs/alloc_function\"\n },\n \"dealloc\": {\n \"$ref\": \"#/$defs/dealloc_function\"\n },\n \"invoke\": {\n \"$ref\": \"#/$defs/invoke_function\"\n }\n }\n },\n \"imports\": {\n \"type\": \"array\",\n \"uniqueItems\": true,\n \"items\": { \"$ref\": \"#/$defs/hostcall_import\" }\n }\n },\n \"$defs\": {\n \"alloc_function\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"name\", \"params\", \"results\"],\n \"properties\": {\n \"name\": { \"const\": \"redevplugin_worker_alloc\" },\n \"params\": { \"const\": [\"i32\"] },\n \"results\": { \"const\": [\"i32\"] }\n }\n },\n \"dealloc_function\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"name\", \"params\", \"results\"],\n \"properties\": {\n \"name\": { \"const\": \"redevplugin_worker_dealloc\" },\n \"params\": { \"const\": [\"i32\", \"i32\"] },\n \"results\": { \"const\": [] }\n }\n },\n \"invoke_function\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"name\", \"params\", \"results\"],\n \"properties\": {\n \"name\": { \"const\": \"redevplugin_worker_invoke\" },\n \"params\": { \"const\": [\"i32\", \"i32\"] },\n \"results\": { \"const\": [\"i64\"] }\n }\n },\n \"hostcall_import\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"module\", \"name\", \"params\", \"results\"],\n \"properties\": {\n \"module\": { \"enum\": [\"redevplugin.storage\", \"redevplugin.network\"] },\n \"name\": { \"enum\": [\"files\", \"kv\", \"sqlite\", \"execute\"] },\n \"params\": { \"const\": [\"i32\", \"i32\", \"i32\", \"i32\"] },\n \"results\": { \"const\": [\"i32\"] }\n },\n \"allOf\": [\n {\n \"if\": { \"properties\": { \"module\": { \"const\": \"redevplugin.storage\" } }, \"required\": [\"module\"] },\n \"then\": { \"properties\": { \"name\": { \"enum\": [\"files\", \"kv\", \"sqlite\"] } } },\n \"else\": { \"properties\": { \"name\": { \"const\": \"execute\" } } }\n }\n ]\n }\n }\n}\n";
289
+ }, {
290
+ readonly id: "worker-invocation-schema";
291
+ readonly path: "spec/plugin/worker-invocation-v3.schema.json";
292
+ readonly version: "worker-invocation-v3";
293
+ readonly sha256: "f08af491cbf5e7b71d1aeafbeac9ae581ee5fc3bcb76184daec369f94bab3927";
294
+ readonly body: "{\n \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n \"$id\": \"https://schemas.redevplugin.dev/plugin/worker-invocation-v3.schema.json\",\n \"title\": \"ReDevPlugin worker invocation payload v3\",\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\n \"plugin_id\",\n \"plugin_instance_id\",\n \"active_fingerprint\",\n \"runtime_instance_id\",\n \"runtime_generation_id\",\n \"package_hash\",\n \"worker_id\",\n \"worker_mode\",\n \"worker_scope\",\n \"artifact\",\n \"artifact_sha256\",\n \"abi\",\n \"method\",\n \"effect\",\n \"execution\",\n \"audit_correlation_id\",\n \"owner_env_hash\",\n \"broker_access\",\n \"broker_access_sha256\",\n \"params_sha256\",\n \"params\"\n ],\n \"properties\": {\n \"plugin_id\": { \"type\": \"string\", \"minLength\": 1 },\n \"plugin_instance_id\": { \"type\": \"string\", \"minLength\": 1 },\n \"active_fingerprint\": { \"type\": \"string\", \"minLength\": 1 },\n \"runtime_instance_id\": { \"type\": \"string\", \"minLength\": 1 },\n \"runtime_generation_id\": { \"type\": \"string\", \"minLength\": 1 },\n \"package_hash\": { \"$ref\": \"#/$defs/sha256\" },\n \"worker_id\": { \"type\": \"string\", \"minLength\": 1 },\n \"worker_mode\": { \"const\": \"job\" },\n \"worker_scope\": { \"type\": \"string\", \"minLength\": 1 },\n \"artifact\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"pattern\": \"^workers/[A-Za-z0-9._/-]+\\\\.wasm$\"\n },\n \"artifact_sha256\": { \"$ref\": \"#/$defs/sha256\" },\n \"abi\": { \"const\": \"redevplugin-wasm-worker-v2\" },\n \"method\": { \"type\": \"string\", \"minLength\": 1 },\n \"effect\": { \"enum\": [\"read\", \"write\", \"execute\", \"delete\", \"admin\"] },\n \"execution\": { \"enum\": [\"sync\", \"operation\", \"subscription\"] },\n \"operation_id\": { \"type\": \"string\", \"minLength\": 1 },\n \"stream_id\": { \"type\": \"string\", \"minLength\": 1 },\n \"audit_correlation_id\": { \"type\": \"string\", \"minLength\": 1 },\n \"params_sha256\": { \"$ref\": \"#/$defs/sha256\" },\n \"surface_instance_id\": { \"type\": \"string\" },\n \"owner_session_hash\": { \"type\": \"string\" },\n \"owner_user_hash\": { \"type\": \"string\" },\n \"owner_env_hash\": { \"type\": \"string\", \"minLength\": 1 },\n \"session_channel_id_hash\": { \"type\": \"string\" },\n \"bridge_channel_id\": { \"type\": \"string\" },\n \"storage_handle_grants\": {\n \"type\": \"object\",\n \"propertyNames\": { \"type\": \"string\", \"minLength\": 1, \"maxLength\": 128 },\n \"additionalProperties\": { \"type\": \"string\", \"minLength\": 1 }\n },\n \"broker_access\": { \"$ref\": \"#/$defs/broker_access\" },\n \"broker_access_sha256\": { \"$ref\": \"#/$defs/sha256\" },\n \"params\": {\n \"type\": \"object\",\n \"additionalProperties\": true\n }\n },\n \"$defs\": {\n \"broker_access\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"storage\": {\n \"type\": \"array\",\n \"uniqueItems\": true,\n \"items\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"store_id\", \"scope\", \"operations\"],\n \"properties\": {\n \"store_id\": { \"type\": \"string\", \"minLength\": 1, \"maxLength\": 128 },\n \"scope\": { \"enum\": [\"user\", \"environment\"] },\n \"operations\": {\n \"type\": \"array\",\n \"minItems\": 1,\n \"uniqueItems\": true,\n \"items\": { \"enum\": [\"read\", \"write\", \"delete\", \"list\", \"get\", \"put\", \"query\", \"exec\"] }\n }\n }\n }\n },\n \"network\": {\n \"type\": \"array\",\n \"uniqueItems\": true,\n \"items\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"connector_id\", \"transport\", \"scope\", \"operations\"],\n \"properties\": {\n \"connector_id\": { \"type\": \"string\", \"minLength\": 1, \"maxLength\": 128 },\n \"transport\": { \"enum\": [\"http\", \"websocket\", \"tcp\", \"udp\"] },\n \"scope\": { \"enum\": [\"user\", \"environment\"] },\n \"operations\": {\n \"type\": \"array\",\n \"minItems\": 1,\n \"uniqueItems\": true,\n \"items\": { \"enum\": [\"http\", \"http_stream\", \"websocket_round_trip\", \"tcp_round_trip\", \"udp_round_trip\"] }\n },\n \"http_methods\": {\n \"type\": \"array\",\n \"minItems\": 1,\n \"uniqueItems\": true,\n \"items\": { \"enum\": [\"GET\", \"HEAD\", \"POST\", \"PUT\", \"PATCH\", \"DELETE\", \"OPTIONS\"] }\n }\n },\n \"allOf\": [\n {\n \"if\": { \"properties\": { \"transport\": { \"const\": \"http\" } }, \"required\": [\"transport\"] },\n \"then\": { \"required\": [\"http_methods\"] },\n \"else\": { \"not\": { \"required\": [\"http_methods\"] } }\n }\n ]\n }\n }\n }\n },\n \"sha256\": {\n \"type\": \"string\",\n \"pattern\": \"^sha256:[a-f0-9]{64}$\"\n }\n },\n \"allOf\": [\n {\n \"if\": { \"properties\": { \"execution\": { \"const\": \"sync\" } }, \"required\": [\"execution\"] },\n \"then\": { \"not\": { \"anyOf\": [{ \"required\": [\"operation_id\"] }, { \"required\": [\"stream_id\"] }] } }\n },\n {\n \"if\": { \"properties\": { \"execution\": { \"const\": \"operation\" } }, \"required\": [\"execution\"] },\n \"then\": { \"required\": [\"operation_id\"], \"not\": { \"required\": [\"stream_id\"] } }\n },\n {\n \"if\": { \"properties\": { \"execution\": { \"const\": \"subscription\" } }, \"required\": [\"execution\"] },\n \"then\": { \"required\": [\"operation_id\", \"stream_id\"] }\n }\n ]\n}\n";
295
+ }];
296
+ export declare const generatedRegistryContract: {
297
+ readonly id: "contract-registry";
298
+ readonly path: "spec/plugin/contract-registry-v2.json";
299
+ readonly version: "contract-registry-v2";
300
+ readonly sha256: "00428101616f3e13a4e4b99f7197dff5660fa41f78a6a4dc9f942caef11b979a";
301
+ readonly body: "{\n \"schema_version\": \"redevplugin.contract_registry.v2\",\n \"registry_version\": \"contract-registry-v2\",\n \"artifacts\": [\n {\n \"id\": \"compatibility-manifest-schema\",\n \"path\": \"spec/plugin/compatibility-manifest-v8.schema.json\",\n \"version\": \"compatibility-manifest-v8\",\n \"sha256\": \"a1831e0ae9a1b47d92e7ad9879b1ca4e3510ebc212b87360595b672e8b87bc79\"\n },\n {\n \"id\": \"contract-registry-schema\",\n \"path\": \"spec/plugin/contract-registry-v2.schema.json\",\n \"version\": \"contract-registry-v2\",\n \"sha256\": \"d516b3565158ac1b0d5e9f86b91b13ac19321ab3ff54468be41951b68d7085ac\"\n },\n {\n \"id\": \"error-codes-schema\",\n \"path\": \"spec/plugin/error-codes-v6.schema.json\",\n \"version\": \"error-codes-v6\",\n \"sha256\": \"094cb980156c17af4866942b51e6a1032ea7d1ae0675b329d59a765223ccda28\"\n },\n {\n \"id\": \"host-capability-compatibility-schema\",\n \"path\": \"spec/plugin/host-capability-compatibility-v1.schema.json\",\n \"version\": \"host-capability-compatibility-v1\",\n \"sha256\": \"361ebbf7009aeb66c763ecde46427b17b6cf7d2307c01886c5987a1f4f1762de\"\n },\n {\n \"id\": \"host-capability-contract-schema\",\n \"path\": \"spec/plugin/host-capability-contract-v1.schema.json\",\n \"version\": \"host-capability-contract-v1\",\n \"sha256\": \"0a653e36d44104f1d16b06ee424648086c146f23c907b176bdf470ae73025485\"\n },\n {\n \"id\": \"host-capability-manifest-schema\",\n \"path\": \"spec/plugin/host-capability-manifest-v1.schema.json\",\n \"version\": \"host-capability-manifest-v1\",\n \"sha256\": \"5f13a8e5f918378b9cba9fdc133a9a75ba3a8311c30cb6a02ca0aba09035110e\"\n },\n {\n \"id\": \"host-capability-notices-schema\",\n \"path\": \"spec/plugin/host-capability-notices-v1.schema.json\",\n \"version\": \"host-capability-notices-v1\",\n \"sha256\": \"6affd5d0ae90239f6fd08cbeddae4eef393efa2838c9e4935874ba3dc0e05948\"\n },\n {\n \"id\": \"host-capability-pin-schema\",\n \"path\": \"spec/plugin/host-capability-pin-v1.schema.json\",\n \"version\": \"host-capability-pin-v1\",\n \"sha256\": \"20526a5934f0d85a3db7882492487266f09de5bcd176e2c7936f05d0b7fe0338\"\n },\n {\n \"id\": \"host-capability-signature-schema\",\n \"path\": \"spec/plugin/host-capability-signature-v1.schema.json\",\n \"version\": \"host-capability-signature-v1\",\n \"sha256\": \"88cbc1d63afb7e289ca4f8b7c76f702b8d20156f7722c1b71f3ab9138a240a5e\"\n },\n {\n \"id\": \"iframe-bridge-schema\",\n \"path\": \"spec/plugin/bridge-v5.schema.json\",\n \"version\": \"bridge-v5\",\n \"sha256\": \"ad8ccc7e1900ecb871432f07296dd681ae6faea9377e52f5ddca90300c04f4da\"\n },\n {\n \"id\": \"manifest-schema\",\n \"path\": \"spec/plugin/manifest-v5.schema.json\",\n \"version\": \"manifest-v5\",\n \"sha256\": \"9695f6163aa539b9e3a933367c98850257c6d7bb8d61b36fd5f83b3ab61746f7\"\n },\n {\n \"id\": \"network-grant-schema\",\n \"path\": \"spec/plugin/network-grant-v2.schema.json\",\n \"version\": \"network-grant-v2\",\n \"sha256\": \"5fc1cfc3469a992e551fd392fab982abb6f95e456a1cb768ceca137f7c693abc\"\n },\n {\n \"id\": \"opaque-surface-document-schema\",\n \"path\": \"spec/plugin/opaque-surface-document-v3.schema.json\",\n \"version\": \"opaque-surface-document-v3\",\n \"sha256\": \"63419ff5b5a8890e14f97ca29aaae175b93daff61d4567c5bdff7f6e6a9e7450\"\n },\n {\n \"id\": \"opaque-surface-transport-schema\",\n \"path\": \"spec/plugin/opaque-surface-transport-v4.schema.json\",\n \"version\": \"opaque-surface-transport-v4\",\n \"sha256\": \"70a32dc8bf281cea2c92492c466fd477070c62156a3f593d45eb460cde62dca2\"\n },\n {\n \"id\": \"owner-scope-inventory-registry\",\n \"path\": \"spec/plugin/owner-scope-inventories-v1.json\",\n \"version\": \"owner-scope-inventory-registry-v1\",\n \"sha256\": \"92a2d6ed3a9038e95285faa108e2186cf9d0df343854741c551f8c4039f91217\"\n },\n {\n \"id\": \"owner-scope-inventory-schema\",\n \"path\": \"spec/plugin/owner-scope-inventory-v1.schema.json\",\n \"version\": \"owner-scope-inventory-v1\",\n \"sha256\": \"972e4fe3cc74339c211ba8a50951ad0f4ae4265d3d34b20f03d0e4888638e254\"\n },\n {\n \"id\": \"owner-scope-migration-schema\",\n \"path\": \"spec/plugin/owner-scope-migration-v1.schema.json\",\n \"version\": \"owner-scope-migration-v1\",\n \"sha256\": \"e73443813e19e4cfb05748eb75d5cf04f43db3bed9d2be0c893c13bda88a5993\"\n },\n {\n \"id\": \"package-signature-schema\",\n \"path\": \"spec/plugin/package-signature-v1.schema.json\",\n \"version\": \"package-signature-v1\",\n \"sha256\": \"13951c0f6831ba28647774368c76a817868aeb7984628e2cf3dc4ad1b54f8284\"\n },\n {\n \"id\": \"performance-contract\",\n \"path\": \"spec/plugin/performance-contract-v3.json\",\n \"version\": \"performance-contract-v3\",\n \"sha256\": \"a4e1a099dc16f2b0a4d6bdc5fdf8f6ce622948ffec40f70bfc2743286a2b816b\"\n },\n {\n \"id\": \"performance-evidence-schema\",\n \"path\": \"spec/plugin/performance-evidence-v3.schema.json\",\n \"version\": \"performance-evidence-v3\",\n \"sha256\": \"a2f5e94071bb09a9327fc55ad3f6c39052b01c3e54cceb8b974dc244667a0326\"\n },\n {\n \"id\": \"platform-package-publication-schema\",\n \"path\": \"spec/plugin/platform-package-publication-v1.schema.json\",\n \"version\": \"platform-package-publication-v1\",\n \"sha256\": \"20450b516c34d5a122020f4064ddfa03ffcb97ffea661e0868cd09760b3f08b0\"\n },\n {\n \"id\": \"platform-package-set-schema\",\n \"path\": \"spec/plugin/platform-package-set-v1.schema.json\",\n \"version\": \"platform-package-set-v1\",\n \"sha256\": \"4d9979f5205ec047895b64c995312c588d998bb1c1448f6c9c559f1b7ab0d796\"\n },\n {\n \"id\": \"plugin-platform-openapi\",\n \"path\": \"spec/openapi/plugin-platform-v8.yaml\",\n \"version\": \"plugin-platform-v8\",\n \"sha256\": \"290883ff79b74badbf9f6feddb4dfbef820a4ef4622a7e3fca815e3abb2c4eac\"\n },\n {\n \"id\": \"process-containment-schema\",\n \"path\": \"spec/plugin/process-containment-v1.schema.json\",\n \"version\": \"process-containment-v1\",\n \"sha256\": \"930ea44b1f62361706e994649e84f62af0a6418b77a661ae9bf9c10f1398e3fc\"\n },\n {\n \"id\": \"quarantine-cleanup-schema\",\n \"path\": \"spec/plugin/quarantine-cleanup-v1.schema.json\",\n \"version\": \"quarantine-cleanup-v1\",\n \"sha256\": \"0aced01a8d409953d5075a799ac273cae79e285ac82debe93ac4d8b706571ad1\"\n },\n {\n \"id\": \"release-metadata-schema\",\n \"path\": \"spec/plugin/release-metadata-v5.schema.json\",\n \"version\": \"release-metadata-v5\",\n \"sha256\": \"255ef3deb7d2758a43e69e533a08aa28106f8edc2e7385ab0aec0d50c1ef3d7a\"\n },\n {\n \"id\": \"release-revocation-pointer-schema\",\n \"path\": \"spec/plugin/release-revocation-pointer-v1.schema.json\",\n \"version\": \"release-revocation-pointer-v1\",\n \"sha256\": \"a9b7b64cb2dbf89500f0d191a6b2b9ab42eb806a452eb8338895a48ec7d7551e\"\n },\n {\n \"id\": \"release-revocation-schema\",\n \"path\": \"spec/plugin/release-revocation-v2.schema.json\",\n \"version\": \"release-revocation-v2\",\n \"sha256\": \"c3b40c05bc0dea422a272ee62ca45d0efb6456278b0707c5a12f39b004b84cb4\"\n },\n {\n \"id\": \"release-root-delegation-schema\",\n \"path\": \"spec/plugin/release-root-delegation-v1.schema.json\",\n \"version\": \"release-root-delegation-v1\",\n \"sha256\": \"c1adbb13eaeeca145d5ee787ff43777e60a5f329e460d20b8db358e4f5fc4825\"\n },\n {\n \"id\": \"release-signature-envelope-schema\",\n \"path\": \"spec/plugin/release-signature-envelope-v1.schema.json\",\n \"version\": \"release-signature-envelope-v1\",\n \"sha256\": \"7df9afd22bfdebfa89dc3bdb46ecdbe22a91ecce35fa46c492dd9795c66fae29\"\n },\n {\n \"id\": \"release-signing-ledger-evidence-schema\",\n \"path\": \"spec/plugin/release-signing-ledger-evidence-v1.schema.json\",\n \"version\": \"release-signing-ledger-evidence-v1\",\n \"sha256\": \"9ab8b7f65dedcd119d578debb4f6ff97fc35f4c7ac95c0e5435f8b0959bc1a5c\"\n },\n {\n \"id\": \"release-signing-ledger-receipt-schema\",\n \"path\": \"spec/plugin/release-signing-ledger-receipt-v1.schema.json\",\n \"version\": \"release-signing-ledger-receipt-v1\",\n \"sha256\": \"29210cfefd967017c5c74bcf8489bd50511c5c9f36d17b0200056ccb90c30561\"\n },\n {\n \"id\": \"release-signing-ledger-schema\",\n \"path\": \"spec/plugin/release-signing-ledger-v1.schema.json\",\n \"version\": \"release-signing-ledger-v1\",\n \"sha256\": \"0c72b30bfd6b857b9809e48e1b7eaaeb7134d5afd6a935aa8373465054403765\"\n },\n {\n \"id\": \"release-signing-subject-schema\",\n \"path\": \"spec/plugin/release-signing-subject-v1.schema.json\",\n \"version\": \"release-signing-subject-v1\",\n \"sha256\": \"876b1459824f90042bd141e96bfea4633333bdf2a227e15b6e25c72db1179c8e\"\n },\n {\n \"id\": \"release-source-policy-pointer-schema\",\n \"path\": \"spec/plugin/release-source-policy-pointer-v1.schema.json\",\n \"version\": \"release-source-policy-pointer-v1\",\n \"sha256\": \"1a78cc3897ffbcdb605d2e9265d765207a4647d3f53fa5736aec65bf5f54e81c\"\n },\n {\n \"id\": \"release-source-policy-schema\",\n \"path\": \"spec/plugin/release-source-policy-v2.schema.json\",\n \"version\": \"release-source-policy-v2\",\n \"sha256\": \"6a5a5eab317a86beea925a611ca8a7a2d937547c039ce147b5993f69a5611237\"\n },\n {\n \"id\": \"release-trust-state-schema\",\n \"path\": \"spec/plugin/release-trust-state-v1.schema.json\",\n \"version\": \"release-trust-state-v1\",\n \"sha256\": \"19ffa182932a22401a33ee4c9921e957c67895c2d8b041c9a27ee3530bdfb2d2\"\n },\n {\n \"id\": \"resource-scope-schema\",\n \"path\": \"spec/plugin/resource-scope-v1.schema.json\",\n \"version\": \"resource-scope-v1\",\n \"sha256\": \"e6021bd576c7220ad5536645a7ad8e57ee7aeb9901c31a89444fa6b695d8dc6f\"\n },\n {\n \"id\": \"runtime-admission-schema\",\n \"path\": \"spec/plugin/runtime-admission-v1.schema.json\",\n \"version\": \"runtime-admission-v1\",\n \"sha256\": \"bee7b149876447d663a4099dbd71e71fa97f8ff80ddf4e12cbfba951a47c4beb\"\n },\n {\n \"id\": \"runtime-descriptor-schema\",\n \"path\": \"spec/plugin/runtime-descriptor-v2.schema.json\",\n \"version\": \"runtime-descriptor-v2\",\n \"sha256\": \"2ba59f6fb70d4ad757f60aca5541f4a44886542525e5bf76c393cd2368188351\"\n },\n {\n \"id\": \"runtime-exec-journal-schema\",\n \"path\": \"spec/plugin/runtime-exec-journal-v1.schema.json\",\n \"version\": \"runtime-exec-journal-v1\",\n \"sha256\": \"2bddbba383843b8ebc1554009909f0bb25e98616be763826a697cb0f408870d2\"\n },\n {\n \"id\": \"rust-ipc-schema\",\n \"path\": \"spec/plugin/ipc-v6.schema.json\",\n \"version\": \"rust-ipc-v6\",\n \"sha256\": \"9814ca091ac2e4e8435c1ab553e248e9d2e792de93ce9fd27bd030486774837f\"\n },\n {\n \"id\": \"session-scope-schema\",\n \"path\": \"spec/plugin/session-scope-v1.schema.json\",\n \"version\": \"session-scope-v1\",\n \"sha256\": \"3df0084264f0aff9fe2261c237cea439adb5cdc2534bfaaa0488d5992d4a7d2e\"\n },\n {\n \"id\": \"target-classifier-fixture\",\n \"path\": \"spec/plugin/target-classifier-v2.json\",\n \"version\": \"target-classifier-v2\",\n \"sha256\": \"ae7336cce77a2e820f96f1cc309b93f8442c932dcebec25e3890d31cd098e2d1\"\n },\n {\n \"id\": \"token-ticket-schema\",\n \"path\": \"spec/plugin/token-ticket-v4.schema.json\",\n \"version\": \"token-ticket-v4\",\n \"sha256\": \"5cf365b5b52a331ac0d3ad35a98be3c2ce668804ae88fdeaf9679a44db14feb1\"\n },\n {\n \"id\": \"trusted-time-evidence-schema\",\n \"path\": \"spec/plugin/trusted-time-evidence-v1.schema.json\",\n \"version\": \"trusted-time-evidence-v1\",\n \"sha256\": \"4398cbd2a3eea42a85008ee16a69d7adb265673e6749b1f13a4f1610f36e5e38\"\n },\n {\n \"id\": \"trusted-time-leaf-schema\",\n \"path\": \"spec/plugin/trusted-time-leaf-v1.schema.json\",\n \"version\": \"trusted-time-leaf-v1\",\n \"sha256\": \"1c25eb0040800eef145aa2bb4c0e1ae197ae584d365e9595ab89037e26fe5ddb\"\n },\n {\n \"id\": \"wasm-worker-schema\",\n \"path\": \"spec/plugin/wasm-worker-v2.schema.json\",\n \"version\": \"redevplugin-wasm-worker-v2\",\n \"sha256\": \"00bf123f3a9ed932de4b71c180e2a5c34af0f82050defb271fedec42cf217902\"\n },\n {\n \"id\": \"worker-invocation-schema\",\n \"path\": \"spec/plugin/worker-invocation-v3.schema.json\",\n \"version\": \"worker-invocation-v3\",\n \"sha256\": \"f08af491cbf5e7b71d1aeafbeac9ae581ee5fc3bcb76184daec369f94bab3927\"\n }\n ]\n}\n";
302
+ };
303
+ export declare const generatedContractRegistry: {
304
+ readonly schema_version: "redevplugin.contract_registry.v2";
305
+ readonly registry_version: "contract-registry-v2";
306
+ readonly artifacts: readonly [{
307
+ readonly id: "compatibility-manifest-schema";
308
+ readonly path: "spec/plugin/compatibility-manifest-v8.schema.json";
309
+ readonly version: "compatibility-manifest-v8";
310
+ readonly sha256: "a1831e0ae9a1b47d92e7ad9879b1ca4e3510ebc212b87360595b672e8b87bc79";
311
+ }, {
312
+ readonly id: "contract-registry-schema";
313
+ readonly path: "spec/plugin/contract-registry-v2.schema.json";
314
+ readonly version: "contract-registry-v2";
315
+ readonly sha256: "d516b3565158ac1b0d5e9f86b91b13ac19321ab3ff54468be41951b68d7085ac";
316
+ }, {
317
+ readonly id: "error-codes-schema";
318
+ readonly path: "spec/plugin/error-codes-v6.schema.json";
319
+ readonly version: "error-codes-v6";
320
+ readonly sha256: "094cb980156c17af4866942b51e6a1032ea7d1ae0675b329d59a765223ccda28";
321
+ }, {
322
+ readonly id: "host-capability-compatibility-schema";
323
+ readonly path: "spec/plugin/host-capability-compatibility-v1.schema.json";
324
+ readonly version: "host-capability-compatibility-v1";
325
+ readonly sha256: "361ebbf7009aeb66c763ecde46427b17b6cf7d2307c01886c5987a1f4f1762de";
326
+ }, {
327
+ readonly id: "host-capability-contract-schema";
328
+ readonly path: "spec/plugin/host-capability-contract-v1.schema.json";
329
+ readonly version: "host-capability-contract-v1";
330
+ readonly sha256: "0a653e36d44104f1d16b06ee424648086c146f23c907b176bdf470ae73025485";
331
+ }, {
332
+ readonly id: "host-capability-manifest-schema";
333
+ readonly path: "spec/plugin/host-capability-manifest-v1.schema.json";
334
+ readonly version: "host-capability-manifest-v1";
335
+ readonly sha256: "5f13a8e5f918378b9cba9fdc133a9a75ba3a8311c30cb6a02ca0aba09035110e";
336
+ }, {
337
+ readonly id: "host-capability-notices-schema";
338
+ readonly path: "spec/plugin/host-capability-notices-v1.schema.json";
339
+ readonly version: "host-capability-notices-v1";
340
+ readonly sha256: "6affd5d0ae90239f6fd08cbeddae4eef393efa2838c9e4935874ba3dc0e05948";
341
+ }, {
342
+ readonly id: "host-capability-pin-schema";
343
+ readonly path: "spec/plugin/host-capability-pin-v1.schema.json";
344
+ readonly version: "host-capability-pin-v1";
345
+ readonly sha256: "20526a5934f0d85a3db7882492487266f09de5bcd176e2c7936f05d0b7fe0338";
346
+ }, {
347
+ readonly id: "host-capability-signature-schema";
348
+ readonly path: "spec/plugin/host-capability-signature-v1.schema.json";
349
+ readonly version: "host-capability-signature-v1";
350
+ readonly sha256: "88cbc1d63afb7e289ca4f8b7c76f702b8d20156f7722c1b71f3ab9138a240a5e";
351
+ }, {
352
+ readonly id: "iframe-bridge-schema";
353
+ readonly path: "spec/plugin/bridge-v5.schema.json";
354
+ readonly version: "bridge-v5";
355
+ readonly sha256: "ad8ccc7e1900ecb871432f07296dd681ae6faea9377e52f5ddca90300c04f4da";
356
+ }, {
357
+ readonly id: "manifest-schema";
358
+ readonly path: "spec/plugin/manifest-v5.schema.json";
359
+ readonly version: "manifest-v5";
360
+ readonly sha256: "9695f6163aa539b9e3a933367c98850257c6d7bb8d61b36fd5f83b3ab61746f7";
361
+ }, {
362
+ readonly id: "network-grant-schema";
363
+ readonly path: "spec/plugin/network-grant-v2.schema.json";
364
+ readonly version: "network-grant-v2";
365
+ readonly sha256: "5fc1cfc3469a992e551fd392fab982abb6f95e456a1cb768ceca137f7c693abc";
366
+ }, {
367
+ readonly id: "opaque-surface-document-schema";
368
+ readonly path: "spec/plugin/opaque-surface-document-v3.schema.json";
369
+ readonly version: "opaque-surface-document-v3";
370
+ readonly sha256: "63419ff5b5a8890e14f97ca29aaae175b93daff61d4567c5bdff7f6e6a9e7450";
371
+ }, {
372
+ readonly id: "opaque-surface-transport-schema";
373
+ readonly path: "spec/plugin/opaque-surface-transport-v4.schema.json";
374
+ readonly version: "opaque-surface-transport-v4";
375
+ readonly sha256: "70a32dc8bf281cea2c92492c466fd477070c62156a3f593d45eb460cde62dca2";
376
+ }, {
377
+ readonly id: "owner-scope-inventory-registry";
378
+ readonly path: "spec/plugin/owner-scope-inventories-v1.json";
379
+ readonly version: "owner-scope-inventory-registry-v1";
380
+ readonly sha256: "92a2d6ed3a9038e95285faa108e2186cf9d0df343854741c551f8c4039f91217";
381
+ }, {
382
+ readonly id: "owner-scope-inventory-schema";
383
+ readonly path: "spec/plugin/owner-scope-inventory-v1.schema.json";
384
+ readonly version: "owner-scope-inventory-v1";
385
+ readonly sha256: "972e4fe3cc74339c211ba8a50951ad0f4ae4265d3d34b20f03d0e4888638e254";
386
+ }, {
387
+ readonly id: "owner-scope-migration-schema";
388
+ readonly path: "spec/plugin/owner-scope-migration-v1.schema.json";
389
+ readonly version: "owner-scope-migration-v1";
390
+ readonly sha256: "e73443813e19e4cfb05748eb75d5cf04f43db3bed9d2be0c893c13bda88a5993";
391
+ }, {
392
+ readonly id: "package-signature-schema";
393
+ readonly path: "spec/plugin/package-signature-v1.schema.json";
394
+ readonly version: "package-signature-v1";
395
+ readonly sha256: "13951c0f6831ba28647774368c76a817868aeb7984628e2cf3dc4ad1b54f8284";
396
+ }, {
397
+ readonly id: "performance-contract";
398
+ readonly path: "spec/plugin/performance-contract-v3.json";
399
+ readonly version: "performance-contract-v3";
400
+ readonly sha256: "a4e1a099dc16f2b0a4d6bdc5fdf8f6ce622948ffec40f70bfc2743286a2b816b";
401
+ }, {
402
+ readonly id: "performance-evidence-schema";
403
+ readonly path: "spec/plugin/performance-evidence-v3.schema.json";
404
+ readonly version: "performance-evidence-v3";
405
+ readonly sha256: "a2f5e94071bb09a9327fc55ad3f6c39052b01c3e54cceb8b974dc244667a0326";
406
+ }, {
407
+ readonly id: "platform-package-publication-schema";
408
+ readonly path: "spec/plugin/platform-package-publication-v1.schema.json";
409
+ readonly version: "platform-package-publication-v1";
410
+ readonly sha256: "20450b516c34d5a122020f4064ddfa03ffcb97ffea661e0868cd09760b3f08b0";
411
+ }, {
412
+ readonly id: "platform-package-set-schema";
413
+ readonly path: "spec/plugin/platform-package-set-v1.schema.json";
414
+ readonly version: "platform-package-set-v1";
415
+ readonly sha256: "4d9979f5205ec047895b64c995312c588d998bb1c1448f6c9c559f1b7ab0d796";
416
+ }, {
417
+ readonly id: "plugin-platform-openapi";
418
+ readonly path: "spec/openapi/plugin-platform-v8.yaml";
419
+ readonly version: "plugin-platform-v8";
420
+ readonly sha256: "290883ff79b74badbf9f6feddb4dfbef820a4ef4622a7e3fca815e3abb2c4eac";
421
+ }, {
422
+ readonly id: "process-containment-schema";
423
+ readonly path: "spec/plugin/process-containment-v1.schema.json";
424
+ readonly version: "process-containment-v1";
425
+ readonly sha256: "930ea44b1f62361706e994649e84f62af0a6418b77a661ae9bf9c10f1398e3fc";
426
+ }, {
427
+ readonly id: "quarantine-cleanup-schema";
428
+ readonly path: "spec/plugin/quarantine-cleanup-v1.schema.json";
429
+ readonly version: "quarantine-cleanup-v1";
430
+ readonly sha256: "0aced01a8d409953d5075a799ac273cae79e285ac82debe93ac4d8b706571ad1";
431
+ }, {
432
+ readonly id: "release-metadata-schema";
433
+ readonly path: "spec/plugin/release-metadata-v5.schema.json";
434
+ readonly version: "release-metadata-v5";
435
+ readonly sha256: "255ef3deb7d2758a43e69e533a08aa28106f8edc2e7385ab0aec0d50c1ef3d7a";
436
+ }, {
437
+ readonly id: "release-revocation-pointer-schema";
438
+ readonly path: "spec/plugin/release-revocation-pointer-v1.schema.json";
439
+ readonly version: "release-revocation-pointer-v1";
440
+ readonly sha256: "a9b7b64cb2dbf89500f0d191a6b2b9ab42eb806a452eb8338895a48ec7d7551e";
441
+ }, {
442
+ readonly id: "release-revocation-schema";
443
+ readonly path: "spec/plugin/release-revocation-v2.schema.json";
444
+ readonly version: "release-revocation-v2";
445
+ readonly sha256: "c3b40c05bc0dea422a272ee62ca45d0efb6456278b0707c5a12f39b004b84cb4";
446
+ }, {
447
+ readonly id: "release-root-delegation-schema";
448
+ readonly path: "spec/plugin/release-root-delegation-v1.schema.json";
449
+ readonly version: "release-root-delegation-v1";
450
+ readonly sha256: "c1adbb13eaeeca145d5ee787ff43777e60a5f329e460d20b8db358e4f5fc4825";
451
+ }, {
452
+ readonly id: "release-signature-envelope-schema";
453
+ readonly path: "spec/plugin/release-signature-envelope-v1.schema.json";
454
+ readonly version: "release-signature-envelope-v1";
455
+ readonly sha256: "7df9afd22bfdebfa89dc3bdb46ecdbe22a91ecce35fa46c492dd9795c66fae29";
456
+ }, {
457
+ readonly id: "release-signing-ledger-evidence-schema";
458
+ readonly path: "spec/plugin/release-signing-ledger-evidence-v1.schema.json";
459
+ readonly version: "release-signing-ledger-evidence-v1";
460
+ readonly sha256: "9ab8b7f65dedcd119d578debb4f6ff97fc35f4c7ac95c0e5435f8b0959bc1a5c";
461
+ }, {
462
+ readonly id: "release-signing-ledger-receipt-schema";
463
+ readonly path: "spec/plugin/release-signing-ledger-receipt-v1.schema.json";
464
+ readonly version: "release-signing-ledger-receipt-v1";
465
+ readonly sha256: "29210cfefd967017c5c74bcf8489bd50511c5c9f36d17b0200056ccb90c30561";
466
+ }, {
467
+ readonly id: "release-signing-ledger-schema";
468
+ readonly path: "spec/plugin/release-signing-ledger-v1.schema.json";
469
+ readonly version: "release-signing-ledger-v1";
470
+ readonly sha256: "0c72b30bfd6b857b9809e48e1b7eaaeb7134d5afd6a935aa8373465054403765";
471
+ }, {
472
+ readonly id: "release-signing-subject-schema";
473
+ readonly path: "spec/plugin/release-signing-subject-v1.schema.json";
474
+ readonly version: "release-signing-subject-v1";
475
+ readonly sha256: "876b1459824f90042bd141e96bfea4633333bdf2a227e15b6e25c72db1179c8e";
476
+ }, {
477
+ readonly id: "release-source-policy-pointer-schema";
478
+ readonly path: "spec/plugin/release-source-policy-pointer-v1.schema.json";
479
+ readonly version: "release-source-policy-pointer-v1";
480
+ readonly sha256: "1a78cc3897ffbcdb605d2e9265d765207a4647d3f53fa5736aec65bf5f54e81c";
481
+ }, {
482
+ readonly id: "release-source-policy-schema";
483
+ readonly path: "spec/plugin/release-source-policy-v2.schema.json";
484
+ readonly version: "release-source-policy-v2";
485
+ readonly sha256: "6a5a5eab317a86beea925a611ca8a7a2d937547c039ce147b5993f69a5611237";
486
+ }, {
487
+ readonly id: "release-trust-state-schema";
488
+ readonly path: "spec/plugin/release-trust-state-v1.schema.json";
489
+ readonly version: "release-trust-state-v1";
490
+ readonly sha256: "19ffa182932a22401a33ee4c9921e957c67895c2d8b041c9a27ee3530bdfb2d2";
491
+ }, {
492
+ readonly id: "resource-scope-schema";
493
+ readonly path: "spec/plugin/resource-scope-v1.schema.json";
494
+ readonly version: "resource-scope-v1";
495
+ readonly sha256: "e6021bd576c7220ad5536645a7ad8e57ee7aeb9901c31a89444fa6b695d8dc6f";
496
+ }, {
497
+ readonly id: "runtime-admission-schema";
498
+ readonly path: "spec/plugin/runtime-admission-v1.schema.json";
499
+ readonly version: "runtime-admission-v1";
500
+ readonly sha256: "bee7b149876447d663a4099dbd71e71fa97f8ff80ddf4e12cbfba951a47c4beb";
501
+ }, {
502
+ readonly id: "runtime-descriptor-schema";
503
+ readonly path: "spec/plugin/runtime-descriptor-v2.schema.json";
504
+ readonly version: "runtime-descriptor-v2";
505
+ readonly sha256: "2ba59f6fb70d4ad757f60aca5541f4a44886542525e5bf76c393cd2368188351";
506
+ }, {
507
+ readonly id: "runtime-exec-journal-schema";
508
+ readonly path: "spec/plugin/runtime-exec-journal-v1.schema.json";
509
+ readonly version: "runtime-exec-journal-v1";
510
+ readonly sha256: "2bddbba383843b8ebc1554009909f0bb25e98616be763826a697cb0f408870d2";
511
+ }, {
512
+ readonly id: "rust-ipc-schema";
513
+ readonly path: "spec/plugin/ipc-v6.schema.json";
514
+ readonly version: "rust-ipc-v6";
515
+ readonly sha256: "9814ca091ac2e4e8435c1ab553e248e9d2e792de93ce9fd27bd030486774837f";
516
+ }, {
517
+ readonly id: "session-scope-schema";
518
+ readonly path: "spec/plugin/session-scope-v1.schema.json";
519
+ readonly version: "session-scope-v1";
520
+ readonly sha256: "3df0084264f0aff9fe2261c237cea439adb5cdc2534bfaaa0488d5992d4a7d2e";
521
+ }, {
522
+ readonly id: "target-classifier-fixture";
523
+ readonly path: "spec/plugin/target-classifier-v2.json";
524
+ readonly version: "target-classifier-v2";
525
+ readonly sha256: "ae7336cce77a2e820f96f1cc309b93f8442c932dcebec25e3890d31cd098e2d1";
526
+ }, {
527
+ readonly id: "token-ticket-schema";
528
+ readonly path: "spec/plugin/token-ticket-v4.schema.json";
529
+ readonly version: "token-ticket-v4";
530
+ readonly sha256: "5cf365b5b52a331ac0d3ad35a98be3c2ce668804ae88fdeaf9679a44db14feb1";
531
+ }, {
532
+ readonly id: "trusted-time-evidence-schema";
533
+ readonly path: "spec/plugin/trusted-time-evidence-v1.schema.json";
534
+ readonly version: "trusted-time-evidence-v1";
535
+ readonly sha256: "4398cbd2a3eea42a85008ee16a69d7adb265673e6749b1f13a4f1610f36e5e38";
536
+ }, {
537
+ readonly id: "trusted-time-leaf-schema";
538
+ readonly path: "spec/plugin/trusted-time-leaf-v1.schema.json";
539
+ readonly version: "trusted-time-leaf-v1";
540
+ readonly sha256: "1c25eb0040800eef145aa2bb4c0e1ae197ae584d365e9595ab89037e26fe5ddb";
541
+ }, {
542
+ readonly id: "wasm-worker-schema";
543
+ readonly path: "spec/plugin/wasm-worker-v2.schema.json";
544
+ readonly version: "redevplugin-wasm-worker-v2";
545
+ readonly sha256: "00bf123f3a9ed932de4b71c180e2a5c34af0f82050defb271fedec42cf217902";
546
+ }, {
547
+ readonly id: "worker-invocation-schema";
548
+ readonly path: "spec/plugin/worker-invocation-v3.schema.json";
549
+ readonly version: "worker-invocation-v3";
550
+ readonly sha256: "f08af491cbf5e7b71d1aeafbeac9ae581ee5fc3bcb76184daec369f94bab3927";
551
+ }];
552
+ };
553
+ export declare const generatedPackageSet: {
554
+ readonly schema_version: "redevplugin.platform_package_set.v1";
555
+ readonly platform_version: "0.6.5";
556
+ readonly go_module: {
557
+ readonly module: "github.com/floegence/redevplugin";
558
+ readonly version: "v0.6.5";
559
+ };
560
+ readonly npm_packages: readonly [{
561
+ readonly name: "@floegence/redevplugin-contracts";
562
+ readonly version: "0.6.5";
563
+ }, {
564
+ readonly name: "@floegence/redevplugin-ui";
565
+ readonly version: "0.6.5";
566
+ }];
567
+ readonly rust_crates: readonly [{
568
+ readonly name: "redevplugin-contracts";
569
+ readonly version: "0.6.5";
570
+ readonly role: "contracts";
571
+ }, {
572
+ readonly name: "redevplugin-ipc";
573
+ readonly version: "0.6.5";
574
+ readonly role: "ipc";
575
+ }, {
576
+ readonly name: "redevplugin-wasm-abi";
577
+ readonly version: "0.6.5";
578
+ readonly role: "wasm_abi";
579
+ }, {
580
+ readonly name: "redevplugin-target-classifier";
581
+ readonly version: "0.6.5";
582
+ readonly role: "target_classifier";
583
+ }, {
584
+ readonly name: "redevplugin-worker-sdk";
585
+ readonly version: "0.6.5";
586
+ readonly role: "worker_sdk";
587
+ }, {
588
+ readonly name: "redevplugin-runtime";
589
+ readonly version: "0.6.5";
590
+ readonly role: "runtime";
591
+ }];
592
+ readonly contract_registry_version: "contract-registry-v2";
593
+ readonly contract_set_sha256: "42768632672d3beef6410f0b87f53c8b124f1e56746bcc78beba52b6fd7da737";
594
+ };
595
+ export declare const generatedContractSetSHA256: "42768632672d3beef6410f0b87f53c8b124f1e56746bcc78beba52b6fd7da737";