{
  "bridgeBaseUrlPolicy": {
    "mustReachExactRuntimeContact": true,
    "reject": [
      "127.0.0.1",
      "localhost",
      "E:Voice account website",
      "setup-code issuer URL",
      "general Emergence website/build server URL",
      "URLs for another runtime/contact"
    ]
  },
  "channelModel": "current-only",
  "connectionDoctrine": {
    "advancedAlternative": "user-owned public HTTPS reverse proxy",
    "emergenceRelayAvailable": false,
    "localTestOnly": "same Wi-Fi/LAN",
    "normalTraffic": "direct phone-to-runtime through the user's chosen connection path",
    "recommendedDefault": "Tailscale/private network",
    "stopBeforeConsumeWhen": "no verified bridgeBaseUrl reaches this exact runtime/contact from the user's phone"
  },
  "consume": {
    "jsonFields": [
      "setupCode",
      "bridgeBaseUrl"
    ],
    "method": "POST",
    "url": "https://www.emergencerising.com/api/v1/evoice/bridge/bootstrap/consume"
  },
  "current": {
    "manifestUrl": "https://www.emergencerising.com/evoice/plugins/claude/evoice-bridge-plugin/current.json",
    "packageSha256": "32fda49bbd67165bf37a38e1e1f0231efb8fcbfc7bfc09d6dc29c2c2afc2a3ac",
    "packageSizeBytes": 283838,
    "packageUrl": "https://www.emergencerising.com/evoice/plugins/claude/evoice-bridge-plugin/v0.2.66/evoice-claude-bridge-plugin-v0.2.66.zip",
    "version": "0.2.66"
  },
  "currentManifestUrl": "https://www.emergencerising.com/evoice/plugins/claude/evoice-bridge-plugin/current.json",
  "expectedHealth": {
    "compatibilityPath": "/plugins/evoice-gateway/health",
    "method": "GET",
    "path": "/plugins/evoice-bridge/health",
    "type": "http"
  },
  "installDocs": {
    "source": "README.md inside the package archive",
    "steps": [
      "Fetch currentManifestUrl first and treat its version, packageUrl, and packageSha256 as authoritative.",
      "Download packageUrl, verify packageSha256, extract it, and read README.md before changing runtime state.",
      "Install or update the packaged Claude adapter on the user-owned machine that runs Claude Code.",
      "Preserve runtime configuration, pairing state, bridge tokens, Claude session continuity, and workspace state during repair.",
      "Keep Claude authentication in the owner-controlled process environment; never copy credentials into the package or pairing report.",
      "Verify GET /plugins/evoice-bridge/health on the phone-reachable bridge URL before consuming the setup code."
    ]
  },
  "installedVersionCheck": {
    "compareInstalledVersionTo": "currentManifestUrl.version",
    "inspect": [
      "evoice_claude_bridge_adapter.py",
      "SOURCE_PROVENANCE.md",
      "runtime health/status/version output when available"
    ],
    "repairWhen": [
      "installed version missing",
      "installed version unknown",
      "installed version older than current manifest version",
      "source provenance differs from the current manifest package"
    ],
    "requiredBeforeSetupCodeConsume": true
  },
  "latestManifestAliasUrl": "https://www.emergencerising.com/evoice/plugins/claude/evoice-bridge-plugin/latest.json",
  "manifestUrl": "https://www.emergencerising.com/evoice/plugins/claude/evoice-bridge-plugin/current.json",
  "missingPackageFiles": [],
  "packageSha256": "32fda49bbd67165bf37a38e1e1f0231efb8fcbfc7bfc09d6dc29c2c2afc2a3ac",
  "packageSizeBytes": 283838,
  "packageUrl": "https://www.emergencerising.com/evoice/plugins/claude/evoice-bridge-plugin/v0.2.66/evoice-claude-bridge-plugin-v0.2.66.zip",
  "pairingContractSha256": "668e3f08c6d0baf5c7b6bed827d548ac87e1781091885492211b315725d7605c",
  "pairingContractUrl": "https://www.emergencerising.com/evoice/plugins/contracts/pairing/claude/current.json",
  "pairingContractVersion": "1.0.4",
  "pairingContractVersionedUrl": "https://www.emergencerising.com/evoice/plugins/contracts/pairing/v1.0.4/claude.json",
  "previousPublicVersion": "0.2.65",
  "privatePathLeakCount": 0,
  "privatePathLeaks": [],
  "release": {
    "failureDomains": {
      "runtimePort": "runtime-scoped",
      "sharedCore": "set-wide"
    },
    "releaseId": "master-plugin-20260908-12",
    "sequence": 12,
    "signatureStatus": "unsigned-legacy",
    "sourceSha": "5c875c3b34f7bd6077b11aa1c1f4f1c41fc4d384"
  },
  "releaseChannel": "current",
  "requiredArchiveMembers": [
    "EVOICE-SHARED-JOURNAL.md",
    "PYTHON-DEPENDENCIES.md",
    "README.md",
    "SOURCE_PROVENANCE.md",
    "evoice_bridge_compaction.py",
    "evoice_bridge_core/__init__.py",
    "evoice_bridge_core/contract.py",
    "evoice_bridge_core/group_observation.py",
    "evoice_bridge_core/group_observation_worker.py",
    "evoice_bridge_core/journal.py",
    "evoice_bridge_core/native_approval.py",
    "evoice_bridge_core/native_policy_worker.py",
    "evoice_bridge_core/operator_pairing.py",
    "evoice_bridge_core/refusal_diagnostics.py",
    "evoice_bridge_core/runtime_guidance.py",
    "evoice_bridge_core/runtime_model_channel.py",
    "evoice_bridge_core/runtime_model_worker.py",
    "evoice_bridge_core/runtime_models.py",
    "evoice_bridge_core/runtime_policy.py",
    "evoice_bridge_core/vault.py",
    "evoice_bridge_core/vault_channel.py",
    "evoice_bridge_core/vault_pairing.py",
    "evoice_bridge_core/vault_worker.py",
    "evoice_bridge_core/workspace_channel.py",
    "evoice_bridge_core/workspace_native.py",
    "evoice_bridge_core/workspace_tools.py",
    "evoice_bridge_core/workspace_worker.py",
    "evoice_bridge_port_contract.py",
    "evoice_claude_bridge_adapter.py",
    "evoice_final_delivery.py",
    "evoice_group_observation.py",
    "evoice_job_policy.py",
    "evoice_mcp_server.py",
    "evoice_native_interactive.py",
    "evoice_runtime_models.py",
    "evoice_runtime_policy.py",
    "evoice_shared_journal.py",
    "evoice_turn_input.py",
    "evoice_update_routing.py",
    "evoice_vault.py",
    "evoice_wake_admission.py",
    "evoice_workspace_tools.py",
    "plugins/evoice-bridge-core/contract/evoice-journal-contract.v1.json",
    "requirements-evoice.txt",
    "tools/__init__.py",
    "tools/evoice_durable_work.py",
    "tools/evoice_job_supervisor.py",
    "tools/evoice_plugin_autoupdate.py",
    "tools/evoice_plugin_update.py"
  ],
  "runtime": "claude",
  "runtimeDisplayName": "Claude",
  "runtimeKind": "CLAUDE",
  "runtimePort": {
    "compatibility": {},
    "version": "0.2.66"
  },
  "schema": "com.emergencerising.evoice.external-runtime-plugin.v1",
  "setupCodeGate": {
    "downloadRequiresAccountLogin": false,
    "pairingRequiresSetupCode": true,
    "setupCodeProperties": [
      "expiring",
      "single-use",
      "high-entropy",
      "hashed-at-rest"
    ]
  },
  "sharedCore": {
    "api": "evoice.universal-bridge.v1",
    "contractVersion": "evoice-bridge-core.v1",
    "schema": "com.emergencerising.evoice.external-runtime-shared-core.v1",
    "version": "2.6.1"
  },
  "statePreservation": [
    "pairing state",
    "bridge tokens",
    "device/session state",
    "user runtime config",
    "agent-files manifests"
  ],
  "status": "ready",
  "version": "0.2.66",
  "versionBumpRequired": true,
  "versionMetadata": {
    "files": [
      {
        "file": "evoice_claude_bridge_adapter.py",
        "status": "ready",
        "version": "0.2.66"
      }
    ],
    "status": "ready"
  }
}
