plugin-scanner 3.14.0__tar.gz → 3.15.0__tar.gz

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.
Files changed (4543) hide show
  1. plugin_scanner-3.15.0/.github/workflows/publish.yml +1956 -0
  2. plugin_scanner-3.15.0/.release-please-manifest.json +3 -0
  3. plugin_scanner-3.15.0/CHANGELOG.md +483 -0
  4. plugin_scanner-3.15.0/PKG-INFO +606 -0
  5. plugin_scanner-3.15.0/ci/native_runtime/test_native_hook_client_transport.py +179 -0
  6. plugin_scanner-3.15.0/contracts/extensions/command-catalog.v1.json +1 -0
  7. plugin_scanner-3.15.0/contracts/extensions/native-command-program.v1.json +1 -0
  8. plugin_scanner-3.15.0/dashboard/e2e/observed-mcp-extension.spec.ts +468 -0
  9. plugin_scanner-3.15.0/dashboard/package.json +39 -0
  10. plugin_scanner-3.15.0/dashboard/src/protection-center/mcp-registry-search.tsx +395 -0
  11. plugin_scanner-3.15.0/dashboard/src/protection-center/mcp-setup-receipts.test.ts +18 -0
  12. plugin_scanner-3.15.0/dashboard/src/protection-center/mcp-setup-receipts.ts +31 -0
  13. plugin_scanner-3.15.0/docs/guard/contracts/hook-data-plane-ownership.v2.json +656 -0
  14. plugin_scanner-3.15.0/docs/guard/contracts/python-capability-ownership.v1.json +488 -0
  15. plugin_scanner-3.15.0/docs/guard/contracts/runtime-retirement-ledger.v1.json +2037 -0
  16. plugin_scanner-3.15.0/pr-body.md +14 -0
  17. plugin_scanner-3.15.0/pyproject.toml +231 -0
  18. plugin_scanner-3.15.0/pyproject.toml.bak +235 -0
  19. plugin_scanner-3.15.0/release-metadata/plugin-scanner-v3.15.0.toolchain.cdx.json +35 -0
  20. plugin_scanner-3.15.0/rust/Cargo.lock +1055 -0
  21. plugin_scanner-3.15.0/rust/Cargo.toml +45 -0
  22. plugin_scanner-3.15.0/rust/crates/guard-archive/Cargo.toml +19 -0
  23. plugin_scanner-3.15.0/rust/crates/guard-archive/src/lib.rs +135 -0
  24. plugin_scanner-3.15.0/rust/crates/guard-archive/src/lib_tests.rs +274 -0
  25. plugin_scanner-3.15.0/rust/crates/guard-archive/src/manifest.rs +191 -0
  26. plugin_scanner-3.15.0/rust/crates/guard-archive/src/posix_path.rs +78 -0
  27. plugin_scanner-3.15.0/rust/crates/guard-archive/src/tar_policy.rs +634 -0
  28. plugin_scanner-3.15.0/rust/crates/guard-contracts/src/archive_inspection.rs +83 -0
  29. plugin_scanner-3.15.0/rust/crates/guard-contracts/src/lib.rs +352 -0
  30. plugin_scanner-3.15.0/rust/crates/guard-runtime/Cargo.toml +45 -0
  31. plugin_scanner-3.15.0/rust/crates/guard-runtime/src/archive_inspect.rs +437 -0
  32. plugin_scanner-3.15.0/rust/crates/guard-runtime/src/main.rs +396 -0
  33. plugin_scanner-3.15.0/rust/crates/guard-runtime/src/resident_protocol.rs +282 -0
  34. plugin_scanner-3.15.0/rust/crates/guard-secure-fs/src/lib.rs +324 -0
  35. plugin_scanner-3.15.0/scripts/ci/rust_io_ownership_contract.py +57 -0
  36. plugin_scanner-3.15.0/scripts/ci/rust_io_ownership_gate.py +642 -0
  37. plugin_scanner-3.15.0/scripts/run_installed_canary.py +350 -0
  38. plugin_scanner-3.15.0/scripts/run_installed_native_outage.py +85 -0
  39. plugin_scanner-3.15.0/src/codex_plugin_scanner/guard/cli/commands_hook_native_authority.py +193 -0
  40. plugin_scanner-3.15.0/src/codex_plugin_scanner/guard/daemon/hook_availability_policy.py +308 -0
  41. plugin_scanner-3.15.0/src/codex_plugin_scanner/guard/daemon/hook_worker.py +485 -0
  42. plugin_scanner-3.15.0/src/codex_plugin_scanner/guard/daemon/hook_worker_native.py +640 -0
  43. plugin_scanner-3.15.0/src/codex_plugin_scanner/guard/daemon/local_cli_api.py +1101 -0
  44. plugin_scanner-3.15.0/src/codex_plugin_scanner/guard/daemon/local_cli_api_contract.py +15 -0
  45. plugin_scanner-3.15.0/src/codex_plugin_scanner/guard/daemon/local_cli_registry_setup.py +153 -0
  46. plugin_scanner-3.15.0/src/codex_plugin_scanner/guard/daemon/manager.py +3593 -0
  47. plugin_scanner-3.15.0/src/codex_plugin_scanner/guard/daemon/mcp_registry_undo.py +217 -0
  48. plugin_scanner-3.15.0/src/codex_plugin_scanner/guard/daemon/pipx_import_paths.py +53 -0
  49. plugin_scanner-3.15.0/src/codex_plugin_scanner/guard/daemon/server.py +9309 -0
  50. plugin_scanner-3.15.0/src/codex_plugin_scanner/guard/daemon/static/assets/chunks/extensions-workspace.js +8476 -0
  51. plugin_scanner-3.15.0/src/codex_plugin_scanner/guard/native_archive_inspection.py +306 -0
  52. plugin_scanner-3.15.0/src/codex_plugin_scanner/guard/native_policy_snapshot_acked.py +76 -0
  53. plugin_scanner-3.15.0/src/codex_plugin_scanner/guard/native_runtime.py +672 -0
  54. plugin_scanner-3.15.0/src/codex_plugin_scanner/guard/runtime/codex_config_rpc.py +232 -0
  55. plugin_scanner-3.15.0/src/codex_plugin_scanner/guard/runtime/codex_mcp_setup.py +170 -0
  56. plugin_scanner-3.15.0/src/codex_plugin_scanner/guard/runtime/mcp_registry_setup.py +203 -0
  57. plugin_scanner-3.15.0/src/codex_plugin_scanner/guard/runtime/supply_chain_package_eval.py +5191 -0
  58. plugin_scanner-3.15.0/src/codex_plugin_scanner/version.py +3 -0
  59. plugin_scanner-3.15.0/tests/fixtures/guard-command-corpus/decision-diff-report.framed-sha256 +1 -0
  60. plugin_scanner-3.15.0/tests/fixtures/guard-command-corpus/decision-diff-report.json +935 -0
  61. plugin_scanner-3.15.0/tests/test_codex_daemon_hook_bridge.py +1135 -0
  62. plugin_scanner-3.15.0/tests/test_cursor_hooks.py +2530 -0
  63. plugin_scanner-3.15.0/tests/test_daemon_session_continuity_edges.py +420 -0
  64. plugin_scanner-3.15.0/tests/test_guard_codex_config_rpc.py +143 -0
  65. plugin_scanner-3.15.0/tests/test_guard_codex_mcp_setup.py +240 -0
  66. plugin_scanner-3.15.0/tests/test_guard_daemon_adversarial_transport.py +493 -0
  67. plugin_scanner-3.15.0/tests/test_guard_daemon_pipx_import_paths.py +104 -0
  68. plugin_scanner-3.15.0/tests/test_guard_daemon_storage_liveness.py +389 -0
  69. plugin_scanner-3.15.0/tests/test_guard_external_archive_approval_boundary.py +354 -0
  70. plugin_scanner-3.15.0/tests/test_guard_external_archive_approval_evidence.py +351 -0
  71. plugin_scanner-3.15.0/tests/test_guard_external_archive_launch_binding.py +288 -0
  72. plugin_scanner-3.15.0/tests/test_guard_external_archive_private_binding.py +239 -0
  73. plugin_scanner-3.15.0/tests/test_guard_install_workspace.py +423 -0
  74. plugin_scanner-3.15.0/tests/test_guard_mcp_registry_setup.py +268 -0
  75. plugin_scanner-3.15.0/tests/test_guard_mcp_registry_undo.py +270 -0
  76. plugin_scanner-3.15.0/tests/test_guard_observe_mode_liveness.py +273 -0
  77. plugin_scanner-3.15.0/tests/test_guard_runtime.py +25683 -0
  78. plugin_scanner-3.15.0/tests/test_guard_supply_chain_evaluator.py +3384 -0
  79. plugin_scanner-3.15.0/tests/test_guard_surface_server.py +4978 -0
  80. plugin_scanner-3.15.0/tests/test_hook_availability_policy.py +533 -0
  81. plugin_scanner-3.15.0/tests/test_hook_worker_observe_pretool.py +304 -0
  82. plugin_scanner-3.15.0/tests/test_installed_canary_proof.py +348 -0
  83. plugin_scanner-3.15.0/tests/test_installed_native_outage.py +83 -0
  84. plugin_scanner-3.15.0/tests/test_native_archive_inspection.py +900 -0
  85. plugin_scanner-3.15.0/tests/test_native_capacity_denial.py +26 -0
  86. plugin_scanner-3.15.0/tests/test_native_outage_mode_authority.py +111 -0
  87. plugin_scanner-3.15.0/tests/test_native_pretool_generic.py +638 -0
  88. plugin_scanner-3.15.0/tests/test_native_unavailable_denial.py +89 -0
  89. plugin_scanner-3.15.0/tests/test_rust_pretool_authority.py +381 -0
  90. plugin_scanner-3.15.0/tests/test_rust_pretool_authority_worker.py +388 -0
  91. plugin_scanner-3.15.0/tests/test_watch_continue_same_release_daemon.py +340 -0
  92. plugin_scanner-3.15.0/uv.lock +4721 -0
  93. plugin_scanner-3.14.0/.github/workflows/publish.yml +0 -1942
  94. plugin_scanner-3.14.0/.release-please-manifest.json +0 -3
  95. plugin_scanner-3.14.0/CHANGELOG.md +0 -467
  96. plugin_scanner-3.14.0/PKG-INFO +0 -606
  97. plugin_scanner-3.14.0/ci/native_runtime/test_native_hook_client_transport.py +0 -177
  98. plugin_scanner-3.14.0/contracts/extensions/command-catalog.v1.json +0 -1
  99. plugin_scanner-3.14.0/contracts/extensions/native-command-program.v1.json +0 -1
  100. plugin_scanner-3.14.0/dashboard/e2e/observed-mcp-extension.spec.ts +0 -256
  101. plugin_scanner-3.14.0/dashboard/package.json +0 -38
  102. plugin_scanner-3.14.0/dashboard/src/protection-center/mcp-registry-search.tsx +0 -257
  103. plugin_scanner-3.14.0/docs/guard/contracts/hook-data-plane-ownership.v2.json +0 -654
  104. plugin_scanner-3.14.0/docs/guard/contracts/python-capability-ownership.v1.json +0 -416
  105. plugin_scanner-3.14.0/docs/guard/contracts/runtime-retirement-ledger.v1.json +0 -1832
  106. plugin_scanner-3.14.0/pyproject.toml +0 -231
  107. plugin_scanner-3.14.0/pyproject.toml.bak +0 -235
  108. plugin_scanner-3.14.0/release-metadata/plugin-scanner-v3.14.0.toolchain.cdx.json +0 -35
  109. plugin_scanner-3.14.0/rust/Cargo.lock +0 -945
  110. plugin_scanner-3.14.0/rust/Cargo.toml +0 -44
  111. plugin_scanner-3.14.0/rust/crates/guard-contracts/src/lib.rs +0 -350
  112. plugin_scanner-3.14.0/rust/crates/guard-runtime/Cargo.toml +0 -41
  113. plugin_scanner-3.14.0/rust/crates/guard-runtime/src/main.rs +0 -387
  114. plugin_scanner-3.14.0/rust/crates/guard-runtime/src/resident_protocol.rs +0 -281
  115. plugin_scanner-3.14.0/rust/crates/guard-secure-fs/src/lib.rs +0 -248
  116. plugin_scanner-3.14.0/scripts/ci/rust_io_ownership_contract.py +0 -57
  117. plugin_scanner-3.14.0/scripts/ci/rust_io_ownership_gate.py +0 -639
  118. plugin_scanner-3.14.0/scripts/run_installed_canary.py +0 -340
  119. plugin_scanner-3.14.0/src/codex_plugin_scanner/guard/cli/commands_hook_native_authority.py +0 -189
  120. plugin_scanner-3.14.0/src/codex_plugin_scanner/guard/daemon/hook_availability_policy.py +0 -315
  121. plugin_scanner-3.14.0/src/codex_plugin_scanner/guard/daemon/hook_worker.py +0 -485
  122. plugin_scanner-3.14.0/src/codex_plugin_scanner/guard/daemon/hook_worker_native.py +0 -640
  123. plugin_scanner-3.14.0/src/codex_plugin_scanner/guard/daemon/local_cli_api.py +0 -1187
  124. plugin_scanner-3.14.0/src/codex_plugin_scanner/guard/daemon/manager.py +0 -3590
  125. plugin_scanner-3.14.0/src/codex_plugin_scanner/guard/daemon/server.py +0 -9304
  126. plugin_scanner-3.14.0/src/codex_plugin_scanner/guard/daemon/static/assets/chunks/extensions-workspace.js +0 -8267
  127. plugin_scanner-3.14.0/src/codex_plugin_scanner/guard/native_policy_snapshot_acked.py +0 -69
  128. plugin_scanner-3.14.0/src/codex_plugin_scanner/guard/native_runtime.py +0 -668
  129. plugin_scanner-3.14.0/src/codex_plugin_scanner/guard/runtime/mcp_registry_setup.py +0 -261
  130. plugin_scanner-3.14.0/src/codex_plugin_scanner/guard/runtime/offline_archive_contract.py +0 -72
  131. plugin_scanner-3.14.0/src/codex_plugin_scanner/guard/runtime/offline_archive_inspection.py +0 -303
  132. plugin_scanner-3.14.0/src/codex_plugin_scanner/guard/runtime/offline_archive_policy.py +0 -299
  133. plugin_scanner-3.14.0/src/codex_plugin_scanner/guard/runtime/offline_archive_sandbox.py +0 -161
  134. plugin_scanner-3.14.0/src/codex_plugin_scanner/guard/runtime/offline_archive_worker.py +0 -373
  135. plugin_scanner-3.14.0/src/codex_plugin_scanner/guard/runtime/supply_chain_package_eval.py +0 -5186
  136. plugin_scanner-3.14.0/src/codex_plugin_scanner/version.py +0 -3
  137. plugin_scanner-3.14.0/tests/fixtures/guard-command-corpus/decision-diff-report.framed-sha256 +0 -1
  138. plugin_scanner-3.14.0/tests/fixtures/guard-command-corpus/decision-diff-report.json +0 -938
  139. plugin_scanner-3.14.0/tests/test_codex_daemon_hook_bridge.py +0 -1139
  140. plugin_scanner-3.14.0/tests/test_cursor_hooks.py +0 -2525
  141. plugin_scanner-3.14.0/tests/test_daemon_session_continuity_edges.py +0 -420
  142. plugin_scanner-3.14.0/tests/test_guard_daemon_adversarial_transport.py +0 -493
  143. plugin_scanner-3.14.0/tests/test_guard_daemon_storage_liveness.py +0 -387
  144. plugin_scanner-3.14.0/tests/test_guard_external_archive_approval_boundary.py +0 -348
  145. plugin_scanner-3.14.0/tests/test_guard_external_archive_approval_evidence.py +0 -350
  146. plugin_scanner-3.14.0/tests/test_guard_external_archive_launch_binding.py +0 -287
  147. plugin_scanner-3.14.0/tests/test_guard_external_archive_private_binding.py +0 -237
  148. plugin_scanner-3.14.0/tests/test_guard_install_workspace.py +0 -422
  149. plugin_scanner-3.14.0/tests/test_guard_mcp_registry_setup.py +0 -192
  150. plugin_scanner-3.14.0/tests/test_guard_observe_mode_liveness.py +0 -272
  151. plugin_scanner-3.14.0/tests/test_guard_offline_archive_inspection.py +0 -449
  152. plugin_scanner-3.14.0/tests/test_guard_runtime.py +0 -25673
  153. plugin_scanner-3.14.0/tests/test_guard_supply_chain_evaluator.py +0 -3384
  154. plugin_scanner-3.14.0/tests/test_guard_surface_server.py +0 -4978
  155. plugin_scanner-3.14.0/tests/test_hook_availability_policy.py +0 -532
  156. plugin_scanner-3.14.0/tests/test_hook_worker_observe_pretool.py +0 -302
  157. plugin_scanner-3.14.0/tests/test_installed_canary_proof.py +0 -348
  158. plugin_scanner-3.14.0/tests/test_native_pretool_generic.py +0 -638
  159. plugin_scanner-3.14.0/tests/test_rust_pretool_authority.py +0 -381
  160. plugin_scanner-3.14.0/tests/test_rust_pretool_authority_worker.py +0 -388
  161. plugin_scanner-3.14.0/tests/test_watch_continue_same_release_daemon.py +0 -340
  162. plugin_scanner-3.14.0/uv.lock +0 -4721
  163. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/.clusterfuzzlite/Dockerfile +0 -0
  164. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/.clusterfuzzlite/build.sh +0 -0
  165. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/.clusterfuzzlite/project.yaml +0 -0
  166. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/.clusterfuzzlite/requirements-atheris.txt +0 -0
  167. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/.dockerignore +0 -0
  168. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/.factory/droids/hol-guard-runner.md +0 -0
  169. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/.factory/skills/hol-guard/SKILL.md +0 -0
  170. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/.gitar/instructions/repair-boundaries.md +0 -0
  171. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/.gitar/review/external-extension-submissions.md +0 -0
  172. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/.gitar/rules/enable-auto-apply.md +0 -0
  173. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/.gitar/rules/fork-auto-apply-access.md +0 -0
  174. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/.gitattributes +0 -0
  175. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/.github/CODEOWNERS +0 -0
  176. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/.github/FUNDING.yml +0 -0
  177. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/.github/ISSUE_TEMPLATE/bug-report.yml +0 -0
  178. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/.github/ISSUE_TEMPLATE/command-extension-proposal.yml +0 -0
  179. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  180. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/.github/ISSUE_TEMPLATE/feature-request.yml +0 -0
  181. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/.github/PULL_REQUEST_TEMPLATE/command-extension.md +0 -0
  182. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/.github/actionlint.yaml +0 -0
  183. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/.github/actions/native-regression/action.yml +0 -0
  184. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/.github/actions/plan-pytest/action.yml +0 -0
  185. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/.github/actions/setup-ci-python/action.yml +0 -0
  186. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/.github/actions/setup-rust/action.yml +0 -0
  187. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/.github/dependabot.yml +0 -0
  188. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/.github/pr-bodies/claude-permission-request-visible.md +0 -0
  189. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/.github/tools/containment-ci/.npmrc +0 -0
  190. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/.github/tools/containment-ci/package-lock.json +0 -0
  191. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/.github/tools/containment-ci/package.json +0 -0
  192. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/.github/tools/mcpb-cli/package-lock.json +0 -0
  193. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/.github/tools/mcpb-cli/package.json +0 -0
  194. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/.github/workflows/approval-review-browser-ci.yml +0 -0
  195. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/.github/workflows/ci-superseded-runs.yml +0 -0
  196. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/.github/workflows/ci.yml +0 -0
  197. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/.github/workflows/cline-contract-ci.yml +0 -0
  198. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/.github/workflows/cline-marketplace.yml +0 -0
  199. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/.github/workflows/codeql.yml +0 -0
  200. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/.github/workflows/containment-ci.yml +0 -0
  201. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/.github/workflows/decision-critical-io.yml +0 -0
  202. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/.github/workflows/dependabot-uv-lock.yml +0 -0
  203. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/.github/workflows/desktop-contract-ci.yml +0 -0
  204. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/.github/workflows/desktop-core-alpha-feed.yml +0 -0
  205. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/.github/workflows/desktop-core-linux-feed.yml +0 -0
  206. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/.github/workflows/devcontainer-features.yml +0 -0
  207. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/.github/workflows/evaluation-wheel-ci.yml +0 -0
  208. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/.github/workflows/extension-artifact-regen.yml +0 -0
  209. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/.github/workflows/extension-builder-ci.yml +0 -0
  210. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/.github/workflows/extension-builder-installed.yml +0 -0
  211. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/.github/workflows/extension-claim-notice.yml +0 -0
  212. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/.github/workflows/extension-control-center-installed-ci.yml +0 -0
  213. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/.github/workflows/finish-extension-authority-stability.yml +0 -0
  214. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/.github/workflows/fuzz.yml +0 -0
  215. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/.github/workflows/gitar-fork-access-notice.yml +0 -0
  216. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/.github/workflows/gitar-managed-state.yml +0 -0
  217. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/.github/workflows/guard-gvisor-reference.yml +0 -0
  218. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/.github/workflows/guard-network-remediation-proof.yml +0 -0
  219. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/.github/workflows/guarded-repository.yml +0 -0
  220. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/.github/workflows/harness-smoke.yml +0 -0
  221. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/.github/workflows/investigation-source-snapshot.yml +0 -0
  222. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/.github/workflows/issue-workspace-review-authority.yml +0 -0
  223. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/.github/workflows/mcp-release-trust.yml +0 -0
  224. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/.github/workflows/mcpb-validation.yml +0 -0
  225. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/.github/workflows/mdm-artifacts.yml +0 -0
  226. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/.github/workflows/mdm-cloud-integration-lab.yml +0 -0
  227. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/.github/workflows/mdm-local-lab.yml +0 -0
  228. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/.github/workflows/native-release-contract.yml +0 -0
  229. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/.github/workflows/native-wheel-ci.yml +0 -0
  230. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/.github/workflows/notify-hol-guard-plugin.yml +0 -0
  231. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/.github/workflows/publish-action-repo.yml +0 -0
  232. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/.github/workflows/publish-mcp-registry.yml +0 -0
  233. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/.github/workflows/publish-mcpb.yml +0 -0
  234. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/.github/workflows/r0-autofix-artifact.yml +0 -0
  235. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/.github/workflows/release-evidence-contract.yml +0 -0
  236. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/.github/workflows/release-please.yml +0 -0
  237. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/.github/workflows/rust-authority-ownership.yml +0 -0
  238. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/.github/workflows/rust-command-model-differential.yml +0 -0
  239. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/.github/workflows/rust-command-shadow.yml +0 -0
  240. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/.github/workflows/rust-daemon-edge-hardening.yml +0 -0
  241. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/.github/workflows/rust-migration-tree-hygiene.yml +0 -0
  242. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/.github/workflows/rust-native-identity.yml +0 -0
  243. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/.github/workflows/rust-posttool-authority-acceptance.yml +0 -0
  244. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/.github/workflows/rust-pretool-adversarial.yml +0 -0
  245. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/.github/workflows/rust-pretool-authority-acceptance.yml +0 -0
  246. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/.github/workflows/rust-runtime-differential.yml +0 -0
  247. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/.github/workflows/rust-runtime-mutation-differential.yml +0 -0
  248. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/.github/workflows/rust-runtime-performance.yml +0 -0
  249. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/.github/workflows/rust-runtime-recovery.yml +0 -0
  250. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/.github/workflows/rust-runtime-rule-contract.yml +0 -0
  251. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/.github/workflows/rust-runtime-windows-resident.yml +0 -0
  252. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/.github/workflows/rust-runtime.yml +0 -0
  253. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/.github/workflows/scorecard.yml +0 -0
  254. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/.github/workflows/security-gates.yml +0 -0
  255. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/.github/workflows/sonar-findings-report.yml +0 -0
  256. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/.github/workflows/verify-mcp-release-source.yml +0 -0
  257. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/.github/workflows/wake-desktop-core-alpha-feed.yml +0 -0
  258. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/.gitignore +0 -0
  259. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/.gitleaksignore +0 -0
  260. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/.pre-commit-hooks.yaml +0 -0
  261. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/CITATION.cff +0 -0
  262. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/CODE_OF_CONDUCT.md +0 -0
  263. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/CONTRIBUTING.md +0 -0
  264. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/Dockerfile +0 -0
  265. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/HOL_GUARD_ANSWERS.md +0 -0
  266. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/LICENSE +0 -0
  267. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/OPEN_SOURCE.md +0 -0
  268. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/PRODUCT.md +0 -0
  269. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/README.md +0 -0
  270. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/SECURITY.md +0 -0
  271. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/action/CONTRIBUTING.md +0 -0
  272. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/action/README.md +0 -0
  273. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/action/SECURITY.md +0 -0
  274. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/action/action.yml +0 -0
  275. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/action/cisco-version.txt +0 -0
  276. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/action/pypi-attestations-requirements.in +0 -0
  277. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/action/pypi-attestations-requirements.txt +0 -0
  278. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/action/pypi-attestations-version.txt +0 -0
  279. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/action/scanner-cisco-runtime-requirements.txt +0 -0
  280. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/action/scanner-runtime-requirements.txt +0 -0
  281. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/action/scanner-sha256.txt +0 -0
  282. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/action/scanner-version.txt +0 -0
  283. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/ci/containment/test_linux_containment.py +0 -0
  284. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/ci/guard-network-capability-reachability.v1.json +0 -0
  285. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/ci/guard-network-remediation-proof.v1.json +0 -0
  286. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/ci/native_runtime/installed_extension_probe_support.py +0 -0
  287. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/ci/native_runtime/installed_hook_client.py +0 -0
  288. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/ci/native_runtime/native_hook_client_support.py +0 -0
  289. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/ci/native_runtime/native_managed_test_support.py +0 -0
  290. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/ci/native_runtime/native_process_test_support.py +0 -0
  291. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/ci/native_runtime/pi_negative_cli_fixture.c +0 -0
  292. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/ci/native_runtime/probe_installed_command_control_lock.py +0 -0
  293. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/ci/native_runtime/probe_installed_native_extensions.py +0 -0
  294. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/ci/native_runtime/probe_installed_pi_output.py +0 -0
  295. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/ci/native_runtime/probe_native_default_auto.py +0 -0
  296. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/ci/native_runtime/regression-tests.txt +0 -0
  297. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/ci/native_runtime/source-compiler.Dockerfile +0 -0
  298. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/ci/native_runtime/test_command_model_differential.py +0 -0
  299. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/ci/native_runtime/test_command_model_resident.py +0 -0
  300. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/ci/native_runtime/test_command_shadow_activity.py +0 -0
  301. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/ci/native_runtime/test_guard_native_runtime_binary.py +0 -0
  302. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/ci/native_runtime/test_guard_native_runtime_differential.py +0 -0
  303. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/ci/native_runtime/test_guard_native_runtime_mutation_differential.py +0 -0
  304. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/ci/native_runtime/test_native_hol_guard_wheel.py +0 -0
  305. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/ci/native_runtime/test_native_hook_client.py +0 -0
  306. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/ci/native_runtime/test_native_hook_client_timeout.py +0 -0
  307. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/ci/native_runtime/test_native_hook_worker_modes.py +0 -0
  308. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/ci/native_runtime/test_native_managed_resident.py +0 -0
  309. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/ci/native_runtime/test_native_managed_resident_cross_process.py +0 -0
  310. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/ci/native_runtime/test_native_rule_contract.py +0 -0
  311. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/ci/native_runtime/test_native_runtime_manifest.py +0 -0
  312. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/ci/native_runtime/test_native_runtime_recovery.py +0 -0
  313. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/ci/native_runtime/test_native_runtime_release.py +0 -0
  314. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/ci/native_runtime/test_native_secret_read_inbox.py +0 -0
  315. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/ci/pi-exact-continuation/README.md +0 -0
  316. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/ci/pi-exact-continuation/package-lock.json +0 -0
  317. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/ci/pi-exact-continuation/package.json +0 -0
  318. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/ci/pytest-duration-manifest.json.gz +0 -0
  319. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/ci/pytest-duration-seed.json +0 -0
  320. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/conftest.py +0 -0
  321. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contracts/extensions/authoring-discovery.v1.schema.json +0 -0
  322. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contracts/extensions/authoring-review.v1.schema.json +0 -0
  323. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contracts/extensions/command-extension-source.v1.schema.json +0 -0
  324. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contracts/extensions/contribution.v1.schema.json +0 -0
  325. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contracts/extensions/contribution.v2.schema.json +0 -0
  326. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contracts/extensions/directory.v1.schema.json +0 -0
  327. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contracts/extensions/directory.v2.schema.json +0 -0
  328. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contracts/extensions/listing.v1.schema.json +0 -0
  329. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contracts/extensions/listing.v2.schema.json +0 -0
  330. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contracts/extensions/native-command-control-authority.v1.fixtures.json +0 -0
  331. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contracts/extensions/trust-class-map.v1.json +0 -0
  332. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contracts/guard-cloud-review/v2/command-result.json +0 -0
  333. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contracts/guard-cloud-review/v2/contract.json +0 -0
  334. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contracts/guard-cloud-review/v2/fixtures.json +0 -0
  335. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contracts/managed-controls/v1/extension-catalog.fixtures.json +0 -0
  336. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contracts/managed-controls/v1/extension-catalog.schema.json +0 -0
  337. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contracts/managed-controls/v1/extension-projection-digest-vector.json +0 -0
  338. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contracts/managed-controls/v1/limits.json +0 -0
  339. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contracts/managed-controls/v1/policy-bundle-v2-extension-signature-vector.json +0 -0
  340. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contracts/managed-controls/v1/policy-bundle-v2-rotation-rollback-fixtures.json +0 -0
  341. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contracts/managed-controls/v1/policy-extension-fields.fixtures.json +0 -0
  342. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contracts/managed-controls/v1/policy-extension-fields.json +0 -0
  343. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contracts/managed-controls/v1/policy-extension-fields.schema.json +0 -0
  344. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contracts/managed-controls/v1/product-decision.json +0 -0
  345. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contracts/managed-controls/v1/signed-custom-extension-continuity.schema.json +0 -0
  346. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contracts/mcp-servers/contribution.v1.schema.json +0 -0
  347. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contracts/native-policy-snapshot/v3/policy-snapshot-vector.json +0 -0
  348. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/command-sources/command.api-gateway.json +0 -0
  349. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/command-sources/command.backup.borg.json +0 -0
  350. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/command-sources/command.backup.rclone.json +0 -0
  351. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/command-sources/command.backup.restic.json +0 -0
  352. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/command-sources/command.backup.velero.json +0 -0
  353. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/command-sources/command.blitcp.json +0 -0
  354. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/command-sources/command.cdn.json +0 -0
  355. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/command-sources/command.cicd.circleci.json +0 -0
  356. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/command-sources/command.cicd.github.json +0 -0
  357. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/command-sources/command.cicd.gitlab.json +0 -0
  358. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/command-sources/command.cloud.aws.json +0 -0
  359. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/command-sources/command.cloud.azure.json +0 -0
  360. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/command-sources/command.cloud.gcp.json +0 -0
  361. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/command-sources/command.cloudg.json +0 -0
  362. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/command-sources/command.cogext.json +0 -0
  363. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/command-sources/command.container-runtime.json +0 -0
  364. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/command-sources/command.ctty.json +0 -0
  365. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/command-sources/command.data-protection.json +0 -0
  366. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/command-sources/command.database.mongodb.json +0 -0
  367. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/command-sources/command.database.mysql.json +0 -0
  368. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/command-sources/command.database.postgresql.json +0 -0
  369. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/command-sources/command.database.redis.json +0 -0
  370. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/command-sources/command.database.sqlite.json +0 -0
  371. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/command-sources/command.database.supabase.json +0 -0
  372. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/command-sources/command.digline.json +0 -0
  373. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/command-sources/command.dns.aws.json +0 -0
  374. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/command-sources/command.dns.azure.json +0 -0
  375. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/command-sources/command.dns.gcp.json +0 -0
  376. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/command-sources/command.email.json +0 -0
  377. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/command-sources/command.encoded-execution.json +0 -0
  378. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/command-sources/command.feature-flags.json +0 -0
  379. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/command-sources/command.filesystem.json +0 -0
  380. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/command-sources/command.framework.laravel.json +0 -0
  381. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/command-sources/command.genclave.json +0 -0
  382. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/command-sources/command.git.json +0 -0
  383. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/command-sources/command.github.json +0 -0
  384. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/command-sources/command.gitsync.json +0 -0
  385. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/command-sources/command.guard-self-protection.json +0 -0
  386. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/command-sources/command.infrastructure-as-code.json +0 -0
  387. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/command-sources/command.kubernetes-operations.json +0 -0
  388. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/command-sources/command.kubernetes-secrets.json +0 -0
  389. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/command-sources/command.load-balancer.json +0 -0
  390. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/command-sources/command.messaging.kafka.json +0 -0
  391. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/command-sources/command.messaging.nats.json +0 -0
  392. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/command-sources/command.messaging.rabbitmq.json +0 -0
  393. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/command-sources/command.monitoring.json +0 -0
  394. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/command-sources/command.noodle.json +0 -0
  395. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/command-sources/command.ollama.json +0 -0
  396. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/command-sources/command.package.go.json +0 -0
  397. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/command-sources/command.package.jvm.json +0 -0
  398. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/command-sources/command.package.node.json +0 -0
  399. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/command-sources/command.package.php.json +0 -0
  400. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/command-sources/command.package.python.json +0 -0
  401. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/command-sources/command.package.ruby.json +0 -0
  402. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/command-sources/command.package.rust.json +0 -0
  403. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/command-sources/command.package.system.json +0 -0
  404. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/command-sources/command.payment.json +0 -0
  405. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/command-sources/command.platform.heroku.json +0 -0
  406. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/command-sources/command.platform.netlify.json +0 -0
  407. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/command-sources/command.platform.vercel.json +0 -0
  408. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/command-sources/command.probe.json +0 -0
  409. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/command-sources/command.remote.essh.json +0 -0
  410. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/command-sources/command.remote.rsync.json +0 -0
  411. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/command-sources/command.remote.scp.json +0 -0
  412. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/command-sources/command.remote.ssh.json +0 -0
  413. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/command-sources/command.repo2nb.json +0 -0
  414. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/command-sources/command.search.elasticsearch.json +0 -0
  415. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/command-sources/command.shell-mutations.json +0 -0
  416. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/command-sources/command.skill-base.json +0 -0
  417. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/command-sources/command.skill-sunset.json +0 -0
  418. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/command-sources/command.storage.aws-s3.json +0 -0
  419. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/command-sources/command.storage.azure-blob.json +0 -0
  420. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/command-sources/command.storage.google-cloud.json +0 -0
  421. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/command-sources/command.storage.minio.json +0 -0
  422. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/command-sources/command.system.json +0 -0
  423. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/command-sources/command.uivoid.json +0 -0
  424. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/command-sources/command.windows.json +0 -0
  425. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/command-sources/migration-manifest.json +0 -0
  426. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/extension-listings/command.blitcp.json +0 -0
  427. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/extension-listings/command.cogext.json +0 -0
  428. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/extension-listings/command.digline.json +0 -0
  429. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/extension-listings/command.genclave.json +0 -0
  430. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/extension-listings/command.noodle.json +0 -0
  431. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/extension-listings/command.ollama.json +0 -0
  432. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/extension-listings/command.probe.json +0 -0
  433. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/extension-listings/command.remote.essh.json +0 -0
  434. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/extension-listings/command.repo2nb.json +0 -0
  435. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/extension-listings/command.skill-sunset.json +0 -0
  436. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/extension-listings/command.uivoid.json +0 -0
  437. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/extension-listings/mcp.filesystem.json +0 -0
  438. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/extension-listings/mcp.instapods.json +0 -0
  439. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/extensions/command.api-gateway.json +0 -0
  440. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/extensions/command.backup.borg.json +0 -0
  441. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/extensions/command.backup.rclone.json +0 -0
  442. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/extensions/command.backup.restic.json +0 -0
  443. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/extensions/command.backup.velero.json +0 -0
  444. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/extensions/command.blitcp.json +0 -0
  445. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/extensions/command.cdn.json +0 -0
  446. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/extensions/command.cicd.circleci.json +0 -0
  447. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/extensions/command.cicd.github.json +0 -0
  448. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/extensions/command.cicd.gitlab.json +0 -0
  449. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/extensions/command.cloud.aws.json +0 -0
  450. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/extensions/command.cloud.azure.json +0 -0
  451. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/extensions/command.cloud.gcp.json +0 -0
  452. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/extensions/command.cloudg.json +0 -0
  453. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/extensions/command.cogext.json +0 -0
  454. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/extensions/command.container-runtime.json +0 -0
  455. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/extensions/command.ctty.json +0 -0
  456. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/extensions/command.data-protection.json +0 -0
  457. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/extensions/command.database.mongodb.json +0 -0
  458. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/extensions/command.database.mysql.json +0 -0
  459. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/extensions/command.database.postgresql.json +0 -0
  460. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/extensions/command.database.redis.json +0 -0
  461. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/extensions/command.database.sqlite.json +0 -0
  462. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/extensions/command.database.supabase.json +0 -0
  463. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/extensions/command.digline.json +0 -0
  464. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/extensions/command.dns.aws.json +0 -0
  465. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/extensions/command.dns.azure.json +0 -0
  466. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/extensions/command.dns.gcp.json +0 -0
  467. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/extensions/command.email.json +0 -0
  468. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/extensions/command.encoded-execution.json +0 -0
  469. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/extensions/command.feature-flags.json +0 -0
  470. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/extensions/command.filesystem.json +0 -0
  471. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/extensions/command.framework.laravel.json +0 -0
  472. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/extensions/command.genclave.json +0 -0
  473. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/extensions/command.git.json +0 -0
  474. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/extensions/command.github.json +0 -0
  475. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/extensions/command.gitsync.json +0 -0
  476. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/extensions/command.guard-self-protection.json +0 -0
  477. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/extensions/command.infrastructure-as-code.json +0 -0
  478. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/extensions/command.kubernetes-operations.json +0 -0
  479. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/extensions/command.kubernetes-secrets.json +0 -0
  480. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/extensions/command.load-balancer.json +0 -0
  481. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/extensions/command.messaging.kafka.json +0 -0
  482. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/extensions/command.messaging.nats.json +0 -0
  483. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/extensions/command.messaging.rabbitmq.json +0 -0
  484. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/extensions/command.monitoring.json +0 -0
  485. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/extensions/command.noodle.json +0 -0
  486. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/extensions/command.ollama.json +0 -0
  487. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/extensions/command.package.go.json +0 -0
  488. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/extensions/command.package.jvm.json +0 -0
  489. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/extensions/command.package.node.json +0 -0
  490. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/extensions/command.package.php.json +0 -0
  491. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/extensions/command.package.python.json +0 -0
  492. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/extensions/command.package.ruby.json +0 -0
  493. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/extensions/command.package.rust.json +0 -0
  494. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/extensions/command.package.system.json +0 -0
  495. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/extensions/command.payment.json +0 -0
  496. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/extensions/command.platform.heroku.json +0 -0
  497. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/extensions/command.platform.netlify.json +0 -0
  498. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/extensions/command.platform.vercel.json +0 -0
  499. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/extensions/command.probe.json +0 -0
  500. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/extensions/command.remote.essh.json +0 -0
  501. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/extensions/command.remote.rsync.json +0 -0
  502. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/extensions/command.remote.scp.json +0 -0
  503. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/extensions/command.remote.ssh.json +0 -0
  504. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/extensions/command.repo2nb.json +0 -0
  505. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/extensions/command.search.elasticsearch.json +0 -0
  506. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/extensions/command.shell-mutations.json +0 -0
  507. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/extensions/command.skill-base.json +0 -0
  508. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/extensions/command.skill-sunset.json +0 -0
  509. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/extensions/command.storage.aws-s3.json +0 -0
  510. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/extensions/command.storage.azure-blob.json +0 -0
  511. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/extensions/command.storage.google-cloud.json +0 -0
  512. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/extensions/command.storage.minio.json +0 -0
  513. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/extensions/command.system.json +0 -0
  514. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/extensions/command.uivoid.json +0 -0
  515. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/extensions/command.windows.json +0 -0
  516. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/mcp-servers/mcp.filesystem.json +0 -0
  517. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/mcp-servers/mcp.instapods.json +0 -0
  518. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/mcp-servers/mcp.pr-ui-compare.json +0 -0
  519. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/contributions/mcp-servers/mcp.reaper.json +0 -0
  520. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/.impeccable/design.json +0 -0
  521. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/DESIGN.md +0 -0
  522. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/bun.lock +0 -0
  523. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/e2e/approval-scope-ui.spec.ts +0 -0
  524. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/e2e/cloud-review-settings.spec.ts +0 -0
  525. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/e2e/command-activity-ui.spec.ts +0 -0
  526. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/e2e/evidence-app-origins.spec.ts +0 -0
  527. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/e2e/extension-authority-recovery.spec.ts +0 -0
  528. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/e2e/extension-control-center.spec.ts +0 -0
  529. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/e2e/extension-control-fixtures.ts +0 -0
  530. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/e2e/extension-quick-apply.spec.ts +0 -0
  531. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/e2e/fixture-states.ts +0 -0
  532. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/e2e/installed-command-activity.spec.ts +0 -0
  533. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/e2e/installed-extension-control-center.spec.ts +0 -0
  534. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/e2e/local-skill-metadata.spec.ts +0 -0
  535. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/e2e/mcp-catalog-discovery.spec.ts +0 -0
  536. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/e2e/policy-cloud-exceptions-states.spec.ts +0 -0
  537. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/e2e/policy-connect-oauth.spec.ts +0 -0
  538. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/e2e/proof-dir.ts +0 -0
  539. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/e2e/proofs/playwright-output/.last-run.json +0 -0
  540. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/e2e/proofs/playwright-output/installed-extension-contro-450e2--and-real-daemon-inspection/installed-extension-catalog.png +0 -0
  541. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/e2e/proofs/playwright-output/installed-extension-contro-450e2--and-real-daemon-inspection/installed-extension-rule-detail.png +0 -0
  542. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/e2e/proofs/playwright-output/installed-extension-contro-450e2--and-real-daemon-inspection/installed-protection-center-simple-1024.png +0 -0
  543. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/e2e/proofs/playwright-output/installed-extension-contro-450e2--and-real-daemon-inspection/installed-protection-center-simple-1440.png +0 -0
  544. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/e2e/proofs/playwright-output/installed-extension-contro-450e2--and-real-daemon-inspection/installed-protection-center-simple-320.png +0 -0
  545. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/e2e/proofs/playwright-output/installed-extension-contro-450e2--and-real-daemon-inspection/installed-protection-center-simple-390.png +0 -0
  546. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/e2e/proofs/playwright-output/installed-extension-contro-450e2--and-real-daemon-inspection/installed-protection-center-simple-800.png +0 -0
  547. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/e2e/proofs/playwright-output/installed-extension-contro-450e2--and-real-daemon-inspection/installed-protection-center-simple-zoom-200.png +0 -0
  548. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/e2e/proofs/playwright-output/installed-extension-contro-450e2--and-real-daemon-inspection/installed-protection-center-simple.png +0 -0
  549. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/e2e/proofs/playwright-output/installed-extension-contro-450e2--and-real-daemon-inspection/installed-protection-test-lab.png +0 -0
  550. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/e2e/protection-health-ui.spec.ts +0 -0
  551. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/e2e/scrg172-states.spec.ts +0 -0
  552. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/e2e/settings-chunk-runtime.spec.ts +0 -0
  553. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/e2e/shell-navigation-responsive.spec.ts +0 -0
  554. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/e2e/static-server.mjs +0 -0
  555. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/e2e/supply-chain-repair-recovery.spec.ts +0 -0
  556. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/e2e/workspace-audit-recovery.spec.ts +0 -0
  557. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/index.html +0 -0
  558. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/package-lock.json +0 -0
  559. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/playwright.config.ts +0 -0
  560. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/playwright.installed.config.ts +0 -0
  561. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/playwright.mcp-discovery.config.ts +0 -0
  562. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/pnpm-lock.yaml +0 -0
  563. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/public/apple-touch-icon.png +0 -0
  564. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/public/brand/Logo_Icon_Dark.png +0 -0
  565. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/public/brand/Logo_Whole.png +0 -0
  566. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/public/favicon-16x16.png +0 -0
  567. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/public/favicon-32x32.png +0 -0
  568. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/public/favicon.ico +0 -0
  569. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/about/about-analytics.ts +0 -0
  570. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/about/about-content.test.ts +0 -0
  571. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/about/about-content.ts +0 -0
  572. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/about/about-design.test.ts +0 -0
  573. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/about/about-external-links.test.ts +0 -0
  574. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/about/about-external-links.ts +0 -0
  575. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/about/about-section-shell.test.ts +0 -0
  576. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/about/about-types.ts +0 -0
  577. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/about/about-workspace.tsx +0 -0
  578. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/about/components/about-external-link.tsx +0 -0
  579. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/about/components/about-footer.tsx +0 -0
  580. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/about/components/about-hero.tsx +0 -0
  581. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/about/components/about-runtime-proof-strip.tsx +0 -0
  582. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/about/components/data-boundary-panel.tsx +0 -0
  583. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/about/components/ecosystem-programs.tsx +0 -0
  584. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/about/components/open-standards-map.tsx +0 -0
  585. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/about/components/pathway-grid.tsx +0 -0
  586. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/about/components/section-shell.tsx +0 -0
  587. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/about/components/tracked-action-button.tsx +0 -0
  588. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/about/components/trust-contract-panel.tsx +0 -0
  589. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/action-explanation-normalize.test.ts +0 -0
  590. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/action-explanation-normalize.ts +0 -0
  591. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/action-explanation-summary.tsx +0 -0
  592. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/alpha-update-channel-dialog.tsx +0 -0
  593. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/app-activity-evidence.test.ts +0 -0
  594. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/app-detail-phase11.test.ts +0 -0
  595. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/app-detail-workspace.test.ts +0 -0
  596. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/app-routing.test.ts +0 -0
  597. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/app.tsx +0 -0
  598. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/approval-center-layout.test.ts +0 -0
  599. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/approval-center-layout.tsx +0 -0
  600. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/approval-center-mobile.test.ts +0 -0
  601. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/approval-center-primitives.tsx +0 -0
  602. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/approval-center-review-cards.tsx +0 -0
  603. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/approval-center-utils.ts +0 -0
  604. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/approval-gate-lock.test.ts +0 -0
  605. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/approval-gate-utils.ts +0 -0
  606. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/approval-gate.test.ts +0 -0
  607. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/approval-proof-inline.tsx +0 -0
  608. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/approval-proof-modal.tsx +0 -0
  609. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/approval-scopes.test.ts +0 -0
  610. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/approval-scopes.ts +0 -0
  611. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/apps/app-catalog.ts +0 -0
  612. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/apps/app-detail-workspace.tsx +0 -0
  613. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/apps/harness-setup-panel.tsx +0 -0
  614. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/apps/harness-setup-target.ts +0 -0
  615. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/assurance/assurance-fixtures.ts +0 -0
  616. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/assurance/assurance-view-model.ts +0 -0
  617. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/assurance/assurance.test.tsx +0 -0
  618. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/assurance/components/ProviderDetailCard.tsx +0 -0
  619. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/assurance/decision-explanation-panel.test.ts +0 -0
  620. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/assurance/decision-explanation-panel.tsx +0 -0
  621. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/assurance/protection-status-channels.tsx +0 -0
  622. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/assurance/protection-status-panel.tsx +0 -0
  623. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/assurance/protection-status-view-model.ts +0 -0
  624. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/assurance/protection-status.test.ts +0 -0
  625. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/audit-run-progress.tsx +0 -0
  626. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/audit-workspace.tsx +0 -0
  627. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/authoritative-action-surfaces.test.tsx +0 -0
  628. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/clear-policy-payload.test.ts +0 -0
  629. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/clear-policy-payload.ts +0 -0
  630. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/cloud-user-menu.tsx +0 -0
  631. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/command-activity/app-command-activity-mode-tabs.tsx +0 -0
  632. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/command-activity/command-activity-api.test.ts +0 -0
  633. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/command-activity/command-activity-api.ts +0 -0
  634. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/command-activity/command-activity-detail.tsx +0 -0
  635. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/command-activity/command-activity-filters.tsx +0 -0
  636. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/command-activity/command-activity-home-card.tsx +0 -0
  637. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/command-activity/command-activity-normalizers.test.ts +0 -0
  638. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/command-activity/command-activity-normalizers.ts +0 -0
  639. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/command-activity/command-activity-presenters.test.ts +0 -0
  640. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/command-activity/command-activity-presenters.ts +0 -0
  641. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/command-activity/command-activity-state.test.ts +0 -0
  642. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/command-activity/command-activity-state.ts +0 -0
  643. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/command-activity/command-activity-summary.tsx +0 -0
  644. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/command-activity/command-activity-table.tsx +0 -0
  645. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/command-activity/command-activity-types.ts +0 -0
  646. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/command-activity/command-activity-ui-contract.test.ts +0 -0
  647. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/command-activity/command-activity-workspace.tsx +0 -0
  648. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/command-activity/use-command-activity.ts +0 -0
  649. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/command-cloud-exception-request-dialog.tsx +0 -0
  650. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/compare-time-periods.tsx +0 -0
  651. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/confirm-dialog.test.tsx +0 -0
  652. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/confirm-dialog.tsx +0 -0
  653. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/connect-guard-cloud-button.test.tsx +0 -0
  654. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/connect-guard-cloud-button.tsx +0 -0
  655. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/consolidated-evidence-alert.test.ts +0 -0
  656. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/consolidated-evidence-alert.tsx +0 -0
  657. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/custom-extension-continuity-api.ts +0 -0
  658. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/dashboard-location.test.ts +0 -0
  659. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/dashboard-location.ts +0 -0
  660. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/dashboard-session-ensure.test.ts +0 -0
  661. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/data-flow-evidence-card.tsx +0 -0
  662. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/desktop-embed.ts +0 -0
  663. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/discovery-job-start.ts +0 -0
  664. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/error-boundary.test.ts +0 -0
  665. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/error-boundary.tsx +0 -0
  666. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/evidence/app-tab.tsx +0 -0
  667. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/evidence/breakdown-card.tsx +0 -0
  668. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/evidence/categories.tsx +0 -0
  669. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/evidence/category-tab.tsx +0 -0
  670. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/evidence/decision-badge.tsx +0 -0
  671. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/evidence/evidence-action-detail.tsx +0 -0
  672. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/evidence/evidence-action-list.tsx +0 -0
  673. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/evidence/evidence-activity-heatmap-mini.tsx +0 -0
  674. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/evidence/evidence-activity-heatmap.test.ts +0 -0
  675. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/evidence/evidence-activity-heatmap.tsx +0 -0
  676. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/evidence/evidence-analytics-panel.tsx +0 -0
  677. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/evidence/evidence-clear-modal.tsx +0 -0
  678. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/evidence/evidence-copy.test.ts +0 -0
  679. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/evidence/evidence-data-provenance-strip.tsx +0 -0
  680. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/evidence/evidence-detail.test.ts +0 -0
  681. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/evidence/evidence-export-drawer.tsx +0 -0
  682. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/evidence/evidence-export.test.ts +0 -0
  683. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/evidence/evidence-export.ts +0 -0
  684. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/evidence/evidence-filter-bar.tsx +0 -0
  685. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/evidence/evidence-filters.test.ts +0 -0
  686. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/evidence/evidence-filters.ts +0 -0
  687. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/evidence/evidence-format.test.ts +0 -0
  688. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/evidence/evidence-format.ts +0 -0
  689. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/evidence/evidence-hero.tsx +0 -0
  690. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/evidence/evidence-insight-strip.tsx +0 -0
  691. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/evidence/evidence-insights-headline-bento.test.ts +0 -0
  692. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/evidence/evidence-insights-headline-bento.tsx +0 -0
  693. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/evidence/evidence-insights-home-preview.test.ts +0 -0
  694. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/evidence/evidence-insights-home-preview.tsx +0 -0
  695. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/evidence/evidence-insights-layout.test.ts +0 -0
  696. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/evidence/evidence-insights-share-button.tsx +0 -0
  697. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/evidence/evidence-insights-share-errors.ts +0 -0
  698. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/evidence/evidence-insights-share-modal.tsx +0 -0
  699. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/evidence/evidence-insights-share-sheet.tsx +0 -0
  700. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/evidence/evidence-insights-surface.tsx +0 -0
  701. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/evidence/evidence-metrics.test.ts +0 -0
  702. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/evidence/evidence-metrics.ts +0 -0
  703. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/evidence/evidence-pagination.test.ts +0 -0
  704. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/evidence/evidence-pagination.ts +0 -0
  705. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/evidence/evidence-perf.test.ts +0 -0
  706. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/evidence/evidence-period.ts +0 -0
  707. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/evidence/evidence-share-bar.tsx +0 -0
  708. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/evidence/evidence-sort.test.ts +0 -0
  709. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/evidence/evidence-sort.ts +0 -0
  710. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/evidence/evidence-story.test.ts +0 -0
  711. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/evidence/evidence-table.tsx +0 -0
  712. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/evidence/evidence-trend-chart.test.ts +0 -0
  713. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/evidence/evidence-trend-chart.tsx +0 -0
  714. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/evidence/evidence-types.ts +0 -0
  715. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/evidence/evidence-url-state.test.ts +0 -0
  716. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/evidence/evidence-url-state.ts +0 -0
  717. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/evidence/evidence-view-shell.tsx +0 -0
  718. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/evidence/explore-tab.tsx +0 -0
  719. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/evidence/guard-stat-metric.tsx +0 -0
  720. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/evidence/index.ts +0 -0
  721. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/evidence/plain-english.test.ts +0 -0
  722. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/evidence/plain-english.ts +0 -0
  723. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/evidence/scoped-evidence-table.test.ts +0 -0
  724. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/evidence/scoped-evidence-table.tsx +0 -0
  725. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/evidence/sparkline.tsx +0 -0
  726. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/evidence/story-tab.tsx +0 -0
  727. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/evidence/use-receipt-analytics.ts +0 -0
  728. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/extension-control-center-detail-readonly.tsx +0 -0
  729. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/extension-control-center-detail.tsx +0 -0
  730. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/extension-control-center-model.test.ts +0 -0
  731. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/extension-control-center-model.ts +0 -0
  732. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/extension-control-preview-normalize.test.ts +0 -0
  733. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/extension-control-preview-normalize.ts +0 -0
  734. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/extension-control-projection-normalize.test.ts +0 -0
  735. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/extension-control-projection-normalize.ts +0 -0
  736. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/extension-controls-api.ts +0 -0
  737. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/extension-controls-normalize.test.ts +0 -0
  738. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/extension-controls-normalize.ts +0 -0
  739. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/extension-policy-applied-toast.tsx +0 -0
  740. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/extension-policy-draft.test.ts +0 -0
  741. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/extension-policy-draft.ts +0 -0
  742. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/extension-policy-panel.copy.test.tsx +0 -0
  743. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/extension-policy-panel.managed-controls.test.ts +0 -0
  744. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/extension-policy-panel.tsx +0 -0
  745. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/extension-policy-rebase.test.ts +0 -0
  746. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/extension-policy-rebase.ts +0 -0
  747. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/extensions-workspace.test.ts +0 -0
  748. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/extensions-workspace.tsx +0 -0
  749. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/feed-health-workspace.tsx +0 -0
  750. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/fleet-hero-copy.ts +0 -0
  751. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/fleet-protection-recovery-copy.ts +0 -0
  752. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/fleet-protection-recovery-parts.tsx +0 -0
  753. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/fleet-protection-recovery.tsx +0 -0
  754. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/fleet-workspace-phase11.test.ts +0 -0
  755. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/fleet-workspace.test.ts +0 -0
  756. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/fleet-workspace.tsx +0 -0
  757. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/github-issue-link.test.ts +0 -0
  758. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/github-issue-link.ts +0 -0
  759. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/guard-action.test.ts +0 -0
  760. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/guard-action.ts +0 -0
  761. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/guard-api.test.ts +0 -0
  762. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/guard-api.ts +0 -0
  763. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/guard-cloud-connect-flow.test.ts +0 -0
  764. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/guard-cloud-connect-flow.ts +0 -0
  765. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/guard-daemon-origin.test.ts +0 -0
  766. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/guard-daemon-origin.ts +0 -0
  767. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/guard-demo.ts +0 -0
  768. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/guard-modal-layer.tsx +0 -0
  769. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/guard-overlay-root.ts +0 -0
  770. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/guard-types.ts +0 -0
  771. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/guard-update-channel-summary.tsx +0 -0
  772. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/guard-update-copy.ts +0 -0
  773. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/guard-update-panel.tsx +0 -0
  774. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/guard-update-reconnect-security.test.ts +0 -0
  775. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/guard-update.test.ts +0 -0
  776. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/harness-action-errors.test.ts +0 -0
  777. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/harness-action-errors.ts +0 -0
  778. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/harness-detection.ts +0 -0
  779. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/harness-slug.ts +0 -0
  780. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/help-modal.tsx +0 -0
  781. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/historical-native-review-envelope.test.ts +0 -0
  782. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/history-analytics.tsx +0 -0
  783. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/history-charts.tsx +0 -0
  784. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/history-export.ts +0 -0
  785. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/home-dashboard.test.ts +0 -0
  786. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/home-dashboard.tsx +0 -0
  787. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/home-protection-module.tsx +0 -0
  788. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/home-runtime-error.test.ts +0 -0
  789. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/home-runtime-error.ts +0 -0
  790. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/lazy-workspace.test.ts +0 -0
  791. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/lazy-workspace.ts +0 -0
  792. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/local-cli-api.test.ts +0 -0
  793. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/local-cli-api.ts +0 -0
  794. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/local-cli-fields.ts +0 -0
  795. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/local-cli-links.ts +0 -0
  796. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/local-cli-normalize.ts +0 -0
  797. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/local-tool-approval-controls.tsx +0 -0
  798. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/local-tool-approval.test.tsx +0 -0
  799. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/local-tool-approval.ts +0 -0
  800. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/logged-action-panel.tsx +0 -0
  801. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/main.tsx +0 -0
  802. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/managed-controls/custom-extension-continuity.test.ts +0 -0
  803. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/managed-controls/custom-extension-continuity.ts +0 -0
  804. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/managed-controls/extension-managed-controls-panel.test.tsx +0 -0
  805. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/managed-controls/extension-managed-controls-panel.tsx +0 -0
  806. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/managed-controls/local-protection-model.test.ts +0 -0
  807. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/managed-controls/local-protection-model.ts +0 -0
  808. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/managed-controls/rules-exceptions-model.test.ts +0 -0
  809. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/managed-controls/rules-exceptions-model.ts +0 -0
  810. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/mcp-policy-request-panel.test.tsx +0 -0
  811. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/mcp-policy-request-panel.tsx +0 -0
  812. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/mcp-skills-api.ts +0 -0
  813. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/native-review-contract.test.ts +0 -0
  814. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/open-guard-cloud-action.css +0 -0
  815. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/open-guard-cloud-action.test.tsx +0 -0
  816. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/open-guard-cloud-action.tsx +0 -0
  817. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/operator-health.test.tsx +0 -0
  818. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/operator-health.ts +0 -0
  819. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/package-firewall-connect-browser.test.ts +0 -0
  820. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/package-firewall-connect-browser.ts +0 -0
  821. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/package-firewall-connect.test.tsx +0 -0
  822. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/package-workbench-common.tsx +0 -0
  823. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/package-workbench-filter-modal.tsx +0 -0
  824. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/package-workbench-finding-detail.tsx +0 -0
  825. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/package-workbench-panel.test.tsx +0 -0
  826. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/package-workbench-panel.tsx +0 -0
  827. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/phase09-review.test.ts +0 -0
  828. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/policy-active-mode-card.tsx +0 -0
  829. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/policy-cloud-exception-detail-panel.tsx +0 -0
  830. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/policy-cloud-exception-request-draft.test.ts +0 -0
  831. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/policy-cloud-exception-request-draft.ts +0 -0
  832. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/policy-cloud-exception-request-ia.test.ts +0 -0
  833. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/policy-cloud-exception-request-layout.tsx +0 -0
  834. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/policy-cloud-exception-request-panel.tsx +0 -0
  835. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/policy-cloud-exception-request-steps.tsx +0 -0
  836. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/policy-cloud-exceptions-boundary.test.ts +0 -0
  837. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/policy-cloud-exceptions-ia.test.tsx +0 -0
  838. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/policy-cloud-exceptions-list.tsx +0 -0
  839. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/policy-cloud-exceptions-summary.tsx +0 -0
  840. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/policy-cloud-exceptions-tab.tsx +0 -0
  841. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/policy-cloud-exceptions-utils.test.ts +0 -0
  842. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/policy-cloud-exceptions-utils.ts +0 -0
  843. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/policy-data-truth.test.ts +0 -0
  844. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/policy-exception-form.tsx +0 -0
  845. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/policy-export.ts +0 -0
  846. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/policy-final-release-guard.test.ts +0 -0
  847. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/policy-governing-extension-link.tsx +0 -0
  848. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/policy-guard-cloud-bundle-card.test.ts +0 -0
  849. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/policy-guard-cloud-bundle-card.tsx +0 -0
  850. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/policy-guard-cloud-bundle-helpers.ts +0 -0
  851. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/policy-managed-authority.ts +0 -0
  852. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/policy-page-chrome.tsx +0 -0
  853. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/policy-remembered-cloud-rules.tsx +0 -0
  854. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/policy-remembered-local-rules.tsx +0 -0
  855. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/policy-remembered-rules-right-rail.tsx +0 -0
  856. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/policy-remembered-rules-summary.test.ts +0 -0
  857. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/policy-remembered-rules-tab.tsx +0 -0
  858. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/policy-remembered-rules.test.tsx +0 -0
  859. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/policy-review-scope.test.ts +0 -0
  860. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/policy-strict-config-enforcement-preview.tsx +0 -0
  861. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/policy-strict-config-ia.test.ts +0 -0
  862. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/policy-strict-config-local-policy-card.tsx +0 -0
  863. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/policy-strict-config-right-rail.tsx +0 -0
  864. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/policy-strict-config-segmented.tsx +0 -0
  865. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/policy-strict-config-strict-mode-card.tsx +0 -0
  866. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/policy-strict-config-surfaces.ts +0 -0
  867. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/policy-strict-config-tab.tsx +0 -0
  868. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/policy-strict-config-utils.test.ts +0 -0
  869. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/policy-strict-config-utils.ts +0 -0
  870. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/policy-summary-surfaces.ts +0 -0
  871. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/policy-ui-hardening.test.ts +0 -0
  872. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/policy-workspace-helpers.test.ts +0 -0
  873. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/policy-workspace-helpers.ts +0 -0
  874. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/policy-workspace-page.tsx +0 -0
  875. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/policy-workspace-views.tsx +0 -0
  876. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/policy-workspace.tsx +0 -0
  877. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/presentation-mode.test.ts +0 -0
  878. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/presentation-mode.ts +0 -0
  879. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/protection-center/add-custom-extension-catalog.tsx +0 -0
  880. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/protection-center/add-custom-extension-dialog.tsx +0 -0
  881. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/protection-center/add-custom-extension-support.test.ts +0 -0
  882. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/protection-center/add-custom-extension-support.tsx +0 -0
  883. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/protection-center/components/catalog-filter-bar.tsx +0 -0
  884. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/protection-center/components/extension-brand-mark.tsx +0 -0
  885. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/protection-center/components/pattern-search-console.tsx +0 -0
  886. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/protection-center/components/policy-editing-locks.tsx +0 -0
  887. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/protection-center/components/protection-authority-notice.tsx +0 -0
  888. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/protection-center/components/protection-primitives.tsx +0 -0
  889. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/protection-center/components/quick-apply-toolbar.tsx +0 -0
  890. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/protection-center/copy/protection-copy.ts +0 -0
  891. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/protection-center/custom-extension-commands.test.ts +0 -0
  892. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/protection-center/custom-extension-commands.tsx +0 -0
  893. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/protection-center/custom-extensions-section.tsx +0 -0
  894. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/protection-center/effective-status-key.ts +0 -0
  895. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/protection-center/extension-activity.test.tsx +0 -0
  896. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/protection-center/extension-activity.tsx +0 -0
  897. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/protection-center/extension-navigation.test.ts +0 -0
  898. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/protection-center/extension-navigation.ts +0 -0
  899. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/protection-center/extensions-overview.tsx +0 -0
  900. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/protection-center/fixtures/protection-fixtures.ts +0 -0
  901. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/protection-center/local-cli-panel-copy.ts +0 -0
  902. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/protection-center/local-cli-review-modal.tsx +0 -0
  903. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/protection-center/local-clis-panel.tsx +0 -0
  904. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/protection-center/local-skills-workspace.tsx +0 -0
  905. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/protection-center/mcp-catalog-state.ts +0 -0
  906. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/protection-center/mcp-classification-evidence.tsx +0 -0
  907. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/protection-center/mcp-declared-skills.tsx +0 -0
  908. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/protection-center/mcp-provider-actions.tsx +0 -0
  909. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/protection-center/mcp-server-defaults.tsx +0 -0
  910. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/protection-center/model/catalog-filters.test.ts +0 -0
  911. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/protection-center/model/catalog-filters.ts +0 -0
  912. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/protection-center/model/extension-brand.test.ts +0 -0
  913. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/protection-center/model/extension-brand.ts +0 -0
  914. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/protection-center/model/protection-author-metadata.test.ts +0 -0
  915. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/protection-center/model/protection-author-metadata.ts +0 -0
  916. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/protection-center/model/protection-categories.ts +0 -0
  917. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/protection-center/model/protection-landing.ts +0 -0
  918. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/protection-center/model/protection-performance-budgets.test.ts +0 -0
  919. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/protection-center/model/protection-performance-budgets.ts +0 -0
  920. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/protection-center/model/protection-presentation.ts +0 -0
  921. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/protection-center/protection-center-workspace.tsx +0 -0
  922. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/protection-center/protection-center.test.tsx +0 -0
  923. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/protection-center/protection-change-review.tsx +0 -0
  924. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/protection-center/protection-final-a11y.test.tsx +0 -0
  925. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/protection-center/protection-final-contract.test.ts +0 -0
  926. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/protection-center/protection-history-repair.test.ts +0 -0
  927. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/protection-center/protection-landing.test.tsx +0 -0
  928. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/protection-center/protection-module-detail.test.tsx +0 -0
  929. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/protection-center/protection-module-detail.tsx +0 -0
  930. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/protection-center/protection-settings-history.tsx +0 -0
  931. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/protection-center/protection-surface.ts +0 -0
  932. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/protection-center/protection-telemetry.test.ts +0 -0
  933. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/protection-center/protection-telemetry.ts +0 -0
  934. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/protection-center/protection-terminology.test.tsx +0 -0
  935. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/protection-center/protection-test-api.ts +0 -0
  936. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/protection-center/protection-test-lab.test.tsx +0 -0
  937. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/protection-center/protection-test-lab.tsx +0 -0
  938. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/protection-center/protection-workspace-states.tsx +0 -0
  939. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/protection-center/provider-workflows.tsx +0 -0
  940. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/protection-center/use-local-cli-catalog.ts +0 -0
  941. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/protection-center/use-protection-module-activity.ts +0 -0
  942. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/protection-health.test.ts +0 -0
  943. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/protection-health.ts +0 -0
  944. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/protection-posture-copy.test.ts +0 -0
  945. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/protection-posture-copy.ts +0 -0
  946. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/protection-posture-panel.tsx +0 -0
  947. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/protection-reason-copy.ts +0 -0
  948. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/protection-repair-flow.test.ts +0 -0
  949. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/protection-repair-flow.ts +0 -0
  950. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/protection-repair-page.test.ts +0 -0
  951. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/protection-repair-page.tsx +0 -0
  952. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/protection-repair-reasons.test.ts +0 -0
  953. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/protection-repair-reasons.ts +0 -0
  954. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/provider-workflows-api.ts +0 -0
  955. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/queue-bulk-approval-credentials.ts +0 -0
  956. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/queue-bulk-approve-flow.tsx +0 -0
  957. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/queue-bulk-approve.test.ts +0 -0
  958. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/queue-bulk-drawer-shell.tsx +0 -0
  959. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/queue-bulk-risk-disclosure.test.ts +0 -0
  960. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/queue-bulk-risk-disclosure.ts +0 -0
  961. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/queue-bulk-risk-presentation.ts +0 -0
  962. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/queue-connection-copy.ts +0 -0
  963. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/queue-connection-error.test.ts +0 -0
  964. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/queue-connection-error.tsx +0 -0
  965. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/queue-state.test.ts +0 -0
  966. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/queue-state.ts +0 -0
  967. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/receipts-workspace.test.ts +0 -0
  968. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/receipts-workspace.tsx +0 -0
  969. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/request-read-state.test.ts +0 -0
  970. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/request-read-state.ts +0 -0
  971. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/responsive-layout.css +0 -0
  972. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/review-cloud-recovery.tsx +0 -0
  973. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/review-decision-card.tsx +0 -0
  974. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/review-evidence.tsx +0 -0
  975. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/review-queue-item.tsx +0 -0
  976. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/review-queue-list.tsx +0 -0
  977. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/review-scope-controls.tsx +0 -0
  978. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/review-states.tsx +0 -0
  979. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/review-workspace.tsx +0 -0
  980. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/risk-signal-cards.test.ts +0 -0
  981. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/risk-signal-cards.tsx +0 -0
  982. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/runtime-overview.test.ts +0 -0
  983. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/runtime-overview.tsx +0 -0
  984. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/scanner-evidence-badge.tsx +0 -0
  985. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/scrg159-170.test.ts +0 -0
  986. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/scrg171-172.test.ts +0 -0
  987. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/scsr-phase09-next-action.test.ts +0 -0
  988. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/scsr-phase09-package-firewall-status.test.ts +0 -0
  989. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/scsr-phase09c-evidence-rail.test.ts +0 -0
  990. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/scsr-phase09d-intercept-drawer.test.ts +0 -0
  991. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/scsr-phase09e-posture-banners.test.ts +0 -0
  992. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/scsr-phase09f-mobile-polish.test.ts +0 -0
  993. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/scsr-phase09g-cloud-capabilities.test.ts +0 -0
  994. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/scsr-phase09h-hero-cards.test.ts +0 -0
  995. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/scsr-phase10-package-workbench.test.ts +0 -0
  996. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/secondary-risk-dedupe.test.ts +0 -0
  997. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/secondary-risk-dedupe.ts +0 -0
  998. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/security-fixes.test.ts +0 -0
  999. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/settings/approval-password-copy.tsx +0 -0
  1000. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/settings/cloud-review-settings.tsx +0 -0
  1001. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/settings/settings-ia.test.ts +0 -0
  1002. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/settings/settings-ia.tsx +0 -0
  1003. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/settings/settings-row-primitives.tsx +0 -0
  1004. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/settings/settings-section-shell.tsx +0 -0
  1005. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/settings-presentation.test.ts +0 -0
  1006. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/settings-presentation.ts +0 -0
  1007. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/settings-save-proof-modal.test.ts +0 -0
  1008. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/settings-save-proof-modal.tsx +0 -0
  1009. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/settings-workspace-phase11.test.ts +0 -0
  1010. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/settings-workspace.test.ts +0 -0
  1011. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/settings-workspace.tsx +0 -0
  1012. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/shell-footer.test.ts +0 -0
  1013. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/shell-footer.tsx +0 -0
  1014. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/shell-navigation-drawer.tsx +0 -0
  1015. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/shell-navigation-link.tsx +0 -0
  1016. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/shell-navigation-model.ts +0 -0
  1017. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/shell-navigation-status.css +0 -0
  1018. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/shell-navigation-status.tsx +0 -0
  1019. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/shell-navigation.css +0 -0
  1020. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/shell-navigation.test.tsx +0 -0
  1021. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/shell-navigation.tsx +0 -0
  1022. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/sidebar-local-guard-card.test.ts +0 -0
  1023. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/skill-workflow-api.ts +0 -0
  1024. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/styles.css +0 -0
  1025. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/supply-chain-audit-connect.test.tsx +0 -0
  1026. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/supply-chain-audit-connect.ts +0 -0
  1027. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/supply-chain-audit-findings-summary.tsx +0 -0
  1028. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/supply-chain-audit-normalize.ts +0 -0
  1029. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/supply-chain-audit-recovery-modal.tsx +0 -0
  1030. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/supply-chain-audit-recovery.test.ts +0 -0
  1031. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/supply-chain-audit-recovery.ts +0 -0
  1032. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/supply-chain-audit-result.test.ts +0 -0
  1033. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/supply-chain-audit-result.ts +0 -0
  1034. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/supply-chain-audit-workspace.test.ts +0 -0
  1035. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/supply-chain-audit-workspace.ts +0 -0
  1036. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/supply-chain-bundle-panel.tsx +0 -0
  1037. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/supply-chain-cloud-capabilities-panel.tsx +0 -0
  1038. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/supply-chain-cloud-capabilities.ts +0 -0
  1039. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/supply-chain-evidence-rail-panel.tsx +0 -0
  1040. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/supply-chain-evidence-rail.ts +0 -0
  1041. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/supply-chain-firewall-action-result.ts +0 -0
  1042. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/supply-chain-firewall-controls.tsx +0 -0
  1043. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/supply-chain-firewall-manager-row.tsx +0 -0
  1044. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/supply-chain-firewall-next-action.ts +0 -0
  1045. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/supply-chain-firewall-panel.tsx +0 -0
  1046. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/supply-chain-firewall-views.tsx +0 -0
  1047. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/supply-chain-fix-all.test.tsx +0 -0
  1048. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/supply-chain-fix-all.ts +0 -0
  1049. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/supply-chain-hub-workspace.tsx +0 -0
  1050. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/supply-chain-intercept-proof-modal.tsx +0 -0
  1051. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/supply-chain-issue-focus.tsx +0 -0
  1052. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/supply-chain-issues.test.ts +0 -0
  1053. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/supply-chain-issues.ts +0 -0
  1054. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/supply-chain-manager-cards.tsx +0 -0
  1055. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/supply-chain-manager-drawer.tsx +0 -0
  1056. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/supply-chain-posture-banners.tsx +0 -0
  1057. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/supply-chain-posture.ts +0 -0
  1058. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/supply-chain-protection-stats.ts +0 -0
  1059. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/supply-chain-recovery.tsx +0 -0
  1060. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/supply-chain-repair-result.ts +0 -0
  1061. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/supply-chain-repair-types.ts +0 -0
  1062. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/supply-chain-status-header.tsx +0 -0
  1063. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/supply-chain-ux-consolidation.test.ts +0 -0
  1064. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/supply-chain-workspace-hero-state.ts +0 -0
  1065. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/supply-chain-workspace-hero.tsx +0 -0
  1066. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/supply-chain-workspace-layout.ts +0 -0
  1067. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/supply-chain-workspace.tsx +0 -0
  1068. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/tailwind-root.css +0 -0
  1069. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/temporary-mcp-approval-controls.tsx +0 -0
  1070. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/temporary-mcp-approval.test.tsx +0 -0
  1071. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/temporary-mcp-approval.ts +0 -0
  1072. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/test-fixtures/cloud-action-envelope.json +0 -0
  1073. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/totp-enrollment-qr-panel.tsx +0 -0
  1074. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/use-copy-feedback-timeout.ts +0 -0
  1075. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/use-debounce.ts +0 -0
  1076. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/use-extension-policy-draft.ts +0 -0
  1077. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/use-focus-trap.ts +0 -0
  1078. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/use-keyboard-shortcut.ts +0 -0
  1079. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/use-modal-dialog.ts +0 -0
  1080. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/use-queue-bulk-approve.test.ts +0 -0
  1081. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/use-queue-bulk-approve.ts +0 -0
  1082. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/use-reduced-motion.ts +0 -0
  1083. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/use-resolved-approval-gate.ts +0 -0
  1084. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/use-route-focus.ts +0 -0
  1085. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/use-supply-chain-audit-session.ts +0 -0
  1086. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/user-reported-regressions.test.ts +0 -0
  1087. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/vite-env.d.ts +0 -0
  1088. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/watch-protection-banner.tsx +0 -0
  1089. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/watched-app-card.tsx +0 -0
  1090. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/workspace-audit-folder-field.tsx +0 -0
  1091. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/workspace-page-header.test.tsx +0 -0
  1092. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/src/workspace-page-header.tsx +0 -0
  1093. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/tsconfig.json +0 -0
  1094. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/dashboard/vite.config.ts +0 -0
  1095. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/devcontainer-features/hol-guard/README.md +0 -0
  1096. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/devcontainer-features/hol-guard/devcontainer-feature.json +0 -0
  1097. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/devcontainer-features/hol-guard/install.sh +0 -0
  1098. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/distributions/mcpb/manifest.json +0 -0
  1099. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/distributions/mcpb/pyproject.toml +0 -0
  1100. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/distributions/mcpb/server/main.py +0 -0
  1101. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docker-requirements.txt +0 -0
  1102. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/development/mcp-release-trust.md +0 -0
  1103. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/development/workflow-permissions.md +0 -0
  1104. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/SKILL.md +0 -0
  1105. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/adr/0001-mdm-managed-install-contract.md +0 -0
  1106. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/adr/0002-self-protection-authority.md +0 -0
  1107. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/adr/0003-desktop-shell-and-tray-ownership.md +0 -0
  1108. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/adr/0004-extension-control-center-semantics.md +0 -0
  1109. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/adr/0005-protection-center-semantics.md +0 -0
  1110. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/adr/0006-native-rust-runtime-boundary.md +0 -0
  1111. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/adr/0007-native-runtime-packaging.md +0 -0
  1112. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/adr/0008-native-resident-protocol-and-admission.md +0 -0
  1113. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/adr/0009-native-and-daemon-critical-failure.md +0 -0
  1114. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/adr/0010-native-posttool-default-auto.md +0 -0
  1115. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/adr/0011-extension-first-managed-controls.md +0 -0
  1116. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/adr/0012-everyday-and-technical-presentation.md +0 -0
  1117. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/adr/0012-python-hook-capability-cleanup.md +0 -0
  1118. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/adr/0013-native-resident-retirement.md +0 -0
  1119. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/all-harness-hook-review.md +0 -0
  1120. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/architecture.md +0 -0
  1121. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/cline-local-protection-contract.md +0 -0
  1122. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/cline-security-closure.md +0 -0
  1123. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/cline-upstream-evidence.md +0 -0
  1124. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/cloud-command-capability.md +0 -0
  1125. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/command-activity-dashboard-ia.md +0 -0
  1126. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/command-activity-privacy.md +0 -0
  1127. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/command-backup-extension-coverage.md +0 -0
  1128. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/command-cicd-platform-extension-coverage.md +0 -0
  1129. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/command-cloud-extension-coverage.md +0 -0
  1130. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/command-database-extension-coverage.md +0 -0
  1131. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/command-dns-extension-coverage.md +0 -0
  1132. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/command-domain-extension-coverage.md +0 -0
  1133. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/command-extension-architecture.md +0 -0
  1134. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/command-extension-operation-matrix-prd.md +0 -0
  1135. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/command-extension-operation-matrix-todo.md +0 -0
  1136. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/command-extension-precedence.md +0 -0
  1137. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/command-extension-threat-model.md +0 -0
  1138. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/command-framework-extension-coverage.md +0 -0
  1139. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/command-managed-service-extension-coverage.md +0 -0
  1140. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/command-package-extension-coverage.md +0 -0
  1141. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/command-remote-extension-coverage.md +0 -0
  1142. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/command-search-messaging-extension-coverage.md +0 -0
  1143. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/command-storage-extension-coverage.md +0 -0
  1144. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/contracts/guard-cloud-review.md +0 -0
  1145. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/contracts/native-hook-decision-receipt-persistence.v1.md +0 -0
  1146. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/contracts/rust-emergency-safe-profile.v1.json +0 -0
  1147. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/contracts/rust-native-fail-safe-matrix.v1.json +0 -0
  1148. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/contracts/rust-native-reason-codes.v1.json +0 -0
  1149. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/cursor-local-cloud-contract.md +0 -0
  1150. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/declarative-authoring-adr.md +0 -0
  1151. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/declarative-authoring-preview.md +0 -0
  1152. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/desktop-bootstrap-contract.md +0 -0
  1153. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/devin.md +0 -0
  1154. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/enterprise-evaluation-data-boundaries.md +0 -0
  1155. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/enterprise-event-taxonomy.md +0 -0
  1156. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/enterprise-export-examples.md +0 -0
  1157. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/enterprise-packet.md +0 -0
  1158. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/evaluation-cli.md +0 -0
  1159. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/evaluation-contract.md +0 -0
  1160. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/everyday-mode/copy-contract.md +0 -0
  1161. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/everyday-mode/vocabulary.json +0 -0
  1162. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/evidence/declarative-extensions/catalog-parity-proof.v1.json +0 -0
  1163. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/evidence/declarative-extensions/projection-compatibility.v1.json +0 -0
  1164. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/evidence/declarative-extensions/source-compiler-proof.v1.json +0 -0
  1165. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/evidence/native-extensions-main/README.md +0 -0
  1166. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/evidence/native-extensions-main/installed-extensions-linux.json +0 -0
  1167. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/evidence/native-extensions-main/installed-harnesses-linux.json +0 -0
  1168. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/execution-assurance-launch-runbook.md +0 -0
  1169. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/execution-assurance-offline-provider-checklist.md +0 -0
  1170. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/extension-builder/README.md +0 -0
  1171. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/extension-builder/VALIDATION.md +0 -0
  1172. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/extension-builder/examples/cli-surface.json +0 -0
  1173. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/extension-builder/examples/mcp-tools.json +0 -0
  1174. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/extension-contributions.md +0 -0
  1175. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/extension-control-center.md +0 -0
  1176. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/extension-control-recovery.md +0 -0
  1177. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/extensions/README.md +0 -0
  1178. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/extensions/catalog.v1.json +0 -0
  1179. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/extensions/catalog.v2.json +0 -0
  1180. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/extensions/contributing.md +0 -0
  1181. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/extensions/publisher-metadata.md +0 -0
  1182. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/get-started.md +0 -0
  1183. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/github-command-capability-security.md +0 -0
  1184. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/grok-executable-security.md +0 -0
  1185. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/guarded-repository-attestation.md +0 -0
  1186. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/harness-support.md +0 -0
  1187. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/hook-review-engine.md +0 -0
  1188. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/incident-response.md +0 -0
  1189. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/k0s-k0rdent-use-case.md +0 -0
  1190. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/local-cli-allowlist.md +0 -0
  1191. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/local-risk-report-security-review.md +0 -0
  1192. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/local-risk-report-threat-model.md +0 -0
  1193. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/local-risk-report.md +0 -0
  1194. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/local-vs-cloud.md +0 -0
  1195. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/managed-controls/batches/03.json +0 -0
  1196. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/managed-controls/batches/04.json +0 -0
  1197. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/managed-controls/batches/05.json +0 -0
  1198. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/managed-controls/batches/06.json +0 -0
  1199. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/managed-controls/batches/07.json +0 -0
  1200. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/managed-controls/batches/08.json +0 -0
  1201. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/managed-controls/batches/09.json +0 -0
  1202. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/managed-controls/batches/10.json +0 -0
  1203. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/managed-controls/batches/11.json +0 -0
  1204. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/managed-controls/batches/12.json +0 -0
  1205. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/managed-controls/batches/13.json +0 -0
  1206. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/managed-controls/batches/14.json +0 -0
  1207. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/managed-controls/batches/15.json +0 -0
  1208. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/managed-controls/batches/16.json +0 -0
  1209. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/managed-controls/batches/17.json +0 -0
  1210. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/managed-controls-actions-and-limits.md +0 -0
  1211. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/managed-controls-catalog-mismatch-recovery.md +0 -0
  1212. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/managed-controls-cloud-operator-guide.md +0 -0
  1213. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/managed-controls-glossary.md +0 -0
  1214. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/managed-controls-invalid-bundle-incident-runbook.md +0 -0
  1215. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/managed-controls-local-extensions.md +0 -0
  1216. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/managed-controls-policy-migration.md +0 -0
  1217. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/managed-controls-release-notes.md +0 -0
  1218. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/managed-controls-release-runbook.md +0 -0
  1219. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/managed-controls-rollback-runbook.md +0 -0
  1220. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/managed-controls-support-runbook.md +0 -0
  1221. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/managed-controls-threat-model.md +0 -0
  1222. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/managed-controls-vocabulary-inventory.md +0 -0
  1223. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/mcp-server-contributions.md +0 -0
  1224. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/mdm-adapter-contract.md +0 -0
  1225. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/mdm-compatibility-prd.md +0 -0
  1226. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/mdm-compatibility-todo.md +0 -0
  1227. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/mdm-deployment.md +0 -0
  1228. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/mdm-endpoints.v1.json +0 -0
  1229. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/mdm-general-availability-roadmap.md +0 -0
  1230. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/mdm-local-testing.md +0 -0
  1231. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/mdm-networking.md +0 -0
  1232. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/mdm-release-evidence-template.md +0 -0
  1233. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/native-approval-enrollment.md +0 -0
  1234. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/native-command-corpus-contract.md +0 -0
  1235. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/native-hook-capability-cleanup.md +0 -0
  1236. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/native-hook-data-plane-ownership.md +0 -0
  1237. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/native-hook-oracle-retirement.md +0 -0
  1238. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/native-runtime-slo-proof.md +0 -0
  1239. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/network-remediation-readiness.md +0 -0
  1240. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/paseo.md +0 -0
  1241. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/pi-fast-hook-review.md +0 -0
  1242. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/policy-cloud-exceptions-boundary.md +0 -0
  1243. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/policy-extension-fields-v1.md +0 -0
  1244. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/policy-recipes.md +0 -0
  1245. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/privacy-safe-outcome-receipts.md +0 -0
  1246. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/protection-center-implementation-audit.md +0 -0
  1247. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/protection-center-local-tools.md +0 -0
  1248. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/protection-center.md +0 -0
  1249. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/protection-credential-rotation-runbook.md +0 -0
  1250. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/protection-incident-response-runbook.md +0 -0
  1251. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/reference-runtime-selection.md +0 -0
  1252. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/release-3-0-architecture-guarantees.md +0 -0
  1253. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/release-3-0-cloud-control-inventory.md +0 -0
  1254. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/release-3-0-compatibility-evidence.md +0 -0
  1255. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/release-3-0-containment-baseline.md +0 -0
  1256. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/release-3-0-contract-freeze-abuse-review.md +0 -0
  1257. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/release-3-0-contract-freeze.md +0 -0
  1258. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/release-3-0-dx-performance-baseline.md +0 -0
  1259. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/release-3-0-execution-path-inventory.md +0 -0
  1260. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/release-3-0-final-evidence.md +0 -0
  1261. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/release-3-0-harness-grades.md +0 -0
  1262. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/release-3-0-local-core-gate.md +0 -0
  1263. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/release-3-0-main-compatibility.md +0 -0
  1264. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/release-3-0-sandbox-required-consumers.md +0 -0
  1265. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/release-3-0-terminology.md +0 -0
  1266. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/release-3-0-threat-boundary-matrix.md +0 -0
  1267. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/release-3-0-tray-extraction-inventory.md +0 -0
  1268. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/release-3-code-quality-audit.md +0 -0
  1269. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/release-checklist.md +0 -0
  1270. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/remediation.md +0 -0
  1271. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/review-local-queue-contract.md +0 -0
  1272. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/rust-authority-adversarial-review.md +0 -0
  1273. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/rust-daemon-edge-hardening-prd.md +0 -0
  1274. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/rust-daemon-edge-hardening-research.md +0 -0
  1275. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/rust-daemon-edge-hardening-takeaway-prompt.md +0 -0
  1276. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/rust-daemon-edge-hardening-todo.md +0 -0
  1277. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/rust-migration-batch-1-tasks.md +0 -0
  1278. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/rust-migration-batch-2-tasks.md +0 -0
  1279. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/rust-migration-batch-3-tasks.md +0 -0
  1280. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/rust-runtime-hardening-prd.md +0 -0
  1281. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/rust-runtime-hardening-takeaway.md +0 -0
  1282. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/rust-runtime-hardening-todo.md +0 -0
  1283. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/rust-runtime-migration-prd.md +0 -0
  1284. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/rust-runtime-migration-todo.md +0 -0
  1285. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/rust-runtime-threat-model-delta.md +0 -0
  1286. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/schemas/harness-capability-report.v1.schema.json +0 -0
  1287. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/schemas/local-integrity-snapshot-v1.schema.json +0 -0
  1288. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/schemas/mdm-cloud-ack-v1.schema.json +0 -0
  1289. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/schemas/mdm-cloud-config-v1.schema.json +0 -0
  1290. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/schemas/mdm-cloud-enrollment-v1.schema.json +0 -0
  1291. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/schemas/mdm-cloud-health-v1.schema.json +0 -0
  1292. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/schemas/mdm-cloud-lab-report-v1.schema.json +0 -0
  1293. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/schemas/mdm-cloud-remediation-v1.schema.json +0 -0
  1294. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/schemas/mdm-policy-v1.schema.json +0 -0
  1295. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/schemas/mdm-status-v1.schema.json +0 -0
  1296. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/schemas/observer-assertion.v1.schema.json +0 -0
  1297. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/schemas/protection-lease.v1.schema.json +0 -0
  1298. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/schemas/protection-state.v1.schema.json +0 -0
  1299. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/schemas/remediation-job.v1.schema.json +0 -0
  1300. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/schemas/removal-authorization.v1.schema.json +0 -0
  1301. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/schemas/self-protection-common.v1.schema.json +0 -0
  1302. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/secret-reads-and-local-test-execution.md +0 -0
  1303. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/security/sonar-audit-origin-review.json +0 -0
  1304. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/security/sonar-loopback-review.md +0 -0
  1305. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/security/sonar-reviewed-contracts.json +0 -0
  1306. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/self-protection-contract.md +0 -0
  1307. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/self-protection-threat-model.md +0 -0
  1308. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/skill-directory-identity.md +0 -0
  1309. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/strands-agents-integration.md +0 -0
  1310. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/structured-data-classifier.md +0 -0
  1311. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/testing-matrix.md +0 -0
  1312. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/troubleshooting.md +0 -0
  1313. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/trust-attestation-security.md +0 -0
  1314. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard/wave-five-followon-decision-gates.md +0 -0
  1315. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/guard-review-backend-contract.md +0 -0
  1316. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/security/workspace-review-authority-issuance.md +0 -0
  1317. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/trust/mcp-trust-draft.md +0 -0
  1318. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/trust/plugin-trust-draft.md +0 -0
  1319. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/docs/trust/skill-trust-local.md +0 -0
  1320. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/examples/kubernetes/k0s-k0rdent/README.md +0 -0
  1321. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/examples/kubernetes/k0s-k0rdent/demo.sh +0 -0
  1322. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/fuzzers/manifest_fuzzer.py +0 -0
  1323. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/guarded-repository/README.md +0 -0
  1324. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/guarded-repository/action.yml +0 -0
  1325. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/integrations/claude-code-plugin/.claude-plugin/plugin.json +0 -0
  1326. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/integrations/claude-code-plugin/README.md +0 -0
  1327. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/integrations/claude-code-plugin/skills/setup/SKILL.md +0 -0
  1328. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/integrations/claude-code-plugin/skills/status/SKILL.md +0 -0
  1329. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/llms-install.md +0 -0
  1330. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/release-metadata/release-22-installed-evidence.json +0 -0
  1331. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/release-please-config.json +0 -0
  1332. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/requirements.txt +0 -0
  1333. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-command/Cargo.toml +0 -0
  1334. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-command/README.md +0 -0
  1335. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-command/build.rs +0 -0
  1336. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-command/src/bin/guard-command-source.rs +0 -0
  1337. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-command/src/command_argument_semantics.rs +0 -0
  1338. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-command/src/command_ascii_comparison.rs +0 -0
  1339. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-command/src/command_common_cli_matcher_values.rs +0 -0
  1340. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-command/src/command_common_cli_matchers.rs +0 -0
  1341. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-command/src/command_common_cli_matchers_tests.rs +0 -0
  1342. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-command/src/command_compatibility/catalog.rs +0 -0
  1343. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-command/src/command_compatibility/domains.rs +0 -0
  1344. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-command/src/command_compatibility/git.rs +0 -0
  1345. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-command/src/command_compatibility/github.rs +0 -0
  1346. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-command/src/command_compatibility/github_api.rs +0 -0
  1347. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-command/src/command_compatibility/github_options.rs +0 -0
  1348. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-command/src/command_compatibility/interpreter.rs +0 -0
  1349. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-command/src/command_compatibility.rs +0 -0
  1350. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-command/src/command_curl_operations.rs +0 -0
  1351. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-command/src/command_curl_targets.rs +0 -0
  1352. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-command/src/command_database_matchers.rs +0 -0
  1353. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-command/src/command_operand_matchers.rs +0 -0
  1354. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-command/src/command_option_parsing.rs +0 -0
  1355. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-command/src/command_option_parsing_tests.rs +0 -0
  1356. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-command/src/command_option_unicode.rs +0 -0
  1357. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-command/src/command_option_unicode_ranges_a.rs +0 -0
  1358. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-command/src/command_option_unicode_ranges_b.rs +0 -0
  1359. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-command/src/command_reviewed_literal.rs +0 -0
  1360. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-command/src/command_specialized_matchers.rs +0 -0
  1361. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-command/src/command_specialized_matchers_tests.rs +0 -0
  1362. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-command/src/command_specialized_unicode_tests.rs +0 -0
  1363. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-command/src/command_structured_matchers/grammar.rs +0 -0
  1364. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-command/src/command_structured_matchers/tests.rs +0 -0
  1365. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-command/src/command_structured_matchers.rs +0 -0
  1366. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-command/src/executable_flag_contract.rs +0 -0
  1367. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-command/src/lib.rs +0 -0
  1368. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-command/src/native_command_controls.rs +0 -0
  1369. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-command/src/native_command_delegated.rs +0 -0
  1370. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-command/src/native_command_program.rs +0 -0
  1371. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-command/src/native_command_program_admission.rs +0 -0
  1372. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-command/src/native_command_program_bench.rs +0 -0
  1373. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-command/src/native_command_program_compile.rs +0 -0
  1374. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-command/src/native_command_program_evaluation.rs +0 -0
  1375. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-command/src/native_command_program_matrix.rs +0 -0
  1376. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-command/src/native_command_program_observations.rs +0 -0
  1377. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-command/src/native_command_program_tests.rs +0 -0
  1378. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-command/src/native_command_program_wire.rs +0 -0
  1379. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-command/src/native_command_source.rs +0 -0
  1380. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-command/src/native_command_source_capabilities.rs +0 -0
  1381. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-command/src/native_command_source_catalog.rs +0 -0
  1382. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-command/src/native_command_source_contract.rs +0 -0
  1383. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-command/src/native_command_source_evaluation_batch.rs +0 -0
  1384. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-command/src/native_command_source_fixtures.rs +0 -0
  1385. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-command/src/native_command_source_hints.rs +0 -0
  1386. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-command/src/native_command_source_json.rs +0 -0
  1387. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-command/src/native_command_source_matcher.rs +0 -0
  1388. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-command/src/native_command_source_mcp.rs +0 -0
  1389. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-command/src/native_command_source_parity.rs +0 -0
  1390. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-command/src/native_command_source_tests.rs +0 -0
  1391. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-command/src/native_command_source_validation.rs +0 -0
  1392. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-command/src/native_remote_mcp_url_tests.rs +0 -0
  1393. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-command/src/parser_wrappers.rs +0 -0
  1394. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-command/src/pretool/generic.rs +0 -0
  1395. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-command/src/pretool/generic_extract.rs +0 -0
  1396. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-command/src/pretool/generic_result.rs +0 -0
  1397. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-command/src/pretool/safe_reads.rs +0 -0
  1398. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-command/src/pretool/search/glob_class.rs +0 -0
  1399. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-command/src/pretool/search/hint.rs +0 -0
  1400. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-command/src/pretool/search/options.rs +0 -0
  1401. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-command/src/pretool/search.rs +0 -0
  1402. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-command/src/pretool/tests.rs +0 -0
  1403. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-command/src/pretool.rs +0 -0
  1404. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-command/testdata/generate_remaining_matcher_fixtures.py +0 -0
  1405. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-command/testdata/generate_specialized_fixtures.py +0 -0
  1406. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-command/testdata/remaining-matchers.md +0 -0
  1407. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-command/testdata/remaining-matchers.v1.json +0 -0
  1408. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-command/testdata/specialized-matchers.v1.json +0 -0
  1409. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-command/tests/command_compatibility.rs +0 -0
  1410. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-command/tests/compatibility_safe_scope.rs +0 -0
  1411. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-command/tests/fd_execution_boundaries.rs +0 -0
  1412. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-command/tests/fixtures/command-option-parsing-v1.json +0 -0
  1413. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-command/tests/fixtures/command-source-behavior.v1.json +0 -0
  1414. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-command/tests/fixtures/command-source-example.v1.json +0 -0
  1415. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-command/tests/fixtures/common-cli-matchers-v1.json +0 -0
  1416. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-command/tests/fixtures/native-command-compatibility-v1.json +0 -0
  1417. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-command/tests/fixtures/native-command-observations-v1.json +0 -0
  1418. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-command/tests/native_command_source_cli.rs +0 -0
  1419. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-command/tests/pretool_generic.rs +0 -0
  1420. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-command/tests/privileged_wrapper_floor.rs +0 -0
  1421. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-contracts/Cargo.toml +0 -0
  1422. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-contracts/src/approval_contracts.rs +0 -0
  1423. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-contracts/src/approval_contracts_lifecycle_errors.rs +0 -0
  1424. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-contracts/src/approval_v4_contracts.rs +0 -0
  1425. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-contracts/src/native_command_controls.rs +0 -0
  1426. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-contracts/src/native_command_observations.rs +0 -0
  1427. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-contracts/src/native_hook_receipt.rs +0 -0
  1428. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-hook-core/Cargo.toml +0 -0
  1429. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-hook-core/src/lib.rs +0 -0
  1430. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-hook-core/tests/decision_io.rs +0 -0
  1431. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-policy-snapshot/Cargo.toml +0 -0
  1432. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-policy-snapshot/src/lib.rs +0 -0
  1433. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-policy-snapshot/src/observed_mcp.rs +0 -0
  1434. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-policy-snapshot/src/policy_snapshot_canonical.rs +0 -0
  1435. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-policy-snapshot/src/policy_snapshot_crypto.rs +0 -0
  1436. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-policy-snapshot/src/policy_snapshot_tests.rs +0 -0
  1437. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-rule-contract/Cargo.toml +0 -0
  1438. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-rule-contract/src/lib.rs +0 -0
  1439. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-rules/Cargo.toml +0 -0
  1440. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-rules/src/lib.rs +0 -0
  1441. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-runtime/src/approval.rs +0 -0
  1442. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-runtime/src/approval_authority.rs +0 -0
  1443. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-runtime/src/approval_authority_tests.rs +0 -0
  1444. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-runtime/src/approval_context.rs +0 -0
  1445. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-runtime/src/approval_enrollment.rs +0 -0
  1446. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-runtime/src/approval_enrollment_platform.rs +0 -0
  1447. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-runtime/src/approval_replay_memory.rs +0 -0
  1448. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-runtime/src/approval_replay_memory_transition_tests.rs +0 -0
  1449. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-runtime/src/approval_v3_lifecycle_tests.rs +0 -0
  1450. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-runtime/src/approval_v3_tests.rs +0 -0
  1451. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-runtime/src/approval_v4.rs +0 -0
  1452. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-runtime/src/approval_v4_assertion_state.rs +0 -0
  1453. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-runtime/src/approval_v4_authority.rs +0 -0
  1454. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-runtime/src/approval_v4_authority_tests.rs +0 -0
  1455. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-runtime/src/approval_v4_crypto.rs +0 -0
  1456. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-runtime/src/approval_v4_enrollment.rs +0 -0
  1457. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-runtime/src/approval_v4_negative_tests.rs +0 -0
  1458. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-runtime/src/approval_v4_secure_state.rs +0 -0
  1459. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-runtime/src/approval_v4_tests.rs +0 -0
  1460. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-runtime/src/edge.rs +0 -0
  1461. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-runtime/src/edge_tests.rs +0 -0
  1462. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-runtime/src/hardening.rs +0 -0
  1463. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-runtime/src/managed_resident.rs +0 -0
  1464. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-runtime/src/managed_resident_client_stream.rs +0 -0
  1465. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-runtime/src/managed_resident_containment.rs +0 -0
  1466. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-runtime/src/managed_resident_lease.rs +0 -0
  1467. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-runtime/src/managed_resident_lease_identity.rs +0 -0
  1468. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-runtime/src/managed_resident_lease_tests.rs +0 -0
  1469. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-runtime/src/managed_resident_owner_lock.rs +0 -0
  1470. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-runtime/src/managed_resident_stop.rs +0 -0
  1471. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-runtime/src/managed_resident_supervisor.rs +0 -0
  1472. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-runtime/src/managed_resident_tests.rs +0 -0
  1473. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-runtime/src/managed_resident_transport.rs +0 -0
  1474. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-runtime/src/managed_resident_windows.rs +0 -0
  1475. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-runtime/src/native_hook_receipt.rs +0 -0
  1476. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-runtime/src/oneshot.rs +0 -0
  1477. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-runtime/src/policy_enforcement.rs +0 -0
  1478. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-runtime/src/policy_enforcement_admission.rs +0 -0
  1479. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-runtime/src/policy_enforcement_codex_budget_tests.rs +0 -0
  1480. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-runtime/src/policy_enforcement_facts.rs +0 -0
  1481. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-runtime/src/policy_enforcement_facts_tools.rs +0 -0
  1482. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-runtime/src/policy_enforcement_helpers.rs +0 -0
  1483. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-runtime/src/policy_enforcement_matrix.rs +0 -0
  1484. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-runtime/src/policy_enforcement_mcp_provider.rs +0 -0
  1485. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-runtime/src/policy_enforcement_observed_mcp_tests.rs +0 -0
  1486. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-runtime/src/policy_enforcement_policy.rs +0 -0
  1487. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-runtime/src/policy_enforcement_post_tool_tests.rs +0 -0
  1488. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-runtime/src/policy_enforcement_tests.rs +0 -0
  1489. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-runtime/src/policy_store.rs +0 -0
  1490. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-runtime/src/policy_store_approval.rs +0 -0
  1491. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-runtime/src/policy_store_authority.rs +0 -0
  1492. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-runtime/src/policy_store_authority_tests.rs +0 -0
  1493. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-runtime/src/policy_store_command_authority.rs +0 -0
  1494. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-runtime/src/policy_store_command_authority_tests.rs +0 -0
  1495. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-runtime/src/policy_store_command_floor.rs +0 -0
  1496. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-runtime/src/policy_store_command_floor_tests.rs +0 -0
  1497. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-runtime/src/policy_store_fault_tests.rs +0 -0
  1498. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-runtime/src/policy_store_fixture_tests.rs +0 -0
  1499. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-runtime/src/policy_store_migration.rs +0 -0
  1500. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-runtime/src/policy_store_migration_tests.rs +0 -0
  1501. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-runtime/src/policy_store_persistence.rs +0 -0
  1502. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-runtime/src/policy_store_request.rs +0 -0
  1503. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-runtime/src/policy_store_tests.rs +0 -0
  1504. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-runtime/src/policy_store_validation.rs +0 -0
  1505. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-runtime/src/resident_client.rs +0 -0
  1506. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-runtime/src/resident_client_tests.rs +0 -0
  1507. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-runtime/src/resident_endpoint.rs +0 -0
  1508. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-runtime/src/resident_process_identity.rs +0 -0
  1509. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-runtime/src/resident_restart_budget.rs +0 -0
  1510. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-runtime/src/resident_startup_lock.rs +0 -0
  1511. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-runtime/src/resident_state.rs +0 -0
  1512. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-runtime/src/resident_state_discovery.rs +0 -0
  1513. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-runtime/src/resident_state_encoding.rs +0 -0
  1514. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-runtime/src/resident_state_files.rs +0 -0
  1515. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-runtime/src/resident_state_identity.rs +0 -0
  1516. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-runtime/src/resident_state_retirement.rs +0 -0
  1517. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-runtime/src/resident_state_tests.rs +0 -0
  1518. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-runtime/src/resident_state_windows.rs +0 -0
  1519. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-runtime/src/resident_transport.rs +0 -0
  1520. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-runtime/src/resident_transport_service.rs +0 -0
  1521. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-runtime/src/strict_json.rs +0 -0
  1522. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-runtime-windows-process/Cargo.toml +0 -0
  1523. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-runtime-windows-process/src/directory_binding.rs +0 -0
  1524. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-runtime-windows-process/src/lib.rs +0 -0
  1525. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-runtime-windows-process/src/private_files.rs +0 -0
  1526. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-runtime-windows-process/src/process_lifecycle.rs +0 -0
  1527. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-runtime-windows-process/src/windows.rs +0 -0
  1528. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-scanner/Cargo.toml +0 -0
  1529. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-scanner/src/lib.rs +0 -0
  1530. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-secure-fs/Cargo.toml +0 -0
  1531. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-secure-fs/src/lib_tests.rs +0 -0
  1532. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-secure-fs/src/secure_open.rs +0 -0
  1533. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-secure-fs/src/source_path.rs +0 -0
  1534. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/crates/guard-secure-fs/tests/decision_io.rs +0 -0
  1535. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/rust/rust-toolchain.toml +0 -0
  1536. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/schemas/guard_action_explanation_v1.json +0 -0
  1537. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/schemas/plugin-quality.v1.json +0 -0
  1538. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/schemas/scan-result.v1.json +0 -0
  1539. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/schemas/verify-result.v1.json +0 -0
  1540. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/__init__.py +0 -0
  1541. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/approval/issue_workspace_review_authority.py +0 -0
  1542. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/approval/workspace_review_authority_workflow.py +0 -0
  1543. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/bench_guard_native_full_path.py +0 -0
  1544. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/bench_guard_native_installed_slo.py +0 -0
  1545. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/bench_guard_native_installed_slo_runtime.py +0 -0
  1546. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/bench_guard_native_release_gate.py +0 -0
  1547. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/bench_guard_native_runtime.py +0 -0
  1548. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/benchmark_mcp_catalog_scale.py +0 -0
  1549. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/build_native_command_program.py +0 -0
  1550. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/build_native_hol_guard_wheel.py +0 -0
  1551. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/check_privileged_workflows.py +0 -0
  1552. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/ci/__init__.py +0 -0
  1553. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/ci/apply_sonar_audit_review.py +0 -0
  1554. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/ci/build-native-wheel-macos.sh +0 -0
  1555. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/ci/build_pytest_duration_manifest.py +0 -0
  1556. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/ci/build_pytest_shard_plan.py +0 -0
  1557. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/ci/check_evaluation_wheel.py +0 -0
  1558. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/ci/detect_pending_extension_regen.py +0 -0
  1559. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/ci/final_release_evidence.py +0 -0
  1560. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/ci/finish_extension_authority_stability.py +0 -0
  1561. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/ci/generate_release_evidence_contract.py +0 -0
  1562. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/ci/generate_release_notes.py +0 -0
  1563. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/ci/hook_data_plane_ownership_contract.py +0 -0
  1564. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/ci/install-native-proof-dependencies.sh +0 -0
  1565. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/ci/installed_extension_control_center_server.py +0 -0
  1566. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/ci/installed_extension_control_probe.py +0 -0
  1567. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/ci/managed_controls_release_gate.py +0 -0
  1568. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/ci/mutation_gate.py +0 -0
  1569. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/ci/mutation_targets.py +0 -0
  1570. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/ci/native-proof-environment.sh +0 -0
  1571. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/ci/native_approval_contract_gate.py +0 -0
  1572. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/ci/native_receipt_persistence_gate.py +0 -0
  1573. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/ci/native_regression_shard.py +0 -0
  1574. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/ci/parallel_coverage_combine.py +0 -0
  1575. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/ci/parallel_coverage_xml.py +0 -0
  1576. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/ci/prepare_sonar_analysis.sh +0 -0
  1577. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/ci/pytest_duration_manifest.py +0 -0
  1578. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/ci/pytest_duration_report.py +0 -0
  1579. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/ci/pytest_shard.py +0 -0
  1580. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/ci/python_capability_cleanup_analysis.py +0 -0
  1581. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/ci/python_capability_cleanup_core.py +0 -0
  1582. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/ci/python_capability_cleanup_flow.py +0 -0
  1583. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/ci/python_capability_cleanup_gate.py +0 -0
  1584. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/ci/python_capability_cleanup_static.py +0 -0
  1585. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/ci/python_hook_semantic_callgraph_gate.py +0 -0
  1586. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/ci/python_runtime_retirement.py +0 -0
  1587. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/ci/run_mutation_target.py +0 -0
  1588. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/ci/runtime_retirement_ledger.py +0 -0
  1589. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/ci/rust_authority_ownership_gate.py +0 -0
  1590. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/ci/rust_io_ownership_resolver.py +0 -0
  1591. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/ci/rust_io_privacy_gate.py +0 -0
  1592. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/ci/rust_migration_tree_hygiene.py +0 -0
  1593. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/ci/rust_posttool_failclosed_integration.py +0 -0
  1594. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/ci/rust_posttool_failclosed_integration_v2.py +0 -0
  1595. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/ci/rust_pretool_authority_integration.py +0 -0
  1596. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/ci/rust_pretool_no_python_gate.py +0 -0
  1597. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/ci/setup_sonar_rust.sh +0 -0
  1598. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/ci/sonar_findings_report.py +0 -0
  1599. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/ci/test_duplicate_candidates.py +0 -0
  1600. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/ci/test_inventory.py +0 -0
  1601. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/ci/validate_release_artifacts.py +0 -0
  1602. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/ci/verify_extension_builder_install.py +0 -0
  1603. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/ci/verify_installed_release_matrix.py +0 -0
  1604. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/ci/verify_native_command_program.py +0 -0
  1605. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/ci/verify_native_regression_shards.py +0 -0
  1606. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/ci/verify_pi_exact_continuation.py +0 -0
  1607. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/ci/verify_protection_center_artifacts.py +0 -0
  1608. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/ci/verify_release_asset_inventory.py +0 -0
  1609. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/ci/verify_release_workflow_run.py +0 -0
  1610. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/ci/wait_for_pytest_shards.py +0 -0
  1611. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/codex-auto-resume-smoke.py +0 -0
  1612. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/codex_signed_approval_smoke.py +0 -0
  1613. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/command_source_backlog.py +0 -0
  1614. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/compute_alpha_release_version.py +0 -0
  1615. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/compute_main_release_version.py +0 -0
  1616. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/dockerlabs/installed-guard-package-proof.mjs +0 -0
  1617. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/dockerlabs/installed-guard-package.Dockerfile +0 -0
  1618. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/dockerlabs/installed_guard_package_origin.py +0 -0
  1619. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/e2e-cursor-hook-smoke.py +0 -0
  1620. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/export_extension_directory.py +0 -0
  1621. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/generate_guard_daemon_acceptance_report.py +0 -0
  1622. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/generate_native_command_fixtures.py +0 -0
  1623. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/guard_network_remediation_proof.py +0 -0
  1624. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/installed_canary_proof.py +0 -0
  1625. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/installed_canary_test_requirements.txt +0 -0
  1626. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/intake_contribution_pr.py +0 -0
  1627. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/integration/rust_pretool_adversarial.py +0 -0
  1628. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/mdm/Dockerfile.local-lab +0 -0
  1629. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/mdm/Dockerfile.local-lab.dockerignore +0 -0
  1630. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/mdm/cloud-lab/Dockerfile +0 -0
  1631. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/mdm/cloud-lab/README.md +0 -0
  1632. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/mdm/cloud-lab/cloud_service.py +0 -0
  1633. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/mdm/cloud-lab/device_agent.py +0 -0
  1634. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/mdm/cloud-lab/device_base.py +0 -0
  1635. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/mdm/cloud-lab/device_outbox.py +0 -0
  1636. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/mdm/cloud-lab/device_policy.py +0 -0
  1637. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/mdm/cloud-lab/device_remediation.py +0 -0
  1638. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/mdm/cloud-lab/device_runtime.py +0 -0
  1639. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/mdm/cloud-lab/device_support.py +0 -0
  1640. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/mdm/cloud-lab/docker-compose.yml +0 -0
  1641. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/mdm/cloud-lab/fault_proxy.py +0 -0
  1642. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/mdm/cloud-lab/lab_common.py +0 -0
  1643. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/mdm/cloud-lab/lab_server.py +0 -0
  1644. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/mdm/cloud-lab/lab_store.py +0 -0
  1645. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/mdm/cloud-lab/lab_store_base.py +0 -0
  1646. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/mdm/cloud-lab/lab_store_policy.py +0 -0
  1647. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/mdm/cloud-lab/lab_store_remediation.py +0 -0
  1648. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/mdm/cloud-lab/lab_support.py +0 -0
  1649. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/mdm/cloud-lab/orchestrator.py +0 -0
  1650. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/mdm/cloud-lab/orchestrator_initial_remediation.py +0 -0
  1651. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/mdm/cloud-lab/orchestrator_initial_resilience.py +0 -0
  1652. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/mdm/cloud-lab/orchestrator_initial_rollout.py +0 -0
  1653. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/mdm/cloud-lab/orchestrator_support.py +0 -0
  1654. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/mdm/generate-release-manifest.py +0 -0
  1655. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/mdm/generate-sbom.py +0 -0
  1656. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/mdm/hol-guard-entry.py +0 -0
  1657. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/mdm/macos/activate-current-user.sh +0 -0
  1658. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/mdm/macos/build-pkg.sh +0 -0
  1659. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/mdm/macos/deactivate-user.sh +0 -0
  1660. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/mdm/macos/detect.sh +0 -0
  1661. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/mdm/macos/device-key-helper.swift +0 -0
  1662. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/mdm/macos/org.hol.guard.machine-health.plist +0 -0
  1663. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/mdm/macos/org.hol.guard.user-activation.plist +0 -0
  1664. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/mdm/macos/pkg-scripts/postinstall +0 -0
  1665. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/mdm/macos/pkg-scripts/preinstall +0 -0
  1666. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/mdm/macos/register-current-user-coverage.sh +0 -0
  1667. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/mdm/macos/uninstall.sh +0 -0
  1668. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/mdm/run-cloud-integration-lab.py +0 -0
  1669. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/mdm/run-local-lab-container.py +0 -0
  1670. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/mdm/run-local-lab.py +0 -0
  1671. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/mdm/windows/activate-user.ps1 +0 -0
  1672. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/mdm/windows/authorize-deactivation.ps1 +0 -0
  1673. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/mdm/windows/build-msi.ps1 +0 -0
  1674. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/mdm/windows/deactivate-user.ps1 +0 -0
  1675. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/mdm/windows/detect.ps1 +0 -0
  1676. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/mdm/windows/device-key-helper.ps1 +0 -0
  1677. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/mdm/windows/hol-guard.wxs +0 -0
  1678. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/mdm/windows/register-user-coverage.ps1 +0 -0
  1679. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/mdm/windows/unregister-user-coverage.ps1 +0 -0
  1680. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/mdm/windows/verify-msi-acls.ps1 +0 -0
  1681. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/mdm/windows/verify-msi-supervisor.ps1 +0 -0
  1682. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/mdm/windows/write-version-info.py +0 -0
  1683. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/mdm/write-release-evidence.py +0 -0
  1684. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/migrate_command_extension_sources.py +0 -0
  1685. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/native_probe_receipts.py +0 -0
  1686. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/native_release_reporting.py +0 -0
  1687. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/native_slo_adapter.py +0 -0
  1688. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/native_slo_baseline.py +0 -0
  1689. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/native_slo_capacity.py +0 -0
  1690. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/native_slo_contract.py +0 -0
  1691. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/native_slo_reporting.py +0 -0
  1692. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/native_slo_session.py +0 -0
  1693. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/notify_merged_extension_claimants.py +0 -0
  1694. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/prepare_extension_contribution.py +0 -0
  1695. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/pypi_project_storage.py +0 -0
  1696. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/refresh_extension_artifacts.py +0 -0
  1697. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/release/authorize_macos_core_source.sh +0 -0
  1698. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/release/desktop_core_alpha_feed.py +0 -0
  1699. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/release/fix_pyinstaller_macos_exe_headers.py +0 -0
  1700. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/release/read_publish_attestation_commit.py +0 -0
  1701. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/release/seal_pyinstaller_native_manifest.py +0 -0
  1702. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/release/stage_guard_cloud_review_artifacts.py +0 -0
  1703. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/release/stage_native_runtime_for_desktop_core.py +0 -0
  1704. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/release/verify_desktop_core_attestation.py +0 -0
  1705. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/release/verify_onedir_activation_under_load.py +0 -0
  1706. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/release/verify_pyinstaller_macos_signing.py +0 -0
  1707. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/release/verify_pyinstaller_native_runtime.py +0 -0
  1708. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/release_registry_list.py +0 -0
  1709. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/release_registry_retry.py +0 -0
  1710. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/release_registry_types.py +0 -0
  1711. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/release_unpublished_alpha_reservation.sh +0 -0
  1712. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/render_command_extension_directory.py +0 -0
  1713. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/render_harness_capability_report.py +0 -0
  1714. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/reserve_alpha_tag.sh +0 -0
  1715. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/retry_verify_published.py +0 -0
  1716. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/run-cloud-exception-sync-proof.sh +0 -0
  1717. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/run-policy-cloud-exceptions-release-audit.sh +0 -0
  1718. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/run_installed_bounded_outage.py +0 -0
  1719. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/run_installed_codex_outage.py +0 -0
  1720. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/run_installed_cursor_outage.py +0 -0
  1721. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/run_installed_cursor_parsed_outage.py +0 -0
  1722. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/run_installed_native_corpus.py +0 -0
  1723. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/select_installed_native_wheel.py +0 -0
  1724. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/stable_release_asset_repair.py +0 -0
  1725. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/stress_guard_daemon.py +0 -0
  1726. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/stress_guard_daemon_runtime.py +0 -0
  1727. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/sync_repo_version.py +0 -0
  1728. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/update_awesome_codex_plugins_contributing.py +0 -0
  1729. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/validate_alpha_release.py +0 -0
  1730. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/verify_codex_approval_browser.cjs +0 -0
  1731. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/verify_guard_wheel_entrypoints.py +0 -0
  1732. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/verify_native_runtime_release.py +0 -0
  1733. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/verify_release_registry.py +0 -0
  1734. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/scripts/write_release_toolchain_sbom.py +0 -0
  1735. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/security-insights.yml +0 -0
  1736. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/server.json +0 -0
  1737. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/sonar-project.properties +0 -0
  1738. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/spec/guard-policy/README.md +0 -0
  1739. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/spec/guard-policy/legacy-removal-prd.md +0 -0
  1740. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/spec/guard-policy/v1alpha1/README.md +0 -0
  1741. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/spec/guard-policy/v1alpha1/architecture-decision.md +0 -0
  1742. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/spec/guard-policy/v1alpha1/canonicalization.md +0 -0
  1743. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/spec/guard-policy/v1alpha1/compatibility.md +0 -0
  1744. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/spec/guard-policy/v1alpha1/fixtures/decisions/precedence.json +0 -0
  1745. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/spec/guard-policy/v1alpha1/fixtures/hashes/basic.json +0 -0
  1746. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/spec/guard-policy/v1alpha1/fixtures/hashes/legacy-bundle-v1.json +0 -0
  1747. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/spec/guard-policy/v1alpha1/fixtures/invalid/anchor-alias.yaml +0 -0
  1748. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/spec/guard-policy/v1alpha1/fixtures/invalid/custom-tag.yaml +0 -0
  1749. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/spec/guard-policy/v1alpha1/fixtures/invalid/duplicate-key.yaml +0 -0
  1750. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/spec/guard-policy/v1alpha1/fixtures/invalid/duplicate-rule-id.yaml +0 -0
  1751. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/spec/guard-policy/v1alpha1/fixtures/invalid/empty-matcher-array.yaml +0 -0
  1752. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/spec/guard-policy/v1alpha1/fixtures/invalid/invalid-timestamp.yaml +0 -0
  1753. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/spec/guard-policy/v1alpha1/fixtures/invalid/merge-key.yaml +0 -0
  1754. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/spec/guard-policy/v1alpha1/fixtures/invalid/raw-secret.yaml +0 -0
  1755. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/spec/guard-policy/v1alpha1/fixtures/invalid/unknown-core-field.yaml +0 -0
  1756. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/spec/guard-policy/v1alpha1/fixtures/manifest.json +0 -0
  1757. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/spec/guard-policy/v1alpha1/fixtures/valid/basic.yaml +0 -0
  1758. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/spec/guard-policy/v1alpha1/fixtures/valid/extensions-and-scalars.yaml +0 -0
  1759. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/spec/guard-policy/v1alpha1/operator-runbook.md +0 -0
  1760. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/spec/guard-policy/v1alpha1/rfc.md +0 -0
  1761. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/spec/guard-policy/v1alpha1/rollback-runbook.md +0 -0
  1762. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/spec/guard-policy/v1alpha1/schema-compatibility-runbook.md +0 -0
  1763. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/spec/guard-policy/v1alpha1/schema.json +0 -0
  1764. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/spec/guard-policy/v1alpha1/semantics.md +0 -0
  1765. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/spec/guard-policy/v1alpha1/threat-model.md +0 -0
  1766. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/__init__.py +0 -0
  1767. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/_scanner_commands.py +0 -0
  1768. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/action_environment.py +0 -0
  1769. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/action_runner.py +0 -0
  1770. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/argparse_utils.py +0 -0
  1771. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/checks/__init__.py +0 -0
  1772. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/checks/best_practices.py +0 -0
  1773. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/checks/claude.py +0 -0
  1774. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/checks/code_quality.py +0 -0
  1775. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/checks/deepseek_harness.py +0 -0
  1776. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/checks/ecosystem_common.py +0 -0
  1777. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/checks/gemini.py +0 -0
  1778. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/checks/kimi.py +0 -0
  1779. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/checks/kimi_support.py +0 -0
  1780. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/checks/manifest.py +0 -0
  1781. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/checks/manifest_support.py +0 -0
  1782. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/checks/marketplace.py +0 -0
  1783. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/checks/mcp_security.py +0 -0
  1784. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/checks/opencode.py +0 -0
  1785. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/checks/operational_security.py +0 -0
  1786. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/checks/security.py +0 -0
  1787. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/checks/security_failures.py +0 -0
  1788. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/checks/security_secret_patterns.py +0 -0
  1789. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/checks/skill_command_urls.py +0 -0
  1790. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/checks/skill_security.py +0 -0
  1791. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/cli.py +0 -0
  1792. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/cli_ui.py +0 -0
  1793. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/config.py +0 -0
  1794. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/deepseek_harness_support.py +0 -0
  1795. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/ecosystems/__init__.py +0 -0
  1796. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/ecosystems/_json_support.py +0 -0
  1797. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/ecosystems/base.py +0 -0
  1798. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/ecosystems/claude.py +0 -0
  1799. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/ecosystems/codex.py +0 -0
  1800. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/ecosystems/deepseek_harness.py +0 -0
  1801. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/ecosystems/detect.py +0 -0
  1802. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/ecosystems/gemini.py +0 -0
  1803. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/ecosystems/kimi.py +0 -0
  1804. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/ecosystems/opencode.py +0 -0
  1805. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/ecosystems/registry.py +0 -0
  1806. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/ecosystems/types.py +0 -0
  1807. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/github_reporting.py +0 -0
  1808. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/github_request.py +0 -0
  1809. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/__init__.py +0 -0
  1810. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/access_graph_events.py +0 -0
  1811. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/action_lattice.py +0 -0
  1812. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/adapters/__init__.py +0 -0
  1813. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/adapters/adapter_safe_output.py +0 -0
  1814. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/adapters/adapter_state_integrity.py +0 -0
  1815. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/adapters/antigravity.py +0 -0
  1816. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/adapters/base.py +0 -0
  1817. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/adapters/bounded_cli_hook_bridge.py +0 -0
  1818. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/adapters/bounded_cli_hook_daemon.py +0 -0
  1819. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/adapters/bounded_cli_hook_failure.py +0 -0
  1820. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/adapters/bounded_cli_hook_script_template.py +0 -0
  1821. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/adapters/capability_report.py +0 -0
  1822. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/adapters/claude_code.py +0 -0
  1823. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/adapters/claude_daemon_hook_bridge.py +0 -0
  1824. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/adapters/claude_daemon_hook_transport.py +0 -0
  1825. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/adapters/claude_daemon_state.py +0 -0
  1826. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/adapters/claude_hook_argv.py +0 -0
  1827. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/adapters/claude_hook_config.py +0 -0
  1828. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/adapters/cline.py +0 -0
  1829. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/adapters/cline_bridge.py +0 -0
  1830. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/adapters/cline_contract.py +0 -0
  1831. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/adapters/cline_detection.py +0 -0
  1832. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/adapters/cline_hook_payload.py +0 -0
  1833. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/adapters/cline_hooks.py +0 -0
  1834. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/adapters/cline_mcp.py +0 -0
  1835. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/adapters/cline_paths.py +0 -0
  1836. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/adapters/cline_plugin.py +0 -0
  1837. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/adapters/cline_plugin_probe.py +0 -0
  1838. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/adapters/cline_state_paths.py +0 -0
  1839. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/adapters/cloud_identity.py +0 -0
  1840. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/adapters/codex.py +0 -0
  1841. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/adapters/codex_daemon_hook_auth.py +0 -0
  1842. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/adapters/codex_daemon_hook_bridge.py +0 -0
  1843. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/adapters/codex_daemon_hook_bridge_flow.py +0 -0
  1844. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/adapters/codex_daemon_hook_resume.py +0 -0
  1845. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/adapters/codex_daemon_hook_transport.py +0 -0
  1846. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/adapters/codex_remote_control.py +0 -0
  1847. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/adapters/contract_models.py +0 -0
  1848. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/adapters/contract_rendering.py +0 -0
  1849. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/adapters/contracts.py +0 -0
  1850. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/adapters/copilot.py +0 -0
  1851. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/adapters/copilot_state_paths.py +0 -0
  1852. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/adapters/cursor.py +0 -0
  1853. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/adapters/cursor_cli.py +0 -0
  1854. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/adapters/cursor_hook_config.py +0 -0
  1855. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/adapters/cursor_hook_guard_cli.py +0 -0
  1856. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/adapters/cursor_hook_payload.py +0 -0
  1857. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/adapters/cursor_hook_script_template_head.py +0 -0
  1858. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/adapters/cursor_hook_script_template_reason.py +0 -0
  1859. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/adapters/cursor_hook_script_template_tail.py +0 -0
  1860. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/adapters/cursor_hooks.py +0 -0
  1861. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/adapters/cursor_native_approval.py +0 -0
  1862. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/adapters/cursor_path_cleanup.py +0 -0
  1863. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/adapters/desktop_hook_proxy.py +0 -0
  1864. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/adapters/devin.py +0 -0
  1865. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/adapters/devin_config.py +0 -0
  1866. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/adapters/devin_hooks.py +0 -0
  1867. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/adapters/diagnostic_probes.py +0 -0
  1868. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/adapters/gemini.py +0 -0
  1869. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/adapters/grok.py +0 -0
  1870. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/adapters/grok_approval_resume.py +0 -0
  1871. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/adapters/grok_config.py +0 -0
  1872. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/adapters/grok_executable.py +0 -0
  1873. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/adapters/grok_hooks.py +0 -0
  1874. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/adapters/guard_cli_attestation.py +0 -0
  1875. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/adapters/harness_mcp_discovery.py +0 -0
  1876. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/adapters/hermes.py +0 -0
  1877. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/adapters/hermes_file_inspection.py +0 -0
  1878. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/adapters/hermes_runtime_hooks.py +0 -0
  1879. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/adapters/hermes_state_paths.py +0 -0
  1880. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/adapters/hook_group_merge.py +0 -0
  1881. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/adapters/hook_payloads.py +0 -0
  1882. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/adapters/hook_python.py +0 -0
  1883. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/adapters/hook_python_probe_code.py +0 -0
  1884. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/adapters/hook_python_subprocess.py +0 -0
  1885. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/adapters/kimi.py +0 -0
  1886. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/adapters/kimi_hooks.py +0 -0
  1887. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/adapters/mcp_servers.py +0 -0
  1888. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/adapters/openclaw.py +0 -0
  1889. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/adapters/openclaw_config.py +0 -0
  1890. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/adapters/openclaw_mcp_inventory.py +0 -0
  1891. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/adapters/openclaw_support.py +0 -0
  1892. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/adapters/opencode.py +0 -0
  1893. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/adapters/opencode_artifacts.py +0 -0
  1894. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/adapters/opencode_config_lock.py +0 -0
  1895. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/adapters/opencode_install_snapshot.py +0 -0
  1896. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/adapters/opencode_pretool.py +0 -0
  1897. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/adapters/opencode_pretool_template.py +0 -0
  1898. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/adapters/opencode_process_template.py +0 -0
  1899. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/adapters/opencode_proxy_refresh.py +0 -0
  1900. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/adapters/opencode_v2_entrypoint.py +0 -0
  1901. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/adapters/paseo.py +0 -0
  1902. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/adapters/paseo_config.py +0 -0
  1903. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/adapters/paseo_install.py +0 -0
  1904. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/adapters/pi.py +0 -0
  1905. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/adapters/pi_extension_approval_source.py +0 -0
  1906. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/adapters/pi_extension_cli_runtime_source.py +0 -0
  1907. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/adapters/pi_extension_content_source.py +0 -0
  1908. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/adapters/pi_extension_runtime_ownership.py +0 -0
  1909. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/adapters/pi_extension_source.py +0 -0
  1910. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/adapters/pi_hooks.py +0 -0
  1911. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/adapters/pi_support.py +0 -0
  1912. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/adapters/state_files.py +0 -0
  1913. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/adapters/workspace_overrides.py +0 -0
  1914. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/adapters/zcode.py +0 -0
  1915. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/adapters/zcode_config.py +0 -0
  1916. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/adapters/zcode_hooks.py +0 -0
  1917. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/advisory_model.py +0 -0
  1918. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/agent-safety-guidance.md +0 -0
  1919. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/agent_safety_guidance.py +0 -0
  1920. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/aibom_cli.py +0 -0
  1921. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/aibom_cloud_contract.py +0 -0
  1922. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/aibom_collection.py +0 -0
  1923. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/aibom_commands.py +0 -0
  1924. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/aibom_content_upload.py +0 -0
  1925. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/aibom_detection.py +0 -0
  1926. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/aibom_models.py +0 -0
  1927. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/aibom_reporting.py +0 -0
  1928. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/aibom_symlink.py +0 -0
  1929. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/aibom_sync.py +0 -0
  1930. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/aibom_trust_metadata.py +0 -0
  1931. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/approval_gate.py +0 -0
  1932. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/approval_gate_state.py +0 -0
  1933. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/approval_hook_copy.py +0 -0
  1934. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/approval_link_output.py +0 -0
  1935. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/approval_once_eligibility.py +0 -0
  1936. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/approval_resolution.py +0 -0
  1937. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/approval_scope_support.py +0 -0
  1938. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/approvals.py +0 -0
  1939. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/artifact_identity.py +0 -0
  1940. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/bridge/__init__.py +0 -0
  1941. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/browser_opener.py +0 -0
  1942. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/capabilities.py +0 -0
  1943. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/cli/__init__.py +0 -0
  1944. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/cli/_commands_shared.py +0 -0
  1945. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/cli/approval_commands.py +0 -0
  1946. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/cli/approval_gate_prompt.py +0 -0
  1947. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/cli/bootstrap.py +0 -0
  1948. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/cli/codex_live_hook_completion.py +0 -0
  1949. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/cli/codex_output_safety.py +0 -0
  1950. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/cli/commands.py +0 -0
  1951. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/cli/commands_contained_write.py +0 -0
  1952. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/cli/commands_dispatch_admin.py +0 -0
  1953. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/cli/commands_dispatch_cloud.py +0 -0
  1954. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/cli/commands_dispatch_cloud_review.py +0 -0
  1955. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/cli/commands_dispatch_desktop.py +0 -0
  1956. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/cli/commands_dispatch_local.py +0 -0
  1957. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/cli/commands_dispatch_mdm.py +0 -0
  1958. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/cli/commands_dispatch_policy_document.py +0 -0
  1959. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/cli/commands_dispatch_proxy.py +0 -0
  1960. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/cli/commands_dispatch_records.py +0 -0
  1961. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/cli/commands_dispatch_risk_report.py +0 -0
  1962. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/cli/commands_dispatch_trust.py +0 -0
  1963. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/cli/commands_hook.py +0 -0
  1964. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/cli/commands_hook_github_workflow.py +0 -0
  1965. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/cli/commands_hook_local_cli.py +0 -0
  1966. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/cli/commands_hook_native_claude.py +0 -0
  1967. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/cli/commands_hook_native_compat.py +0 -0
  1968. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/cli/commands_hook_native_copilot.py +0 -0
  1969. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/cli/commands_hook_native_eval.py +0 -0
  1970. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/cli/commands_hook_native_finish.py +0 -0
  1971. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/cli/commands_hook_native_floor.py +0 -0
  1972. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/cli/commands_hook_native_generic.py +0 -0
  1973. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/cli/commands_hook_native_pipeline.py +0 -0
  1974. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/cli/commands_hook_native_prepare.py +0 -0
  1975. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/cli/commands_hook_native_review.py +0 -0
  1976. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/cli/commands_hook_native_state.py +0 -0
  1977. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/cli/commands_isolation.py +0 -0
  1978. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/cli/commands_lifecycle_gate.py +0 -0
  1979. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/cli/commands_parser.py +0 -0
  1980. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/cli/commands_parser_cloud.py +0 -0
  1981. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/cli/commands_parser_cloud_review.py +0 -0
  1982. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/cli/commands_parser_desktop.py +0 -0
  1983. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/cli/commands_parser_helpers.py +0 -0
  1984. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/cli/commands_parser_local.py +0 -0
  1985. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/cli/commands_parser_mdm.py +0 -0
  1986. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/cli/commands_parser_policy.py +0 -0
  1987. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/cli/commands_parser_risk_report.py +0 -0
  1988. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/cli/commands_preflight.py +0 -0
  1989. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/cli/commands_router.py +0 -0
  1990. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/cli/commands_support.py +0 -0
  1991. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/cli/commands_support_apply_patch_policy.py +0 -0
  1992. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/cli/commands_support_browser_wait.py +0 -0
  1993. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/cli/commands_support_claude_approval.py +0 -0
  1994. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/cli/commands_support_codex_commands.py +0 -0
  1995. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/cli/commands_support_codex_git.py +0 -0
  1996. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/cli/commands_support_codex_git_config.py +0 -0
  1997. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/cli/commands_support_codex_paths.py +0 -0
  1998. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/cli/commands_support_codex_prompt_attachments.py +0 -0
  1999. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/cli/commands_support_codex_reads.py +0 -0
  2000. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/cli/commands_support_codex_tool_output.py +0 -0
  2001. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/cli/commands_support_codex_tool_output_messages.py +0 -0
  2002. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/cli/commands_support_command_activity.py +0 -0
  2003. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/cli/commands_support_compound_decision.py +0 -0
  2004. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/cli/commands_support_connect.py +0 -0
  2005. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/cli/commands_support_hook_payload.py +0 -0
  2006. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/cli/commands_support_hook_payload_loader.py +0 -0
  2007. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/cli/commands_support_hook_state.py +0 -0
  2008. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/cli/commands_support_interaction.py +0 -0
  2009. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/cli/commands_support_native_search.py +0 -0
  2010. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/cli/commands_support_observe_queue.py +0 -0
  2011. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/cli/commands_support_permission_store.py +0 -0
  2012. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/cli/commands_support_prompts.py +0 -0
  2013. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/cli/commands_support_runtime_artifact_policy.py +0 -0
  2014. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/cli/commands_support_runtime_artifacts.py +0 -0
  2015. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/cli/commands_support_runtime_policy.py +0 -0
  2016. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/cli/commands_support_runtime_resolution.py +0 -0
  2017. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/cli/commands_support_service.py +0 -0
  2018. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/cli/commands_support_workspace.py +0 -0
  2019. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/cli/commands_verified_read.py +0 -0
  2020. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/cli/connect_flow.py +0 -0
  2021. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/cli/connect_sync_result.py +0 -0
  2022. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/cli/cursor_actions.py +0 -0
  2023. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/cli/daemon_serve.py +0 -0
  2024. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/cli/dashboard_sync.py +0 -0
  2025. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/cli/desktop_bootstrap.py +0 -0
  2026. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/cli/docs.py +0 -0
  2027. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/cli/doctor_incident.py +0 -0
  2028. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/cli/doctor_native_runtime.py +0 -0
  2029. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/cli/doctor_readiness.py +0 -0
  2030. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/cli/extension_builder_commands.py +0 -0
  2031. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/cli/extension_controls_commands.py +0 -0
  2032. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/cli/grok_hook_validation.py +0 -0
  2033. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/cli/install_commands.py +0 -0
  2034. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/cli/install_dry_run.py +0 -0
  2035. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/cli/install_targets.py +0 -0
  2036. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/cli/managed_install_context.py +0 -0
  2037. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/cli/managed_install_payload.py +0 -0
  2038. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/cli/native_install_checks.py +0 -0
  2039. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/cli/network_status_command.py +0 -0
  2040. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/cli/oauth_client.py +0 -0
  2041. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/cli/oauth_credential_persistence.py +0 -0
  2042. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/cli/product.py +0 -0
  2043. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/cli/progress.py +0 -0
  2044. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/cli/prompt.py +0 -0
  2045. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/cli/protect_approvals.py +0 -0
  2046. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/cli/protect_output.py +0 -0
  2047. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/cli/remote_pair_flow.py +0 -0
  2048. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/cli/render.py +0 -0
  2049. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/cli/render_doctor_readiness.py +0 -0
  2050. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/cli/render_uninstall.py +0 -0
  2051. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/cli/trust_install_surface.py +0 -0
  2052. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/cli/uninstall_commands.py +0 -0
  2053. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/cli/update_artifact.py +0 -0
  2054. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/cli/update_commands.py +0 -0
  2055. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/cli/update_desktop_apply.py +0 -0
  2056. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/cli/update_desktop_core.py +0 -0
  2057. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/cli/update_grok_repair.py +0 -0
  2058. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/cli/update_install_verify.py +0 -0
  2059. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/cli/update_opencode.py +0 -0
  2060. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/cli/update_release_candidates.py +0 -0
  2061. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/cli/update_subprocess.py +0 -0
  2062. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/cloud_audit_request.py +0 -0
  2063. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/cloud_entitlements.py +0 -0
  2064. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/cloud_exception_requests.py +0 -0
  2065. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/cloud_exceptions.py +0 -0
  2066. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/codex_app_server.py +0 -0
  2067. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/codex_app_server_target.py +0 -0
  2068. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/codex_config.py +0 -0
  2069. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/codex_hook_bridge_runtime.py +0 -0
  2070. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/codex_hook_compatibility.py +0 -0
  2071. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/codex_hook_file_integrity.py +0 -0
  2072. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/codex_hook_health.py +0 -0
  2073. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/codex_hook_identity.py +0 -0
  2074. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/codex_hook_integrity.py +0 -0
  2075. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/codex_hook_inventory.py +0 -0
  2076. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/codex_hook_launch_runtime.py +0 -0
  2077. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/codex_hook_manifest.py +0 -0
  2078. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/codex_hook_package_identity.py +0 -0
  2079. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/codex_hook_process_runtime.py +0 -0
  2080. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/codex_hook_registration.py +0 -0
  2081. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/codex_hook_runtime_trust.py +0 -0
  2082. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/codex_hook_sources.py +0 -0
  2083. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/codex_hook_windows_job.py +0 -0
  2084. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/codex_live_decision.py +0 -0
  2085. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/codex_live_decision_revalidation.py +0 -0
  2086. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/codex_live_hook_target.py +0 -0
  2087. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/codex_resume.py +0 -0
  2088. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/codex_resume_response.py +0 -0
  2089. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/codex_skill_config.py +0 -0
  2090. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/collections_support.py +0 -0
  2091. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/config.py +0 -0
  2092. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/config_file_io.py +0 -0
  2093. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/config_mutation.py +0 -0
  2094. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/config_preset_support.py +0 -0
  2095. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/consumer/__init__.py +0 -0
  2096. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/consumer/service.py +0 -0
  2097. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/contained_node_execution.py +0 -0
  2098. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/contained_package_script_execution.py +0 -0
  2099. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/contained_typescript_execution.py +0 -0
  2100. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/contained_workspace_write_execution.py +0 -0
  2101. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/containment_execution_support.py +0 -0
  2102. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/continuation_contract.py +0 -0
  2103. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/continuation_payload.py +0 -0
  2104. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/continuation_runtime.py +0 -0
  2105. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/continuation_snapshot.py +0 -0
  2106. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/continuation_worker.py +0 -0
  2107. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/contract_validation.py +0 -0
  2108. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/contracts/__init__.py +0 -0
  2109. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/contracts/guard_cloud_review.py +0 -0
  2110. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/contracts/supply_chain_decision_evidence_v1.py +0 -0
  2111. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/cursor_hook_health.py +0 -0
  2112. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/cursor_hook_rebind.py +0 -0
  2113. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/daemon/__init__.py +0 -0
  2114. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/daemon/aibom_inventory_persist.py +0 -0
  2115. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/daemon/bounded_http.py +0 -0
  2116. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/daemon/client.py +0 -0
  2117. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/daemon/cloud_review_settings.py +0 -0
  2118. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/daemon/cloud_review_settings_route.py +0 -0
  2119. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/daemon/command_activity_api.py +0 -0
  2120. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/daemon/command_queue_worker.py +0 -0
  2121. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/daemon/dashboard_reconnect.py +0 -0
  2122. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/daemon/dashboard_update.py +0 -0
  2123. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/daemon/dashboard_update_runner.py +0 -0
  2124. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/daemon/diagnostics.py +0 -0
  2125. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/daemon/discovery.py +0 -0
  2126. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/daemon/extension_control_api.py +0 -0
  2127. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/daemon/extension_control_errors.py +0 -0
  2128. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/daemon/extension_control_projection.py +0 -0
  2129. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/daemon/extension_control_request.py +0 -0
  2130. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/daemon/extension_control_semantic_preview.py +0 -0
  2131. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/daemon/extension_control_test_api.py +0 -0
  2132. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/daemon/file_locking.py +0 -0
  2133. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/daemon/first_cloud_sync.py +0 -0
  2134. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/daemon/hook_availability_floor.py +0 -0
  2135. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/daemon/hook_launcher_recovery.py +0 -0
  2136. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/daemon/hook_metrics.py +0 -0
  2137. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/daemon/hook_native_review_approval.py +0 -0
  2138. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/daemon/hook_native_review_binding.py +0 -0
  2139. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/daemon/hook_native_review_fence.py +0 -0
  2140. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/daemon/hook_policy_repair.py +0 -0
  2141. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/daemon/hook_process_capacity.py +0 -0
  2142. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/daemon/hook_process_creation.py +0 -0
  2143. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/daemon/hook_process_entrypoint.py +0 -0
  2144. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/daemon/hook_process_metrics.py +0 -0
  2145. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/daemon/hook_process_protocol.py +0 -0
  2146. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/daemon/hook_process_request.py +0 -0
  2147. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/daemon/hook_process_runner.py +0 -0
  2148. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/daemon/hook_process_runner_lifecycle.py +0 -0
  2149. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/daemon/hook_process_slot_review.py +0 -0
  2150. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/daemon/hook_process_spawner.py +0 -0
  2151. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/daemon/hook_process_worker.py +0 -0
  2152. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/daemon/hook_request_auth.py +0 -0
  2153. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/daemon/hook_request_parsing.py +0 -0
  2154. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/daemon/hook_worker_responses.py +0 -0
  2155. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/daemon/lifecycle_journal.py +0 -0
  2156. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/daemon/live_identity.py +0 -0
  2157. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/daemon/local_approval_continuation.py +0 -0
  2158. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/daemon/local_cli_continuity_api.py +0 -0
  2159. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/daemon/local_cli_http.py +0 -0
  2160. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/daemon/local_cli_mcp_store.py +0 -0
  2161. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/daemon/managed_controls_api.py +0 -0
  2162. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/daemon/managed_policy_delivery.py +0 -0
  2163. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/daemon/mcp_discovery_jobs.py +0 -0
  2164. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/daemon/orphaned_daemon_workers.py +0 -0
  2165. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/daemon/policy_authority_api.py +0 -0
  2166. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/daemon/policy_authority_client.py +0 -0
  2167. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/daemon/protection_repair_retry.py +0 -0
  2168. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/daemon/protection_repair_stages.py +0 -0
  2169. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/daemon/recovery_lifecycle.py +0 -0
  2170. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/daemon/recovery_worker.py +0 -0
  2171. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/daemon/request_executor.py +0 -0
  2172. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/daemon/runtime_heartbeat.py +0 -0
  2173. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/daemon/runtime_hook_deadline.py +0 -0
  2174. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/daemon/runtime_hook_evidence_journal.py +0 -0
  2175. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/daemon/runtime_hook_evidence_writer.py +0 -0
  2176. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/daemon/runtime_hook_mcp_evidence.py +0 -0
  2177. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/daemon/runtime_hook_scheduler.py +0 -0
  2178. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/daemon/runtime_hook_scheduler_contracts.py +0 -0
  2179. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/daemon/runtime_hook_scheduler_types.py +0 -0
  2180. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/daemon/runtime_hook_work_item.py +0 -0
  2181. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/daemon/runtime_peer.py +0 -0
  2182. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/daemon/runtime_repair.py +0 -0
  2183. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/daemon/service_lifecycle.py +0 -0
  2184. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/daemon/start_classification.py +0 -0
  2185. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/daemon/start_lock.py +0 -0
  2186. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/daemon/static/apple-touch-icon.png +0 -0
  2187. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/daemon/static/assets/chunks/about-workspace.js +0 -0
  2188. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/daemon/static/assets/chunks/app-catalog.js +0 -0
  2189. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/daemon/static/assets/chunks/app-detail-workspace.js +0 -0
  2190. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/daemon/static/assets/chunks/approval-proof-modal.js +0 -0
  2191. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/daemon/static/assets/chunks/audit-workspace.js +0 -0
  2192. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/daemon/static/assets/chunks/confirm-dialog.js +0 -0
  2193. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/daemon/static/assets/chunks/connect-guard-cloud-button.js +0 -0
  2194. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/daemon/static/assets/chunks/extension-controls-api.js +0 -0
  2195. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/daemon/static/assets/chunks/feed-health-workspace.js +0 -0
  2196. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/daemon/static/assets/chunks/fleet-workspace.js +0 -0
  2197. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/daemon/static/assets/chunks/harness-detection.js +0 -0
  2198. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/daemon/static/assets/chunks/help-modal.js +0 -0
  2199. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/daemon/static/assets/chunks/home-dashboard.js +0 -0
  2200. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/daemon/static/assets/chunks/home-protection-module.js +0 -0
  2201. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/daemon/static/assets/chunks/mcp-policy-request-panel.js +0 -0
  2202. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/daemon/static/assets/chunks/policy-workspace-page.js +0 -0
  2203. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/daemon/static/assets/chunks/protection-repair-page.js +0 -0
  2204. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/daemon/static/assets/chunks/settings-workspace.js +0 -0
  2205. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/daemon/static/assets/chunks/supply-chain-hub-workspace.js +0 -0
  2206. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/daemon/static/assets/chunks/supply-chain-protection-stats.js +0 -0
  2207. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/daemon/static/assets/chunks/supply-chain-workspace.js +0 -0
  2208. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/daemon/static/assets/guard-dashboard.js +0 -0
  2209. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/daemon/static/assets/index.css +0 -0
  2210. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/daemon/static/brand/Logo_Icon_Dark.png +0 -0
  2211. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/daemon/static/brand/Logo_Whole.png +0 -0
  2212. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/daemon/static/favicon-16x16.png +0 -0
  2213. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/daemon/static/favicon-32x32.png +0 -0
  2214. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/daemon/static/favicon.ico +0 -0
  2215. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/daemon/static/index.html +0 -0
  2216. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/daemon/update_refresh_program.py +0 -0
  2217. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/dashboard_launcher.py +0 -0
  2218. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/decision_boundaries.py +0 -0
  2219. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/decision_projection_boundaries.py +0 -0
  2220. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/desktop_notifications.py +0 -0
  2221. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/directory_path_authority.py +0 -0
  2222. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/dpop_key_binding.py +0 -0
  2223. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/durable_harness_launcher.py +0 -0
  2224. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/durable_io.py +0 -0
  2225. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/edge_events.py +0 -0
  2226. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/evaluation_cli.py +0 -0
  2227. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/evaluation_cli_package_errors.py +0 -0
  2228. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/evaluation_cli_recovery.py +0 -0
  2229. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/evaluation_cli_run.py +0 -0
  2230. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/evaluation_codex_event_trace.py +0 -0
  2231. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/evaluation_contracts.py +0 -0
  2232. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/evaluation_evidence_package.py +0 -0
  2233. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/evaluation_host_probe.py +0 -0
  2234. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/evaluation_json.py +0 -0
  2235. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/evaluation_preflight.py +0 -0
  2236. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/evaluation_runner.py +0 -0
  2237. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/evaluation_scope.py +0 -0
  2238. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/evaluation_witness.py +0 -0
  2239. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/extension_builder/__init__.py +0 -0
  2240. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/extension_builder/discover.py +0 -0
  2241. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/extension_builder/errors.py +0 -0
  2242. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/extension_builder/io.py +0 -0
  2243. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/extension_builder/kit.py +0 -0
  2244. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/extension_builder/listing.py +0 -0
  2245. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/extension_builder/listing.v1.schema.json +0 -0
  2246. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/extension_builder/listing.v2.schema.json +0 -0
  2247. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/extension_builder/listing_cli.py +0 -0
  2248. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/extension_builder/models.py +0 -0
  2249. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/extension_builder/native_source_compiler.py +0 -0
  2250. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/extension_builder/python_literals.py +0 -0
  2251. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/extension_builder/render_native.py +0 -0
  2252. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/extension_builder/render_tests.py +0 -0
  2253. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/extension_builder/repository_edits.py +0 -0
  2254. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/extension_builder/repository_plan.py +0 -0
  2255. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/extension_builder/repository_write.py +0 -0
  2256. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/extension_builder/review.py +0 -0
  2257. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/extension_builder/review_invocations.py +0 -0
  2258. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/extension_builder/schemas.py +0 -0
  2259. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/extension_builder/source_cli.py +0 -0
  2260. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/extension_builder/source_click.py +0 -0
  2261. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/extension_builder/source_mcp.py +0 -0
  2262. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/extension_builder/source_oclif.py +0 -0
  2263. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/extension_builder/validation.py +0 -0
  2264. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/extension_control_events.py +0 -0
  2265. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/file_identity.py +0 -0
  2266. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/frozen_codex_runtime.py +0 -0
  2267. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/frozen_daemon_runtime.py +0 -0
  2268. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/frozen_runtime_commands.py +0 -0
  2269. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/guard_home_state.py +0 -0
  2270. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/harness_disconnect_gate.py +0 -0
  2271. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/harness_resume.py +0 -0
  2272. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/harness_usage.py +0 -0
  2273. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/incident.py +0 -0
  2274. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/insights.py +0 -0
  2275. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/insights_share.py +0 -0
  2276. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/inventory_agent_types.py +0 -0
  2277. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/inventory_cisco.py +0 -0
  2278. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/inventory_contract.py +0 -0
  2279. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/inventory_contract_constants.py +0 -0
  2280. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/inventory_contract_fingerprints.py +0 -0
  2281. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/inventory_contract_items.py +0 -0
  2282. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/inventory_contract_mcp.py +0 -0
  2283. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/inventory_contract_metadata.py +0 -0
  2284. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/inventory_contract_models.py +0 -0
  2285. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/inventory_contract_redaction.py +0 -0
  2286. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/inventory_contract_scans.py +0 -0
  2287. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/inventory_item_description.py +0 -0
  2288. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/json_transport.py +0 -0
  2289. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/launcher.py +0 -0
  2290. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/live_process_identity.py +0 -0
  2291. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/local_authority_integrity.py +0 -0
  2292. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/local_cli_errors.py +0 -0
  2293. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/local_cli_hook.py +0 -0
  2294. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/local_cli_trust.py +0 -0
  2295. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/local_dashboard_session.py +0 -0
  2296. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/local_risk_report.py +0 -0
  2297. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/local_supply_chain.py +0 -0
  2298. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/local_trust_contract.py +0 -0
  2299. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/local_trust_controller.py +0 -0
  2300. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/macos_code_signing.py +0 -0
  2301. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/managed_controls/__init__.py +0 -0
  2302. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/managed_controls/acknowledgement.py +0 -0
  2303. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/managed_controls/atomic_apply.py +0 -0
  2304. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/managed_controls/authority.py +0 -0
  2305. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/managed_controls/bundle.py +0 -0
  2306. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/managed_controls/capabilities.py +0 -0
  2307. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/managed_controls/catalog.py +0 -0
  2308. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/managed_controls/compatibility.py +0 -0
  2309. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/managed_controls/delegation.py +0 -0
  2310. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/managed_controls/drift.py +0 -0
  2311. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/managed_controls/feature_flags.py +0 -0
  2312. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/managed_controls/identity.py +0 -0
  2313. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/managed_controls/migration.py +0 -0
  2314. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/managed_controls/operations.py +0 -0
  2315. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/managed_controls/privacy.py +0 -0
  2316. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/managed_controls/redaction.py +0 -0
  2317. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/managed_controls/telemetry.py +0 -0
  2318. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/managed_controls_policy_bundle.py +0 -0
  2319. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/managed_controls_policy_fields.py +0 -0
  2320. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/managed_controls_policy_fields_core.py +0 -0
  2321. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/managed_install_proof.py +0 -0
  2322. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/mcp/__init__.py +0 -0
  2323. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/mcp/adapters.py +0 -0
  2324. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/mcp/policy_errors.py +0 -0
  2325. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/mcp/policy_schemas.py +0 -0
  2326. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/mcp/policy_store.py +0 -0
  2327. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/mcp/policy_time.py +0 -0
  2328. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/mcp/policy_tools.py +0 -0
  2329. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/mcp/registry.py +0 -0
  2330. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/mcp/sanitizers.py +0 -0
  2331. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/mcp/schemas.py +0 -0
  2332. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/mcp/server.py +0 -0
  2333. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/mcp/tools.py +0 -0
  2334. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/mcp_tool_calls.py +0 -0
  2335. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/mdm/__init__.py +0 -0
  2336. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/mdm/acl.py +0 -0
  2337. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/mdm/adapter_conformance.py +0 -0
  2338. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/mdm/cloud_control.py +0 -0
  2339. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/mdm/continuity.py +0 -0
  2340. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/mdm/contracts.py +0 -0
  2341. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/mdm/device_key.py +0 -0
  2342. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/mdm/device_key_access.py +0 -0
  2343. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/mdm/device_key_native.py +0 -0
  2344. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/mdm/device_key_windows_api.py +0 -0
  2345. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/mdm/file_lock.py +0 -0
  2346. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/mdm/harness_coverage.py +0 -0
  2347. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/mdm/harness_coverage_artifacts.py +0 -0
  2348. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/mdm/health_key_registration.py +0 -0
  2349. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/mdm/health_lease.py +0 -0
  2350. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/mdm/health_lease_ack.py +0 -0
  2351. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/mdm/health_lease_contract.py +0 -0
  2352. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/mdm/health_reporter.py +0 -0
  2353. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/mdm/health_snapshot_validation.py +0 -0
  2354. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/mdm/health_transport.py +0 -0
  2355. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/mdm/integrity.py +0 -0
  2356. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/mdm/lifecycle.py +0 -0
  2357. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/mdm/machine_state_lock.py +0 -0
  2358. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/mdm/managed_file_trust.py +0 -0
  2359. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/mdm/manifest.py +0 -0
  2360. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/mdm/native.py +0 -0
  2361. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/mdm/network.py +0 -0
  2362. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/mdm/network_credentials.py +0 -0
  2363. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/mdm/network_diagnostics.py +0 -0
  2364. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/mdm/network_transport.py +0 -0
  2365. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/mdm/network_trust.py +0 -0
  2366. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/mdm/network_urlopen.py +0 -0
  2367. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/mdm/policy.py +0 -0
  2368. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/mdm/protection_lease_contract.py +0 -0
  2369. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/mdm/removal.py +0 -0
  2370. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/mdm/supervisor.py +0 -0
  2371. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/mdm/user_health.py +0 -0
  2372. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/mdm/windows_support.py +0 -0
  2373. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/memory_decision_event.py +0 -0
  2374. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/memory_decision_outbox.py +0 -0
  2375. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/memory_pattern_fingerprint.py +0 -0
  2376. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/models.py +0 -0
  2377. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/native_approval_errors.py +0 -0
  2378. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/native_approval_protocol.py +0 -0
  2379. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/native_approval_v4_portal.py +0 -0
  2380. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/native_approval_v4_protocol.py +0 -0
  2381. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/native_command_control_authority.py +0 -0
  2382. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/native_command_control_authority_io.py +0 -0
  2383. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/native_command_control_authority_store.py +0 -0
  2384. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/native_command_control_binding.py +0 -0
  2385. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/native_command_control_projection.py +0 -0
  2386. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/native_command_control_windows_lock.py +0 -0
  2387. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/native_command_model.py +0 -0
  2388. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/native_command_model_wrappers.py +0 -0
  2389. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/native_command_observations.py +0 -0
  2390. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/native_decision_receipt.py +0 -0
  2391. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/native_hook_edge.py +0 -0
  2392. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/native_mode.py +0 -0
  2393. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/native_policy_snapshot.py +0 -0
  2394. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/native_policy_snapshot_codec.py +0 -0
  2395. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/native_policy_snapshot_constants.py +0 -0
  2396. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/native_policy_snapshot_contract.py +0 -0
  2397. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/native_policy_snapshot_generation.py +0 -0
  2398. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/native_policy_snapshot_policy.py +0 -0
  2399. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/native_policy_snapshot_publisher.py +0 -0
  2400. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/native_policy_snapshot_publisher_inputs.py +0 -0
  2401. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/native_policy_snapshot_publisher_transport.py +0 -0
  2402. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/native_policy_snapshot_storage.py +0 -0
  2403. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/native_policy_snapshot_storage_windows.py +0 -0
  2404. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/native_policy_snapshot_windows_acl.py +0 -0
  2405. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/native_policy_snapshot_windows_atomic.py +0 -0
  2406. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/native_policy_snapshot_windows_io.py +0 -0
  2407. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/native_policy_snapshot_windows_key.py +0 -0
  2408. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/native_policy_snapshot_windows_state.py +0 -0
  2409. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/native_policy_snapshot_windows_support.py +0 -0
  2410. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/native_policy_test_support.py +0 -0
  2411. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/native_pretool.py +0 -0
  2412. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/native_resident_client.py +0 -0
  2413. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/native_resident_stream.py +0 -0
  2414. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/native_resident_transport.py +0 -0
  2415. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/native_response_decoder.py +0 -0
  2416. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/native_route_receipt.py +0 -0
  2417. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/native_runtime_admission.py +0 -0
  2418. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/native_runtime_resilience.py +0 -0
  2419. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/oauth_token_claims.py +0 -0
  2420. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/onefile_extraction.py +0 -0
  2421. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/outcome_receipt.py +0 -0
  2422. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/package_execution_context.py +0 -0
  2423. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/package_execution_context_configuration.py +0 -0
  2424. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/package_execution_context_inputs.py +0 -0
  2425. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/package_firewall_action_rate_limit.py +0 -0
  2426. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/package_firewall_defaults.py +0 -0
  2427. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/package_firewall_entitlement.py +0 -0
  2428. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/package_firewall_receipts.py +0 -0
  2429. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/package_shim_frozen.py +0 -0
  2430. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/package_shim_gate.py +0 -0
  2431. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/package_shim_status.py +0 -0
  2432. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/path_security.py +0 -0
  2433. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/policy/__init__.py +0 -0
  2434. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/policy/engine.py +0 -0
  2435. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/policy_authority.py +0 -0
  2436. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/policy_bundle_activation.py +0 -0
  2437. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/policy_bundle_decisions.py +0 -0
  2438. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/policy_bundle_delivery.py +0 -0
  2439. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/policy_bundle_parser.py +0 -0
  2440. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/policy_bundle_trusted_keys.py +0 -0
  2441. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/policy_bundle_v2.py +0 -0
  2442. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/policy_document.py +0 -0
  2443. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/policy_document_compile.py +0 -0
  2444. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/policy_document_diff.py +0 -0
  2445. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/policy_document_io.py +0 -0
  2446. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/policy_document_types.py +0 -0
  2447. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/policy_document_yaml.py +0 -0
  2448. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/policy_integrity.py +0 -0
  2449. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/policy_recipe.py +0 -0
  2450. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/portable_command.py +0 -0
  2451. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/presentation_mode.py +0 -0
  2452. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/private_file_io.py +0 -0
  2453. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/product_model.py +0 -0
  2454. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/project_folder_picker.py +0 -0
  2455. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/project_identity.py +0 -0
  2456. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/protect.py +0 -0
  2457. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/protection_capabilities.py +0 -0
  2458. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/protection_events.py +0 -0
  2459. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/protection_posture.py +0 -0
  2460. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/provenance.py +0 -0
  2461. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/proxy/__init__.py +0 -0
  2462. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/proxy/_env.py +0 -0
  2463. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/proxy/remote.py +0 -0
  2464. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/proxy/runtime_mcp.py +0 -0
  2465. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/proxy/stdio.py +0 -0
  2466. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/receipts/__init__.py +0 -0
  2467. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/receipts/manager.py +0 -0
  2468. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/redaction.py +0 -0
  2469. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/remote_pairing_constants.py +0 -0
  2470. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/review_contracts.py +0 -0
  2471. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/review_correlation.py +0 -0
  2472. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/review_event_integrity.py +0 -0
  2473. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/review_event_wake.py +0 -0
  2474. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/review_exact_capability_advertisement.py +0 -0
  2475. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/review_memory_ack.py +0 -0
  2476. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/review_oauth_binding.py +0 -0
  2477. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/review_verification_keyring.py +0 -0
  2478. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/risk.py +0 -0
  2479. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/risk_exfil.py +0 -0
  2480. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/__init__.py +0 -0
  2481. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/_shell_execution_context_support.py +0 -0
  2482. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/_shell_secret_read_flow.py +0 -0
  2483. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/_shell_secret_read_support.py +0 -0
  2484. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/action_explanation_contract.py +0 -0
  2485. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/action_explanation_projection.py +0 -0
  2486. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/action_identity.py +0 -0
  2487. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/actions.py +0 -0
  2488. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/advisory_escalation.py +0 -0
  2489. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/advisory_matchers.py +0 -0
  2490. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/approval_attention.py +0 -0
  2491. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/approval_context.py +0 -0
  2492. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/approval_reuse.py +0 -0
  2493. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/assurance_planning.py +0 -0
  2494. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/audit_workspace.py +0 -0
  2495. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/auto_update.py +0 -0
  2496. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/benign_dx_guard.py +0 -0
  2497. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/browser_mcp_intent.py +0 -0
  2498. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/cisco_evidence.py +0 -0
  2499. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/cisco_preflight.py +0 -0
  2500. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/cisco_scan_containment.py +0 -0
  2501. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/cloud_review_batching.py +0 -0
  2502. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/cloud_review_event_delivery.py +0 -0
  2503. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/cloud_review_event_projection.py +0 -0
  2504. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/cloud_review_retry_recovery.py +0 -0
  2505. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/cloud_review_sync.py +0 -0
  2506. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/cloud_review_sync_auth.py +0 -0
  2507. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/cloud_review_sync_worker.py +0 -0
  2508. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/command_action_risk_classes.py +0 -0
  2509. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/command_action_risk_metadata.py +0 -0
  2510. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/command_activity_api_contract.py +0 -0
  2511. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/command_activity_contract.py +0 -0
  2512. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/command_activity_correlation.py +0 -0
  2513. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/command_activity_cursor.py +0 -0
  2514. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/command_activity_display.py +0 -0
  2515. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/command_activity_lifecycle.py +0 -0
  2516. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/command_activity_privacy.py +0 -0
  2517. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/command_backup_extensions.py +0 -0
  2518. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/command_blitcp_extensions.py +0 -0
  2519. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/command_builtin_extension_catalog.py +0 -0
  2520. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/command_builtin_extension_registry.py +0 -0
  2521. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/command_builtin_rules.py +0 -0
  2522. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/command_candidate_common.py +0 -0
  2523. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/command_capability.py +0 -0
  2524. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/command_cicd_extensions.py +0 -0
  2525. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/command_cloud_aws_operation_matrix.py +0 -0
  2526. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/command_cloud_azure_operation_matrix.py +0 -0
  2527. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/command_cloud_extensions.py +0 -0
  2528. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/command_cloud_gcp_operation_matrix.py +0 -0
  2529. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/command_common_extension_helpers.py +0 -0
  2530. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/command_contained_routine_candidates.py +0 -0
  2531. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/command_container_common_extensions.py +0 -0
  2532. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/command_critical_floors.py +0 -0
  2533. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/command_curl_parsing.py +0 -0
  2534. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/command_database_extensions.py +0 -0
  2535. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/command_database_matchers.py +0 -0
  2536. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/command_decision_adapter.py +0 -0
  2537. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/command_dns_control_migration.py +0 -0
  2538. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/command_dns_extensions.py +0 -0
  2539. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/command_domain_extension_specs.py +0 -0
  2540. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/command_domain_extensions.py +0 -0
  2541. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/command_ecosystem_detection.py +0 -0
  2542. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/command_evaluation.py +0 -0
  2543. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/command_executors.py +0 -0
  2544. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/command_expression.py +0 -0
  2545. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/command_extension_interaction.py +0 -0
  2546. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/command_extension_matchers.py +0 -0
  2547. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/command_extension_observations.py +0 -0
  2548. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/command_extension_specs.py +0 -0
  2549. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/command_extensions.py +0 -0
  2550. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/command_framework_extensions.py +0 -0
  2551. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/command_git_porcelain_extensions.py +0 -0
  2552. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/command_github_rules.py +0 -0
  2553. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/command_infrastructure_matcher_support.py +0 -0
  2554. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/command_inspection.py +0 -0
  2555. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/command_kubernetes_common_extensions.py +0 -0
  2556. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/command_launcher_floors.py +0 -0
  2557. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/command_managed_service_extensions.py +0 -0
  2558. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/command_matcher_contracts.py +0 -0
  2559. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/command_model.py +0 -0
  2560. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/command_noodle_extensions.py +0 -0
  2561. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/command_ollama_extensions.py +0 -0
  2562. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/command_operand_matchers.py +0 -0
  2563. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/command_operation_classification.py +0 -0
  2564. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/command_option_parsing.py +0 -0
  2565. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/command_package_extensions.py +0 -0
  2566. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/command_path_set_matcher.py +0 -0
  2567. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/command_payload.py +0 -0
  2568. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/command_permission_catalog.py +0 -0
  2569. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/command_platform_extensions.py +0 -0
  2570. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/command_policy.py +0 -0
  2571. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/command_probe_extensions.py +0 -0
  2572. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/command_queue.py +0 -0
  2573. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/command_queue_activation.py +0 -0
  2574. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/command_queue_auth.py +0 -0
  2575. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/command_queue_authority.py +0 -0
  2576. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/command_queue_http.py +0 -0
  2577. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/command_queue_loop.py +0 -0
  2578. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/command_queue_protocol.py +0 -0
  2579. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/command_queue_state.py +0 -0
  2580. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/command_remote_essh_extensions.py +0 -0
  2581. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/command_remote_extensions.py +0 -0
  2582. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/command_repo2nb_extensions.py +0 -0
  2583. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/command_reviewed_literal_matcher.py +0 -0
  2584. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/command_risk_effects.py +0 -0
  2585. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/command_rules.py +0 -0
  2586. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/command_search_messaging_extensions.py +0 -0
  2587. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/command_segment_parsing.py +0 -0
  2588. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/command_shadow_evaluation.py +0 -0
  2589. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/command_shell_read_factors.py +0 -0
  2590. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/command_skill_sunset_extensions.py +0 -0
  2591. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/command_storage_aws_s3.py +0 -0
  2592. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/command_storage_common.py +0 -0
  2593. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/command_storage_extensions.py +0 -0
  2594. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/command_structure.py +0 -0
  2595. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/command_structured_matchers.py +0 -0
  2596. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/command_tokens.py +0 -0
  2597. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/command_verified_read_candidates.py +0 -0
  2598. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/command_workspace_write_candidates.py +0 -0
  2599. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/composio_contract.py +0 -0
  2600. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/composio_discovery.py +0 -0
  2601. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/composio_workflows.py +0 -0
  2602. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/composition_rules.py +0 -0
  2603. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/compound_git_bounds.py +0 -0
  2604. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/compound_git_inspection.py +0 -0
  2605. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/contained_execution_common.py +0 -0
  2606. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/container_network_plan.py +0 -0
  2607. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/containment_backend_status.py +0 -0
  2608. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/containment_contract.py +0 -0
  2609. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/containment_executor.py +0 -0
  2610. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/containment_health.py +0 -0
  2611. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/containment_outputs.py +0 -0
  2612. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/custom_extension_continuity.py +0 -0
  2613. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/custom_extension_continuity_v1.py +0 -0
  2614. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/custom_extension_continuity_v2.py +0 -0
  2615. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/custom_extension_suggestion.py +0 -0
  2616. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/data_flow.py +0 -0
  2617. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/data_flow_rules.py +0 -0
  2618. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/data_flow_sink.py +0 -0
  2619. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/data_flow_variables.py +0 -0
  2620. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/decisions.py +0 -0
  2621. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/detectors.py +0 -0
  2622. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/direct_typescript_diagnostics.py +0 -0
  2623. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/direct_vitest.py +0 -0
  2624. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/effect_contract.py +0 -0
  2625. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/effect_decision.py +0 -0
  2626. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/embedded_script_evidence.py +0 -0
  2627. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/env_wrapper.py +0 -0
  2628. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/evidence_hash.py +0 -0
  2629. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/exact_cloud_review.py +0 -0
  2630. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/exact_cloud_review_apply.py +0 -0
  2631. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/exact_cloud_review_diagnostics.py +0 -0
  2632. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/exact_cloud_review_executor.py +0 -0
  2633. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/exact_cloud_review_transport.py +0 -0
  2634. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/executable_flag_contract.py +0 -0
  2635. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/executable_resolution.py +0 -0
  2636. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/execution_assurance_contract.py +0 -0
  2637. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/execution_assurance_receipt.py +0 -0
  2638. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/execution_context_propagation.py +0 -0
  2639. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/execution_ownership.py +0 -0
  2640. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/extension_catalog_handshake.py +0 -0
  2641. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/extension_catalog_sync.py +0 -0
  2642. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/extension_contribution.py +0 -0
  2643. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/extension_control_authority.py +0 -0
  2644. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/extension_control_contract.py +0 -0
  2645. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/extension_control_limits.py +0 -0
  2646. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/extension_control_proof.py +0 -0
  2647. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/extension_control_resolver.py +0 -0
  2648. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/extension_control_runtime.py +0 -0
  2649. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/extension_directory_operations.py +0 -0
  2650. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/extension_evidence.py +0 -0
  2651. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/extension_trust.py +0 -0
  2652. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/false_positive_rules.py +0 -0
  2653. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/generated_command_catalog.py +0 -0
  2654. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/generated_command_catalog_loader.py +0 -0
  2655. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/git_execution_safety.py +0 -0
  2656. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/git_index_inspection.py +0 -0
  2657. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/git_origin_refresh.py +0 -0
  2658. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/git_pathspecs.py +0 -0
  2659. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/github_actions_read_workflow.py +0 -0
  2660. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/github_auth_capabilities.py +0 -0
  2661. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/github_capability_contract.py +0 -0
  2662. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/github_capability_interaction.py +0 -0
  2663. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/github_command_capabilities.py +0 -0
  2664. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/github_graphql_capabilities.py +0 -0
  2665. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/github_pr_body_file.py +0 -0
  2666. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/github_rest_capabilities.py +0 -0
  2667. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/github_routine_merge.py +0 -0
  2668. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/github_shell_bindings.py +0 -0
  2669. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/github_shell_capabilities.py +0 -0
  2670. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/github_shell_control_flow.py +0 -0
  2671. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/github_shell_redirections.py +0 -0
  2672. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/github_workflow_approval_record.py +0 -0
  2673. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/github_workflow_authorization.py +0 -0
  2674. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/github_workflow_context.py +0 -0
  2675. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/github_workflow_operations.py +0 -0
  2676. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/github_workflow_runtime.py +0 -0
  2677. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/gvisor_reference_runtime.py +0 -0
  2678. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/harness_attribution.py +0 -0
  2679. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/home_path_text.py +0 -0
  2680. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/homebrew_intent.py +0 -0
  2681. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/hook_enrichment_queue.py +0 -0
  2682. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/hook_review_types.py +0 -0
  2683. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/interpreter_options.py +0 -0
  2684. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/isolation_provider.py +0 -0
  2685. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/js_semver.py +0 -0
  2686. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/jsonc.py +0 -0
  2687. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/k8s_runtimeclass_provider.py +0 -0
  2688. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/kubernetes_command_support.py +0 -0
  2689. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/kubernetes_commands.py +0 -0
  2690. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/kubernetes_heredoc_support.py +0 -0
  2691. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/launch_identity_binding.py +0 -0
  2692. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/launch_identity_environment.py +0 -0
  2693. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/linux_artifact_lifecycle.py +0 -0
  2694. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/linux_artifact_ownership.py +0 -0
  2695. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/linux_artifact_supply_chain.py +0 -0
  2696. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/linux_namespace_network_plan.py +0 -0
  2697. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/linux_network_observer.py +0 -0
  2698. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/linux_performance_acceptance.py +0 -0
  2699. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/linux_tcp_enforcement.py +0 -0
  2700. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/linux_tetragon_observer.py +0 -0
  2701. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/linux_udp_dns_enforcement.py +0 -0
  2702. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/local_cli_commands.py +0 -0
  2703. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/local_cli_compound.py +0 -0
  2704. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/local_cli_help.py +0 -0
  2705. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/local_cli_identity.py +0 -0
  2706. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/local_mcp_probe.py +0 -0
  2707. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/local_mcp_probe_env.py +0 -0
  2708. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/local_mcp_stdio.py +0 -0
  2709. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/local_node_runner_evidence.py +0 -0
  2710. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/local_node_runner_options.py +0 -0
  2711. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/local_os_containment_provider.py +0 -0
  2712. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/local_output_review.py +0 -0
  2713. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/local_package_script_evidence.py +0 -0
  2714. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/local_request_snapshots.py +0 -0
  2715. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/local_runtime_fallbacks.py +0 -0
  2716. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/local_skill_index.py +0 -0
  2717. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/local_temp_paths.py +0 -0
  2718. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/local_terminal_record.py +0 -0
  2719. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/lockfile_evaluation_support.py +0 -0
  2720. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/lockfile_parse_result.py +0 -0
  2721. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/managed_controls_sync.py +0 -0
  2722. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/managed_extension_controls.py +0 -0
  2723. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/manifest_dependency_targets.py +0 -0
  2724. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/mcp_classification.py +0 -0
  2725. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/mcp_connection_identity.py +0 -0
  2726. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/mcp_protection.py +0 -0
  2727. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/mcp_provider_permissions.py +0 -0
  2728. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/mcp_registry.py +0 -0
  2729. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/mcp_server_catalog.py +0 -0
  2730. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/mcp_server_contribution.py +0 -0
  2731. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/mcp_server_grants.py +0 -0
  2732. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/mcp_skill_firewall.py +0 -0
  2733. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/mcp_skills.py +0 -0
  2734. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/native_command_evaluation.py +0 -0
  2735. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/native_command_extension_evidence.py +0 -0
  2736. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/native_review_presentation.py +0 -0
  2737. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/network_backend_registry.py +0 -0
  2738. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/network_broker_contract.py +0 -0
  2739. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/network_capability_contract.py +0 -0
  2740. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/network_capability_reachability.py +0 -0
  2741. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/network_destination_correlator.py +0 -0
  2742. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/network_evidence_ledger.py +0 -0
  2743. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/network_grant_engine.py +0 -0
  2744. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/network_legacy_config.py +0 -0
  2745. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/network_local_core.py +0 -0
  2746. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/network_observer.py +0 -0
  2747. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/network_plane_router.py +0 -0
  2748. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/network_policy_compiler.py +0 -0
  2749. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/network_policy_contract.py +0 -0
  2750. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/network_policy_evaluator.py +0 -0
  2751. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/network_process_lifecycle.py +0 -0
  2752. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/network_public_suffix.py +0 -0
  2753. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/network_status.py +0 -0
  2754. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/network_status_validation.py +0 -0
  2755. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/network_supervisor.py +0 -0
  2756. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/node_semver.py +0 -0
  2757. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/npm_policy_range.py +0 -0
  2758. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/npm_source_spec.py +0 -0
  2759. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/oauth_request_retry.py +0 -0
  2760. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/observed_mcp_tools.py +0 -0
  2761. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/oci_isolation_provider.py +0 -0
  2762. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/oci_mount_security.py +0 -0
  2763. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/oci_plan_generator.py +0 -0
  2764. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/package_evidence_common.py +0 -0
  2765. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/package_execution_policy.py +0 -0
  2766. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/package_intent.py +0 -0
  2767. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/package_intent_common.py +0 -0
  2768. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/package_intent_parser.py +0 -0
  2769. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/package_json_script_memory.py +0 -0
  2770. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/package_json_scripts.py +0 -0
  2771. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/package_manager_command.py +0 -0
  2772. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/package_manifest_diff.py +0 -0
  2773. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/package_protect_projection.py +0 -0
  2774. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/payload_coercion.py +0 -0
  2775. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/persistence_rules.py +0 -0
  2776. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/prompt_injection.py +0 -0
  2777. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/protection_health.py +0 -0
  2778. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/protection_health_runtime.py +0 -0
  2779. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/provider_recovery.py +0 -0
  2780. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/pytest_config.py +0 -0
  2781. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/read_only_git_audit.py +0 -0
  2782. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/remote_approval_execution.py +0 -0
  2783. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/resource_budget.py +0 -0
  2784. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/restricted_archive_contract.py +0 -0
  2785. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/restricted_archive_deadline.py +0 -0
  2786. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/restricted_archive_destination.py +0 -0
  2787. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/restricted_archive_download.py +0 -0
  2788. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/restricted_archive_stream.py +0 -0
  2789. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/restricted_pytest.py +0 -0
  2790. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/restricted_pytest_model.py +0 -0
  2791. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/restricted_pytest_sandbox.py +0 -0
  2792. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/restricted_pytest_validation.py +0 -0
  2793. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/review_event_delivery.py +0 -0
  2794. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/review_event_display.py +0 -0
  2795. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/review_policy_memory_executor.py +0 -0
  2796. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/routine_local_node.py +0 -0
  2797. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/routine_node_identity.py +0 -0
  2798. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/routine_setup_commands.py +0 -0
  2799. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/runner.py +0 -0
  2800. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/safe_decode.py +0 -0
  2801. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/sandbox.py +0 -0
  2802. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/scanner_cache.py +0 -0
  2803. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/secret_file_request_services/__init__.py +0 -0
  2804. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/secret_file_request_services/agent_guidance_reads.py +0 -0
  2805. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/secret_file_request_services/benign_requests.py +0 -0
  2806. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/secret_file_request_services/constants_core.py +0 -0
  2807. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/secret_file_request_services/constants_patterns.py +0 -0
  2808. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/secret_file_request_services/credential_exfiltration.py +0 -0
  2809. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/secret_file_request_services/destructive_shell_detection.py +0 -0
  2810. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/secret_file_request_services/developer_inspection.py +0 -0
  2811. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/secret_file_request_services/developer_routines.py +0 -0
  2812. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/secret_file_request_services/docker_requests.py +0 -0
  2813. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/secret_file_request_services/encoded_payloads.py +0 -0
  2814. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/secret_file_request_services/environment_secret_dump.py +0 -0
  2815. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/secret_file_request_services/git_routines.py +0 -0
  2816. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/secret_file_request_services/github_pr_body_safety.py +0 -0
  2817. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/secret_file_request_services/github_pr_ephemeral_body.py +0 -0
  2818. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/secret_file_request_services/github_pr_expansion.py +0 -0
  2819. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/secret_file_request_services/github_shell_capabilities.py +0 -0
  2820. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/secret_file_request_services/interpreter_identity.py +0 -0
  2821. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/secret_file_request_services/interpreter_launch.py +0 -0
  2822. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/secret_file_request_services/interpreter_observers.py +0 -0
  2823. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/secret_file_request_services/interpreter_trust.py +0 -0
  2824. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/secret_file_request_services/local_read_operands.py +0 -0
  2825. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/secret_file_request_services/network_upload_detection.py +0 -0
  2826. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/secret_file_request_services/node_generated_workflows.py +0 -0
  2827. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/secret_file_request_services/node_heredoc_safety.py +0 -0
  2828. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/secret_file_request_services/perl_read_only.py +0 -0
  2829. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/secret_file_request_services/pytest_binary_safety.py +0 -0
  2830. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/secret_file_request_services/pytest_config_safety.py +0 -0
  2831. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/secret_file_request_services/pytest_target_detection.py +0 -0
  2832. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/secret_file_request_services/python_pytest_entrypoints.py +0 -0
  2833. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/secret_file_request_services/read_only_filters.py +0 -0
  2834. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/secret_file_request_services/request_artifacts.py +0 -0
  2835. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/secret_file_request_services/request_models.py +0 -0
  2836. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/secret_file_request_services/routine_directory_creation.py +0 -0
  2837. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/secret_file_request_services/routine_move.py +0 -0
  2838. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/secret_file_request_services/sensitive_read_pipeline.py +0 -0
  2839. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/secret_file_request_services/shell_environment.py +0 -0
  2840. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/secret_file_request_services/shell_initial_risk.py +0 -0
  2841. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/secret_file_request_services/shell_quote_parsing.py +0 -0
  2842. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/secret_file_request_services/shell_quote_tokens.py +0 -0
  2843. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/secret_file_request_services/shell_request_classifier.py +0 -0
  2844. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/secret_file_request_services/shell_static_safety.py +0 -0
  2845. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/secret_file_request_services/shell_stdin_sources.py +0 -0
  2846. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/secret_file_request_services/shell_tokenization.py +0 -0
  2847. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/secret_file_request_services/source_edit_context.py +0 -0
  2848. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/secret_file_request_services/tool_action_requests.py +0 -0
  2849. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/secret_file_request_services/tool_action_risk_summaries.py +0 -0
  2850. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/secret_file_request_services/typescript_graphql_safety.py +0 -0
  2851. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/secret_file_request_services/upload_arguments.py +0 -0
  2852. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/secret_file_requests.py +0 -0
  2853. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/secret_sensitivity.py +0 -0
  2854. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/secret_sources.py +0 -0
  2855. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/sed_scripts.py +0 -0
  2856. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/self_approval.py +0 -0
  2857. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/shell_command_wrappers.py +0 -0
  2858. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/shell_commands.py +0 -0
  2859. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/shell_execution_context.py +0 -0
  2860. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/shell_read_literal_wrapper.py +0 -0
  2861. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/shell_secret_reads.py +0 -0
  2862. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/shell_structure.py +0 -0
  2863. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/signals.py +0 -0
  2864. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/skill_paths.py +0 -0
  2865. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/skill_protection.py +0 -0
  2866. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/skill_workflow_preflight.py +0 -0
  2867. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/source_paths.py +0 -0
  2868. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/structured_data_sensitivity.py +0 -0
  2869. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/supply_chain.py +0 -0
  2870. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/supply_chain_bundle.py +0 -0
  2871. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/supply_chain_bundle_base.py +0 -0
  2872. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/supply_chain_bundle_models.py +0 -0
  2873. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/supply_chain_bundle_package_identity.py +0 -0
  2874. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/supply_chain_bundle_runtime.py +0 -0
  2875. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/supply_chain_package_identity.py +0 -0
  2876. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/supply_chain_support.py +0 -0
  2877. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/surface_server.py +0 -0
  2878. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/temp_files.py +0 -0
  2879. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/threat_intel.py +0 -0
  2880. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/time_support.py +0 -0
  2881. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/trust_attestation.py +0 -0
  2882. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/typescript_launch_evidence.py +0 -0
  2883. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/typescript_snapshot_inputs.py +0 -0
  2884. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/verified_github_reads.py +0 -0
  2885. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/verified_read_common.py +0 -0
  2886. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/verified_read_execution.py +0 -0
  2887. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/workspace_path_guard.py +0 -0
  2888. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime/workspace_snapshot_inputs.py +0 -0
  2889. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/runtime_artifact_reconciliation.py +0 -0
  2890. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/schemas/__init__.py +0 -0
  2891. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/schemas/consumer_mode.py +0 -0
  2892. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/schemas/evaluation-profile-v1.schema.json +0 -0
  2893. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/schemas/evaluation-result-v1.schema.json +0 -0
  2894. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/schemas/guard-policy-v1alpha1.schema.json +0 -0
  2895. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/schemas/guard_action_explanation_v1.json +0 -0
  2896. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/schemas/guard_event_v1.py +0 -0
  2897. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/schemas/guard_product_model_v1.json +0 -0
  2898. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/schemas/surface_server.py +0 -0
  2899. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/secret_redaction.py +0 -0
  2900. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/secrets/__init__.py +0 -0
  2901. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/secrets/cli.py +0 -0
  2902. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/secrets/precommit.py +0 -0
  2903. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/secrets/public_rule_catalog.py +0 -0
  2904. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/secrets/secret_detection.py +0 -0
  2905. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/secrets/secret_repository_scanner.py +0 -0
  2906. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/secrets/secret_staged_scanner.py +0 -0
  2907. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/shell_profile_cleanup.py +0 -0
  2908. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/shim_probe.py +0 -0
  2909. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/shim_refresh.py +0 -0
  2910. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/shims.py +0 -0
  2911. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/skill_directory_discovery.py +0 -0
  2912. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/skill_directory_identity.py +0 -0
  2913. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/skill_directory_identity_contract.py +0 -0
  2914. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/skill_document_evidence.py +0 -0
  2915. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/sqlite_cloud_review_recovery.py +0 -0
  2916. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/sqlite_profile.py +0 -0
  2917. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/sqlite_quarantine_forensics.py +0 -0
  2918. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/sqlite_recovery.py +0 -0
  2919. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/sqlite_tuning.py +0 -0
  2920. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/stable_digest.py +0 -0
  2921. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/stable_guard_cli.py +0 -0
  2922. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/stable_json.py +0 -0
  2923. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/store.py +0 -0
  2924. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/store_approval_facade.py +0 -0
  2925. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/store_approval_queries.py +0 -0
  2926. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/store_approval_writes.py +0 -0
  2927. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/store_approvals.py +0 -0
  2928. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/store_base.py +0 -0
  2929. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/store_cloud_events.py +0 -0
  2930. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/store_command_activity.py +0 -0
  2931. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/store_command_activity_api.py +0 -0
  2932. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/store_command_activity_api_schema.py +0 -0
  2933. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/store_command_activity_display_schema.py +0 -0
  2934. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/store_command_activity_health_schema.py +0 -0
  2935. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/store_command_activity_lifecycle.py +0 -0
  2936. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/store_command_activity_maintenance.py +0 -0
  2937. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/store_command_activity_maintenance_schema.py +0 -0
  2938. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/store_command_activity_privacy.py +0 -0
  2939. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/store_command_activity_rollups.py +0 -0
  2940. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/store_command_activity_schema.py +0 -0
  2941. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/store_command_shadow.py +0 -0
  2942. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/store_command_shadow_schema.py +0 -0
  2943. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/store_command_shadow_schema_v18.py +0 -0
  2944. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/store_connect.py +0 -0
  2945. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/store_connection_schema.py +0 -0
  2946. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/store_continuation.py +0 -0
  2947. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/store_custom_extension_continuity.py +0 -0
  2948. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/store_event_receipts.py +0 -0
  2949. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/store_evidence.py +0 -0
  2950. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/store_evidence_facade.py +0 -0
  2951. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/store_exact_cloud_review.py +0 -0
  2952. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/store_extension_control_authority.py +0 -0
  2953. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/store_extension_control_authority_schema.py +0 -0
  2954. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/store_extension_control_authority_support.py +0 -0
  2955. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/store_extension_control_authority_transitions.py +0 -0
  2956. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/store_extension_control_manifest.py +0 -0
  2957. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/store_inventory.py +0 -0
  2958. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/store_local_cli.py +0 -0
  2959. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/store_local_cli_rows.py +0 -0
  2960. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/store_local_cli_schema.py +0 -0
  2961. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/store_local_mcp.py +0 -0
  2962. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/store_local_once_authority.py +0 -0
  2963. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/store_managed_controls_status.py +0 -0
  2964. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/store_mcp_catalog.py +0 -0
  2965. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/store_mcp_provider_catalog.py +0 -0
  2966. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/store_mcp_provider_permissions.py +0 -0
  2967. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/store_mcp_workflows.py +0 -0
  2968. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/store_native_decision_receipts.py +0 -0
  2969. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/store_native_review_approvals.py +0 -0
  2970. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/store_oauth.py +0 -0
  2971. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/store_oauth_metadata.py +0 -0
  2972. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/store_policy.py +0 -0
  2973. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/store_policy_activation_preflight.py +0 -0
  2974. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/store_policy_decision.py +0 -0
  2975. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/store_policy_document.py +0 -0
  2976. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/store_policy_integrity_backend.py +0 -0
  2977. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/store_policy_integrity_runtime.py +0 -0
  2978. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/store_policy_list.py +0 -0
  2979. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/store_policy_source_context.py +0 -0
  2980. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/store_portable_project_memory.py +0 -0
  2981. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/store_read_state.py +0 -0
  2982. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/store_receipt_rollups.py +0 -0
  2983. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/store_receipts.py +0 -0
  2984. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/store_resume.py +0 -0
  2985. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/store_review_event_acknowledgment.py +0 -0
  2986. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/store_review_event_outbox.py +0 -0
  2987. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/store_review_event_outbox_binding.py +0 -0
  2988. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/store_review_event_outbox_schema.py +0 -0
  2989. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/store_review_event_outbox_upgrade.py +0 -0
  2990. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/store_review_event_outbox_writes.py +0 -0
  2991. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/store_review_event_wake_schema.py +0 -0
  2992. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/store_review_policy_memory.py +0 -0
  2993. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/store_review_retry_identity.py +0 -0
  2994. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/store_secret_policy_integrity.py +0 -0
  2995. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/store_sessions.py +0 -0
  2996. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/store_storage_maintenance.py +0 -0
  2997. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/store_supply_chain.py +0 -0
  2998. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/store_temporary_mcp.py +0 -0
  2999. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/store_threat_intel.py +0 -0
  3000. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/store_watch_only_approval_schema.py +0 -0
  3001. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/store_workflow_capabilities.py +0 -0
  3002. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/store_workflow_capabilities_schema.py +0 -0
  3003. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/store_workflow_capability_authority.py +0 -0
  3004. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/store_workflow_capability_common.py +0 -0
  3005. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/store_workflow_capability_control.py +0 -0
  3006. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/store_workflow_capability_lock.py +0 -0
  3007. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/store_workflow_capability_lookup.py +0 -0
  3008. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/store_workflow_capability_receipt_lookup.py +0 -0
  3009. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/store_workflow_capability_revocation.py +0 -0
  3010. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/store_workflow_capability_secret_control.py +0 -0
  3011. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/store_workflow_capability_time.py +0 -0
  3012. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/store_workflow_capability_transitions.py +0 -0
  3013. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/strands_intervention.py +0 -0
  3014. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/strict_json_pairs.py +0 -0
  3015. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/supply_chain_repair.py +0 -0
  3016. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/supply_chain_repair_errors.py +0 -0
  3017. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/supply_chain_repair_sync.py +0 -0
  3018. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/synced_policy.py +0 -0
  3019. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/temporary_mcp_approvals.py +0 -0
  3020. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/text.py +0 -0
  3021. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/tool_decision_evidence.py +0 -0
  3022. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/totp.py +0 -0
  3023. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/trust_metadata_boundary.py +0 -0
  3024. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/trusted_local_tool_jq.py +0 -0
  3025. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/trusted_local_tools.py +0 -0
  3026. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/trusted_package_tools.py +0 -0
  3027. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/types.py +0 -0
  3028. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/update_staging.py +0 -0
  3029. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/value_coercion.py +0 -0
  3030. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/windows_paths.py +0 -0
  3031. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/windows_processes.py +0 -0
  3032. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/workflow_capabilities.py +0 -0
  3033. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/workflow_capability_authority_state.py +0 -0
  3034. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guard/workflow_capability_transitions.py +0 -0
  3035. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guarded_repository_evidence.py +0 -0
  3036. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/guarded_repository_registration.py +0 -0
  3037. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/install_integrity.py +0 -0
  3038. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/integrations/__init__.py +0 -0
  3039. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/integrations/cisco_mcp_scanner.py +0 -0
  3040. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/integrations/cisco_skill_scanner.py +0 -0
  3041. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/integrations/scanner_subprocess.py +0 -0
  3042. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/json_comment_stripping.py +0 -0
  3043. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/lint_fixes.py +0 -0
  3044. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/markdown_support.py +0 -0
  3045. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/marketplace_support.py +0 -0
  3046. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/models.py +0 -0
  3047. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/no_redirect.py +0 -0
  3048. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/object_support.py +0 -0
  3049. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/path_support.py +0 -0
  3050. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/pinned_https.py +0 -0
  3051. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/policy.py +0 -0
  3052. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/quality_artifact.py +0 -0
  3053. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/repo_detect.py +0 -0
  3054. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/reporting.py +0 -0
  3055. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/rules/__init__.py +0 -0
  3056. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/rules/registry.py +0 -0
  3057. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/rules/specs.py +0 -0
  3058. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/safe_output.py +0 -0
  3059. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/safe_output_windows.py +0 -0
  3060. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/scanner.py +0 -0
  3061. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/scanner_support.py +0 -0
  3062. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/submission.py +0 -0
  3063. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/suppressions.py +0 -0
  3064. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/trust_domain_scoring.py +0 -0
  3065. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/trust_helpers.py +0 -0
  3066. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/trust_instruction_scoring.py +0 -0
  3067. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/trust_mcp_scoring.py +0 -0
  3068. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/trust_models.py +0 -0
  3069. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/trust_plugin_scoring.py +0 -0
  3070. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/trust_scoring.py +0 -0
  3071. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/trust_skill_scoring.py +0 -0
  3072. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/trust_specs.py +0 -0
  3073. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/src/codex_plugin_scanner/verification.py +0 -0
  3074. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/__init__.py +0 -0
  3075. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/bounded_cli_hook_test_support.py +0 -0
  3076. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/bundle_first_cloud.py +0 -0
  3077. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/cloud_exception_bundle_fixtures.py +0 -0
  3078. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/codex_daemon_hook_bridge_fixtures.py +0 -0
  3079. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/command_extension_contracts.py +0 -0
  3080. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/conftest.py +0 -0
  3081. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/coverage_ci.py +0 -0
  3082. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/daemon_hook_test_client.py +0 -0
  3083. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/docker/test_all_harness_hooks.py +0 -0
  3084. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/dockerlabs/codex-cli-resume/Dockerfile +0 -0
  3085. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/dockerlabs/codex-cli-resume/docker-compose.yml +0 -0
  3086. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/dockerlabs/codex-cli-resume/requirements.txt +0 -0
  3087. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/dockerlabs/codex-cli-resume/run.sh +0 -0
  3088. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/dockerlabs/command-extension-analytics/Dockerfile +0 -0
  3089. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/dockerlabs/command-extension-analytics/Dockerfile.dockerignore +0 -0
  3090. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/dockerlabs/command-extension-analytics/bun-test-types.d.ts +0 -0
  3091. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/dockerlabs/command-extension-analytics/database-privacy.ts +0 -0
  3092. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/dockerlabs/command-extension-analytics/docker-compose.yml +0 -0
  3093. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/dockerlabs/command-extension-analytics/github-cli-fixture.sh +0 -0
  3094. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/dockerlabs/command-extension-analytics/installed-playwright.ts +0 -0
  3095. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/dockerlabs/command-extension-analytics/installed_containment_probe.py +0 -0
  3096. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/dockerlabs/command-extension-analytics/installed_server.py +0 -0
  3097. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/dockerlabs/command-extension-analytics/lab-process.ts +0 -0
  3098. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/dockerlabs/command-extension-analytics/package.json +0 -0
  3099. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/dockerlabs/command-extension-analytics/proof-privacy.ts +0 -0
  3100. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/dockerlabs/command-extension-analytics/relay-fetch.ts +0 -0
  3101. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/dockerlabs/command-extension-analytics/runner.test.ts +0 -0
  3102. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/dockerlabs/command-extension-analytics/runner.ts +0 -0
  3103. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/dockerlabs/command-extension-analytics/session-handoff.ts +0 -0
  3104. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/dockerlabs/command-extension-analytics/tcp_relay.py +0 -0
  3105. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/dockerlabs/command-extension-analytics/teardown.ts +0 -0
  3106. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/dockerlabs/command-extension-analytics/tsconfig.json +0 -0
  3107. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/dockerlabs/installed-guard-package-proof.test.mjs +0 -0
  3108. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/e2e_droid_exec.py +0 -0
  3109. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/evaluation_cli_fixtures.py +0 -0
  3110. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/extension_builder_support.py +0 -0
  3111. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/__init__.py +0 -0
  3112. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/bad-plugin/.codex-plugin/plugin.json +0 -0
  3113. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/bad-plugin/.mcp.json +0 -0
  3114. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/bad-plugin/secrets.js +0 -0
  3115. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/claude-plugin-good/.claude-plugin/plugin.json +0 -0
  3116. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/claude-plugin-good/LICENSE +0 -0
  3117. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/claude-plugin-good/README.md +0 -0
  3118. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/claude-plugin-good/SECURITY.md +0 -0
  3119. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/claude-plugin-good/hooks/hooks.json +0 -0
  3120. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/claude-plugin-good/skills/example/SKILL.md +0 -0
  3121. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/cline/current-posttool.json +0 -0
  3122. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/cline/current-pretool.json +0 -0
  3123. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/cline/legacy-posttool.json +0 -0
  3124. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/cline/legacy-pretool.json +0 -0
  3125. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/cline/version-matrix.json +0 -0
  3126. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/code-quality-bad/evil.js +0 -0
  3127. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/code-quality-bad/inject.js +0 -0
  3128. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/command-source-cloudg.v1.json +0 -0
  3129. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/command-source-cogext.v1.json +0 -0
  3130. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/command-source-ctty.v1.json +0 -0
  3131. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/command-source-digline.v1.json +0 -0
  3132. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/command-source-genclave.v1.json +0 -0
  3133. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/command-source-gitsync.v1.json +0 -0
  3134. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/command-source-skill-base.v1.json +0 -0
  3135. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/command-source-uivoid.v1.json +0 -0
  3136. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/cursor-hooks/benign-echo.json +0 -0
  3137. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/cursor-hooks/benign-health-check.json +0 -0
  3138. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/cursor-hooks/expected-permissions.json +0 -0
  3139. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/cursor-hooks/malicious-aws-credentials-read.json +0 -0
  3140. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/cursor-hooks/malicious-canary-exfil-shell.json +0 -0
  3141. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/cursor-hooks/malicious-env-read.json +0 -0
  3142. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/cursor-hooks/malicious-mcp-secret-read.json +0 -0
  3143. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/deepseek-harness-good/cordis.patch.yml +0 -0
  3144. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/deepseek-harness-good/index.js +0 -0
  3145. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/deepseek-harness-good/package.json +0 -0
  3146. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/devin/config_with_comments.jsonc +0 -0
  3147. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/devin/hooks_v1.json +0 -0
  3148. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/devin/mcp_config.json +0 -0
  3149. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/devin/mcp_config.local.json +0 -0
  3150. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/devin/user_config.json +0 -0
  3151. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/extension-controls/catalog-baseline.v1.json +0 -0
  3152. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/gemini-extension-good/GEMINI.md +0 -0
  3153. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/gemini-extension-good/LICENSE +0 -0
  3154. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/gemini-extension-good/README.md +0 -0
  3155. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/gemini-extension-good/SECURITY.md +0 -0
  3156. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/gemini-extension-good/commands/hello.toml +0 -0
  3157. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/gemini-extension-good/gemini-extension.json +0 -0
  3158. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/github-workflow/gh +0 -0
  3159. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/good-plugin/.codex-plugin/plugin.json +0 -0
  3160. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/good-plugin/.codexignore +0 -0
  3161. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/good-plugin/LICENSE +0 -0
  3162. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/good-plugin/README.md +0 -0
  3163. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/good-plugin/SECURITY.md +0 -0
  3164. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/good-plugin/assets/icon.svg +0 -0
  3165. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/good-plugin/assets/logo.svg +0 -0
  3166. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/good-plugin/assets/screenshot.svg +0 -0
  3167. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/good-plugin/skills/example/SKILL.md +0 -0
  3168. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/grok/pretooluse_bash.json +0 -0
  3169. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/grok/pretooluse_edit.json +0 -0
  3170. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/grok/pretooluse_grep_pipe_pattern.json +0 -0
  3171. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/grok/pretooluse_grep_safe.json +0 -0
  3172. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/grok/pretooluse_list_dir.json +0 -0
  3173. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/grok/pretooluse_mcp.json +0 -0
  3174. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/grok/pretooluse_mcp_qualified.json +0 -0
  3175. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/grok/pretooluse_read_secret.json +0 -0
  3176. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/grok/pretooluse_spawn_subagent.json +0 -0
  3177. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/grok/pretooluse_spawn_subagent_secret.json +0 -0
  3178. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/grok/pretooluse_unknown_tool.json +0 -0
  3179. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/grok/pretooluse_webfetch.json +0 -0
  3180. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/grok/subagent_start.json +0 -0
  3181. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/grok/user_prompt_submit.json +0 -0
  3182. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/guard-cloud-review/exact-transport-fixture.json +0 -0
  3183. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/guard-cloud-review/oauth-device-fixtures.json +0 -0
  3184. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/guard-command-corpus/known-gaps.json +0 -0
  3185. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/guard-command-corpus/minimal-delta-pairs.json +0 -0
  3186. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/guard-command-corpus/native-contract.json +0 -0
  3187. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/guard-command-corpus/seed-manifest.json +0 -0
  3188. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/guard-daemon-acceptance/workloads.json +0 -0
  3189. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/guard-red-team/README.md +0 -0
  3190. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/guard-red-team/benign-docs-fake-token.py +0 -0
  3191. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/guard-red-team/benign-health-endpoint.py +0 -0
  3192. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/guard-red-team/benign-nvmrc-fake-creds.py +0 -0
  3193. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/guard-red-team/benign-source-search.py +0 -0
  3194. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/guard-red-team/canary-exfil-encoded.py +0 -0
  3195. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/guard-red-team/canary-exfil.py +0 -0
  3196. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/guard-red-team/expected-decisions.json +0 -0
  3197. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/guard-red-team/malicious-dockerfile.txt +0 -0
  3198. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/guard-red-team/malicious-encoded-shell-exfil.py +0 -0
  3199. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/guard-red-team/malicious-github-action.yml +0 -0
  3200. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/guard-red-team/malicious-mcp-delete.md +0 -0
  3201. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/guard-red-team/malicious-mcp-secret-read.md +0 -0
  3202. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/guard-red-team/malicious-mcp-skill-exfil.md +0 -0
  3203. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/guard-red-team/malicious-npm-postinstall.js +0 -0
  3204. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/guard-red-team/malicious-prompt-env-read.md +0 -0
  3205. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/guard-red-team/malicious-prompt-guard-bypass.md +0 -0
  3206. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/guard-red-team/malicious-prompt-npmrc-read.md +0 -0
  3207. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/guard-red-team/malicious-python-setup.py +0 -0
  3208. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/guard-red-team/smoke-evidence-template.json +0 -0
  3209. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/hermes-plugin-evil/config.yaml +0 -0
  3210. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/hermes-plugin-evil/mcp_servers.json +0 -0
  3211. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/hermes-plugin-evil/skills/security/malicious/SKILL.md +0 -0
  3212. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/hermes-plugin-evil/skills/stealth/sneaky/SKILL.md +0 -0
  3213. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/hermes-plugin-evil/skills/stealth/sneaky/references/api-setup.md +0 -0
  3214. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/hermes-plugin-evil/skills/stealth/sneaky/scripts/deploy.sh +0 -0
  3215. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/hermes-plugin-evil/skills/utils/benign/SKILL.md +0 -0
  3216. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/hook_payloads/README.md +0 -0
  3217. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/kimi-plugin-good/LICENSE +0 -0
  3218. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/kimi-plugin-good/SECURITY.md +0 -0
  3219. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/kimi-plugin-good/SYSTEM.md +0 -0
  3220. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/kimi-plugin-good/agents/reviewer.md +0 -0
  3221. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/kimi-plugin-good/commands/recall.md +0 -0
  3222. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/kimi-plugin-good/kimi.plugin.json +0 -0
  3223. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/kimi-plugin-good/skills/using-demo/SKILL.md +0 -0
  3224. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/malformed-json/.codex-plugin/plugin.json +0 -0
  3225. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/malicious-skill-plugin/.codex-plugin/plugin.json +0 -0
  3226. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/malicious-skill-plugin/.codexignore +0 -0
  3227. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/malicious-skill-plugin/LICENSE +0 -0
  3228. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/malicious-skill-plugin/README.md +0 -0
  3229. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/malicious-skill-plugin/SECURITY.md +0 -0
  3230. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/malicious-skill-plugin/skills/leaky-skill/SKILL.md +0 -0
  3231. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/mcp-canary-server.py +0 -0
  3232. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/minimal-plugin/.codex-plugin/plugin.json +0 -0
  3233. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/missing-fields/.codex-plugin/plugin.json +0 -0
  3234. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/mit-license/LICENSE +0 -0
  3235. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/multi-ecosystem-repo/codex-plugin/.codex-plugin/plugin.json +0 -0
  3236. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/multi-ecosystem-repo/codex-plugin/LICENSE +0 -0
  3237. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/multi-ecosystem-repo/codex-plugin/README.md +0 -0
  3238. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/multi-ecosystem-repo/codex-plugin/SECURITY.md +0 -0
  3239. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/multi-ecosystem-repo/gemini-ext/README.md +0 -0
  3240. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/multi-ecosystem-repo/gemini-ext/gemini-extension.json +0 -0
  3241. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/multi-plugin-repo/.agents/plugins/marketplace.json +0 -0
  3242. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/multi-plugin-repo/plugins/alpha-plugin/.codex-plugin/plugin.json +0 -0
  3243. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/multi-plugin-repo/plugins/alpha-plugin/.codexignore +0 -0
  3244. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/multi-plugin-repo/plugins/alpha-plugin/LICENSE +0 -0
  3245. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/multi-plugin-repo/plugins/alpha-plugin/README.md +0 -0
  3246. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/multi-plugin-repo/plugins/alpha-plugin/SECURITY.md +0 -0
  3247. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/multi-plugin-repo/plugins/alpha-plugin/skills/example/SKILL.md +0 -0
  3248. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/multi-plugin-repo/plugins/beta-plugin/.codex-plugin/plugin.json +0 -0
  3249. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/multi-plugin-repo/plugins/beta-plugin/skills/example/SKILL.md +0 -0
  3250. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/native-hook-parity/cases.v1.json +0 -0
  3251. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/native-hook-parity/differential-expectations.v1.json +0 -0
  3252. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/native-review-action-envelope.json +0 -0
  3253. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/no-version/.codex-plugin/plugin.json +0 -0
  3254. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/opencode-good/.opencode/commands/hello.md +0 -0
  3255. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/opencode-good/.opencode/plugins/example.ts +0 -0
  3256. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/opencode-good/LICENSE +0 -0
  3257. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/opencode-good/README.md +0 -0
  3258. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/opencode-good/SECURITY.md +0 -0
  3259. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/opencode-good/opencode.jsonc +0 -0
  3260. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/pi-retry-identity-vectors.json +0 -0
  3261. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/skills-missing-dir/.codex-plugin/plugin.json +0 -0
  3262. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/skills-no-frontmatter/.codex-plugin/plugin.json +0 -0
  3263. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/skills-no-frontmatter/skills/bad-skill/SKILL.md +0 -0
  3264. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/supply-chain/benign-npm-controls-package.json +0 -0
  3265. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/supply-chain/benign-npm-package.json +0 -0
  3266. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/supply-chain/benign-pnpm-package.json +0 -0
  3267. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/supply-chain/benign-pyproject.toml +0 -0
  3268. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/supply-chain/critical-base-image-Dockerfile +0 -0
  3269. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/supply-chain/malicious-Dockerfile +0 -0
  3270. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/supply-chain/malicious-action.yml +0 -0
  3271. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/supply-chain/malicious-npm-env-fs-network-package.json +0 -0
  3272. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/supply-chain/malicious-npm-obfuscated-package.json +0 -0
  3273. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/supply-chain/malicious-npm-package.json +0 -0
  3274. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/supply-chain/malicious-setup.py +0 -0
  3275. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/tier2/README.md +0 -0
  3276. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/tier2/cargo-safe/Cargo.lock +0 -0
  3277. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/tier2/cargo-safe/Cargo.toml +0 -0
  3278. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/tier2/cargo-vulnerable/Cargo.lock +0 -0
  3279. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/tier2/cargo-vulnerable/Cargo.toml +0 -0
  3280. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/tier2/composer-safe/composer.json.fixture +0 -0
  3281. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/tier2/composer-safe/composer.lock.fixture +0 -0
  3282. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/tier2/composer-vulnerable/composer.json.fixture +0 -0
  3283. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/tier2/composer-vulnerable/composer.lock.fixture +0 -0
  3284. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/tier2/go-safe/go.mod +0 -0
  3285. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/tier2/go-vulnerable/go.mod +0 -0
  3286. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/tier2/gradle-safe/build.gradle +0 -0
  3287. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/tier2/gradle-safe/gradle.lockfile +0 -0
  3288. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/tier2/gradle-vulnerable/build.gradle +0 -0
  3289. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/tier2/gradle-vulnerable/gradle.lockfile +0 -0
  3290. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/tier2/maven-safe/pom.xml +0 -0
  3291. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/tier2/maven-vulnerable/pom.xml +0 -0
  3292. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/tier2/rubygems-safe/Gemfile +0 -0
  3293. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/tier2/rubygems-safe/Gemfile.lock +0 -0
  3294. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/tier2/rubygems-vulnerable/Gemfile +0 -0
  3295. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/tier2/rubygems-vulnerable/Gemfile.lock +0 -0
  3296. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/with-marketplace/.codex-plugin/plugin.json +0 -0
  3297. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/with-marketplace/marketplace-broken.json +0 -0
  3298. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/with-marketplace/marketplace.json +0 -0
  3299. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/zcode/pretooluse_bash.json +0 -0
  3300. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/zcode/pretooluse_mcp.json +0 -0
  3301. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/fixtures/zcode/user_prompt_submit.json +0 -0
  3302. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/generated_command_catalog_test_support.py +0 -0
  3303. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/git_execution_test_support.py +0 -0
  3304. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/guard_capacity_protocol_worker.py +0 -0
  3305. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/guard_cli_facade_isolation.py +0 -0
  3306. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/guard_cloud_review_hardening_support.py +0 -0
  3307. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/guard_command_activity_api_support.py +0 -0
  3308. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/guard_command_corpus.py +0 -0
  3309. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/guard_command_corpus_native.py +0 -0
  3310. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/guard_command_corpus_native_contract.py +0 -0
  3311. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/guard_command_corpus_oracle.py +0 -0
  3312. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/guard_command_corpus_oracle_adversarial.py +0 -0
  3313. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/guard_command_corpus_oracle_benign.py +0 -0
  3314. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/guard_command_corpus_oracle_loader.py +0 -0
  3315. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/guard_command_corpus_oracle_types.py +0 -0
  3316. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/guard_command_corpus_runner.py +0 -0
  3317. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/guard_command_decision_diff.py +0 -0
  3318. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/guard_command_decision_diff_runner.py +0 -0
  3319. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/guard_copilot_hook_command_corpus.py +0 -0
  3320. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/guard_daemon_acceptance_fixtures.py +0 -0
  3321. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/guard_exact_cloud_review_support.py +0 -0
  3322. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/guard_mdm_health_lease_support.py +0 -0
  3323. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/guard_oauth_token_support.py +0 -0
  3324. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/guard_python_phase12_support.py +0 -0
  3325. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/guard_review_event_outbox_test_support.py +0 -0
  3326. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/guard_review_signing_helpers.py +0 -0
  3327. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/guard_seeded_faults.py +0 -0
  3328. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/guard_signed_approval_fixtures.py +0 -0
  3329. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/guard_test_invariants.py +0 -0
  3330. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/guard_tier2_phase13_support.py +0 -0
  3331. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/harness_attribution_env.py +0 -0
  3332. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/managed_controls/__init__.py +0 -0
  3333. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/managed_controls/test_acknowledgement_drift.py +0 -0
  3334. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/managed_controls/test_adversarial_managed_controls.py +0 -0
  3335. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/managed_controls/test_atomic_apply.py +0 -0
  3336. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/managed_controls/test_authority_composition.py +0 -0
  3337. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/managed_controls/test_bundle_extension_fields.py +0 -0
  3338. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/managed_controls/test_capabilities_catalog.py +0 -0
  3339. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/managed_controls/test_catalog_privacy_identity.py +0 -0
  3340. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/managed_controls/test_compatibility_migration.py +0 -0
  3341. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/managed_controls/test_delegated_package_firewall.py +0 -0
  3342. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/managed_controls/test_flags_telemetry_redaction.py +0 -0
  3343. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/managed_controls/test_operations_performance.py +0 -0
  3344. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/managed_controls/test_release_gate.py +0 -0
  3345. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/managed_controls_activation_support.py +0 -0
  3346. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/native_command_activity_test_support.py +0 -0
  3347. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/native_command_test_support.py +0 -0
  3348. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/native_policy_snapshot_test_fixtures.py +0 -0
  3349. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/native_policy_snapshot_windows_handles.py +0 -0
  3350. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/native_policy_snapshot_windows_storage.py +0 -0
  3351. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/native_workflow_test_support.py +0 -0
  3352. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/openclaw_test_support.py +0 -0
  3353. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/policy_bundle_signing_helpers.py +0 -0
  3354. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/release_workflow_helpers.py +0 -0
  3355. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/runtime_registration_support.py +0 -0
  3356. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/shim_execution_helpers.py +0 -0
  3357. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/skill_directory_identity_test_support.py +0 -0
  3358. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/support/extension_freshness.py +0 -0
  3359. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/support/keyring.py +0 -0
  3360. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/support/network.py +0 -0
  3361. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_action_bundle.py +0 -0
  3362. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_action_offline_gating.py +0 -0
  3363. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_action_runner.py +0 -0
  3364. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_action_runner_step_summary_findings.py +0 -0
  3365. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_adapter_state_integrity_coverage.py +0 -0
  3366. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_agent_safety_guidance.py +0 -0
  3367. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_aibom_chunking.py +0 -0
  3368. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_alpha_container_workflow.py +0 -0
  3369. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_antigravity_adapter.py +0 -0
  3370. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_apply_sonar_audit_review.py +0 -0
  3371. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_best_practices.py +0 -0
  3372. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_bounded_cli_hook_bridge.py +0 -0
  3373. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_bounded_cli_hook_daemon.py +0 -0
  3374. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_bounded_cli_hook_daemon_transport.py +0 -0
  3375. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_bounded_cli_hook_frozen.py +0 -0
  3376. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_bounded_cli_hook_native_consistency.py +0 -0
  3377. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_bounded_cli_hook_script_template.py +0 -0
  3378. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_bounded_cli_hook_watch_continue.py +0 -0
  3379. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_bounded_cli_prune_safe_shim.py +0 -0
  3380. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_bounded_outage_denial.py +0 -0
  3381. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_ci_mutation_gate.py +0 -0
  3382. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_ci_pytest_collection.py +0 -0
  3383. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_ci_pytest_duration_manifest.py +0 -0
  3384. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_ci_pytest_duration_report.py +0 -0
  3385. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_ci_pytest_shard.py +0 -0
  3386. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_ci_pytest_shard_plan.py +0 -0
  3387. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_ci_shard_api_retries.py +0 -0
  3388. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_ci_speed_contracts.py +0 -0
  3389. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_ci_superseded_runs.py +0 -0
  3390. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_ci_test_duplicate_candidates.py +0 -0
  3391. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_ci_test_inventory.py +0 -0
  3392. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_ci_wait_for_pytest_shards.py +0 -0
  3393. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_ci_windows_updater.py +0 -0
  3394. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_cisco_install_surfaces.py +0 -0
  3395. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_claude_code_marketplace_plugin.py +0 -0
  3396. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_claude_daemon_hook_bridge.py +0 -0
  3397. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_claude_hook_completion_contract.py +0 -0
  3398. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_claude_hook_exit_paths.py +0 -0
  3399. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_claude_marketplace_structure.py +0 -0
  3400. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_cli.py +0 -0
  3401. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_cli_frozen_package_shim.py +0 -0
  3402. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_cli_only_hook_resilience.py +0 -0
  3403. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_cli_staged_version_fast_path.py +0 -0
  3404. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_cli_startup_latency_contract.py +0 -0
  3405. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_cline_completion_gates.py +0 -0
  3406. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_cline_destination_reconstruction.py +0 -0
  3407. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_cline_destination_symlinks.py +0 -0
  3408. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_cline_fixture_contract.py +0 -0
  3409. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_cline_hook_transports.py +0 -0
  3410. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_cline_live_proof_persistence.py +0 -0
  3411. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_cline_mcp.py +0 -0
  3412. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_cline_path_validation_order.py +0 -0
  3413. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_cline_paths.py +0 -0
  3414. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_cline_payload_contract.py +0 -0
  3415. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_cline_probe_environment.py +0 -0
  3416. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_cline_surface_dispatch.py +0 -0
  3417. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_cline_syntax_probe_boundary.py +0 -0
  3418. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_cline_transport_arbitration.py +0 -0
  3419. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_cloud_audit_job_destination.py +0 -0
  3420. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_cloud_exception_requests.py +0 -0
  3421. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_cloud_exception_sync_proof.py +0 -0
  3422. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_cloud_workspace_audit_destination.py +0 -0
  3423. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_code_quality.py +0 -0
  3424. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_codex_bridge_early_proxy.py +0 -0
  3425. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_codex_bridge_failure_diagnostics.py +0 -0
  3426. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_codex_daemon_hook_bridge_resilience.py +0 -0
  3427. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_codex_daemon_hook_resume.py +0 -0
  3428. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_codex_daemon_recovery_contention.py +0 -0
  3429. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_codex_event_trace.py +0 -0
  3430. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_codex_foreign_hook_prune.py +0 -0
  3431. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_codex_hook_approval_url.py +0 -0
  3432. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_codex_hook_fallback_isolation.py +0 -0
  3433. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_codex_hook_file_integrity_linux.py +0 -0
  3434. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_codex_hook_identity.py +0 -0
  3435. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_codex_hook_inventory.py +0 -0
  3436. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_codex_hook_packaged_permissions_linux.py +0 -0
  3437. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_codex_hook_process_cleanup.py +0 -0
  3438. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_codex_hook_repair_compatibility.py +0 -0
  3439. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_codex_live_completion_transport.py +0 -0
  3440. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_codex_live_decision.py +0 -0
  3441. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_codex_live_decision_revalidation.py +0 -0
  3442. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_codex_managed_fallback_authentication.py +0 -0
  3443. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_codex_manifest_bounded_read.py +0 -0
  3444. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_codex_outage_recovery_boundary.py +0 -0
  3445. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_codex_pretool_allow_schema.py +0 -0
  3446. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_codex_pretool_live_hook_defer.py +0 -0
  3447. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_codex_remote_control.py +0 -0
  3448. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_codex_signed_approval_handoff.py +0 -0
  3449. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_codex_signed_approval_smoke.py +0 -0
  3450. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_codex_skill_config.py +0 -0
  3451. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_command_expression.py +0 -0
  3452. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_command_extension_contracts.py +0 -0
  3453. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_command_keys_and_uri_schemes.py +0 -0
  3454. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_command_policy.py +0 -0
  3455. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_command_source_backlog.py +0 -0
  3456. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_command_source_backlog_expansion_bounds.py +0 -0
  3457. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_command_source_migration.py +0 -0
  3458. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_compute_alpha_release_version.py +0 -0
  3459. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_compute_main_release_version.py +0 -0
  3460. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_config.py +0 -0
  3461. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_copilot_lifecycle_transaction_races.py +0 -0
  3462. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_coverage_remaining.py +0 -0
  3463. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_cursor_adapter.py +0 -0
  3464. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_cursor_cli.py +0 -0
  3465. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_cursor_completion_gates.py +0 -0
  3466. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_cursor_frozen_hook_command.py +0 -0
  3467. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_cursor_headless_fixtures.py +0 -0
  3468. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_cursor_hook_block_reason.py +0 -0
  3469. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_cursor_hook_guard_cli.py +0 -0
  3470. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_cursor_hook_permissions.py +0 -0
  3471. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_cursor_hook_rebind.py +0 -0
  3472. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_cursor_local_actions.py +0 -0
  3473. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_cursor_outage_denial.py +0 -0
  3474. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_cursor_parsed_outage_denial.py +0 -0
  3475. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_cursor_path_cleanup.py +0 -0
  3476. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_cursor_watch_hook_script.py +0 -0
  3477. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_daemon_bounded_http.py +0 -0
  3478. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_daemon_http_response_lifecycle.py +0 -0
  3479. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_dashboard_reconnect.py +0 -0
  3480. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_dashboard_sync_security.py +0 -0
  3481. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_dashboard_update.py +0 -0
  3482. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_desktop_bootstrap_early_proxy.py +0 -0
  3483. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_desktop_core_alpha_feed_macos_signing.py +0 -0
  3484. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_desktop_core_alpha_feed_security.py +0 -0
  3485. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_desktop_core_alpha_feed_wake.py +0 -0
  3486. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_desktop_core_onedir_feed.py +0 -0
  3487. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_devin_adapter.py +0 -0
  3488. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_doctor_native_runtime.py +0 -0
  3489. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_dsh_validation_regressions.py +0 -0
  3490. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_ecosystems.py +0 -0
  3491. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_edge_cases.py +0 -0
  3492. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_enforcing_snapshot_pauses_native_review.py +0 -0
  3493. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_environment_secret_dump.py +0 -0
  3494. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_extension_control_clear_catalog_migration.py +0 -0
  3495. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_final_coverage.py +0 -0
  3496. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_final_release_evidence.py +0 -0
  3497. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_frozen_codex_runtime.py +0 -0
  3498. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_frozen_windows_daemon_bootstrap.py +0 -0
  3499. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_gemini_adapter.py +0 -0
  3500. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_gemini_skill_directory_identity.py +0 -0
  3501. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_generate_release_evidence_contract.py +0 -0
  3502. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_generate_release_notes.py +0 -0
  3503. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_generated_cli_uivoid_extension.py +0 -0
  3504. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_generated_command_catalog.py +0 -0
  3505. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_github_request.py +0 -0
  3506. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_grok_adapter.py +0 -0
  3507. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_grok_hook_context.py +0 -0
  3508. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_grok_hook_validation.py +0 -0
  3509. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_grok_managed_compat.py +0 -0
  3510. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_grok_watch_hooks.py +0 -0
  3511. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard-runtime-hook-health.py +0 -0
  3512. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_access_graph.py +0 -0
  3513. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_action_explanation_contract.py +0 -0
  3514. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_action_explanation_projection.py +0 -0
  3515. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_action_identity.py +0 -0
  3516. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_action_lattice.py +0 -0
  3517. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_advisory_escalation.py +0 -0
  3518. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_agent_guidance_reads.py +0 -0
  3519. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_aibom_cli.py +0 -0
  3520. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_aibom_content_upload.py +0 -0
  3521. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_aibom_content_upload_batches.py +0 -0
  3522. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_aibom_detection.py +0 -0
  3523. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_aibom_export_safety.py +0 -0
  3524. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_aibom_local_trust_coverage.py +0 -0
  3525. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_aibom_serializer_security.py +0 -0
  3526. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_aibom_skill_directory_identity.py +0 -0
  3527. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_aibom_symlink.py +0 -0
  3528. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_aibom_symlink_negative_matrix.py +0 -0
  3529. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_aibom_trust_metadata.py +0 -0
  3530. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_approval_attention.py +0 -0
  3531. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_approval_context.py +0 -0
  3532. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_approval_continuity.py +0 -0
  3533. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_approval_copy_commands.py +0 -0
  3534. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_approval_decisions.py +0 -0
  3535. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_approval_gate.py +0 -0
  3536. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_approval_locator_publication.py +0 -0
  3537. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_approval_policy_versions.py +0 -0
  3538. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_approval_precedence_consumers.py +0 -0
  3539. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_approval_precedence_generic_stdio.py +0 -0
  3540. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_approval_reuse.py +0 -0
  3541. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_approval_scope_contract.py +0 -0
  3542. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_approval_store_dedup.py +0 -0
  3543. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_approval_store_phase14.py +0 -0
  3544. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_approval_store_scale.py +0 -0
  3545. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_approvals.py +0 -0
  3546. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_assurance_planning.py +0 -0
  3547. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_authoritative_decision.py +0 -0
  3548. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_auto_first_sync.py +0 -0
  3549. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_benign_dx_guard.py +0 -0
  3550. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_benign_operations.py +0 -0
  3551. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_bootstrap.py +0 -0
  3552. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_bridge.py +0 -0
  3553. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_broad_allow_consumer.py +0 -0
  3554. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_browser_mcp_intent.py +0 -0
  3555. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_browser_opener.py +0 -0
  3556. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_bulk_allow_once.py +0 -0
  3557. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_bun_install_approval_replay.py +0 -0
  3558. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_bypass_detector.py +0 -0
  3559. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_canary_fixtures.py +0 -0
  3560. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_capabilities.py +0 -0
  3561. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_cisco_evidence.py +0 -0
  3562. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_cisco_runtime_cli.py +0 -0
  3563. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_claude_adapter.py +0 -0
  3564. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_claude_hook_argv.py +0 -0
  3565. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_cli.py +0 -0
  3566. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_cli_commands_facade.py +0 -0
  3567. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_cli_disconnect_lifecycle.py +0 -0
  3568. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_cli_lifecycle_gate.py +0 -0
  3569. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_cloud_entitlements.py +0 -0
  3570. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_cloud_exceptions.py +0 -0
  3571. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_cloud_local_sync.py +0 -0
  3572. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_cloud_review_adapter_continuation.py +0 -0
  3573. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_cloud_review_canonical_source.py +0 -0
  3574. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_cloud_review_contract.py +0 -0
  3575. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_cloud_review_delivery_status.py +0 -0
  3576. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_cloud_review_event_batching.py +0 -0
  3577. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_cloud_review_event_delivery.py +0 -0
  3578. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_cloud_review_parser_properties.py +0 -0
  3579. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_cloud_review_retry_recovery.py +0 -0
  3580. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_cloud_review_runtime_recovery.py +0 -0
  3581. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_cloud_review_settings.py +0 -0
  3582. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_cloud_review_snapshot_repair.py +0 -0
  3583. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_cloud_review_sqlite_recovery.py +0 -0
  3584. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_cloud_review_sync.py +0 -0
  3585. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_cloud_review_sync_worker.py +0 -0
  3586. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_codex_app_server.py +0 -0
  3587. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_codex_authoritative_hook_boundary.py +0 -0
  3588. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_codex_auto_resume_smoke.py +0 -0
  3589. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_codex_browser_authority.py +0 -0
  3590. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_codex_e2e.py +0 -0
  3591. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_codex_hook_state_metadata.py +0 -0
  3592. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_codex_install.py +0 -0
  3593. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_codex_interpreter_migration.py +0 -0
  3594. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_codex_prompt_attachments.py +0 -0
  3595. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_codex_proxy.py +0 -0
  3596. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_codex_resume_commands.py +0 -0
  3597. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_codex_resume_endpoints.py +0 -0
  3598. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_command_activity_api.py +0 -0
  3599. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_command_activity_api_access.py +0 -0
  3600. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_command_activity_capability.py +0 -0
  3601. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_command_activity_contract.py +0 -0
  3602. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_command_activity_correlation.py +0 -0
  3603. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_command_activity_cursor.py +0 -0
  3604. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_command_activity_deletion_privacy.py +0 -0
  3605. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_command_activity_health_recovery.py +0 -0
  3606. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_command_activity_hook_integration.py +0 -0
  3607. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_command_activity_invocation.py +0 -0
  3608. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_command_activity_lifecycle.py +0 -0
  3609. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_command_activity_lifecycle_store.py +0 -0
  3610. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_command_activity_maintenance_runtime.py +0 -0
  3611. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_command_activity_orchestration.py +0 -0
  3612. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_command_activity_persistence.py +0 -0
  3613. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_command_activity_policy_only.py +0 -0
  3614. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_command_activity_privacy.py +0 -0
  3615. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_command_activity_privacy_access.py +0 -0
  3616. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_command_activity_rollups.py +0 -0
  3617. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_command_backup_extensions.py +0 -0
  3618. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_command_blitcp_extensions.py +0 -0
  3619. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_command_capability.py +0 -0
  3620. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_command_catalog_rule_count.py +0 -0
  3621. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_command_cicd_extensions.py +0 -0
  3622. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_command_cloud_aws_batch_1.py +0 -0
  3623. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_command_cloud_aws_batch_4.py +0 -0
  3624. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_command_cloud_aws_batch_5.py +0 -0
  3625. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_command_cloud_azure_batch_3.py +0 -0
  3626. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_command_cloud_extensions.py +0 -0
  3627. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_command_cloud_gcp_batch_2.py +0 -0
  3628. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_command_common_extension_regressions.py +0 -0
  3629. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_command_container_kubernetes_common_extensions.py +0 -0
  3630. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_command_corpus.py +0 -0
  3631. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_command_corpus_native_contract.py +0 -0
  3632. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_command_coverage_followup.py +0 -0
  3633. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_command_critical_floors.py +0 -0
  3634. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_command_database_extensions.py +0 -0
  3635. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_command_decision_diff.py +0 -0
  3636. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_command_decision_routing.py +0 -0
  3637. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_command_decision_runtime_policy.py +0 -0
  3638. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_command_digline_extensions.py +0 -0
  3639. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_command_dns_extensions.py +0 -0
  3640. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_command_domain_extensions.py +0 -0
  3641. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_command_ecosystem_setup.py +0 -0
  3642. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_command_executors_update.py +0 -0
  3643. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_command_extension_directory.py +0 -0
  3644. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_command_extension_registry.py +0 -0
  3645. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_command_extensions.py +0 -0
  3646. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_command_framework_extensions.py +0 -0
  3647. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_command_git_porcelain.py +0 -0
  3648. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_command_git_stash_permission.py +0 -0
  3649. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_command_inspection_native_cli.py +0 -0
  3650. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_command_managed_service_extensions.py +0 -0
  3651. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_command_model.py +0 -0
  3652. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_command_noodle_extensions.py +0 -0
  3653. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_command_ollama_extensions.py +0 -0
  3654. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_command_path_set_matcher.py +0 -0
  3655. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_command_permission_catalog.py +0 -0
  3656. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_command_permission_examples.py +0 -0
  3657. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_command_platform_extensions.py +0 -0
  3658. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_command_probe_extensions.py +0 -0
  3659. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_command_queue.py +0 -0
  3660. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_command_queue_stale_pending_result.py +0 -0
  3661. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_command_remote_extensions.py +0 -0
  3662. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_command_repo2nb_extensions.py +0 -0
  3663. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_command_safe_variants.py +0 -0
  3664. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_command_search_messaging_extensions.py +0 -0
  3665. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_command_shadow_evaluation.py +0 -0
  3666. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_command_shadow_foreign_keys.py +0 -0
  3667. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_command_shadow_persistence.py +0 -0
  3668. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_command_shadow_schema_initial_v18.py +0 -0
  3669. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_command_skill_sunset_extensions.py +0 -0
  3670. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_command_snapshot_paging.py +0 -0
  3671. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_command_specialized_variants.py +0 -0
  3672. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_command_storage_extensions.py +0 -0
  3673. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_commands_isolation.py +0 -0
  3674. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_commands_router.py +0 -0
  3675. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_composio_contract.py +0 -0
  3676. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_composio_discovery.py +0 -0
  3677. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_composio_workflows.py +0 -0
  3678. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_compositional_shell_effects.py +0 -0
  3679. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_compound_developer_inspection.py +0 -0
  3680. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_compound_git_inspection.py +0 -0
  3681. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_compound_github_reads.py +0 -0
  3682. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_compound_readonly_auto_allow.py +0 -0
  3683. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_config_file_security.py +0 -0
  3684. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_config_paths.py +0 -0
  3685. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_connect_flow.py +0 -0
  3686. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_consumer_approval_precedence.py +0 -0
  3687. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_consumer_mode.py +0 -0
  3688. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_consumer_skill_directory_identity.py +0 -0
  3689. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_contained_node_execution.py +0 -0
  3690. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_contained_package_script_execution.py +0 -0
  3691. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_contained_typescript_execution.py +0 -0
  3692. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_contained_vitest_handoff_fail_closed.py +0 -0
  3693. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_contained_workspace_write_cli.py +0 -0
  3694. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_contained_workspace_write_contract.py +0 -0
  3695. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_contained_workspace_write_execution.py +0 -0
  3696. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_container_network_plan.py +0 -0
  3697. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_containment_backend_status.py +0 -0
  3698. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_containment_contract.py +0 -0
  3699. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_containment_executor.py +0 -0
  3700. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_containment_external_executable.py +0 -0
  3701. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_containment_health.py +0 -0
  3702. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_continuation_contract.py +0 -0
  3703. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_continuation_runtime.py +0 -0
  3704. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_copilot_adapter.py +0 -0
  3705. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_copilot_benign_policy_hint.py +0 -0
  3706. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_copilot_hook_command_corpus.py +0 -0
  3707. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_copilot_proxy.py +0 -0
  3708. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_current_inbox_precision.py +0 -0
  3709. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_custom_extension_continuity.py +0 -0
  3710. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_custom_extension_continuity_races.py +0 -0
  3711. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_custom_extension_suggestion.py +0 -0
  3712. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_daemon_acceptance.py +0 -0
  3713. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_daemon_cli.py +0 -0
  3714. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_daemon_containment_health.py +0 -0
  3715. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_daemon_decision_boundary.py +0 -0
  3716. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_daemon_diagnostics.py +0 -0
  3717. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_daemon_health_transport.py +0 -0
  3718. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_daemon_lifecycle_journal.py +0 -0
  3719. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_daemon_lifecycle_transition.py +0 -0
  3720. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_daemon_listen_ready.py +0 -0
  3721. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_daemon_live_sync_lifecycle.py +0 -0
  3722. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_daemon_manager.py +0 -0
  3723. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_daemon_owner_lock.py +0 -0
  3724. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_daemon_perf.py +0 -0
  3725. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_daemon_policy_authority.py +0 -0
  3726. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_daemon_recovery_resilience.py +0 -0
  3727. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_daemon_registry.py +0 -0
  3728. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_daemon_repair_perf.py +0 -0
  3729. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_daemon_retirement.py +0 -0
  3730. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_daemon_review_regressions.py +0 -0
  3731. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_daemon_runtime_repair.py +0 -0
  3732. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_daemon_sqlite_start_recovery.py +0 -0
  3733. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_daemon_startup_rollback.py +0 -0
  3734. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_daemon_stress_script.py +0 -0
  3735. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_daemon_transport_security.py +0 -0
  3736. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_daemon_wake.py +0 -0
  3737. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_daemon_worker_isolation.py +0 -0
  3738. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_dashboard_error_redaction.py +0 -0
  3739. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_dashboard_launcher.py +0 -0
  3740. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_dashboard_launcher_browser_failure.py +0 -0
  3741. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_data_flow.py +0 -0
  3742. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_decision_boundary_modules.py +0 -0
  3743. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_decision_propagation.py +0 -0
  3744. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_dependency_snapshot_secrets.py +0 -0
  3745. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_desktop_contract.py +0 -0
  3746. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_desktop_dashboard_session.py +0 -0
  3747. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_desktop_notifications.py +0 -0
  3748. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_detector_fp.py +0 -0
  3749. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_direct_typescript_diagnostic_filter.py +0 -0
  3750. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_direct_vitest.py +0 -0
  3751. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_directory_path_authority.py +0 -0
  3752. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_docs.py +0 -0
  3753. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_doctor_incident.py +0 -0
  3754. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_doctor_managed_hooks.py +0 -0
  3755. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_doctor_readiness.py +0 -0
  3756. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_durable_io.py +0 -0
  3757. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_effect_contract.py +0 -0
  3758. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_effect_decision.py +0 -0
  3759. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_embedded_script_evidence.py +0 -0
  3760. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_encrypted_secret_store_stability.py +0 -0
  3761. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_env_wrapper.py +0 -0
  3762. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_evaluation_cli.py +0 -0
  3763. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_evaluation_cli_package.py +0 -0
  3764. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_evaluation_contracts.py +0 -0
  3765. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_evaluation_preflight.py +0 -0
  3766. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_evaluation_runner.py +0 -0
  3767. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_evaluation_witness.py +0 -0
  3768. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_evaluation_witness_ownership.py +0 -0
  3769. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_event_schema_v1.py +0 -0
  3770. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_events.py +0 -0
  3771. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_evidence_api_contract.py +0 -0
  3772. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_evidence_store.py +0 -0
  3773. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_exact_cloud_review.py +0 -0
  3774. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_exact_cloud_review_adversarial.py +0 -0
  3775. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_exact_cloud_review_concurrency.py +0 -0
  3776. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_exact_cloud_review_oauth.py +0 -0
  3777. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_exact_cloud_review_transport.py +0 -0
  3778. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_exact_cloud_review_transport_failures.py +0 -0
  3779. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_execution_assurance_contract.py +0 -0
  3780. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_execution_assurance_receipt.py +0 -0
  3781. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_execution_context_propagation.py +0 -0
  3782. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_execution_ownership.py +0 -0
  3783. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_extension_builder_artifacts.py +0 -0
  3784. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_extension_builder_cli.py +0 -0
  3785. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_extension_builder_cross_platform.py +0 -0
  3786. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_extension_builder_discovery.py +0 -0
  3787. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_extension_builder_integer_limits.py +0 -0
  3788. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_extension_builder_kit.py +0 -0
  3789. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_extension_builder_listing.py +0 -0
  3790. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_extension_builder_mcp_cursors.py +0 -0
  3791. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_extension_builder_metadata.py +0 -0
  3792. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_extension_builder_native.py +0 -0
  3793. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_extension_builder_public_docs.py +0 -0
  3794. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_extension_builder_replay_limits.py +0 -0
  3795. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_extension_builder_repository.py +0 -0
  3796. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_extension_builder_review.py +0 -0
  3797. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_extension_builder_review_regressions.py +0 -0
  3798. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_extension_builder_review_scope.py +0 -0
  3799. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_extension_builder_sequence_contracts.py +0 -0
  3800. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_extension_catalog_handshake.py +0 -0
  3801. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_extension_catalog_sync.py +0 -0
  3802. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_extension_claim_notice.py +0 -0
  3803. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_extension_contribution.py +0 -0
  3804. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_extension_control_api.py +0 -0
  3805. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_extension_control_authority.py +0 -0
  3806. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_extension_control_catalog_detail.py +0 -0
  3807. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_extension_control_catalog_manifest_refresh.py +0 -0
  3808. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_extension_control_catalog_update_repair.py +0 -0
  3809. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_extension_control_catalog_upgrade.py +0 -0
  3810. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_extension_control_catalog_wire.py +0 -0
  3811. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_extension_control_dashboard_session_auth.py +0 -0
  3812. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_extension_control_enrollment_recovery.py +0 -0
  3813. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_extension_control_hook.py +0 -0
  3814. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_extension_control_http_api.py +0 -0
  3815. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_extension_control_projection.py +0 -0
  3816. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_extension_control_proof.py +0 -0
  3817. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_extension_control_recovery.py +0 -0
  3818. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_extension_control_refresh_lease.py +0 -0
  3819. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_extension_control_resolver.py +0 -0
  3820. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_extension_control_runtime.py +0 -0
  3821. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_extension_control_semantic_preview.py +0 -0
  3822. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_extension_control_test_lab.py +0 -0
  3823. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_extension_controls_cli.py +0 -0
  3824. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_extension_directory_contract_parity.py +0 -0
  3825. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_extension_directory_export.py +0 -0
  3826. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_extension_directory_io.py +0 -0
  3827. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_extension_directory_operations.py +0 -0
  3828. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_extension_evidence_contract.py +0 -0
  3829. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_extension_trust.py +0 -0
  3830. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_frozen_daemon_runtime.py +0 -0
  3831. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_git_c_home_fetch.py +0 -0
  3832. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_git_metadata_safety.py +0 -0
  3833. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_git_pathspec_resolution.py +0 -0
  3834. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_github_actions_read_workflow.py +0 -0
  3835. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_github_capability_floors.py +0 -0
  3836. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_github_command_capabilities.py +0 -0
  3837. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_github_command_capability_edges.py +0 -0
  3838. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_github_failed_run_rerun.py +0 -0
  3839. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_github_pipeline_filters.py +0 -0
  3840. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_github_pr_body_file.py +0 -0
  3841. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_github_pr_ephemeral_body.py +0 -0
  3842. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_github_workflow_authorization.py +0 -0
  3843. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_github_workflow_context_binding.py +0 -0
  3844. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_github_workflow_privacy.py +0 -0
  3845. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_github_workflow_retry_reuse.py +0 -0
  3846. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_github_workflow_runtime.py +0 -0
  3847. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_github_workflow_runtime_eval.py +0 -0
  3848. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_grok_auto_resume.py +0 -0
  3849. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_grok_executable_security.py +0 -0
  3850. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_grok_protection.py +0 -0
  3851. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_gvisor_reference_runtime.py +0 -0
  3852. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_harness_contracts.py +0 -0
  3853. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_harness_launcher.py +0 -0
  3854. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_harness_mcp_continuity.py +0 -0
  3855. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_harness_mcp_discovery.py +0 -0
  3856. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_harness_mcp_discovery_failures.py +0 -0
  3857. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_harness_setup.py +0 -0
  3858. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_harness_smoke.py +0 -0
  3859. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_hashnet_mcp_canaries.py +0 -0
  3860. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_headless_daemon_api.py +0 -0
  3861. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_help_alias.py +0 -0
  3862. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_hook_executable_identity.py +0 -0
  3863. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_hook_native_eval_guards.py +0 -0
  3864. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_hook_payload_reference.py +0 -0
  3865. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_hook_payload_workspace.py +0 -0
  3866. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_hook_post_claim_freshness.py +0 -0
  3867. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_hook_process_binding.py +0 -0
  3868. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_hook_process_capacity.py +0 -0
  3869. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_hook_process_containment.py +0 -0
  3870. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_hook_process_deadline_contract.py +0 -0
  3871. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_hook_process_deferred_startup.py +0 -0
  3872. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_hook_process_metrics.py +0 -0
  3873. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_hook_process_runner.py +0 -0
  3874. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_hook_saved_block_terminal.py +0 -0
  3875. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_hook_worker.py +0 -0
  3876. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_hosted_dashboard_origin_blocklist.py +0 -0
  3877. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_hotfix_regressions.py +0 -0
  3878. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_incident_decision_copy.py +0 -0
  3879. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_index_inspection_classification.py +0 -0
  3880. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_init.py +0 -0
  3881. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_insights.py +0 -0
  3882. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_interpreted_entrypoint_identity.py +0 -0
  3883. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_interpreter_decoy_c_flag.py +0 -0
  3884. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_interpreter_identity.py +0 -0
  3885. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_inventory_cisco.py +0 -0
  3886. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_inventory_cisco_cloud_authority.py +0 -0
  3887. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_inventory_contract.py +0 -0
  3888. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_isolation_provider.py +0 -0
  3889. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_js_lab_phase11.py +0 -0
  3890. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_js_lockfile_resolution_phase11.py +0 -0
  3891. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_js_package_hook_phase11.py +0 -0
  3892. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_js_package_intent_phase11.py +0 -0
  3893. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_js_semver_phase11.py +0 -0
  3894. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_js_semver_policy_phase11.py +0 -0
  3895. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_js_supply_chain_phase11.py +0 -0
  3896. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_k8s_runtimeclass_provider.py +0 -0
  3897. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_keyring_support.py +0 -0
  3898. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_kubernetes_command_support.py +0 -0
  3899. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_kubernetes_readonly_inventory.py +0 -0
  3900. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_kubernetes_runtime.py +0 -0
  3901. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_launch_env.py +0 -0
  3902. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_launch_identity_binding.py +0 -0
  3903. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_launch_identity_environment.py +0 -0
  3904. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_legacy_token_fixtures.py +0 -0
  3905. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_linux_adversarial_conformance.py +0 -0
  3906. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_linux_artifact_lifecycle.py +0 -0
  3907. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_linux_artifact_ownership.py +0 -0
  3908. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_linux_artifact_supply_chain.py +0 -0
  3909. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_linux_dependency_drill.py +0 -0
  3910. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_linux_namespace_network_plan.py +0 -0
  3911. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_linux_network_observer.py +0 -0
  3912. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_linux_performance_acceptance.py +0 -0
  3913. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_linux_tcp_enforcement.py +0 -0
  3914. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_linux_tetragon_observer.py +0 -0
  3915. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_linux_udp_dns_enforcement.py +0 -0
  3916. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_live_process_identity.py +0 -0
  3917. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_local_authority_integrity.py +0 -0
  3918. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_local_cli_api.py +0 -0
  3919. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_local_cli_commands.py +0 -0
  3920. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_local_cli_help.py +0 -0
  3921. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_local_cli_identity.py +0 -0
  3922. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_local_cli_mcp_recognize.py +0 -0
  3923. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_local_cli_schema.py +0 -0
  3924. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_local_cli_sqlite_salvage.py +0 -0
  3925. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_local_cli_trust.py +0 -0
  3926. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_local_mcp_grants.py +0 -0
  3927. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_local_mcp_probe.py +0 -0
  3928. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_local_mcp_probe_env.py +0 -0
  3929. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_local_mcp_probe_shims.py +0 -0
  3930. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_local_node_runner_evidence.py +0 -0
  3931. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_local_os_containment_provider.py +0 -0
  3932. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_local_output_review.py +0 -0
  3933. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_local_risk_report.py +0 -0
  3934. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_local_risk_report_cli.py +0 -0
  3935. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_local_runtime_fallbacks.py +0 -0
  3936. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_local_skill_index.py +0 -0
  3937. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_local_supply_chain_audit_phase16.py +0 -0
  3938. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_local_supply_chain_phase15.py +0 -0
  3939. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_local_temp_paths.py +0 -0
  3940. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_local_terminal_record.py +0 -0
  3941. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_malformed_decision_envelopes.py +0 -0
  3942. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_managed_controls_status_api.py +0 -0
  3943. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_managed_extension_controls.py +0 -0
  3944. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_managed_install_context.py +0 -0
  3945. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_manifest_install_firewall.py +0 -0
  3946. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_manifest_path_traversal.py +0 -0
  3947. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_mcp_adapter_env_identity.py +0 -0
  3948. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_mcp_catalog_coverage.py +0 -0
  3949. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_mcp_catalog_scale.py +0 -0
  3950. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_mcp_catalog_store.py +0 -0
  3951. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_mcp_classification.py +0 -0
  3952. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_mcp_contract.py +0 -0
  3953. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_mcp_detectors.py +0 -0
  3954. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_mcp_discovery_jobs.py +0 -0
  3955. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_mcp_exact_action_surfaces.py +0 -0
  3956. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_mcp_fastmcp_registration.py +0 -0
  3957. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_mcp_package_proxy_phase14.py +0 -0
  3958. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_mcp_policy_tools.py +0 -0
  3959. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_mcp_pr_ui_compare_contribution.py +0 -0
  3960. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_mcp_protection.py +0 -0
  3961. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_mcp_provider_authority.py +0 -0
  3962. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_mcp_provider_catalog.py +0 -0
  3963. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_mcp_provider_permissions.py +0 -0
  3964. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_mcp_publication.py +0 -0
  3965. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_mcp_registry.py +0 -0
  3966. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_mcp_sanitization.py +0 -0
  3967. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_mcp_server_contribution.py +0 -0
  3968. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_mcp_server_grants.py +0 -0
  3969. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_mcp_skill_firewall.py +0 -0
  3970. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_mcp_skills.py +0 -0
  3971. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_mdm_acl.py +0 -0
  3972. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_mdm_adapter_conformance.py +0 -0
  3973. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_mdm_bridge_network.py +0 -0
  3974. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_mdm_cli.py +0 -0
  3975. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_mdm_cloud_control.py +0 -0
  3976. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_mdm_cloud_hardening.py +0 -0
  3977. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_mdm_cloud_lab_integration.py +0 -0
  3978. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_mdm_cloud_lab_registration.py +0 -0
  3979. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_mdm_cloud_lab_transport_security.py +0 -0
  3980. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_mdm_cloud_schemas.py +0 -0
  3981. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_mdm_continuity.py +0 -0
  3982. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_mdm_device_key.py +0 -0
  3983. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_mdm_device_key_signing.py +0 -0
  3984. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_mdm_endpoint_manifest.py +0 -0
  3985. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_mdm_harness_coverage.py +0 -0
  3986. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_mdm_harness_coverage_lifecycle.py +0 -0
  3987. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_mdm_health_key_registration.py +0 -0
  3988. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_mdm_health_lease.py +0 -0
  3989. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_mdm_health_lease_ack.py +0 -0
  3990. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_mdm_health_lease_ack_contract.py +0 -0
  3991. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_mdm_health_lease_contract.py +0 -0
  3992. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_mdm_health_reporter.py +0 -0
  3993. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_mdm_health_transport.py +0 -0
  3994. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_mdm_http_inventory.py +0 -0
  3995. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_mdm_integrity.py +0 -0
  3996. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_mdm_integrity_detection.py +0 -0
  3997. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_mdm_lifecycle.py +0 -0
  3998. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_mdm_local_lab.py +0 -0
  3999. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_mdm_local_lab_container.py +0 -0
  4000. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_mdm_manifest.py +0 -0
  4001. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_mdm_manifest_generation.py +0 -0
  4002. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_mdm_native.py +0 -0
  4003. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_mdm_network.py +0 -0
  4004. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_mdm_network_cli.py +0 -0
  4005. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_mdm_network_cli_process.py +0 -0
  4006. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_mdm_network_integration.py +0 -0
  4007. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_mdm_network_policy_contract.py +0 -0
  4008. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_mdm_network_urlopen.py +0 -0
  4009. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_mdm_offline_lifecycle.py +0 -0
  4010. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_mdm_policy.py +0 -0
  4011. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_mdm_supervisor.py +0 -0
  4012. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_mdm_tls_policy.py +0 -0
  4013. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_mdm_user_health.py +0 -0
  4014. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_memory_decision_event.py +0 -0
  4015. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_memory_decision_outbox.py +0 -0
  4016. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_native_classification_baseline.py +0 -0
  4017. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_native_import_surface.py +0 -0
  4018. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_native_policy_snapshot.py +0 -0
  4019. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_native_release_gate_benchmark.py +0 -0
  4020. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_native_runtime.py +0 -0
  4021. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_native_slo_ingress.py +0 -0
  4022. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_network_backend_registry.py +0 -0
  4023. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_network_broker_contract.py +0 -0
  4024. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_network_capability_contract.py +0 -0
  4025. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_network_capability_reachability.py +0 -0
  4026. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_network_cli.py +0 -0
  4027. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_network_destination_correlator.py +0 -0
  4028. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_network_evidence_ledger.py +0 -0
  4029. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_network_grant_engine.py +0 -0
  4030. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_network_legacy_config.py +0 -0
  4031. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_network_local_api.py +0 -0
  4032. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_network_local_core.py +0 -0
  4033. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_network_observer.py +0 -0
  4034. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_network_plane_router.py +0 -0
  4035. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_network_policy_compiler.py +0 -0
  4036. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_network_policy_contract.py +0 -0
  4037. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_network_policy_evaluator.py +0 -0
  4038. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_network_policy_extension.py +0 -0
  4039. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_network_process_lifecycle.py +0 -0
  4040. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_network_public_suffix.py +0 -0
  4041. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_network_remediation_proof.py +0 -0
  4042. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_network_status_client.py +0 -0
  4043. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_network_supervisor.py +0 -0
  4044. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_node_semver.py +0 -0
  4045. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_non_codex_resume.py +0 -0
  4046. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_oauth_client.py +0 -0
  4047. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_oauth_device_connect.py +0 -0
  4048. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_oauth_reconnect.py +0 -0
  4049. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_oauth_refresh_resilience.py +0 -0
  4050. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_observed_mcp_tools.py +0 -0
  4051. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_oci_isolation_provider.py +0 -0
  4052. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_oci_plan_generator.py +0 -0
  4053. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_omp_fast_path_regression.py +0 -0
  4054. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_onefile_extraction.py +0 -0
  4055. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_onefile_extraction_daemon.py +0 -0
  4056. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_onefile_extraction_entry.py +0 -0
  4057. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_opencode_proxy.py +0 -0
  4058. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_origin_fetch_classification.py +0 -0
  4059. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_outcome_receipt.py +0 -0
  4060. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_package_execution_context.py +0 -0
  4061. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_package_execution_policy.py +0 -0
  4062. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_package_firewall_entitlement.py +0 -0
  4063. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_package_firewall_reuse_proof.py +0 -0
  4064. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_package_hook.py +0 -0
  4065. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_package_hook_phase14.py +0 -0
  4066. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_package_intent.py +0 -0
  4067. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_package_json_scripts.py +0 -0
  4068. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_package_resume_phase14.py +0 -0
  4069. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_package_runner_identity.py +0 -0
  4070. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_package_shim_frozen.py +0 -0
  4071. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_package_shim_runtime_ownership.py +0 -0
  4072. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_package_shims.py +0 -0
  4073. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_package_shims_cli.py +0 -0
  4074. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_package_support_matrix.py +0 -0
  4075. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_perl_warning_flag_observers.py +0 -0
  4076. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_phase03_local_install.py +0 -0
  4077. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_phase03_remainder.py +0 -0
  4078. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_phase04_failure_modes.py +0 -0
  4079. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_phase04_harness_contracts.py +0 -0
  4080. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_phase04_harness_ux.py +0 -0
  4081. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_phase04_install_reason_proofs.py +0 -0
  4082. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_phase05_approval_memory.py +0 -0
  4083. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_phase05_manager_coverage.py +0 -0
  4084. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_phase06_workspace_audit.py +0 -0
  4085. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_phase07_entitlement_daemon_security.py +0 -0
  4086. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_phase07_harness_coverage_matrix.py +0 -0
  4087. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_phase11_package_firewall_receipts.py +0 -0
  4088. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_phase11_package_firewall_status.py +0 -0
  4089. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_policy_bundle_browser_scopes.py +0 -0
  4090. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_policy_dedup.py +0 -0
  4091. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_policy_integrity.py +0 -0
  4092. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_policy_integrity_local_vault.py +0 -0
  4093. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_policy_integrity_native_identity.py +0 -0
  4094. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_policy_recipe.py +0 -0
  4095. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_policy_source_context.py +0 -0
  4096. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_presentation_mode.py +0 -0
  4097. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_private_file_io.py +0 -0
  4098. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_product_flow.py +0 -0
  4099. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_product_model_contracts.py +0 -0
  4100. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_project_identity.py +0 -0
  4101. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_project_identity_ipv6.py +0 -0
  4102. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_project_identity_precedence.py +0 -0
  4103. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_project_identity_symlink.py +0 -0
  4104. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_prompt_injection.py +0 -0
  4105. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_protect.py +0 -0
  4106. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_protect_approval_decision.py +0 -0
  4107. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_protect_approval_guidance.py +0 -0
  4108. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_protect_cloud_connect_asset.py +0 -0
  4109. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_protect_harness_attribution.py +0 -0
  4110. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_protect_package_spec_parsing.py +0 -0
  4111. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_protect_signed_approval.py +0 -0
  4112. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_protect_workspace_asset.py +0 -0
  4113. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_protection_capabilities.py +0 -0
  4114. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_protection_events.py +0 -0
  4115. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_protection_health.py +0 -0
  4116. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_protection_posture.py +0 -0
  4117. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_protection_recovery.py +0 -0
  4118. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_protection_repair_retry.py +0 -0
  4119. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_provenance.py +0 -0
  4120. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_provider_recovery.py +0 -0
  4121. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_proxy_env_scrubbing.py +0 -0
  4122. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_python_lab_phase12.py +0 -0
  4123. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_python_package_hook_phase12.py +0 -0
  4124. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_python_package_intent_phase12.py +0 -0
  4125. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_python_supply_chain_heuristics_phase12.py +0 -0
  4126. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_python_supply_chain_phase12.py +0 -0
  4127. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_queue_api_contract.py +0 -0
  4128. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_queue_contract.py +0 -0
  4129. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_read_only_git_audit.py +0 -0
  4130. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_readonly_compound_false_positives.py +0 -0
  4131. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_receipt_command_detail_backfill.py +0 -0
  4132. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_receipt_p5_fields.py +0 -0
  4133. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_receipt_persistence.py +0 -0
  4134. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_receipt_redaction_cursor.py +0 -0
  4135. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_receipt_redaction_level.py +0 -0
  4136. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_recent_inbox_false_positives.py +0 -0
  4137. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_red_team.py +0 -0
  4138. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_red_team_e2e.py +0 -0
  4139. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_redaction.py +0 -0
  4140. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_redaction_idempotence.py +0 -0
  4141. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_registry_broker_skills_canaries.py +0 -0
  4142. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_release_3_0_compatibility.py +0 -0
  4143. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_remote_approval_execution.py +0 -0
  4144. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_remote_mcp_contributions.py +0 -0
  4145. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_remote_mcp_endpoint_contract.py +0 -0
  4146. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_remote_mcp_endpoint_length.py +0 -0
  4147. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_remote_mcp_host_roots.py +0 -0
  4148. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_remote_mcp_ipv4_mapped.py +0 -0
  4149. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_remote_mcp_server_name_fallback.py +0 -0
  4150. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_remote_mcp_url_safety.py +0 -0
  4151. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_remote_pair_flow.py +0 -0
  4152. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_remote_pair_proof.py +0 -0
  4153. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_render.py +0 -0
  4154. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_request_version_metadata.py +0 -0
  4155. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_resolution_copy.py +0 -0
  4156. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_resource_budget.py +0 -0
  4157. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_restricted_archive_download.py +0 -0
  4158. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_restricted_pytest.py +0 -0
  4159. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_restricted_pytest_sandbox_streams.py +0 -0
  4160. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_review_event_outbox.py +0 -0
  4161. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_review_event_outbox_delivery.py +0 -0
  4162. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_review_key_queue_readiness.py +0 -0
  4163. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_review_key_sync.py +0 -0
  4164. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_review_outbox_legacy_migration.py +0 -0
  4165. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_review_policy_memory_command.py +0 -0
  4166. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_review_retry_identity.py +0 -0
  4167. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_ripgrep_exclusion_globs.py +0 -0
  4168. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_risk.py +0 -0
  4169. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_risk_exfil_precision.py +0 -0
  4170. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_routine_directory_creation.py +0 -0
  4171. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_routine_inspection_regressions.py +0 -0
  4172. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_routine_local_node.py +0 -0
  4173. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_routine_setup_commands.py +0 -0
  4174. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_runner_skill_directory_identity.py +0 -0
  4175. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_runtime_action_harnesses.py +0 -0
  4176. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_runtime_actions.py +0 -0
  4177. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_runtime_actions_phase14.py +0 -0
  4178. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_runtime_artifact_reconciliation.py +0 -0
  4179. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_runtime_decisions.py +0 -0
  4180. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_runtime_detectors.py +0 -0
  4181. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_runtime_heartbeat_registration.py +0 -0
  4182. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_runtime_hook_deadline.py +0 -0
  4183. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_runtime_hook_evidence_writer.py +0 -0
  4184. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_runtime_hook_scheduler.py +0 -0
  4185. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_runtime_mcp_saved_blocks.py +0 -0
  4186. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_runtime_peer_discovery.py +0 -0
  4187. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_runtime_registration_heal.py +0 -0
  4188. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_runtime_signals.py +0 -0
  4189. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_safe_decode.py +0 -0
  4190. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_safe_directory_creation.py +0 -0
  4191. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_safe_existence_probe.py +0 -0
  4192. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_sandbox.py +0 -0
  4193. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_script_floor_composition.py +0 -0
  4194. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_search_input_hardening.py +0 -0
  4195. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_secret_assignment_precision.py +0 -0
  4196. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_secret_detection.py +0 -0
  4197. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_secret_fixture_precision.py +0 -0
  4198. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_secret_redaction.py +0 -0
  4199. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_secrets_native_cli.py +0 -0
  4200. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_seeded_faults.py +0 -0
  4201. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_self_protection_schemas.py +0 -0
  4202. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_settings_api.py +0 -0
  4203. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_settings_presets.py +0 -0
  4204. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_settings_sync_preservation.py +0 -0
  4205. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_shell_command_wrappers.py +0 -0
  4206. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_shell_execution_context.py +0 -0
  4207. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_shell_read_evidence_cwd.py +0 -0
  4208. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_shell_read_literal_wrapper.py +0 -0
  4209. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_shell_read_syntax_fidelity.py +0 -0
  4210. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_shell_secret_read_control_flow.py +0 -0
  4211. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_shell_secret_read_floors.py +0 -0
  4212. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_shell_static_path_boundaries.py +0 -0
  4213. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_shim_intercept_proofs.py +0 -0
  4214. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_shim_profile.py +0 -0
  4215. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_shim_refresh.py +0 -0
  4216. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_shim_truth.py +0 -0
  4217. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_skill_directory_identity.py +0 -0
  4218. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_skill_directory_identity_discovery.py +0 -0
  4219. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_skill_directory_identity_downstream.py +0 -0
  4220. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_skill_directory_identity_links.py +0 -0
  4221. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_skill_document_evidence.py +0 -0
  4222. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_skill_protection.py +0 -0
  4223. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_skill_protection_phase14.py +0 -0
  4224. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_skill_workflow_preflight.py +0 -0
  4225. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_source_search_redaction.py +0 -0
  4226. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_source_view_secret_fixtures.py +0 -0
  4227. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_sqlite_failure_containment.py +0 -0
  4228. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_sqlite_profile.py +0 -0
  4229. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_stable_digest.py +0 -0
  4230. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_standalone_git_routine.py +0 -0
  4231. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_state_persistence.py +0 -0
  4232. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_static_analysis_regex_equivalence.py +0 -0
  4233. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_stdio_launch_identity.py +0 -0
  4234. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_storage_maintenance.py +0 -0
  4235. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_store_connection_gate.py +0 -0
  4236. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_store_fault_injection.py +0 -0
  4237. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_store_migrations.py +0 -0
  4238. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_store_quarantine_forensics.py +0 -0
  4239. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_store_quarantine_retention.py +0 -0
  4240. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_strands_intervention.py +0 -0
  4241. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_supply_chain.py +0 -0
  4242. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_supply_chain_bundle.py +0 -0
  4243. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_supply_chain_daemon.py +0 -0
  4244. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_supply_chain_decision_contract.py +0 -0
  4245. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_supply_chain_disclosure_reasons.py +0 -0
  4246. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_supply_chain_repair.py +0 -0
  4247. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_supply_chain_sync.py +0 -0
  4248. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_surface_server_denial_audit.py +0 -0
  4249. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_sync_http_error_message.py +0 -0
  4250. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_temporary_mcp_approvals.py +0 -0
  4251. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_temporary_mcp_grant_reconciliation.py +0 -0
  4252. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_test_invariants.py +0 -0
  4253. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_threat_intel.py +0 -0
  4254. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_tier2_labs_phase13.py +0 -0
  4255. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_tier2_package_intent_phase13.py +0 -0
  4256. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_tier2_supply_chain_phase13.py +0 -0
  4257. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_tool_action_summaries.py +0 -0
  4258. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_totp_recent_mfa.py +0 -0
  4259. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_trust_attestation_boundary.py +0 -0
  4260. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_trust_cli_passive_backend.py +0 -0
  4261. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_trusted_local_tools.py +0 -0
  4262. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_typescript_observer_globs.py +0 -0
  4263. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_typescript_snapshot_inputs.py +0 -0
  4264. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_uninstall_commands.py +0 -0
  4265. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_unmatched_tool_approval.py +0 -0
  4266. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_update_artifact.py +0 -0
  4267. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_update_daemon_external_owner.py +0 -0
  4268. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_update_daemon_handoff.py +0 -0
  4269. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_update_install_verify.py +0 -0
  4270. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_update_isolation.py +0 -0
  4271. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_update_pipx_recovery.py +0 -0
  4272. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_update_subprocess.py +0 -0
  4273. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_user_prompt_policy.py +0 -0
  4274. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_verdicts.py +0 -0
  4275. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_verified_reads.py +0 -0
  4276. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_watch_only_package_firewall.py +0 -0
  4277. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_web_recovery.py +0 -0
  4278. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_windows_locked_file.py +0 -0
  4279. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_workflow_capabilities.py +0 -0
  4280. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_workflow_capability_authority_tamper.py +0 -0
  4281. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_workflow_capability_hardening.py +0 -0
  4282. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_workflow_capability_rollback.py +0 -0
  4283. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_workspace_admin_cloud_review.py +0 -0
  4284. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_workspace_snapshot_inputs.py +0 -0
  4285. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guard_wrapper_flows.py +0 -0
  4286. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guarded_repository_action_contract.py +0 -0
  4287. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guarded_repository_evidence.py +0 -0
  4288. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_guarded_repository_registration.py +0 -0
  4289. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_harness_attribution.py +0 -0
  4290. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_harness_capability_report.py +0 -0
  4291. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_harness_disconnect_mfa.py +0 -0
  4292. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_hermes_adapter.py +0 -0
  4293. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_hermes_complete_inspection.py +0 -0
  4294. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_hermes_hook_command_authority.py +0 -0
  4295. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_hermes_runtime_hooks.py +0 -0
  4296. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_hook_data_plane_ownership_gate.py +0 -0
  4297. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_hook_enrichment_queue.py +0 -0
  4298. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_hook_metrics.py +0 -0
  4299. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_hook_policy_repair.py +0 -0
  4300. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_hook_review_observe_mode.py +0 -0
  4301. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_hook_review_types.py +0 -0
  4302. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_hook_source_paths.py +0 -0
  4303. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_hook_source_skill_read.py +0 -0
  4304. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_hook_worker_native_post_tool_watch.py +0 -0
  4305. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_inactive_harness_hook_passthrough.py +0 -0
  4306. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_insights_share.py +0 -0
  4307. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_install_integrity.py +0 -0
  4308. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_installed_bounded_outage.py +0 -0
  4309. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_installed_canary_workflow.py +0 -0
  4310. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_installed_codex_outage.py +0 -0
  4311. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_installed_cursor_outage.py +0 -0
  4312. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_installed_cursor_parsed_outage.py +0 -0
  4313. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_installed_dockerlab_hook_status.py +0 -0
  4314. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_installed_guard_package_origin.py +0 -0
  4315. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_installed_hook_client_timeouts.py +0 -0
  4316. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_installed_native_extension_readiness.py +0 -0
  4317. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_installed_native_extension_receipt_diagnostics.py +0 -0
  4318. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_installed_pi_output_probe.py +0 -0
  4319. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_integration.py +0 -0
  4320. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_interpreter_options.py +0 -0
  4321. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_inventory_item_description.py +0 -0
  4322. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_inventory_redaction_review.py +0 -0
  4323. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_kimi_adapter.py +0 -0
  4324. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_kimi_ecosystem.py +0 -0
  4325. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_lint_fixes.py +0 -0
  4326. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_live_cisco_smoke.py +0 -0
  4327. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_managed_controls_activation_integration.py +0 -0
  4328. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_managed_controls_capability_activation.py +0 -0
  4329. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_managed_controls_contract_docs.py +0 -0
  4330. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_managed_controls_crash_recovery.py +0 -0
  4331. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_managed_controls_limits.py +0 -0
  4332. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_managed_controls_policy_fields.py +0 -0
  4333. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_managed_controls_public_projection.py +0 -0
  4334. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_manifest.py +0 -0
  4335. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_marketplace.py +0 -0
  4336. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_mcp_registry_manifest.py +0 -0
  4337. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_mcp_release_source_verification.py +0 -0
  4338. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_mcp_security.py +0 -0
  4339. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_mcp_tool_call_raw_command_text.py +0 -0
  4340. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_multi_source_connect.py +0 -0
  4341. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_native_approval_v4_transport.py +0 -0
  4342. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_native_ci_workflow.py +0 -0
  4343. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_native_command_activity_recording.py +0 -0
  4344. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_native_command_caller_migration.py +0 -0
  4345. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_native_command_compatibility_vectors.py +0 -0
  4346. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_native_command_control_authority.py +0 -0
  4347. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_native_command_control_authority_publisher.py +0 -0
  4348. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_native_command_control_binding.py +0 -0
  4349. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_native_command_control_binding_publisher.py +0 -0
  4350. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_native_command_control_windows_lock.py +0 -0
  4351. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_native_command_evaluation_bridge.py +0 -0
  4352. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_native_command_evaluation_integration.py +0 -0
  4353. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_native_command_extension_evidence.py +0 -0
  4354. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_native_command_model_wrappers.py +0 -0
  4355. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_native_command_observations.py +0 -0
  4356. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_native_command_test_support_batch.py +0 -0
  4357. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_native_command_test_support_paths.py +0 -0
  4358. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_native_decision_receipt.py +0 -0
  4359. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_native_default_auto_probe.py +0 -0
  4360. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_native_hook_edge.py +0 -0
  4361. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_native_hook_error_diagnostics.py +0 -0
  4362. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_native_policy_resident_change_readiness.py +0 -0
  4363. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_native_policy_snapshot_cache_binding.py +0 -0
  4364. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_native_policy_snapshot_contract.py +0 -0
  4365. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_native_policy_snapshot_persistence.py +0 -0
  4366. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_native_policy_snapshot_publisher.py +0 -0
  4367. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_native_policy_snapshot_readiness.py +0 -0
  4368. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_native_policy_snapshot_resident_retry.py +0 -0
  4369. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_native_policy_snapshot_v3_publisher.py +0 -0
  4370. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_native_policy_snapshot_windows.py +0 -0
  4371. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_native_pretool_receipts.py +0 -0
  4372. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_native_process_liveness.py +0 -0
  4373. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_native_process_test_support.py +0 -0
  4374. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_native_proof_environment.py +0 -0
  4375. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_native_receipt_persistence_gate.py +0 -0
  4376. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_native_regression_shard.py +0 -0
  4377. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_native_regression_startup.py +0 -0
  4378. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_native_resident_client_cleanup.py +0 -0
  4379. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_native_resident_client_pool.py +0 -0
  4380. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_native_response_decoder.py +0 -0
  4381. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_native_review_approval_atomic_consumption.py +0 -0
  4382. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_native_review_approval_coordination.py +0 -0
  4383. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_native_review_dashboard_contract.py +0 -0
  4384. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_native_review_fixtures.py +0 -0
  4385. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_native_review_policy_binding.py +0 -0
  4386. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_native_review_reuse_command_shape.py +0 -0
  4387. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_native_route_receipt.py +0 -0
  4388. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_native_runtime_admission.py +0 -0
  4389. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_native_runtime_resilience.py +0 -0
  4390. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_native_runtime_review_regressions.py +0 -0
  4391. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_native_slo_capacity_provenance.py +0 -0
  4392. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_native_slo_contract.py +0 -0
  4393. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_native_slo_load_executor.py +0 -0
  4394. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_native_slo_loopback_transport.py +0 -0
  4395. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_native_slo_recovery.py +0 -0
  4396. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_native_slo_rss.py +0 -0
  4397. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_native_slo_session_readiness.py +0 -0
  4398. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_native_source_compiler.py +0 -0
  4399. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_native_source_program.py +0 -0
  4400. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_notify_hol_guard_plugin_workflow.py +0 -0
  4401. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_npm_source_spec.py +0 -0
  4402. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_observed_mcp_policy_merge.py +0 -0
  4403. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_openclaw_adapter.py +0 -0
  4404. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_openclaw_mcp_inventory.py +0 -0
  4405. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_opencode_adapter.py +0 -0
  4406. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_opencode_config_lock.py +0 -0
  4407. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_opencode_hook_python.py +0 -0
  4408. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_opencode_hook_python_isolation.py +0 -0
  4409. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_opencode_pretool.py +0 -0
  4410. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_opencode_pretool_workdir.py +0 -0
  4411. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_opencode_v2_refresh.py +0 -0
  4412. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_operational_security.py +0 -0
  4413. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_orphaned_daemon_workers.py +0 -0
  4414. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_parallel_coverage_combine.py +0 -0
  4415. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_parallel_coverage_xml.py +0 -0
  4416. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_parent_process_harness_attribution.py +0 -0
  4417. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_paseo_adapter.py +0 -0
  4418. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_paseo_inherited_profiles.py +0 -0
  4419. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_paseo_review_boundaries.py +0 -0
  4420. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_path_support.py +0 -0
  4421. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_pi_adapter.py +0 -0
  4422. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_pi_exact_continuation.py +0 -0
  4423. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_pi_extension_response_contract.py +0 -0
  4424. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_pi_extension_runtime_ownership.py +0 -0
  4425. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_pi_extension_session_binding.py +0 -0
  4426. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_pi_hook_latency.py +0 -0
  4427. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_pi_managed_extension_prune.py +0 -0
  4428. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_pi_native_review_retry.py +0 -0
  4429. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_pi_retry_identity_vectors.py +0 -0
  4430. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_pi_sdk_installed_lock.py +0 -0
  4431. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_pi_tool_call_id_adapter.py +0 -0
  4432. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_policy.py +0 -0
  4433. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_policy_bundle_activation_atomicity.py +0 -0
  4434. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_policy_bundle_activation_delivery_validation.py +0 -0
  4435. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_policy_bundle_continuity_atomicity.py +0 -0
  4436. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_policy_bundle_custom_extension_continuity.py +0 -0
  4437. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_policy_bundle_delivery.py +0 -0
  4438. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_policy_bundle_delivery_daemon.py +0 -0
  4439. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_policy_bundle_delivery_local_race.py +0 -0
  4440. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_policy_bundle_delivery_no_runtime.py +0 -0
  4441. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_policy_bundle_delivery_runtime.py +0 -0
  4442. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_policy_bundle_integrity.py +0 -0
  4443. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_policy_bundle_parser.py +0 -0
  4444. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_policy_bundle_trust_regressions.py +0 -0
  4445. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_policy_bundle_v2.py +0 -0
  4446. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_policy_decision_source_context.py +0 -0
  4447. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_policy_document_cli.py +0 -0
  4448. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_policy_document_import.py +0 -0
  4449. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_policy_document_io.py +0 -0
  4450. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_policy_document_yaml.py +0 -0
  4451. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_pr_testpypi_canary_workflow.py +0 -0
  4452. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_prepare_extension_contribution.py +0 -0
  4453. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_privileged_workflow_policy.py +0 -0
  4454. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_project_folder_picker.py +0 -0
  4455. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_pypi_project_storage.py +0 -0
  4456. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_pytest_config_semantics.py +0 -0
  4457. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_python_capability_cleanup_gate.py +0 -0
  4458. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_python_hook_semantic_callgraph_gate.py +0 -0
  4459. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_python_runtime_retirement.py +0 -0
  4460. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_quality_artifact.py +0 -0
  4461. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_raw_command_text.py +0 -0
  4462. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_release_32_workflow_gates.py +0 -0
  4463. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_release_patch_alpha_consumers.py +0 -0
  4464. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_release_please_workflow.py +0 -0
  4465. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_release_registry_list_versions.py +0 -0
  4466. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_release_registry_retry.py +0 -0
  4467. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_release_toolchain_sbom.py +0 -0
  4468. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_release_train_workflow.py +0 -0
  4469. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_retired_artifact_preflight.py +0 -0
  4470. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_retry_verify_published.py +0 -0
  4471. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_rule_registry.py +0 -0
  4472. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_run_installed_native_corpus.py +0 -0
  4473. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_runtime_retirement_ledger.py +0 -0
  4474. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_rust_daemon_edge_hardening_contracts.py +0 -0
  4475. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_rust_hardening_contracts.py +0 -0
  4476. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_rust_io_ownership_gate.py +0 -0
  4477. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_rust_io_privacy_gate.py +0 -0
  4478. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_rust_posttool_authority.py +0 -0
  4479. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_safe_output.py +0 -0
  4480. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_scanner.py +0 -0
  4481. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_scanner_false_positive_regressions.py +0 -0
  4482. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_scanner_subprocess.py +0 -0
  4483. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_schema_contracts.py +0 -0
  4484. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_seal_pyinstaller_native_manifest.py +0 -0
  4485. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_secret_file_request_service_regressions.py +0 -0
  4486. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_security.py +0 -0
  4487. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_security_gates_gitleaks_license.py +0 -0
  4488. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_security_nonsecret_values.py +0 -0
  4489. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_security_ops.py +0 -0
  4490. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_select_installed_native_wheel.py +0 -0
  4491. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_shell_initial_risk_incomplete_review.py +0 -0
  4492. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_shim_probe_security.py +0 -0
  4493. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_signed_custom_extension_continuity_v2.py +0 -0
  4494. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_skill_security.py +0 -0
  4495. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_skill_uri_blocking.py +0 -0
  4496. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_sonar_control_flow_regressions.py +0 -0
  4497. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_sonar_findings_report.py +0 -0
  4498. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_sonar_fixture_source_scope.py +0 -0
  4499. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_sonar_lifecycle_edge_cases.py +0 -0
  4500. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_sonar_path_authority.py +0 -0
  4501. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_sonar_remaining_regexes.py +0 -0
  4502. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_sonar_reviewed_contracts.py +0 -0
  4503. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_sonar_rust_toolchain.py +0 -0
  4504. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_stable_release_asset_repair.py +0 -0
  4505. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_stage_guard_cloud_review_artifacts.py +0 -0
  4506. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_stage_native_runtime_for_desktop_core.py +0 -0
  4507. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_store_native_command_receipts.py +0 -0
  4508. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_store_native_review_approvals_security.py +0 -0
  4509. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_structured_data_sensitivity.py +0 -0
  4510. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_submission.py +0 -0
  4511. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_support_network.py +0 -0
  4512. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_sync_repo_version.py +0 -0
  4513. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_synced_policy.py +0 -0
  4514. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_trust_install_surface.py +0 -0
  4515. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_trust_scoring.py +0 -0
  4516. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_trust_specs.py +0 -0
  4517. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_unpublished_alpha_reservation.py +0 -0
  4518. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_update_desktop_core.py +0 -0
  4519. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_update_desktop_core_onedir.py +0 -0
  4520. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_update_desktop_core_stable.py +0 -0
  4521. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_update_grok_repair.py +0 -0
  4522. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_update_installer_kind_security.py +0 -0
  4523. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_update_pi_family_repair.py +0 -0
  4524. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_update_release_channels.py +0 -0
  4525. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_validate_alpha_release.py +0 -0
  4526. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_validate_release_artifacts.py +0 -0
  4527. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_verification.py +0 -0
  4528. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_verify_desktop_core_attestation.py +0 -0
  4529. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_verify_installed_release_matrix.py +0 -0
  4530. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_verify_pyinstaller_native_runtime.py +0 -0
  4531. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_verify_release_asset_inventory.py +0 -0
  4532. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_verify_release_registry.py +0 -0
  4533. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_versioning.py +0 -0
  4534. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_watch_snapshot_readiness.py +0 -0
  4535. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_windows_process_termination_results.py +0 -0
  4536. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_windows_processes.py +0 -0
  4537. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_workflow_token_permissions.py +0 -0
  4538. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_workspace_review_authority_issuer.py +0 -0
  4539. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_workspace_review_issuer_workflow.py +0 -0
  4540. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_zcode_adapter.py +0 -0
  4541. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_zcode_hooks.py +0 -0
  4542. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/test_zcode_mcp.py +0 -0
  4543. {plugin_scanner-3.14.0 → plugin_scanner-3.15.0}/tests/update_context_test_support.py +0 -0
@@ -0,0 +1,1956 @@
1
+ name: Publish to PyPI
2
+
3
+ on:
4
+ workflow_dispatch:
5
+ inputs:
6
+ release_channel:
7
+ description: "Release channel"
8
+ required: true
9
+ default: alpha
10
+ type: choice
11
+ options:
12
+ - alpha
13
+ - stable
14
+ release_train:
15
+ description: "Authorized release train"
16
+ required: true
17
+ type: choice
18
+ options:
19
+ - "3.0"
20
+ - main
21
+ release_version:
22
+ description: "Exact canonical release version"
23
+ required: true
24
+ type: string
25
+ expected_sha:
26
+ description: "Exact source commit authorized for publication"
27
+ required: true
28
+ type: string
29
+ push:
30
+ branches: [main, release/3.0]
31
+ pull_request:
32
+ branches: [main, release/3.0, release/3.2]
33
+ types: [opened, synchronize, reopened, labeled]
34
+
35
+ permissions:
36
+ contents: read
37
+ pull-requests: read
38
+
39
+ concurrency:
40
+ # Serialize publish-capable branch events while keeping pull-request
41
+ # validation isolated by its merge ref.
42
+ group: hol-guard-publish-${{ github.ref }}
43
+ cancel-in-progress: false
44
+
45
+ jobs:
46
+ authorize-release:
47
+ name: Authorize release dispatch
48
+ runs-on: ubuntu-latest
49
+ permissions: {}
50
+ steps:
51
+ - name: Enforce release authority
52
+ if: github.event_name == 'workflow_dispatch'
53
+ env:
54
+ GITHUB_ACTOR_ID: ${{ github.actor_id }}
55
+ GITHUB_RUN_ATTEMPT: ${{ github.run_attempt }}
56
+ GITHUB_REF: ${{ github.ref }}
57
+ GITHUB_SHA: ${{ github.sha }}
58
+ RELEASE_CHANNEL: ${{ github.event.inputs.release_channel }}
59
+ RELEASE_TRAIN: ${{ github.event.inputs.release_train }}
60
+ RELEASE_VERSION: ${{ github.event.inputs.release_version }}
61
+ EXPECTED_SHA: ${{ github.event.inputs.expected_sha }}
62
+ run: |
63
+ if [[ "$GITHUB_RUN_ATTEMPT" != "1" ]]; then
64
+ echo "Release workflow reruns are denied; create a fresh authorized dispatch" >&2
65
+ exit 1
66
+ fi
67
+ case "${RELEASE_CHANNEL}:${RELEASE_TRAIN}:${GITHUB_REF}" in
68
+ alpha:3.0:refs/heads/release/3.0)
69
+ if [[ "$GITHUB_ACTOR_ID" != "6068672" && "$GITHUB_ACTOR_ID" != "301892678" ]]; then
70
+ echo "Release dispatch actor is not an authorized maintainer" >&2
71
+ exit 1
72
+ fi
73
+ ;;
74
+ stable:main:refs/heads/main)
75
+ if [[ "$GITHUB_ACTOR_ID" != "6068672" && "$GITHUB_ACTOR_ID" != "301892678" && "$GITHUB_ACTOR_ID" != "41898282" ]]; then
76
+ echo "Release dispatch actor is not an authorized maintainer" >&2
77
+ exit 1
78
+ fi
79
+ ;;
80
+ "stable:main:refs/tags/v${RELEASE_VERSION}")
81
+ if [[ "$GITHUB_ACTOR_ID" != "6068672" && "$GITHUB_ACTOR_ID" != "301892678" && "$GITHUB_ACTOR_ID" != "41898282" ]]; then
82
+ echo "Release dispatch actor is not an authorized maintainer" >&2
83
+ exit 1
84
+ fi
85
+ ;;
86
+ *)
87
+ echo "Release channel, train, and source branch are not an authorized combination" >&2
88
+ exit 1
89
+ ;;
90
+ esac
91
+ if [[ "$EXPECTED_SHA" != "$GITHUB_SHA" ]]; then
92
+ echo "Expected source SHA does not match the dispatch source" >&2
93
+ exit 1
94
+ fi
95
+
96
+ build:
97
+ name: Build + Verify
98
+ if: >-
99
+ (github.event_name != 'workflow_dispatch' || github.run_attempt == 1) &&
100
+ (github.event_name != 'push' || github.run_attempt == 1) &&
101
+ (github.event_name != 'push' || !contains(github.event.head_commit.message || '', '[skip release publish]')) &&
102
+ (github.event.action != 'labeled' || github.event.label.name == 'publish-testpypi-canary')
103
+ needs: authorize-release
104
+ runs-on: ubuntu-latest
105
+ outputs:
106
+ version: ${{ steps.version.outputs.version }}
107
+ channel: ${{ steps.version.outputs.channel }}
108
+ release_train: ${{ steps.version.outputs.release_train }}
109
+ source_sha: ${{ steps.version.outputs.source_sha }}
110
+ release_repair: ${{ steps.version.outputs.release_repair }}
111
+ steps:
112
+ - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10
113
+ with:
114
+ fetch-depth: 0
115
+ ref: ${{ (github.event_name == 'pull_request' && github.event.pull_request.head.sha) || github.sha }}
116
+ - uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405
117
+ with:
118
+ python-version: "3.12"
119
+ - uses: astral-sh/setup-uv@fac544c07dec837d0ccb6301d7b5580bf5edae39
120
+ with:
121
+ version: "0.9.26"
122
+ enable-cache: true
123
+ - name: Verify release uv before dependency install
124
+ env:
125
+ EXPECTED_UV_VERSION: "0.9.26"
126
+ SETUP_UV_ACTION_REF: fac544c07dec837d0ccb6301d7b5580bf5edae39
127
+ run: |
128
+ python3 scripts/write_release_toolchain_sbom.py \
129
+ --output "$RUNNER_TEMP/hol-guard-release-toolchain-preflight.cdx.json" \
130
+ --release-version preflight \
131
+ --expected-uv-version "$EXPECTED_UV_VERSION" \
132
+ --setup-action-ref "$SETUP_UV_ACTION_REF"
133
+ - name: Install dependencies
134
+ run: uv sync --frozen --extra dev --extra publish --extra cisco
135
+ - name: Compute publish version
136
+ id: version
137
+ env:
138
+ GITHUB_REF: ${{ github.ref }}
139
+ GITHUB_SHA: ${{ github.sha }}
140
+ GITHUB_EVENT_NAME: ${{ github.event_name }}
141
+ GITHUB_EVENT_ACTION: ${{ github.event.action }}
142
+ GITHUB_REPOSITORY: ${{ github.repository }}
143
+ PR_NUMBER: ${{ github.event.pull_request.number }}
144
+ GITHUB_RUN_NUMBER: ${{ github.run_number }}
145
+ GITHUB_RUN_ATTEMPT: ${{ github.run_attempt }}
146
+ GITHUB_ACTOR_ID: ${{ github.actor_id }}
147
+ GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
148
+ RELEASE_CHANNEL: ${{ github.event.inputs.release_channel }}
149
+ RELEASE_TRAIN: ${{ github.event.inputs.release_train }}
150
+ RELEASE_VERSION: ${{ github.event.inputs.release_version }}
151
+ EXPECTED_SHA: ${{ github.event.inputs.expected_sha }}
152
+ RELEASE_PUBLISHING_ENABLED: ${{ vars.RELEASE_PUBLISHING_ENABLED }}
153
+ run: |
154
+ BASE_VERSION=$(uv run --no-sync python scripts/sync_repo_version.py --check)
155
+ VERSION="$BASE_VERSION"
156
+ CHANNEL="integration"
157
+ TRAIN=""
158
+ SOURCE_SHA=$(git rev-parse 'HEAD^{commit}')
159
+
160
+ if [[ "$GITHUB_EVENT_NAME" == "workflow_dispatch" ]]; then
161
+ if [[ "$RELEASE_PUBLISHING_ENABLED" != "true" ]]; then
162
+ echo "Release publishing is disabled until protected environments are verified" >&2
163
+ exit 1
164
+ fi
165
+ if [[ "$GITHUB_RUN_ATTEMPT" != "1" ]]; then
166
+ echo "Release workflow reruns are denied; create a fresh authorized dispatch" >&2
167
+ exit 1
168
+ fi
169
+ CHANNEL="$RELEASE_CHANNEL"
170
+ TRAIN="$RELEASE_TRAIN"
171
+ if [[ "$CHANNEL" == "alpha" && "$TRAIN" == "3.0" ]]; then
172
+ if [[ "$GITHUB_ACTOR_ID" != "6068672" && "$GITHUB_ACTOR_ID" != "301892678" ]]; then
173
+ echo "Release dispatch actor is not an authorized maintainer" >&2
174
+ exit 1
175
+ fi
176
+ TRAIN_REF="refs/heads/release/${TRAIN}"
177
+ if [[ "$GITHUB_REF" != "$TRAIN_REF" ]]; then
178
+ echo "Alpha releases must run from ${TRAIN_REF}" >&2
179
+ exit 1
180
+ fi
181
+
182
+ EXISTING_VERSION_FILE=$(mktemp)
183
+ uv run --no-sync python scripts/verify_release_registry.py \
184
+ list-versions --registry pypi | jq -r '.[]' > "$EXISTING_VERSION_FILE"
185
+ uv run --no-sync python scripts/verify_release_registry.py \
186
+ list-versions --registry testpypi | jq -r '.[]' >> "$EXISTING_VERSION_FILE"
187
+ git tag --list 'alpha/v*' | sed 's#^alpha/v##' >> "$EXISTING_VERSION_FILE"
188
+ mapfile -t EXISTING_VERSIONS < <(
189
+ awk -v candidate="$RELEASE_VERSION" '$0 != candidate' "$EXISTING_VERSION_FILE"
190
+ )
191
+ VALIDATOR_ARGS=(
192
+ --channel "$CHANNEL"
193
+ --version "$RELEASE_VERSION"
194
+ --git-ref "$TRAIN_REF"
195
+ --actual-ref "$GITHUB_REF"
196
+ --github-sha "$SOURCE_SHA"
197
+ --expected-sha "$EXPECTED_SHA"
198
+ )
199
+ for existing_version in "${EXISTING_VERSIONS[@]}"; do
200
+ VALIDATOR_ARGS+=(--existing-version "$existing_version")
201
+ done
202
+ VERSION=$(uv run --no-sync python scripts/validate_alpha_release.py "${VALIDATOR_ARGS[@]}")
203
+ elif [[ "$CHANNEL" == "stable" && "$TRAIN" == "main" ]]; then
204
+ if [[ "$GITHUB_ACTOR_ID" != "6068672" && "$GITHUB_ACTOR_ID" != "301892678" && "$GITHUB_ACTOR_ID" != "41898282" ]]; then
205
+ echo "Release dispatch actor is not an authorized maintainer" >&2
206
+ exit 1
207
+ fi
208
+ if [[ "$GITHUB_REF" != "refs/heads/main" && "$GITHUB_REF" != "refs/tags/v${RELEASE_VERSION}" ]]; then
209
+ echo "Stable releases must run from refs/heads/main" >&2
210
+ exit 1
211
+ fi
212
+ PYPI_VERSIONS=$(uv run --no-sync python scripts/verify_release_registry.py \
213
+ list-versions --registry pypi)
214
+ TESTPYPI_VERSIONS=$(uv run --no-sync python scripts/verify_release_registry.py \
215
+ list-versions --registry testpypi)
216
+ TAG_VERSIONS=$(git tag --list 'v*' | sed 's/^v//' | jq -R -s \
217
+ 'split("\n") | map(select(length > 0))')
218
+ VERSIONS=$(jq -n \
219
+ --argjson pypi "$PYPI_VERSIONS" \
220
+ --argjson testpypi "$TESTPYPI_VERSIONS" \
221
+ --argjson tags "$TAG_VERSIONS" \
222
+ --arg candidate "$RELEASE_VERSION" \
223
+ '$pypi + $testpypi + ($tags | map(select(. != $candidate))) | unique')
224
+ EXPECTED_VERSION=$(uv run --no-sync python scripts/compute_main_release_version.py \
225
+ --base-version "$BASE_VERSION" <<< "$VERSIONS")
226
+ REPAIRING=false
227
+ if [[ "$RELEASE_VERSION" != "$EXPECTED_VERSION" ]]; then
228
+ LATEST_PYPI=$(uv run --no-sync python scripts/compute_main_release_version.py \
229
+ --base-version "$BASE_VERSION" --latest-existing <<< "$PYPI_VERSIONS")
230
+ ASSET_NAMES_FILE=$(mktemp)
231
+ RELEASE_VIEW_ERROR=$(mktemp)
232
+ if gh release view "v${RELEASE_VERSION}" --repo "$GITHUB_REPOSITORY" --json assets \
233
+ --jq '.assets[].name' > "$ASSET_NAMES_FILE" 2>"$RELEASE_VIEW_ERROR"; then
234
+ REPAIR_ARGS=(--asset-names-file "$ASSET_NAMES_FILE")
235
+ elif grep -q "release not found" "$RELEASE_VIEW_ERROR"; then
236
+ REPAIR_ARGS=(--release-missing)
237
+ else
238
+ echo "Could not inspect the GitHub release for ${RELEASE_VERSION}" >&2
239
+ exit 1
240
+ fi
241
+ if ! uv run --no-sync python scripts/stable_release_asset_repair.py \
242
+ --requested "$RELEASE_VERSION" \
243
+ --expected-next "$EXPECTED_VERSION" \
244
+ --latest-pypi "$LATEST_PYPI" \
245
+ "${REPAIR_ARGS[@]}"; then
246
+ echo "Stable release version must match the next registry-derived version: ${EXPECTED_VERSION}" >&2
247
+ exit 1
248
+ fi
249
+ git fetch --force --no-tags origin "+refs/tags/v${RELEASE_VERSION}:refs/tags/v${RELEASE_VERSION}"
250
+ SOURCE_SHA=$(git rev-parse "v${RELEASE_VERSION}^{commit}")
251
+ if ! git merge-base --is-ancestor "$SOURCE_SHA" HEAD; then
252
+ echo "Published release is not an ancestor of this dispatch" >&2
253
+ exit 1
254
+ fi
255
+ echo "release_repair=true" >> "$GITHUB_OUTPUT"
256
+ REPAIRING=true
257
+ fi
258
+ if git rev-parse -q --verify "v${RELEASE_VERSION}^{commit}" >/dev/null; then
259
+ tag_sha=$(git rev-parse "v${RELEASE_VERSION}^{commit}")
260
+ if [[ "$tag_sha" != "$SOURCE_SHA" ]]; then
261
+ echo "Stable tag does not target the dispatch source" >&2
262
+ exit 1
263
+ fi
264
+ fi
265
+ VERSION="$RELEASE_VERSION"
266
+ if [[ "$REPAIRING" == "true" ]]; then
267
+ git checkout --detach "$SOURCE_SHA"
268
+ uv sync --frozen --extra dev --extra publish --extra cisco
269
+ fi
270
+ else
271
+ echo "Unsupported release channel and train: ${CHANNEL}:${TRAIN}" >&2
272
+ exit 1
273
+ fi
274
+ elif [[ "$GITHUB_EVENT_NAME" == "push" && "$GITHUB_REF" == "refs/heads/release/3.0" ]]; then
275
+ if [[ "$RELEASE_PUBLISHING_ENABLED" != "true" ]]; then
276
+ echo "Release publishing is disabled until protected environments are verified" >&2
277
+ exit 1
278
+ fi
279
+ TRAIN="3.0"
280
+ TRAIN_REF="refs/heads/release/${TRAIN}"
281
+ ACTUAL_REF="$GITHUB_REF"
282
+ EXPECTED_SOURCE="$GITHUB_SHA"
283
+ if [[ "$SOURCE_SHA" != "$EXPECTED_SOURCE" ]]; then
284
+ echo "Checked-out source does not match the immutable release source" >&2
285
+ exit 1
286
+ fi
287
+ CHANNEL="alpha"
288
+ PYPI_VERSIONS=$(uv run --no-sync python scripts/verify_release_registry.py \
289
+ list-versions --registry pypi)
290
+ TESTPYPI_VERSIONS=$(uv run --no-sync python scripts/verify_release_registry.py \
291
+ list-versions --registry testpypi)
292
+ TAG_VERSIONS=$(git tag --list 'alpha/v*' | sed 's#^alpha/v##' | jq -R -s 'split("\n") | map(select(length > 0))')
293
+ EXISTING_VERSIONS=$(jq -n \
294
+ --argjson pypi "$PYPI_VERSIONS" \
295
+ --argjson testpypi "$TESTPYPI_VERSIONS" \
296
+ --argjson tags "$TAG_VERSIONS" \
297
+ '$pypi + $testpypi + $tags | unique')
298
+ mapfile -t SOURCE_ALPHA_TAGS < <(
299
+ git tag --points-at "$SOURCE_SHA" --list "alpha/v${TRAIN}.1a*" | sed 's#^alpha/v##'
300
+ )
301
+ if [[ "${#SOURCE_ALPHA_TAGS[@]}" -gt 1 ]]; then
302
+ echo "Source commit has multiple reserved alpha versions" >&2
303
+ exit 1
304
+ fi
305
+ if [[ "${#SOURCE_ALPHA_TAGS[@]}" -eq 1 ]]; then
306
+ RELEASE_VERSION="${SOURCE_ALPHA_TAGS[0]}"
307
+ REUSING_RESERVED_ALPHA=true
308
+ uv run --no-sync python scripts/compute_alpha_release_version.py \
309
+ --release-train "$TRAIN" --validate-phase-only <<< "$EXISTING_VERSIONS"
310
+ else
311
+ RELEASE_VERSION=$(uv run --no-sync python scripts/compute_alpha_release_version.py \
312
+ --release-train "$TRAIN" <<< "$EXISTING_VERSIONS")
313
+ REUSING_RESERVED_ALPHA=false
314
+ fi
315
+ EXISTING_VERSIONS_ARRAY=()
316
+ if [[ "$REUSING_RESERVED_ALPHA" != "true" ]]; then
317
+ mapfile -t EXISTING_VERSIONS_ARRAY < <(jq -r '.[]' <<< "$EXISTING_VERSIONS")
318
+ fi
319
+ VALIDATOR_ARGS=(
320
+ --channel "$CHANNEL"
321
+ --version "$RELEASE_VERSION"
322
+ --git-ref "$TRAIN_REF"
323
+ --actual-ref "$ACTUAL_REF"
324
+ --github-sha "$SOURCE_SHA"
325
+ --expected-sha "$SOURCE_SHA"
326
+ )
327
+ for existing_version in "${EXISTING_VERSIONS_ARRAY[@]}"; do
328
+ VALIDATOR_ARGS+=(--existing-version "$existing_version")
329
+ done
330
+ VERSION=$(uv run --no-sync python scripts/validate_alpha_release.py "${VALIDATOR_ARGS[@]}")
331
+ elif [[ "$GITHUB_EVENT_NAME" == "pull_request" ]]; then
332
+ CHANNEL="canary"
333
+ VERSION=$(BASE_VERSION="$BASE_VERSION" PR_NUMBER="$PR_NUMBER" GITHUB_RUN_NUMBER="$GITHUB_RUN_NUMBER" GITHUB_RUN_ATTEMPT="$GITHUB_RUN_ATTEMPT" python - <<'PY'
334
+ import os
335
+
336
+ def pair(left: int, right: int) -> int:
337
+ total = left + right
338
+ return total * (total + 1) // 2 + right
339
+
340
+ print(f"{os.environ['BASE_VERSION']}.dev{pair(pair(int(os.environ['PR_NUMBER']), int(os.environ['GITHUB_RUN_NUMBER'])), int(os.environ['GITHUB_RUN_ATTEMPT']))}")
341
+ PY
342
+ )
343
+ fi
344
+ echo "version=$VERSION" >> "$GITHUB_OUTPUT"
345
+ echo "channel=$CHANNEL" >> "$GITHUB_OUTPUT"
346
+ echo "release_train=$TRAIN" >> "$GITHUB_OUTPUT"
347
+ echo "source_sha=$SOURCE_SHA" >> "$GITHUB_OUTPUT"
348
+ echo "Computed $CHANNEL version: $VERSION"
349
+ - name: Verify release toolchain and write SBOM
350
+ env:
351
+ EXPECTED_UV_VERSION: "0.9.26"
352
+ RELEASE_VERSION: ${{ steps.version.outputs.version }}
353
+ SETUP_UV_ACTION_REF: fac544c07dec837d0ccb6301d7b5580bf5edae39
354
+ run: |
355
+ python3 scripts/write_release_toolchain_sbom.py \
356
+ --output "release-metadata/plugin-scanner-v${RELEASE_VERSION}.toolchain.cdx.json" \
357
+ --release-version "$RELEASE_VERSION" \
358
+ --expected-uv-version "$EXPECTED_UV_VERSION" \
359
+ --setup-action-ref "$SETUP_UV_ACTION_REF"
360
+ - name: Stamp package version when needed
361
+ env:
362
+ VERSION: ${{ steps.version.outputs.version }}
363
+ run: |
364
+ CURRENT_VERSION=$(uv run --no-sync python scripts/sync_repo_version.py --check)
365
+ if [[ "$CURRENT_VERSION" == "$VERSION" ]]; then
366
+ echo "Package metadata already matches $VERSION"
367
+ exit 0
368
+ fi
369
+ uv run --no-sync python scripts/sync_repo_version.py --version "$VERSION"
370
+ - name: Build Guard package (hol-guard)
371
+ run: |
372
+ cp pyproject.toml pyproject.toml.bak
373
+ python3 - <<'PY'
374
+ from pathlib import Path
375
+
376
+ path = Path("pyproject.toml")
377
+ text = path.read_text(encoding="utf-8")
378
+ text = text.replace('name = "hol-guard"', 'name = "hol-guard"', 1)
379
+ start = text.index("[project.scripts]")
380
+ end = text.index("\n\n[project.urls]")
381
+ scripts = "[project.scripts]\n" \
382
+ 'hol-guard = "codex_plugin_scanner.cli:main"\n' \
383
+ 'plugin-guard = "codex_plugin_scanner.cli:main"\n' \
384
+ 'hol-guard-eval = "codex_plugin_scanner.guard.evaluation_cli:main"'
385
+ text = text[:start] + scripts + text[end:]
386
+ path.write_text(text, encoding="utf-8")
387
+ PY
388
+ uv run --no-sync python -m build
389
+ mv pyproject.toml.bak pyproject.toml
390
+ - name: Build scanner package (plugin-scanner)
391
+ run: |
392
+ cp pyproject.toml pyproject.toml.bak
393
+ python3 - <<'PY'
394
+ import re
395
+ from pathlib import Path
396
+
397
+ path = Path("pyproject.toml")
398
+ text = path.read_text(encoding="utf-8")
399
+ text = text.replace('name = "hol-guard"', 'name = "plugin-scanner"', 1)
400
+ text, description_count = re.subn(
401
+ r'^description = ".*"$',
402
+ 'description = "Lint, verify, and gate plugin ecosystems for maintainers, CI, and publish workflows."',
403
+ text,
404
+ count=1,
405
+ flags=re.MULTILINE,
406
+ )
407
+ if description_count != 1:
408
+ raise RuntimeError("Expected one project description in pyproject.toml")
409
+ start = text.index("[project.scripts]")
410
+ end = text.index("\n\n[project.urls]")
411
+ scripts = "[project.scripts]\n" \
412
+ 'plugin-scanner = "codex_plugin_scanner.cli:main"\n' \
413
+ 'plugin-ecosystem-scanner = "codex_plugin_scanner.cli:main"'
414
+ text = text[:start] + scripts + text[end:]
415
+ path.write_text(text, encoding="utf-8")
416
+ PY
417
+ uv run --no-sync python -m build
418
+ mv pyproject.toml.bak pyproject.toml
419
+ - name: Verify distributions
420
+ run: |
421
+ uv run --no-sync twine check dist/*
422
+ python3 scripts/verify_guard_wheel_entrypoints.py dist
423
+ - name: Record immutable distribution hashes
424
+ run: |
425
+ find dist -maxdepth 1 -type f -print0 | sort -z | xargs -0 sha256sum > distribution-sha256.txt
426
+ - name: Bind installed canary subject
427
+ if: github.event_name == 'pull_request'
428
+ env:
429
+ VERSION: ${{ steps.version.outputs.version }}
430
+ SOURCE_SHA: ${{ steps.version.outputs.source_sha }}
431
+ run: |
432
+ uv run --no-sync python scripts/installed_canary_proof.py write-subject \
433
+ --dist-dir dist \
434
+ --version "$VERSION" \
435
+ --source-sha "$SOURCE_SHA" \
436
+ --output installed-canary-subject.json
437
+ - name: Upload artifacts
438
+ uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a
439
+ with:
440
+ name: distributions
441
+ path: dist/
442
+ - name: Upload distribution hashes
443
+ uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a
444
+ with:
445
+ name: distribution-sha256
446
+ path: distribution-sha256.txt
447
+ - name: Upload installed canary subject
448
+ if: github.event_name == 'pull_request'
449
+ uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a
450
+ with:
451
+ name: installed-canary-subject
452
+ path: installed-canary-subject.json
453
+ if-no-files-found: error
454
+ - name: Upload release toolchain SBOM
455
+ uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a
456
+ with:
457
+ name: release-toolchain-sbom
458
+ path: release-metadata/*.cdx.json
459
+ if-no-files-found: error
460
+
461
+
462
+
463
+ build-native-guard-wheels:
464
+ name: Build native Guard wheel (${{ matrix.target }})
465
+ if: >-
466
+ needs.build.result == 'success' &&
467
+ (
468
+ (
469
+ github.event_name == 'pull_request' &&
470
+ github.event.pull_request.head.repo.full_name == github.repository &&
471
+ contains(github.event.pull_request.labels.*.name, 'publish-testpypi-canary') &&
472
+ needs.build.outputs.channel == 'canary'
473
+ ) ||
474
+ (
475
+ needs.build.outputs.channel == 'alpha' &&
476
+ (
477
+ (github.event_name == 'push' && github.ref == 'refs/heads/release/3.0') ||
478
+ (github.event_name == 'workflow_dispatch' && github.event.inputs.release_train == '3.0')
479
+ )
480
+ ) ||
481
+ (
482
+ needs.build.outputs.channel == 'stable' &&
483
+ github.event_name == 'workflow_dispatch' &&
484
+ github.run_attempt == 1 &&
485
+ (github.ref == 'refs/heads/main' || github.ref == format('refs/tags/v{0}', github.event.inputs.release_version)) &&
486
+ github.event.inputs.release_channel == 'stable' &&
487
+ github.event.inputs.release_train == 'main'
488
+ )
489
+ )
490
+ needs: build
491
+ runs-on: ${{ matrix.runner }}
492
+ timeout-minutes: 45
493
+ permissions:
494
+ contents: read
495
+ strategy:
496
+ fail-fast: false
497
+ matrix:
498
+ include:
499
+ - runner: ubuntu-latest
500
+ platform_tag: manylinux_2_17_x86_64
501
+ target: x86_64-unknown-linux-musl
502
+ runtime: rust/target/x86_64-unknown-linux-musl/release/hol-guard-runtime
503
+ source_compiler: rust/target/x86_64-unknown-linux-musl/release/guard-command-source
504
+ - runner: macos-15-intel
505
+ platform_tag: macosx_13_0_x86_64
506
+ target: x86_64-apple-darwin
507
+ runtime: rust/target/x86_64-apple-darwin/release/hol-guard-runtime
508
+ source_compiler: rust/target/x86_64-apple-darwin/release/guard-command-source
509
+ - runner: macos-15
510
+ platform_tag: macosx_11_0_arm64
511
+ target: aarch64-apple-darwin
512
+ runtime: rust/target/aarch64-apple-darwin/release/hol-guard-runtime
513
+ source_compiler: rust/target/aarch64-apple-darwin/release/guard-command-source
514
+ - runner: windows-latest
515
+ platform_tag: win_amd64
516
+ rustflags: -C link-arg=/Brepro
517
+ target: x86_64-pc-windows-msvc
518
+ runtime: rust/target/x86_64-pc-windows-msvc/release/hol-guard-runtime.exe
519
+ source_compiler: rust/target/x86_64-pc-windows-msvc/release/guard-command-source.exe
520
+ steps:
521
+ - uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405
522
+ with:
523
+ python-version: "3.12"
524
+ - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10
525
+ with:
526
+ persist-credentials: false
527
+ ref: ${{ (github.event_name == 'pull_request' && github.event.pull_request.head.sha) || needs.build.outputs.source_sha }}
528
+ - uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c
529
+ with:
530
+ name: distributions
531
+ path: base-dist/
532
+ - name: Verify release approval enrollment root pin
533
+ if: needs.build.outputs.channel != 'canary'
534
+ env:
535
+ HOL_GUARD_APPROVAL_ENROLLMENT_ROOT_HEX: ${{ vars.HOL_GUARD_APPROVAL_ENROLLMENT_ROOT_HEX }}
536
+ HOL_GUARD_APPROVAL_ENROLLMENT_ROOT_FINGERPRINT_HEX: ${{ vars.HOL_GUARD_APPROVAL_ENROLLMENT_ROOT_FINGERPRINT_HEX }}
537
+ run: python scripts/ci/native_approval_contract_gate.py --root . --require-release-root
538
+ - name: Install pinned Rust target
539
+ shell: bash
540
+ env:
541
+ RUST_TARGET: ${{ matrix.target }}
542
+ run: |
543
+ rustup toolchain install 1.88.0 --profile minimal
544
+ rustup default 1.88.0
545
+ rustup target add "$RUST_TARGET"
546
+ - name: Install Linux static toolchain
547
+ if: runner.os == 'Linux'
548
+ run: |
549
+ sudo apt-get update
550
+ sudo apt-get install --yes --no-install-recommends musl-tools
551
+ - name: Cache trusted release compilation
552
+ uses: Swatinem/rust-cache@6323deb102c322ba6fcbdcafc7e3dddab59af2b6
553
+ with:
554
+ prefix-key: release-native-v1
555
+ workspaces: rust
556
+ shared-key: release-${{ matrix.target }}
557
+ cache-workspace-crates: true
558
+ cache-bin: false
559
+ # Release builds never consume the validation cache. PR canaries can
560
+ # restore this trusted cache, but cannot publish entries to it.
561
+ save-if: ${{ github.event_name != 'pull_request' && (github.ref == 'refs/heads/main' || github.ref == 'refs/heads/release/3.0') }}
562
+ - name: Build version-matched runtime
563
+ shell: bash
564
+ env:
565
+ HOL_GUARD_BUILD_SHA: ${{ needs.build.outputs.source_sha }}
566
+ HOL_GUARD_PACKAGE_VERSION: ${{ needs.build.outputs.version }}
567
+ HOL_GUARD_APPROVAL_ENROLLMENT_ROOT_HEX: ${{ vars.HOL_GUARD_APPROVAL_ENROLLMENT_ROOT_HEX }}
568
+ HOL_GUARD_APPROVAL_ENROLLMENT_ROOT_FINGERPRINT_HEX: ${{ vars.HOL_GUARD_APPROVAL_ENROLLMENT_ROOT_FINGERPRINT_HEX }}
569
+ RUSTFLAGS: ${{ matrix.rustflags }}
570
+ RUST_TARGET: ${{ matrix.target }}
571
+ RUNTIME: ${{ matrix.runtime }}
572
+ SOURCE_COMPILER: ${{ matrix.source_compiler }}
573
+ run: |
574
+ cargo build --manifest-path rust/Cargo.toml --locked --release --target "$RUST_TARGET" -p hol-guard-runtime
575
+ cargo build --manifest-path rust/Cargo.toml --locked --release --target "$RUST_TARGET" -p guard-command --bin guard-command-source
576
+ "$RUNTIME" self-test --json
577
+ - name: Verify native command program is current
578
+ shell: bash
579
+ env:
580
+ SOURCE_COMPILER: ${{ matrix.source_compiler }}
581
+ run: |
582
+ arguments=(--compiler "$SOURCE_COMPILER")
583
+ if [[ "${{ github.event_name }}" == "pull_request" ]]; then
584
+ arguments+=(--changed-from "${{ github.event.pull_request.base.sha }}")
585
+ fi
586
+ python scripts/ci/verify_native_command_program.py "${arguments[@]}"
587
+ - name: Verify native source compiler output
588
+ shell: bash
589
+ env:
590
+ SOURCE_COMPILER: ${{ matrix.source_compiler }}
591
+ run: |
592
+ jq -n --slurpfile source rust/crates/guard-command/tests/fixtures/command-source-example.v1.json --slurpfile trust contracts/extensions/trust-class-map.v1.json \
593
+ '{schema:"guard.command-extension-build.v1",sources:$source,mcp_sources:[],trust:$trust[0],base:"packaged"}' > source-build.json
594
+ "$SOURCE_COMPILER" compile < source-build.json > source-compiled.json
595
+ - name: Verify Linux runtime is static
596
+ if: runner.os == 'Linux'
597
+ shell: bash
598
+ env:
599
+ RUNTIME: ${{ matrix.runtime }}
600
+ run: |
601
+ LDD_OUTPUT=$(ldd "$RUNTIME" 2>&1 || true)
602
+ if ! grep -Eq 'not a dynamic executable|statically linked' <<< "$LDD_OUTPUT"; then
603
+ printf '%s\n' "$LDD_OUTPUT" >&2
604
+ exit 1
605
+ fi
606
+ - name: Assemble native wheel
607
+ shell: bash
608
+ env:
609
+ PLATFORM_TAG: ${{ matrix.platform_tag }}
610
+ RUNTIME: ${{ matrix.runtime }}
611
+ SOURCE_SHA: ${{ needs.build.outputs.source_sha }}
612
+ SOURCE_COMPILER: ${{ matrix.source_compiler }}
613
+ TARGET: ${{ matrix.target }}
614
+ VERSION: ${{ needs.build.outputs.version }}
615
+ run: |
616
+ RULE_DIGEST=$("$RUNTIME" capabilities --json | python -c 'import json,sys; print(json.load(sys.stdin)["rule_digest"])')
617
+ python scripts/build_native_hol_guard_wheel.py \
618
+ --wheel "base-dist/hol_guard-${VERSION}-py3-none-any.whl" \
619
+ --runtime "$RUNTIME" \
620
+ --output-dir native-dist \
621
+ --version "$VERSION" \
622
+ --platform-tag "$PLATFORM_TAG" \
623
+ --target "$TARGET" \
624
+ --source-sha "$SOURCE_SHA" \
625
+ --rule-digest "$RULE_DIGEST" \
626
+ --source-compiler "$SOURCE_COMPILER" \
627
+ --implementation-digest "$(python -c 'import json,sys; print(json.load(open("source-compiled.json"))["implementation_digest"])')" \
628
+ --base-program-digest "$(python -c 'import json,sys; print(json.load(open("source-compiled.json"))["base_program_digest"])')"
629
+ - uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a
630
+ with:
631
+ name: native-guard-wheel-${{ matrix.platform_tag }}
632
+ path: native-dist/*.whl
633
+ if-no-files-found: error
634
+
635
+ assemble-native-guard-distributions:
636
+ name: Assemble native Guard distributions
637
+ if: >-
638
+ needs.build.result == 'success' &&
639
+ needs.build-native-guard-wheels.result == 'success'
640
+ needs: [build, build-native-guard-wheels]
641
+ runs-on: ubuntu-latest
642
+ timeout-minutes: 10
643
+ permissions:
644
+ contents: read
645
+ steps:
646
+ - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10
647
+ with:
648
+ persist-credentials: false
649
+ ref: ${{ needs.build.outputs.source_sha }}
650
+ - uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405
651
+ with:
652
+ python-version: "3.12"
653
+ - uses: astral-sh/setup-uv@fac544c07dec837d0ccb6301d7b5580bf5edae39
654
+ with:
655
+ version: "0.9.26"
656
+ enable-cache: true
657
+ - run: uv sync --frozen --extra dev --extra publish --python 3.12
658
+ - uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c
659
+ with:
660
+ name: distributions
661
+ path: dist/
662
+ - uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c
663
+ with:
664
+ pattern: native-guard-wheel-*
665
+ path: dist/
666
+ merge-multiple: true
667
+ - name: Validate exact native artifact set
668
+ env:
669
+ SOURCE_SHA: ${{ needs.build.outputs.source_sha }}
670
+ VERSION: ${{ needs.build.outputs.version }}
671
+ run: |
672
+ uv run --no-sync python scripts/verify_native_runtime_release.py validate-local \
673
+ --version "$VERSION" \
674
+ --source-sha "$SOURCE_SHA" \
675
+ --dist-dir dist
676
+ uv run --no-sync twine check dist/*
677
+ - name: Record aggregate immutable hashes
678
+ run: |
679
+ find dist -maxdepth 1 -type f -print0 | sort -z | xargs -0 sha256sum > distribution-sha256-native.txt
680
+ - uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a
681
+ with:
682
+ name: distributions-native
683
+ path: dist/
684
+ if-no-files-found: error
685
+ - uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a
686
+ with:
687
+ name: distribution-sha256-native
688
+ path: distribution-sha256-native.txt
689
+ if-no-files-found: error
690
+
691
+ publish-testpypi:
692
+ name: Publish PR canary to TestPyPI
693
+ if: >-
694
+ vars.PR_CANARY_PUBLISHING_ENABLED == 'true' &&
695
+ github.event_name == 'pull_request' &&
696
+ github.event.pull_request.head.repo.full_name == github.repository &&
697
+ contains(github.event.pull_request.labels.*.name, 'publish-testpypi-canary')
698
+ needs: [build, assemble-native-guard-distributions]
699
+ runs-on: ubuntu-latest
700
+ environment: testpypi
701
+ permissions:
702
+ id-token: write
703
+ steps:
704
+ - uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c
705
+ with:
706
+ name: distributions-native
707
+ path: dist/
708
+ - name: Keep only the Guard canary distribution
709
+ run: rm -f dist/plugin_scanner-* dist/plugin-scanner-*
710
+ - uses: pypa/gh-action-pypi-publish@cef221092ed1bacb1cc03d23a2d87d1d172e277b
711
+ with:
712
+ repository-url: https://test.pypi.org/legacy/
713
+ - name: Show canary install command
714
+ env:
715
+ VERSION: ${{ needs.build.outputs.version }}
716
+ run: |
717
+ echo "## TestPyPI canary" >> "$GITHUB_STEP_SUMMARY"
718
+ echo "\`\`\`bash" >> "$GITHUB_STEP_SUMMARY"
719
+ echo "uv tool install --force --index https://pypi.org/simple --find-links https://test.pypi.org/simple/hol-guard/ 'hol-guard==$VERSION'" >> "$GITHUB_STEP_SUMMARY"
720
+ echo "\`\`\`" >> "$GITHUB_STEP_SUMMARY"
721
+
722
+ pr-installed-canary:
723
+ name: Installed PR canary (${{ matrix.os }})
724
+ if: >-
725
+ vars.PR_CANARY_PUBLISHING_ENABLED == 'true' &&
726
+ github.event_name == 'pull_request' &&
727
+ github.event.pull_request.head.repo.full_name == github.repository &&
728
+ contains(github.event.pull_request.labels.*.name, 'publish-testpypi-canary')
729
+ needs: [build, publish-testpypi]
730
+ runs-on: ${{ matrix.os }}
731
+ permissions:
732
+ contents: read
733
+ strategy:
734
+ fail-fast: false
735
+ matrix:
736
+ os: [ubuntu-latest, macos-latest, windows-latest]
737
+ steps:
738
+ - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10
739
+ with:
740
+ ref: ${{ needs.build.outputs.source_sha }}
741
+ - uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405
742
+ with:
743
+ python-version: "3.12"
744
+ - uses: astral-sh/setup-uv@fac544c07dec837d0ccb6301d7b5580bf5edae39
745
+ with:
746
+ version: "0.9.26"
747
+ enable-cache: true
748
+ - uses: oven-sh/setup-bun@0c5077e51419868618aeaa5fe8019c62421857d6
749
+ with:
750
+ bun-version: "1.3.14"
751
+ - uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c
752
+ with:
753
+ name: distributions-native
754
+ path: dist/
755
+ - name: Download exact TestPyPI wheel bytes
756
+ shell: bash
757
+ env:
758
+ VERSION: ${{ needs.build.outputs.version }}
759
+ run: |
760
+ mkdir -p verified-testpypi
761
+ for attempt in {1..60}; do
762
+ if uv run --no-project --with packaging==25.0 python scripts/verify_release_registry.py \
763
+ verify-release --registry testpypi --version "$VERSION" \
764
+ --dist-dir dist --download-dir verified-testpypi > registry-result.json; then
765
+ STATUS=$(python -c 'import json; print(json.load(open("registry-result.json", encoding="utf-8"))["status"])')
766
+ if [[ "$STATUS" == "exact" ]]; then
767
+ break
768
+ fi
769
+ fi
770
+ if [[ "$attempt" == "60" ]]; then
771
+ echo "Exact TestPyPI canary did not become available" >&2
772
+ exit 1
773
+ fi
774
+ sleep 10
775
+ done
776
+ - name: Bind compatible native canary wheel
777
+ shell: bash
778
+ env:
779
+ VERSION: ${{ needs.build.outputs.version }}
780
+ SOURCE_SHA: ${{ needs.build.outputs.source_sha }}
781
+ run: |
782
+ uv run --no-project --with packaging==25.0 python scripts/select_installed_native_wheel.py \
783
+ --dist-dir dist --version "$VERSION" --output-dir selected-native
784
+ uv run --no-project --with packaging==25.0 python scripts/installed_canary_proof.py write-subject \
785
+ --dist-dir selected-native --version "$VERSION" --source-sha "$SOURCE_SHA" \
786
+ --output installed-canary/installed-canary-subject.json
787
+ - name: Verify PR head, version, and TestPyPI bytes
788
+ shell: bash
789
+ env:
790
+ VERSION: ${{ needs.build.outputs.version }}
791
+ SOURCE_SHA: ${{ needs.build.outputs.source_sha }}
792
+ run: |
793
+ test "$(git rev-parse 'HEAD^{commit}')" = "$SOURCE_SHA"
794
+ uv run --no-project --with packaging==25.0 python scripts/installed_canary_proof.py verify-download \
795
+ --subject installed-canary/installed-canary-subject.json \
796
+ --version "$VERSION" \
797
+ --source-sha "$SOURCE_SHA" \
798
+ --download-dir verified-testpypi > verified-download.json
799
+ - name: Install only the verified wheel
800
+ shell: bash
801
+ run: |
802
+ WHEEL_REQUIREMENT=$(python -c 'import json; print(json.load(open("verified-download.json", encoding="utf-8"))["requirement"])')
803
+ python -m venv --copies "$RUNNER_TEMP/hol-guard-canary-venv"
804
+ if [[ "$RUNNER_OS" == "Windows" ]]; then
805
+ CANARY_PYTHON="$RUNNER_TEMP/hol-guard-canary-venv/Scripts/python.exe"
806
+ else
807
+ CANARY_PYTHON="$RUNNER_TEMP/hol-guard-canary-venv/bin/python"
808
+ fi
809
+ "$CANARY_PYTHON" -m pip install --no-compile --index-url https://pypi.org/simple "$WHEEL_REQUIREMENT"
810
+ "$CANARY_PYTHON" -m pip install --no-compile --index-url https://pypi.org/simple -r scripts/installed_canary_test_requirements.txt
811
+ echo "CANARY_PYTHON=$CANARY_PYTHON" >> "$GITHUB_ENV"
812
+ - name: Prove the harness rejects missing evidence
813
+ shell: bash
814
+ env:
815
+ VERSION: ${{ needs.build.outputs.version }}
816
+ SOURCE_SHA: ${{ needs.build.outputs.source_sha }}
817
+ run: |
818
+ if PYTHONPATH= "$CANARY_PYTHON" -X "pycache_prefix=$RUNNER_TEMP/hol-guard-missing-proof-cache" \
819
+ -m scripts.run_installed_canary \
820
+ --subject installed-canary/missing-subject.json \
821
+ --version "$VERSION" \
822
+ --source-sha "$SOURCE_SHA" \
823
+ --repo-root "$GITHUB_WORKSPACE" \
824
+ --output installed-canary/missing-proof-must-not-exist.json; then
825
+ echo "Installed canary harness accepted a run without proof" >&2
826
+ exit 1
827
+ fi
828
+ test ! -e installed-canary/missing-proof-must-not-exist.json
829
+ - name: Run installed native worker outage qualification
830
+ shell: bash
831
+ env:
832
+ VERSION: ${{ needs.build.outputs.version }}
833
+ SOURCE_SHA: ${{ needs.build.outputs.source_sha }}
834
+ run: |
835
+ PYTHONPATH= "$CANARY_PYTHON" -X "pycache_prefix=$RUNNER_TEMP/hol-guard-native-outage-cache" \
836
+ -m scripts.run_installed_native_outage \
837
+ --subject installed-canary/installed-canary-subject.json \
838
+ --version "$VERSION" \
839
+ --source-sha "$SOURCE_SHA" \
840
+ --repo-root "$GITHUB_WORKSPACE" \
841
+ --output installed-canary/native-outage-evidence.json
842
+ - name: Run installed Codex outage regressions
843
+ shell: bash
844
+ env:
845
+ VERSION: ${{ needs.build.outputs.version }}
846
+ SOURCE_SHA: ${{ needs.build.outputs.source_sha }}
847
+ run: |
848
+ PYTHONPATH= "$CANARY_PYTHON" -X "pycache_prefix=$RUNNER_TEMP/hol-guard-outage-cache" \
849
+ -m scripts.run_installed_codex_outage \
850
+ --subject installed-canary/installed-canary-subject.json \
851
+ --version "$VERSION" \
852
+ --source-sha "$SOURCE_SHA" \
853
+ --repo-root "$GITHUB_WORKSPACE" \
854
+ --output installed-canary/codex-outage-evidence.json
855
+ - name: Run installed 51k corpus and dashboard smoke
856
+ shell: bash
857
+ env:
858
+ VERSION: ${{ needs.build.outputs.version }}
859
+ SOURCE_SHA: ${{ needs.build.outputs.source_sha }}
860
+ run: |
861
+ PYTHONPATH= "$CANARY_PYTHON" -X "pycache_prefix=$RUNNER_TEMP/hol-guard-evidence-cache" \
862
+ -m scripts.run_installed_canary \
863
+ --subject installed-canary/installed-canary-subject.json \
864
+ --version "$VERSION" \
865
+ --source-sha "$SOURCE_SHA" \
866
+ --repo-root "$GITHUB_WORKSPACE" \
867
+ --output installed-canary/evidence.json
868
+ - name: Verify installed bounded hook outage denials
869
+ shell: bash
870
+ env:
871
+ VERSION: ${{ needs.build.outputs.version }}
872
+ SOURCE_SHA: ${{ needs.build.outputs.source_sha }}
873
+ run: |
874
+ PYTHONPATH= "$CANARY_PYTHON" -X "pycache_prefix=$RUNNER_TEMP/hol-guard-bounded-outage-cache" \
875
+ -m scripts.run_installed_bounded_outage \
876
+ --subject installed-canary/installed-canary-subject.json \
877
+ --version "$VERSION" \
878
+ --source-sha "$SOURCE_SHA" \
879
+ --repo-root "$GITHUB_WORKSPACE" \
880
+ --output installed-canary/bounded-outage-evidence.json
881
+ - name: Verify installed Cursor unparsed-input denials
882
+ shell: bash
883
+ env:
884
+ VERSION: ${{ needs.build.outputs.version }}
885
+ SOURCE_SHA: ${{ needs.build.outputs.source_sha }}
886
+ run: |
887
+ PYTHONPATH= "$CANARY_PYTHON" -X "pycache_prefix=$RUNNER_TEMP/hol-guard-cursor-outage-cache" \
888
+ -m scripts.run_installed_cursor_outage \
889
+ --subject installed-canary/installed-canary-subject.json \
890
+ --version "$VERSION" \
891
+ --source-sha "$SOURCE_SHA" \
892
+ --repo-root "$GITHUB_WORKSPACE" \
893
+ --output installed-canary/cursor-outage-evidence.json
894
+ - name: Qualify installed parsed Cursor outage decisions
895
+ shell: bash
896
+ env:
897
+ VERSION: ${{ needs.build.outputs.version }}
898
+ SOURCE_SHA: ${{ needs.build.outputs.source_sha }}
899
+ run: |
900
+ PYTHONPATH= "$CANARY_PYTHON" -X "pycache_prefix=$RUNNER_TEMP/hol-guard-evidence-cache" \
901
+ -m scripts.run_installed_cursor_parsed_outage \
902
+ --subject installed-canary/installed-canary-subject.json \
903
+ --version "$VERSION" \
904
+ --source-sha "$SOURCE_SHA" \
905
+ --repo-root "$GITHUB_WORKSPACE" \
906
+ --output installed-canary/cursor-parsed-outage-evidence.json
907
+ - name: Run canonical command extension analytics Dockerlab
908
+ if: runner.os == 'Linux'
909
+ shell: bash
910
+ env:
911
+ VERSION: ${{ needs.build.outputs.version }}
912
+ run: |
913
+ VERIFIED_WHEEL=$(python -c 'import json; print(json.load(open("verified-download.json", encoding="utf-8"))["wheel"])')
914
+ WHEEL_NAME=$(basename "$VERIFIED_WHEEL")
915
+ cmp "$VERIFIED_WHEEL" "dist/$WHEEL_NAME"
916
+ cd dashboard
917
+ bun install --frozen-lockfile --ignore-scripts
918
+ bunx playwright install --with-deps chromium
919
+ sudo apt-get update
920
+ sudo apt-get install -y --no-install-recommends apparmor bubblewrap
921
+ sudo tee /etc/apparmor.d/hol-guard-bwrap >/dev/null <<'EOF'
922
+ abi <abi/4.0>,
923
+ include <tunables/global>
924
+ /usr/bin/bwrap flags=(unconfined) {
925
+ userns,
926
+ }
927
+ EOF
928
+ sudo apparmor_parser -r /etc/apparmor.d/hol-guard-bwrap
929
+ cd ../tests/dockerlabs/command-extension-analytics
930
+ bun run typecheck
931
+ HOL_GUARD_LAB_EXPECTED_VERSION="$VERSION" \
932
+ HOL_GUARD_LAB_PYTHON="$CANARY_PYTHON" \
933
+ HOL_GUARD_WHEEL="$GITHUB_WORKSPACE/dist/$WHEEL_NAME" \
934
+ bun run guard:test:command-extension-analytics \
935
+ > "$GITHUB_WORKSPACE/installed-canary/command-extension-analytics.json"
936
+ - name: Verify installed browser proof
937
+ if: runner.os == 'Linux'
938
+ shell: bash
939
+ run: |
940
+ proof_dir=.artifacts/command-extension-analytics/playwright-output
941
+ for screenshot in \
942
+ installed-command-activity-overview.png \
943
+ installed-command-activity-filtered.png \
944
+ installed-command-activity-detail-feedback.png; do
945
+ count=$(find "$proof_dir" -type f -name "$screenshot" | wc -l)
946
+ test "$count" -eq 1
947
+ done
948
+ - name: Upload installed canary evidence
949
+ uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a
950
+ with:
951
+ name: installed-canary-evidence-${{ runner.os }}
952
+ path: |
953
+ installed-canary/evidence.json
954
+ installed-canary/bounded-outage-evidence.json
955
+ installed-canary/cursor-outage-evidence.json
956
+ installed-canary/cursor-parsed-outage-evidence.json
957
+ installed-canary/codex-outage-evidence.json
958
+ installed-canary/native-outage-evidence.json
959
+ installed-canary/command-extension-analytics.json
960
+ .artifacts/command-extension-analytics/playwright-output/**/*.png
961
+ if-no-files-found: error
962
+ include-hidden-files: true
963
+
964
+ reserve-alpha-tag:
965
+ name: Reserve alpha version
966
+ if: >-
967
+ always() &&
968
+ vars.RELEASE_PUBLISHING_ENABLED == 'true' &&
969
+ needs.build.result == 'success' && needs.assemble-native-guard-distributions.result == 'success' &&
970
+ needs.build.outputs.channel == 'alpha' &&
971
+ (
972
+ (github.event_name == 'workflow_dispatch' && github.run_attempt == 1) ||
973
+ (github.event_name == 'push' && github.ref == 'refs/heads/release/3.0')
974
+ )
975
+ needs: [build, assemble-native-guard-distributions]
976
+ runs-on: ubuntu-latest
977
+ permissions:
978
+ contents: write
979
+ steps:
980
+ - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10
981
+ with:
982
+ fetch-depth: 0
983
+ ref: ${{ needs.build.outputs.source_sha }}
984
+ - name: Reserve exact alpha tag
985
+ env:
986
+ GH_TOKEN: ${{ github.token }}
987
+ SOURCE_SHA: ${{ needs.build.outputs.source_sha }}
988
+ VERSION: ${{ needs.build.outputs.version }}
989
+ run: bash scripts/reserve_alpha_tag.sh
990
+
991
+ publish-alpha-testpypi:
992
+ name: Verify alpha artifact on TestPyPI
993
+ if: >-
994
+ always() &&
995
+ vars.RELEASE_PUBLISHING_ENABLED == 'true' &&
996
+ vars.ALPHA_TESTPYPI_ENABLED == 'true' &&
997
+ needs.build.result == 'success' &&
998
+ needs.assemble-native-guard-distributions.result == 'success' &&
999
+ needs.reserve-alpha-tag.result == 'success' &&
1000
+ needs.build.outputs.channel == 'alpha' &&
1001
+ (
1002
+ (github.event_name == 'workflow_dispatch' && github.run_attempt == 1) ||
1003
+ (github.event_name == 'push' && github.ref == 'refs/heads/release/3.0')
1004
+ )
1005
+ needs: [build, reserve-alpha-tag, assemble-native-guard-distributions]
1006
+ runs-on: ubuntu-latest
1007
+ environment: testpypi
1008
+ permissions:
1009
+ contents: read
1010
+ id-token: write
1011
+ steps:
1012
+ - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10
1013
+ with:
1014
+ ref: ${{ needs.build.outputs.source_sha }}
1015
+ - uses: astral-sh/setup-uv@fac544c07dec837d0ccb6301d7b5580bf5edae39
1016
+ with:
1017
+ version: "0.9.26"
1018
+ - uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c
1019
+ with:
1020
+ name: distributions-native
1021
+ path: dist/
1022
+ - uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c
1023
+ with:
1024
+ name: distribution-sha256-native
1025
+ - name: Verify immutable build artifact
1026
+ run: sha256sum --check distribution-sha256-native.txt
1027
+ - name: Keep only the Guard release distribution
1028
+ run: rm -f dist/plugin_scanner-* dist/plugin-scanner-*
1029
+ - name: Revalidate alpha source before TestPyPI
1030
+ env:
1031
+ SOURCE_SHA: ${{ needs.build.outputs.source_sha }}
1032
+ TRAIN: ${{ needs.build.outputs.release_train }}
1033
+ VERSION: ${{ needs.build.outputs.version }}
1034
+ run: |
1035
+ train_ref="refs/heads/release/${TRAIN}"
1036
+ remote_train_sha=$(git ls-remote --exit-code origin "$train_ref" | awk '{print $1}')
1037
+ if [[ "$remote_train_sha" != "$SOURCE_SHA" ]]; then
1038
+ echo "Alpha publication source is no longer the release train head" >&2
1039
+ exit 1
1040
+ fi
1041
+ remote_alpha_tag_sha=$(git ls-remote --exit-code origin "refs/tags/alpha/v${VERSION}" | awk '{print $1}')
1042
+ if [[ "$remote_alpha_tag_sha" != "$SOURCE_SHA" ]]; then
1043
+ echo "Alpha tag targets a different source" >&2
1044
+ exit 1
1045
+ fi
1046
+ - name: Plan TestPyPI release upload
1047
+ id: testpypi
1048
+ env:
1049
+ SOURCE_SHA: ${{ needs.build.outputs.source_sha }}
1050
+ VERSION: ${{ needs.build.outputs.version }}
1051
+ run: |
1052
+ rm -rf upload-dist
1053
+ result=$(uv run --with packaging==25.0 python scripts/verify_native_runtime_release.py \
1054
+ plan-upload --registry testpypi --version "$VERSION" \
1055
+ --source-sha "$SOURCE_SHA" --dist-dir dist --output-dir upload-dist)
1056
+ file_count=$(jq '.files | length' <<< "$result")
1057
+ if [[ "$file_count" -gt 0 ]]; then
1058
+ echo "upload=true" >> "$GITHUB_OUTPUT"
1059
+ else
1060
+ echo "upload=false" >> "$GITHUB_OUTPUT"
1061
+ fi
1062
+ - uses: pypa/gh-action-pypi-publish@cef221092ed1bacb1cc03d23a2d87d1d172e277b
1063
+ if: steps.testpypi.outputs.upload == 'true'
1064
+ with:
1065
+ repository-url: https://test.pypi.org/legacy/
1066
+ packages-dir: upload-dist/
1067
+ - name: Remove generated upload attestations
1068
+ run: rm -f dist/*.publish.attestation upload-dist/*.publish.attestation
1069
+ - name: Download and verify exact TestPyPI artifacts
1070
+ env:
1071
+ SOURCE_SHA: ${{ needs.build.outputs.source_sha }}
1072
+ VERSION: ${{ needs.build.outputs.version }}
1073
+ run: |
1074
+ for attempt in {1..60}; do
1075
+ if ! result=$(uv run --with packaging==25.0 python scripts/verify_release_registry.py \
1076
+ verify-release --registry testpypi --version "$VERSION" --dist-dir dist \
1077
+ --download-dir verified-testpypi); then
1078
+ exit 1
1079
+ fi
1080
+ status=$(jq -r '.status' <<< "$result")
1081
+ if [[ "$status" == "exact" ]]; then
1082
+ uv run --with packaging==25.0 python scripts/retry_verify_published.py --registry testpypi --version "$VERSION" --source-sha "$SOURCE_SHA" --dist-dir dist || exit 1
1083
+ break
1084
+ fi
1085
+ if [[ "$status" != "absent" && "$status" != "exact" ]] || [[ "$attempt" == "60" ]]; then
1086
+ echo "TestPyPI did not expose the exact release artifacts" >&2
1087
+ exit 1
1088
+ fi
1089
+ sleep 5
1090
+ done
1091
+ wheel=$(jq -r '.install_paths[] | select(endswith("-py3-none-any.whl"))' <<< "$result")
1092
+ [[ -n "$wheel" ]]
1093
+ [[ "$(uv tool run --from "$wheel" hol-guard --version)" == "hol-guard $VERSION" ]]
1094
+
1095
+ publish-alpha-pypi:
1096
+ name: Publish alpha to PyPI
1097
+ if: >-
1098
+ always() &&
1099
+ vars.RELEASE_PUBLISHING_ENABLED == 'true' &&
1100
+ needs.build.result == 'success' &&
1101
+ needs.assemble-native-guard-distributions.result == 'success' &&
1102
+ needs.reserve-alpha-tag.result == 'success' &&
1103
+ needs.build.outputs.channel == 'alpha' &&
1104
+ (
1105
+ (github.event_name == 'workflow_dispatch' && github.run_attempt == 1) ||
1106
+ (github.event_name == 'push' && github.ref == 'refs/heads/release/3.0')
1107
+ )
1108
+ needs: [build, reserve-alpha-tag, assemble-native-guard-distributions]
1109
+ runs-on: ubuntu-latest
1110
+ environment: pypi
1111
+ permissions:
1112
+ contents: read
1113
+ id-token: write
1114
+ steps:
1115
+ - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10
1116
+ with:
1117
+ fetch-depth: 0
1118
+ ref: ${{ needs.build.outputs.source_sha }}
1119
+ - uses: astral-sh/setup-uv@fac544c07dec837d0ccb6301d7b5580bf5edae39
1120
+ with:
1121
+ version: "0.9.26"
1122
+ - uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c
1123
+ with:
1124
+ name: distributions-native
1125
+ path: dist/
1126
+ - uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c
1127
+ with:
1128
+ name: distribution-sha256-native
1129
+ - name: Verify the TestPyPI-proven artifact
1130
+ run: sha256sum --check distribution-sha256-native.txt
1131
+ - name: Prepare project-specific distributions
1132
+ run: |
1133
+ shopt -s nullglob
1134
+ guard_files=(dist/hol_guard-* dist/hol-guard-*)
1135
+ scanner_files=(dist/plugin_scanner-* dist/plugin-scanner-*)
1136
+ [[ "${#guard_files[@]}" -ge "2" && "${#scanner_files[@]}" == "2" ]]
1137
+ mkdir dist-hol-guard dist-plugin-scanner
1138
+ cp "${guard_files[@]}" dist-hol-guard/
1139
+ cp "${scanner_files[@]}" dist-plugin-scanner/
1140
+ - name: Inspect PyPI release state
1141
+ id: pypi
1142
+ env:
1143
+ SOURCE_SHA: ${{ needs.build.outputs.source_sha }}
1144
+ VERSION: ${{ needs.build.outputs.version }}
1145
+ run: |
1146
+ rm -rf upload-dist-hol-guard
1147
+ guard_result=$(uv run --with packaging==25.0 python scripts/verify_native_runtime_release.py \
1148
+ plan-upload --registry pypi --version "$VERSION" --source-sha "$SOURCE_SHA" \
1149
+ --dist-dir dist-hol-guard --output-dir upload-dist-hol-guard --artifact-set pure)
1150
+ scanner_result=$(uv run --with packaging==25.0 python scripts/verify_release_registry.py \
1151
+ verify-release --registry pypi --project plugin-scanner --version "$VERSION" --dist-dir dist-plugin-scanner)
1152
+ guard_file_count=$(jq '.files | length' <<< "$guard_result")
1153
+ scanner_status=$(jq -r '.status' <<< "$scanner_result")
1154
+ [[ "$scanner_status" == "absent" || "$scanner_status" == "exact" ]]
1155
+ [[ "$guard_file_count" -gt 0 ]] && echo "hol_guard_upload=true" >> "$GITHUB_OUTPUT" || echo "hol_guard_upload=false" >> "$GITHUB_OUTPUT"
1156
+ [[ "$scanner_status" == "absent" ]] && echo "plugin_scanner_upload=true" >> "$GITHUB_OUTPUT" || echo "plugin_scanner_upload=false" >> "$GITHUB_OUTPUT"
1157
+ - name: Revalidate alpha publication authorization
1158
+ env:
1159
+ ACTUAL_REF: ${{ github.ref }}
1160
+ EXPECTED_SHA: ${{ github.event.inputs.expected_sha || needs.build.outputs.source_sha }}
1161
+ SOURCE_SHA: ${{ needs.build.outputs.source_sha }}
1162
+ TRAIN: ${{ needs.build.outputs.release_train }}
1163
+ VERSION: ${{ needs.build.outputs.version }}
1164
+ run: |
1165
+ train_ref="refs/heads/release/${TRAIN}"
1166
+ remote_train_sha=$(git ls-remote --exit-code origin "$train_ref" | awk '{print $1}')
1167
+ if [[ "$remote_train_sha" != "$SOURCE_SHA" ]]; then
1168
+ echo "Alpha publication source is no longer the release train head" >&2
1169
+ exit 1
1170
+ fi
1171
+ remote_alpha_tag_sha=$(git ls-remote --exit-code origin "refs/tags/alpha/v${VERSION}" | awk '{print $1}')
1172
+ if [[ "$remote_alpha_tag_sha" != "$SOURCE_SHA" ]]; then
1173
+ echo "Alpha tag targets a different source" >&2
1174
+ exit 1
1175
+ fi
1176
+ versions=$(uv run --with packaging==25.0 python scripts/verify_release_registry.py \
1177
+ list-versions --registry pypi)
1178
+ mapfile -t existing_versions < <(jq -r --arg version "$VERSION" '.[] | select(. != $version)' <<< "$versions")
1179
+ mapfile -t alpha_tags < <(
1180
+ git tag --list 'alpha/v*' | sed 's#^alpha/v##' | awk -v candidate="$VERSION" '$0 != candidate'
1181
+ )
1182
+ validator_args=(
1183
+ --channel alpha
1184
+ --version "$VERSION"
1185
+ --git-ref "$train_ref"
1186
+ --actual-ref "$ACTUAL_REF"
1187
+ --github-sha "$SOURCE_SHA"
1188
+ --expected-sha "$EXPECTED_SHA"
1189
+ )
1190
+ for existing_version in "${existing_versions[@]}" "${alpha_tags[@]}"; do
1191
+ [[ -z "$existing_version" ]] || validator_args+=(--existing-version "$existing_version")
1192
+ done
1193
+ uv run --with packaging==25.0 python scripts/validate_alpha_release.py "${validator_args[@]}"
1194
+ - name: Refuse PyPI upload when the project is over quota
1195
+ if: steps.pypi.outputs.hol_guard_upload == 'true'
1196
+ run: uv run --with packaging==25.0 python scripts/pypi_project_storage.py --fail-if-over-limit
1197
+ - name: Publish HOL Guard to PyPI
1198
+ uses: pypa/gh-action-pypi-publish@cef221092ed1bacb1cc03d23a2d87d1d172e277b
1199
+ if: steps.pypi.outputs.hol_guard_upload == 'true'
1200
+ with:
1201
+ packages-dir: upload-dist-hol-guard/
1202
+ - name: Publish plugin-scanner to PyPI
1203
+ uses: pypa/gh-action-pypi-publish@cef221092ed1bacb1cc03d23a2d87d1d172e277b
1204
+ if: steps.pypi.outputs.plugin_scanner_upload == 'true'
1205
+ with:
1206
+ packages-dir: dist-plugin-scanner/
1207
+ - name: Remove generated upload attestations
1208
+ run: rm -f upload-dist-hol-guard/*.publish.attestation dist-plugin-scanner/*.publish.attestation
1209
+ - name: Download and verify exact PyPI artifacts
1210
+ env:
1211
+ SOURCE_SHA: ${{ needs.build.outputs.source_sha }}
1212
+ VERSION: ${{ needs.build.outputs.version }}
1213
+ run: |
1214
+ for attempt in {1..60}; do
1215
+ if ! guard_result=$(uv run --with packaging==25.0 python scripts/verify_release_registry.py \
1216
+ inspect-release --registry pypi --project hol-guard --version "$VERSION"); then
1217
+ exit 1
1218
+ fi
1219
+ if ! scanner_result=$(uv run --with packaging==25.0 python scripts/verify_release_registry.py \
1220
+ verify-release --registry pypi --project plugin-scanner --version "$VERSION" \
1221
+ --dist-dir dist-plugin-scanner --download-dir verified-pypi-plugin-scanner); then
1222
+ exit 1
1223
+ fi
1224
+ guard_status=$(jq -r '.status' <<< "$guard_result")
1225
+ scanner_status=$(jq -r '.status' <<< "$scanner_result")
1226
+ if [[ "$guard_status" == "present" && "$scanner_status" == "exact" ]]; then
1227
+ uv run --with packaging==25.0 python scripts/retry_verify_published.py --registry pypi --version "$VERSION" --source-sha "$SOURCE_SHA" --dist-dir dist-hol-guard --artifact-set pure || exit 1
1228
+ break
1229
+ fi
1230
+ if [[ "$guard_status" != "absent" && "$guard_status" != "present" && "$guard_status" != "pending" ]] || \
1231
+ [[ "$scanner_status" != "absent" && "$scanner_status" != "exact" ]] || \
1232
+ [[ "$attempt" == "60" ]]; then
1233
+ echo "PyPI did not expose the exact release artifacts" >&2
1234
+ exit 1
1235
+ fi
1236
+ sleep 5
1237
+ done
1238
+ shopt -s nullglob
1239
+ guard_wheels=(dist-hol-guard/*-py3-none-any.whl)
1240
+ [[ "${#guard_wheels[@]}" == "1" ]]
1241
+ guard_wheel="${guard_wheels[0]}"
1242
+ scanner_wheel=$(jq -r '.install_paths[] | select(endswith(".whl"))' <<< "$scanner_result")
1243
+ [[ -n "$guard_wheel" && -n "$scanner_wheel" ]]
1244
+ [[ "$(uv tool run --from "$guard_wheel" hol-guard --version)" == "hol-guard $VERSION" ]]
1245
+ [[ "$(uv tool run --from "$scanner_wheel" plugin-scanner --version)" == "plugin-scanner $VERSION" ]]
1246
+
1247
+ release-unpublished-alpha-reservation:
1248
+ name: Release unpublished alpha reservation
1249
+ if: >-
1250
+ always() &&
1251
+ vars.RELEASE_PUBLISHING_ENABLED == 'true' &&
1252
+ needs.build.outputs.channel == 'alpha' &&
1253
+ needs.reserve-alpha-tag.result == 'success' &&
1254
+ needs.publish-alpha-pypi.result != 'success'
1255
+ needs: [build, reserve-alpha-tag, publish-alpha-pypi]
1256
+ runs-on: ubuntu-latest
1257
+ permissions:
1258
+ contents: write
1259
+ steps:
1260
+ - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10
1261
+ with:
1262
+ persist-credentials: false
1263
+ - name: Delete unpublished reservation tag
1264
+ env:
1265
+ GH_TOKEN: ${{ github.token }}
1266
+ SOURCE_SHA: ${{ needs.build.outputs.source_sha }}
1267
+ VERSION: ${{ needs.build.outputs.version }}
1268
+ run: bash scripts/release_unpublished_alpha_reservation.sh
1269
+
1270
+ publish-main-testpypi:
1271
+ name: Verify main artifact on TestPyPI
1272
+ if: >-
1273
+ always() &&
1274
+ vars.RELEASE_PUBLISHING_ENABLED == 'true' &&
1275
+ vars.MAIN_TESTPYPI_ENABLED == 'true' &&
1276
+ github.event_name == 'workflow_dispatch' &&
1277
+ github.run_attempt == 1 &&
1278
+ (github.ref == 'refs/heads/main' || github.ref == format('refs/tags/v{0}', github.event.inputs.release_version)) &&
1279
+ github.event.inputs.release_channel == 'stable' &&
1280
+ github.event.inputs.release_train == 'main' &&
1281
+ needs.build.result == 'success' &&
1282
+ needs.assemble-native-guard-distributions.result == 'success' &&
1283
+ needs.build.outputs.channel == 'stable'
1284
+ needs: [build, assemble-native-guard-distributions]
1285
+ runs-on: ubuntu-latest
1286
+ environment: testpypi
1287
+ permissions:
1288
+ contents: read
1289
+ id-token: write
1290
+ steps:
1291
+ - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10
1292
+ with:
1293
+ fetch-depth: 0
1294
+ ref: ${{ needs.build.outputs.source_sha }}
1295
+ - uses: astral-sh/setup-uv@fac544c07dec837d0ccb6301d7b5580bf5edae39
1296
+ with:
1297
+ version: "0.9.26"
1298
+ - uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c
1299
+ with:
1300
+ name: distributions-native
1301
+ path: dist/
1302
+ - uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c
1303
+ with:
1304
+ name: distribution-sha256-native
1305
+ - name: Verify immutable build artifact
1306
+ run: sha256sum --check distribution-sha256-native.txt
1307
+ - name: Keep only the Guard release distribution
1308
+ run: rm -f dist/plugin_scanner-* dist/plugin-scanner-*
1309
+ - name: Revalidate main source before TestPyPI
1310
+ env:
1311
+ SOURCE_SHA: ${{ needs.build.outputs.source_sha }}
1312
+ VERSION: ${{ needs.build.outputs.version }}
1313
+ GITHUB_REF: ${{ github.ref }}
1314
+ RELEASE_REPAIR: ${{ needs.build.outputs.release_repair }}
1315
+ run: |
1316
+ git fetch --force origin refs/heads/main:refs/remotes/origin/main
1317
+ if [[ "$GITHUB_REF" == "refs/tags/v${VERSION}" ]]; then
1318
+ if ! git merge-base --is-ancestor "$SOURCE_SHA" origin/main; then
1319
+ echo "Stable tag source is not an ancestor of main" >&2
1320
+ exit 1
1321
+ fi
1322
+ else
1323
+ remote_main_sha=$(git ls-remote --exit-code origin refs/heads/main | awk '{print $1}')
1324
+ if [[ "$remote_main_sha" != "$SOURCE_SHA" ]]; then
1325
+ if [[ "$RELEASE_REPAIR" == "true" ]] && git merge-base --is-ancestor "$SOURCE_SHA" origin/main && [[ "$(git rev-parse "v${VERSION}^{commit}")" == "$SOURCE_SHA" ]]; then
1326
+ :
1327
+ else
1328
+ echo "Main publication source is no longer the branch head" >&2
1329
+ exit 1
1330
+ fi
1331
+ fi
1332
+ fi
1333
+ - name: Inspect TestPyPI release state
1334
+ id: testpypi
1335
+ env:
1336
+ VERSION: ${{ needs.build.outputs.version }}
1337
+ run: |
1338
+ result=$(uv run --with packaging==25.0 python scripts/verify_release_registry.py \
1339
+ verify-release --registry testpypi --version "$VERSION" --dist-dir dist)
1340
+ status=$(jq -r '.status' <<< "$result")
1341
+ if [[ "$status" == "absent" ]]; then
1342
+ echo "upload=true" >> "$GITHUB_OUTPUT"
1343
+ elif [[ "$status" == "exact" ]]; then
1344
+ echo "upload=false" >> "$GITHUB_OUTPUT"
1345
+ else
1346
+ echo "Unexpected TestPyPI status: $status" >&2
1347
+ exit 1
1348
+ fi
1349
+ - uses: pypa/gh-action-pypi-publish@cef221092ed1bacb1cc03d23a2d87d1d172e277b
1350
+ if: steps.testpypi.outputs.upload == 'true'
1351
+ with:
1352
+ repository-url: https://test.pypi.org/legacy/
1353
+ - name: Remove generated upload attestations
1354
+ run: rm -f dist/*.publish.attestation
1355
+ - name: Download and verify exact TestPyPI artifacts
1356
+ env:
1357
+ VERSION: ${{ needs.build.outputs.version }}
1358
+ run: |
1359
+ for attempt in {1..60}; do
1360
+ if ! result=$(uv run --with packaging==25.0 python scripts/verify_release_registry.py \
1361
+ verify-release --registry testpypi --version "$VERSION" --dist-dir dist \
1362
+ --download-dir verified-testpypi); then
1363
+ exit 1
1364
+ fi
1365
+ status=$(jq -r '.status' <<< "$result")
1366
+ if [[ "$status" == "exact" ]]; then
1367
+ break
1368
+ fi
1369
+ if [[ "$status" != "absent" || "$attempt" == "60" ]]; then
1370
+ echo "TestPyPI did not expose the exact release artifacts" >&2
1371
+ exit 1
1372
+ fi
1373
+ sleep 5
1374
+ done
1375
+ mapfile -t wheels < <(
1376
+ jq -r '.install_paths[] | select(endswith("-py3-none-any.whl"))' <<< "$result"
1377
+ )
1378
+ [[ "${#wheels[@]}" == "1" ]]
1379
+ wheel="${wheels[0]}"
1380
+ [[ "$(uv tool run --from "$wheel" hol-guard --version)" == "hol-guard $VERSION" ]]
1381
+
1382
+ reserve-main-tag:
1383
+ name: Reserve stable tag
1384
+ if: >-
1385
+ always() &&
1386
+ vars.RELEASE_PUBLISHING_ENABLED == 'true' &&
1387
+ github.event_name == 'workflow_dispatch' &&
1388
+ github.run_attempt == 1 &&
1389
+ (github.ref == 'refs/heads/main' || github.ref == format('refs/tags/v{0}', github.event.inputs.release_version)) &&
1390
+ github.event.inputs.release_channel == 'stable' &&
1391
+ github.event.inputs.release_train == 'main' &&
1392
+ needs.build.result == 'success' &&
1393
+ needs.assemble-native-guard-distributions.result == 'success' &&
1394
+ needs.build.outputs.channel == 'stable'
1395
+ needs: [build, assemble-native-guard-distributions]
1396
+ runs-on: ubuntu-latest
1397
+ permissions:
1398
+ contents: write
1399
+ steps:
1400
+ - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10
1401
+ with:
1402
+ fetch-depth: 0
1403
+ ref: ${{ needs.build.outputs.source_sha }}
1404
+ - name: Bind stable tag to the exact main source
1405
+ env:
1406
+ GH_TOKEN: ${{ github.token }}
1407
+ SOURCE_SHA: ${{ needs.build.outputs.source_sha }}
1408
+ VERSION: ${{ needs.build.outputs.version }}
1409
+ GITHUB_REF: ${{ github.ref }}
1410
+ RELEASE_REPAIR: ${{ needs.build.outputs.release_repair }}
1411
+ run: |
1412
+ git fetch --force origin refs/heads/main:refs/remotes/origin/main
1413
+ if [[ "$GITHUB_REF" == "refs/tags/v${VERSION}" ]]; then
1414
+ if ! git merge-base --is-ancestor "$SOURCE_SHA" origin/main; then
1415
+ echo "Stable tag source is not an ancestor of main" >&2
1416
+ exit 1
1417
+ fi
1418
+ else
1419
+ remote_main_sha=$(git ls-remote --exit-code origin refs/heads/main | awk '{print $1}')
1420
+ if [[ "$remote_main_sha" != "$SOURCE_SHA" ]]; then
1421
+ if [[ "$RELEASE_REPAIR" == "true" ]] && git merge-base --is-ancestor "$SOURCE_SHA" origin/main && [[ "$(git rev-parse "v${VERSION}^{commit}")" == "$SOURCE_SHA" ]]; then
1422
+ :
1423
+ else
1424
+ echo "Stable tag source is no longer the main branch head" >&2
1425
+ exit 1
1426
+ fi
1427
+ fi
1428
+ fi
1429
+ tag="v${VERSION}"
1430
+ remote_tag_sha=$(git ls-remote origin "refs/tags/${tag}" | awk '{print $1}')
1431
+ if [[ -z "$remote_tag_sha" ]]; then
1432
+ if ! gh api --method POST "repos/${GITHUB_REPOSITORY}/git/refs" \
1433
+ -f ref="refs/tags/${tag}" \
1434
+ -f sha="$SOURCE_SHA" >/dev/null; then
1435
+ echo "Stable tag creation raced or failed; verifying the resulting remote ref" >&2
1436
+ fi
1437
+ fi
1438
+ git fetch --force --no-tags origin "+refs/tags/${tag}:refs/tags/${tag}"
1439
+ remote_tag_sha=$(git rev-parse "${tag}^{commit}")
1440
+ if [[ "$remote_tag_sha" != "$SOURCE_SHA" ]]; then
1441
+ echo "Stable tag does not target the exact main source" >&2
1442
+ exit 1
1443
+ fi
1444
+
1445
+ publish-main-pypi:
1446
+ name: Publish main release to PyPI
1447
+ if: >-
1448
+ always() &&
1449
+ vars.RELEASE_PUBLISHING_ENABLED == 'true' &&
1450
+ github.event_name == 'workflow_dispatch' &&
1451
+ github.run_attempt == 1 &&
1452
+ (github.ref == 'refs/heads/main' || github.ref == format('refs/tags/v{0}', github.event.inputs.release_version)) &&
1453
+ github.event.inputs.release_channel == 'stable' &&
1454
+ github.event.inputs.release_train == 'main' &&
1455
+ needs.build.result == 'success' &&
1456
+ needs.assemble-native-guard-distributions.result == 'success' &&
1457
+ needs.reserve-main-tag.result == 'success' &&
1458
+ needs.build.outputs.channel == 'stable'
1459
+ needs: [build, assemble-native-guard-distributions, reserve-main-tag]
1460
+ runs-on: ubuntu-latest
1461
+ environment: pypi
1462
+ permissions:
1463
+ contents: read
1464
+ id-token: write
1465
+ steps:
1466
+ - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10
1467
+ with:
1468
+ fetch-depth: 0
1469
+ ref: ${{ needs.build.outputs.source_sha }}
1470
+ - uses: astral-sh/setup-uv@fac544c07dec837d0ccb6301d7b5580bf5edae39
1471
+ with:
1472
+ version: "0.9.26"
1473
+ - uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c
1474
+ with:
1475
+ name: distributions-native
1476
+ path: dist/
1477
+ - uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c
1478
+ with:
1479
+ name: distribution-sha256-native
1480
+ - name: Verify immutable build artifact
1481
+ run: sha256sum --check distribution-sha256-native.txt
1482
+ - name: Prepare project-specific distributions
1483
+ run: |
1484
+ shopt -s nullglob
1485
+ guard_files=(dist/hol_guard-* dist/hol-guard-*)
1486
+ scanner_files=(dist/plugin_scanner-* dist/plugin-scanner-*)
1487
+ [[ "${#guard_files[@]}" -ge "6" && "${#scanner_files[@]}" == "2" ]]
1488
+ mkdir dist-hol-guard dist-plugin-scanner
1489
+ cp "${guard_files[@]}" dist-hol-guard/
1490
+ cp "${scanner_files[@]}" dist-plugin-scanner/
1491
+ - name: Validate native Guard release set
1492
+ env:
1493
+ SOURCE_SHA: ${{ needs.build.outputs.source_sha }}
1494
+ VERSION: ${{ needs.build.outputs.version }}
1495
+ run: |
1496
+ uv run --with packaging==25.0 python scripts/verify_native_runtime_release.py \
1497
+ validate-local --version "$VERSION" --source-sha "$SOURCE_SHA" --dist-dir dist-hol-guard --artifact-set full
1498
+ - name: Revalidate main publication
1499
+ env:
1500
+ SOURCE_SHA: ${{ needs.build.outputs.source_sha }}
1501
+ VERSION: ${{ needs.build.outputs.version }}
1502
+ run: |
1503
+ git fetch --no-tags origin "+refs/tags/v${VERSION}:refs/tags/v${VERSION}"
1504
+ reserved_source_sha=$(git rev-parse "v${VERSION}^{commit}")
1505
+ if [[ "$reserved_source_sha" != "$SOURCE_SHA" ]]; then
1506
+ echo "Stable tag does not target the exact publication source" >&2
1507
+ exit 1
1508
+ fi
1509
+ BASE_VERSION=$(uv run --with packaging==25.0 python scripts/sync_repo_version.py --check)
1510
+ PYPI_VERSIONS=$(uv run --with packaging==25.0 python scripts/verify_release_registry.py \
1511
+ list-versions --registry pypi)
1512
+ TESTPYPI_VERSIONS=$(uv run --with packaging==25.0 python scripts/verify_release_registry.py \
1513
+ list-versions --registry testpypi)
1514
+ TAG_VERSIONS=$(git tag --list 'v*' | sed 's/^v//' | jq -R -s \
1515
+ 'split("\n") | map(select(length > 0))')
1516
+ RELEASE_VERSIONS=$(jq -n \
1517
+ --arg version "$VERSION" \
1518
+ --argjson pypi "$PYPI_VERSIONS" \
1519
+ --argjson testpypi "$TESTPYPI_VERSIONS" \
1520
+ --argjson tags "$TAG_VERSIONS" \
1521
+ '$pypi + $testpypi + $tags + [$version] | unique')
1522
+ LATEST_RELEASE_VERSION=$(uv run --with packaging==25.0 python scripts/compute_main_release_version.py \
1523
+ --base-version "$BASE_VERSION" --latest-existing <<< "$RELEASE_VERSIONS")
1524
+ if [[ "$LATEST_RELEASE_VERSION" != "$VERSION" ]]; then
1525
+ echo "A newer main release candidate exists before publication" >&2
1526
+ exit 1
1527
+ fi
1528
+ PRIOR_PYPI_VERSIONS=$(jq --arg version "$VERSION" \
1529
+ '[.[] | select(. != $version)]' <<< "$PYPI_VERSIONS")
1530
+ LATEST_VERSION=$(uv run --with packaging==25.0 python scripts/compute_main_release_version.py \
1531
+ --base-version "$BASE_VERSION" --latest-existing <<< "$PRIOR_PYPI_VERSIONS")
1532
+ if [[ -n "$LATEST_VERSION" ]]; then
1533
+ git fetch --no-tags origin "+refs/tags/v${LATEST_VERSION}:refs/tags/v${LATEST_VERSION}"
1534
+ if ! git merge-base --is-ancestor "v${LATEST_VERSION}^{commit}" "$SOURCE_SHA"; then
1535
+ echo "Main release source predates the latest stable release" >&2
1536
+ exit 1
1537
+ fi
1538
+ fi
1539
+ - name: Inspect PyPI release state
1540
+ id: pypi
1541
+ env:
1542
+ VERSION: ${{ needs.build.outputs.version }}
1543
+ run: |
1544
+ guard_result=$(uv run --with packaging==25.0 python scripts/verify_release_registry.py \
1545
+ verify-release --registry pypi --project hol-guard --version "$VERSION" --dist-dir dist-hol-guard)
1546
+ scanner_result=$(uv run --with packaging==25.0 python scripts/verify_release_registry.py \
1547
+ verify-release --registry pypi --project plugin-scanner --version "$VERSION" --dist-dir dist-plugin-scanner)
1548
+ guard_status=$(jq -r '.status' <<< "$guard_result")
1549
+ scanner_status=$(jq -r '.status' <<< "$scanner_result")
1550
+ [[ "$guard_status" == "absent" || "$guard_status" == "exact" ]]
1551
+ [[ "$scanner_status" == "absent" || "$scanner_status" == "exact" ]]
1552
+ [[ "$guard_status" == "absent" ]] && echo "hol_guard_upload=true" >> "$GITHUB_OUTPUT" || echo "hol_guard_upload=false" >> "$GITHUB_OUTPUT"
1553
+ [[ "$scanner_status" == "absent" ]] && echo "plugin_scanner_upload=true" >> "$GITHUB_OUTPUT" || echo "plugin_scanner_upload=false" >> "$GITHUB_OUTPUT"
1554
+ - name: Refuse PyPI upload when the project is over quota
1555
+ if: steps.pypi.outputs.hol_guard_upload == 'true'
1556
+ run: uv run --with packaging==25.0 python scripts/pypi_project_storage.py --fail-if-over-limit --pending-dir dist-hol-guard
1557
+ - name: Publish HOL Guard to PyPI
1558
+ uses: pypa/gh-action-pypi-publish@cef221092ed1bacb1cc03d23a2d87d1d172e277b
1559
+ if: steps.pypi.outputs.hol_guard_upload == 'true'
1560
+ with:
1561
+ packages-dir: dist-hol-guard/
1562
+ - name: Publish plugin-scanner to PyPI
1563
+ uses: pypa/gh-action-pypi-publish@cef221092ed1bacb1cc03d23a2d87d1d172e277b
1564
+ if: steps.pypi.outputs.plugin_scanner_upload == 'true'
1565
+ with:
1566
+ packages-dir: dist-plugin-scanner/
1567
+ - name: Remove generated upload attestations
1568
+ run: rm -f dist-hol-guard/*.publish.attestation dist-plugin-scanner/*.publish.attestation
1569
+ - name: Download and verify exact PyPI artifacts
1570
+ env:
1571
+ SOURCE_SHA: ${{ needs.build.outputs.source_sha }}
1572
+ VERSION: ${{ needs.build.outputs.version }}
1573
+ run: |
1574
+ for attempt in {1..60}; do
1575
+ if ! guard_result=$(uv run --with packaging==25.0 python scripts/verify_release_registry.py \
1576
+ verify-release --registry pypi --project hol-guard --version "$VERSION" \
1577
+ --dist-dir dist-hol-guard --download-dir verified-pypi-hol-guard); then
1578
+ exit 1
1579
+ fi
1580
+ if ! scanner_result=$(uv run --with packaging==25.0 python scripts/verify_release_registry.py \
1581
+ verify-release --registry pypi --project plugin-scanner --version "$VERSION" \
1582
+ --dist-dir dist-plugin-scanner --download-dir verified-pypi-plugin-scanner); then
1583
+ exit 1
1584
+ fi
1585
+ guard_status=$(jq -r '.status' <<< "$guard_result")
1586
+ scanner_status=$(jq -r '.status' <<< "$scanner_result")
1587
+ if [[ "$guard_status" == "exact" && "$scanner_status" == "exact" ]]; then
1588
+ uv run --with packaging==25.0 python scripts/retry_verify_published.py --registry pypi --version "$VERSION" --source-sha "$SOURCE_SHA" --dist-dir dist-hol-guard --artifact-set full || exit 1
1589
+ break
1590
+ fi
1591
+ if [[ "$guard_status" != "absent" && "$guard_status" != "exact" ]] || \
1592
+ [[ "$scanner_status" != "absent" && "$scanner_status" != "exact" ]] || \
1593
+ [[ "$attempt" == "60" ]]; then
1594
+ echo "PyPI did not expose the exact release artifacts" >&2
1595
+ exit 1
1596
+ fi
1597
+ sleep 5
1598
+ done
1599
+ mapfile -t guard_wheels < <(
1600
+ jq -r '.install_paths[] | select(endswith("-py3-none-any.whl"))' <<< "$guard_result"
1601
+ )
1602
+ mapfile -t scanner_wheels < <(
1603
+ jq -r '.install_paths[] | select(endswith(".whl"))' <<< "$scanner_result"
1604
+ )
1605
+ [[ "${#guard_wheels[@]}" == "1" && "${#scanner_wheels[@]}" == "1" ]]
1606
+ guard_wheel="${guard_wheels[0]}"
1607
+ scanner_wheel="${scanner_wheels[0]}"
1608
+ [[ "$(uv tool run --from "$guard_wheel" hol-guard --version)" == "hol-guard $VERSION" ]]
1609
+ [[ "$(uv tool run --from "$scanner_wheel" plugin-scanner --version)" == "plugin-scanner $VERSION" ]]
1610
+
1611
+ release-main:
1612
+ name: Create main GitHub release
1613
+ if: >-
1614
+ always() &&
1615
+ vars.RELEASE_PUBLISHING_ENABLED == 'true' &&
1616
+ github.event_name == 'workflow_dispatch' &&
1617
+ github.run_attempt == 1 &&
1618
+ (github.ref == 'refs/heads/main' || github.ref == format('refs/tags/v{0}', github.event.inputs.release_version)) &&
1619
+ github.event.inputs.release_channel == 'stable' &&
1620
+ github.event.inputs.release_train == 'main' &&
1621
+ needs.build.result == 'success' &&
1622
+ needs.assemble-native-guard-distributions.result == 'success' &&
1623
+ needs.publish-main-pypi.result == 'success' &&
1624
+ needs.build.outputs.channel == 'stable'
1625
+ needs: [build, assemble-native-guard-distributions, publish-main-pypi]
1626
+ runs-on: ubuntu-latest
1627
+ permissions:
1628
+ attestations: write
1629
+ contents: write
1630
+ id-token: write
1631
+ pull-requests: read
1632
+ steps:
1633
+ - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10
1634
+ with:
1635
+ fetch-depth: 0
1636
+ ref: ${{ needs.build.outputs.source_sha }}
1637
+ - uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c
1638
+ with:
1639
+ name: distributions-native
1640
+ path: dist/
1641
+ - uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c
1642
+ with:
1643
+ name: distribution-sha256-native
1644
+ - name: Download release toolchain SBOM
1645
+ uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c
1646
+ with:
1647
+ name: release-toolchain-sbom
1648
+ path: dist/
1649
+ - name: Verify and select release assets
1650
+ run: |
1651
+ sha256sum --check distribution-sha256-native.txt
1652
+ rm -f dist/plugin_scanner-* dist/plugin-scanner-*
1653
+ - name: Attest main release assets
1654
+ id: provenance
1655
+ uses: actions/attest-build-provenance@4d101475d8b20a2381f78447822ac1eab6504dd8
1656
+ with:
1657
+ subject-path: dist/*
1658
+ - name: Materialize provenance bundle
1659
+ env:
1660
+ VERSION: ${{ needs.build.outputs.version }}
1661
+ run: cp "${{ steps.provenance.outputs.bundle-path }}" "dist/hol-guard-v${VERSION}.intoto.jsonl"
1662
+ - name: Generate release notes
1663
+ env:
1664
+ GH_TOKEN: ${{ github.token }}
1665
+ VERSION: ${{ needs.build.outputs.version }}
1666
+ CHANNEL: ${{ needs.build.outputs.channel }}
1667
+ SOURCE_SHA: ${{ needs.build.outputs.source_sha }}
1668
+ run: python3 scripts/ci/generate_release_notes.py --version "$VERSION" --channel "$CHANNEL" --repo "$GITHUB_REPOSITORY" --source-sha "$SOURCE_SHA" --output "$RUNNER_TEMP/release-notes.md"
1669
+ - name: Create discoverable main release
1670
+ env:
1671
+ GH_TOKEN: ${{ github.token }}
1672
+ SOURCE_SHA: ${{ needs.build.outputs.source_sha }}
1673
+ VERSION: ${{ needs.build.outputs.version }}
1674
+ RELEASE_REPAIR: ${{ needs.build.outputs.release_repair }}
1675
+ GITHUB_SHA: ${{ github.sha }}
1676
+ run: |
1677
+ tag="v${VERSION}"
1678
+ git fetch --force --no-tags origin "+refs/tags/${tag}:refs/tags/${tag}"
1679
+ remote_tag_sha=$(git rev-parse "${tag}^{commit}")
1680
+ if [[ "$remote_tag_sha" != "$SOURCE_SHA" ]]; then
1681
+ echo "Stable tag does not target the published source" >&2
1682
+ exit 1
1683
+ fi
1684
+ mapfile -d '' local_files < <(find dist -maxdepth 1 -type f -print0 | sort -z)
1685
+ [[ "${#local_files[@]}" -gt 0 ]]
1686
+ if release_json=$(gh release view "$tag" --json isDraft,isPrerelease,assets 2>/dev/null); then
1687
+ if ! jq -e '.isDraft == false and .isPrerelease == false' <<< "$release_json" >/dev/null; then
1688
+ echo "Existing stable release is a draft or prerelease" >&2
1689
+ exit 1
1690
+ fi
1691
+ existing_dir=$(mktemp -d)
1692
+ gh release download "$tag" --dir "$existing_dir" || true
1693
+ missing_files=()
1694
+ for local_file in "${local_files[@]}"; do
1695
+ remote_file="$existing_dir/$(basename "$local_file")"
1696
+ if [[ ! -f "$remote_file" ]]; then
1697
+ missing_files+=("$local_file")
1698
+ fi
1699
+ done
1700
+ if [[ "${#missing_files[@]}" -gt 0 ]]; then
1701
+ gh release upload "$tag" "${missing_files[@]}"
1702
+ existing_dir=$(mktemp -d)
1703
+ gh release download "$tag" --dir "$existing_dir"
1704
+ fi
1705
+ for local_file in "${local_files[@]}"; do
1706
+ remote_file="$existing_dir/$(basename "$local_file")"
1707
+ [[ -f "$remote_file" ]]
1708
+ if [[ "$remote_file" != *.intoto.jsonl ]]; then
1709
+ cmp --silent "$local_file" "$remote_file"
1710
+ fi
1711
+ done
1712
+ python scripts/ci/verify_release_asset_inventory.py "$existing_dir" dist "$VERSION" stable
1713
+ bundle="$existing_dir/hol-guard-v${VERSION}.intoto.jsonl"
1714
+ [[ -s "$bundle" ]]
1715
+ shopt -s nullglob
1716
+ remote_guard_files=("$existing_dir"/hol_guard-*)
1717
+ [[ "${#remote_guard_files[@]}" -gt 0 ]]
1718
+ for remote_file in "${remote_guard_files[@]}"; do
1719
+ if ! gh attestation verify "$remote_file" --repo "$GITHUB_REPOSITORY" \
1720
+ --bundle "$bundle" --source-digest "$SOURCE_SHA" >/dev/null; then
1721
+ if [[ "$RELEASE_REPAIR" != "true" ]]; then
1722
+ exit 1
1723
+ fi
1724
+ gh attestation verify "$remote_file" --repo "$GITHUB_REPOSITORY" \
1725
+ --bundle "$bundle" \
1726
+ --signer-workflow "$GITHUB_REPOSITORY/.github/workflows/publish.yml" \
1727
+ --source-digest "$GITHUB_SHA" >/dev/null
1728
+ fi
1729
+ done
1730
+ exit 0
1731
+ fi
1732
+ body_file="$RUNNER_TEMP/release-notes.md"
1733
+ [[ -s "$body_file" ]]
1734
+ mapfile -d '' ASSET_FILES < <(find dist -maxdepth 1 -type f -print0 | sort -z)
1735
+ gh release create "$tag" \
1736
+ --repo "${{ github.repository }}" \
1737
+ --target "$SOURCE_SHA" \
1738
+ --title "Guard ${VERSION}" \
1739
+ --notes-file "$body_file" \
1740
+ --verify-tag \
1741
+ "${ASSET_FILES[@]}"
1742
+
1743
+ release-alpha:
1744
+ name: Create alpha GitHub prerelease
1745
+ if: >-
1746
+ vars.RELEASE_PUBLISHING_ENABLED == 'true' &&
1747
+ needs.build.outputs.channel == 'alpha' &&
1748
+ (
1749
+ (github.event_name == 'workflow_dispatch' && github.run_attempt == 1) ||
1750
+ (github.event_name == 'push' && github.ref == 'refs/heads/release/3.0')
1751
+ )
1752
+ needs: [build, publish-alpha-pypi]
1753
+ runs-on: ubuntu-latest
1754
+ permissions:
1755
+ attestations: write
1756
+ contents: write
1757
+ id-token: write
1758
+ pull-requests: read
1759
+ steps:
1760
+ - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10
1761
+ with:
1762
+ fetch-depth: 0
1763
+ ref: ${{ needs.build.outputs.source_sha }}
1764
+ - uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c
1765
+ with:
1766
+ name: distributions-native
1767
+ path: dist/
1768
+ - uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c
1769
+ with:
1770
+ name: distribution-sha256-native
1771
+ - name: Download release toolchain SBOM
1772
+ uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c
1773
+ with:
1774
+ name: release-toolchain-sbom
1775
+ path: dist/
1776
+ - name: Verify and select release assets
1777
+ run: |
1778
+ sha256sum --check distribution-sha256-native.txt
1779
+ rm -f dist/plugin_scanner-* dist/plugin-scanner-*
1780
+ - name: Attest alpha release assets
1781
+ id: provenance
1782
+ uses: actions/attest-build-provenance@4d101475d8b20a2381f78447822ac1eab6504dd8
1783
+ with:
1784
+ subject-path: dist/*
1785
+ - name: Materialize provenance bundle
1786
+ env:
1787
+ VERSION: ${{ needs.build.outputs.version }}
1788
+ run: cp "${{ steps.provenance.outputs.bundle-path }}" "dist/hol-guard-v${VERSION}.intoto.jsonl"
1789
+ - name: Generate release notes
1790
+ env:
1791
+ GH_TOKEN: ${{ github.token }}
1792
+ VERSION: ${{ needs.build.outputs.version }}
1793
+ CHANNEL: ${{ needs.build.outputs.channel }}
1794
+ SOURCE_SHA: ${{ needs.build.outputs.source_sha }}
1795
+ run: python3 scripts/ci/generate_release_notes.py --version "$VERSION" --channel "$CHANNEL" --repo "$GITHUB_REPOSITORY" --source-sha "$SOURCE_SHA" --output "$RUNNER_TEMP/release-notes.md"
1796
+ - name: Create discoverable alpha prerelease
1797
+ env:
1798
+ GH_TOKEN: ${{ github.token }}
1799
+ SOURCE_SHA: ${{ needs.build.outputs.source_sha }}
1800
+ VERSION: ${{ needs.build.outputs.version }}
1801
+ run: |
1802
+ tag="alpha/v${VERSION}"
1803
+ remote_tag_sha=$(git ls-remote origin "refs/tags/${tag}" | awk '{print $1}')
1804
+ if [[ -z "$remote_tag_sha" ]]; then
1805
+ gh api --method POST "repos/${GITHUB_REPOSITORY}/git/refs" \
1806
+ -f ref="refs/tags/${tag}" \
1807
+ -f sha="$SOURCE_SHA" >/dev/null
1808
+ remote_tag_sha=$(git ls-remote --exit-code origin "refs/tags/${tag}" | awk '{print $1}')
1809
+ fi
1810
+ if [[ "$remote_tag_sha" != "$SOURCE_SHA" ]]; then
1811
+ echo "Alpha tag does not target the published source" >&2
1812
+ exit 1
1813
+ fi
1814
+ if release_json=$(gh release view "$tag" --json isDraft,isPrerelease 2>/dev/null); then
1815
+ jq -e '.isDraft == false and .isPrerelease == true' <<< "$release_json" >/dev/null
1816
+ existing_dir=$(mktemp -d)
1817
+ gh release download "$tag" --dir "$existing_dir"
1818
+ mapfile -d '' local_files < <(find dist -maxdepth 1 -type f -print0 | sort -z)
1819
+ [[ "${#local_files[@]}" -gt 0 ]]
1820
+ for local_file in "${local_files[@]}"; do
1821
+ remote_file="$existing_dir/$(basename "$local_file")"
1822
+ [[ -f "$remote_file" ]]
1823
+ if [[ "$remote_file" != *.intoto.jsonl ]]; then
1824
+ cmp --silent "$local_file" "$remote_file"
1825
+ fi
1826
+ done
1827
+ python scripts/ci/verify_release_asset_inventory.py "$existing_dir" dist "$VERSION" alpha
1828
+ bundle="$existing_dir/hol-guard-v${VERSION}.intoto.jsonl"
1829
+ [[ -s "$bundle" ]]
1830
+ for remote_file in "$existing_dir"/hol_guard-*; do
1831
+ gh attestation verify "$remote_file" --repo "$GITHUB_REPOSITORY" \
1832
+ --bundle "$bundle" --source-digest "$SOURCE_SHA" >/dev/null
1833
+ done
1834
+ exit 0
1835
+ fi
1836
+ body_file="$RUNNER_TEMP/release-notes.md"
1837
+ [[ -s "$body_file" ]]
1838
+ mapfile -d '' ASSET_FILES < <(find dist -maxdepth 1 -type f -print0 | sort -z)
1839
+ gh release create "$tag" \
1840
+ --repo "${{ github.repository }}" \
1841
+ --target "$SOURCE_SHA" \
1842
+ --title "Guard ${VERSION} alpha" \
1843
+ --notes-file "$body_file" \
1844
+ --prerelease \
1845
+ --verify-tag \
1846
+ "${ASSET_FILES[@]}"
1847
+
1848
+ publish-container:
1849
+ name: Publish container image
1850
+ if: >-
1851
+ always() &&
1852
+ vars.RELEASE_PUBLISHING_ENABLED == 'true' &&
1853
+ needs.build.result == 'success' &&
1854
+ (
1855
+ (
1856
+ (
1857
+ (github.event_name == 'workflow_dispatch' && github.run_attempt == 1) ||
1858
+ (github.event_name == 'push' && github.ref == 'refs/heads/release/3.0')
1859
+ ) &&
1860
+ needs.build.outputs.channel == 'alpha' &&
1861
+ needs.publish-alpha-pypi.result == 'success' &&
1862
+ needs.release-alpha.result == 'success'
1863
+ ) ||
1864
+ (
1865
+ github.event_name == 'workflow_dispatch' &&
1866
+ github.run_attempt == 1 &&
1867
+ (github.ref == 'refs/heads/main' || github.ref == format('refs/tags/v{0}', github.event.inputs.release_version)) &&
1868
+ github.event.inputs.release_channel == 'stable' &&
1869
+ github.event.inputs.release_train == 'main' &&
1870
+ needs.build.outputs.channel == 'stable' &&
1871
+ needs.publish-main-pypi.result == 'success' &&
1872
+ needs.release-main.result == 'success'
1873
+ )
1874
+ )
1875
+ needs: [build, publish-alpha-pypi, publish-main-pypi, release-alpha, release-main]
1876
+ runs-on: ubuntu-latest
1877
+ permissions:
1878
+ contents: read
1879
+ packages: write
1880
+ steps:
1881
+ - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10
1882
+ with:
1883
+ ref: ${{ needs.build.outputs.source_sha }}
1884
+ - uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405
1885
+ with:
1886
+ python-version: "3.12"
1887
+ - uses: astral-sh/setup-uv@fac544c07dec837d0ccb6301d7b5580bf5edae39
1888
+ with:
1889
+ version: "0.9.26"
1890
+ - name: Sync locked release tooling
1891
+ run: |
1892
+ uv sync --frozen
1893
+ - name: Stamp package version
1894
+ env:
1895
+ VERSION: ${{ needs.build.outputs.version }}
1896
+ run: |
1897
+ uv run --no-sync python scripts/sync_repo_version.py --version "$VERSION"
1898
+ - name: Prepare image tags
1899
+ id: tags
1900
+ env:
1901
+ IMAGE_NAME: ghcr.io/${{ github.repository }}
1902
+ VERSION: ${{ needs.build.outputs.version }}
1903
+ run: |
1904
+ {
1905
+ echo "value<<EOF"
1906
+ echo "${IMAGE_NAME}:${VERSION}"
1907
+ if [[ "${{ needs.build.outputs.channel }}" == "stable" ]]; then
1908
+ echo "${IMAGE_NAME}:latest"
1909
+ fi
1910
+ echo "EOF"
1911
+ } >> "$GITHUB_OUTPUT"
1912
+ - uses: docker/setup-buildx-action@f87e5991a6d7451dcb8d9637bfbc97413f497069
1913
+ - uses: docker/login-action@650006c6eb7dba73a995cc03b0b2d7f5ca915bee
1914
+ with:
1915
+ registry: ghcr.io
1916
+ username: ${{ github.actor }}
1917
+ password: ${{ secrets.GITHUB_TOKEN }}
1918
+ - name: Inspect existing immutable image
1919
+ id: image
1920
+ env:
1921
+ CHANNEL: ${{ needs.build.outputs.channel }}
1922
+ IMAGE_NAME: ghcr.io/${{ github.repository }}
1923
+ SOURCE_SHA: ${{ needs.build.outputs.source_sha }}
1924
+ VERSION: ${{ needs.build.outputs.version }}
1925
+ run: |
1926
+ if [[ "$CHANNEL" != "alpha" ]]; then
1927
+ echo "push=true" >> "$GITHUB_OUTPUT"
1928
+ exit 0
1929
+ fi
1930
+ image="${IMAGE_NAME}:${VERSION}"
1931
+ pull_output=$(mktemp)
1932
+ if docker pull "$image" >"$pull_output" 2>&1; then
1933
+ revision=$(docker inspect --format '{{ index .Config.Labels "org.opencontainers.image.revision" }}' "$image")
1934
+ if [[ "$revision" != "$SOURCE_SHA" ]]; then
1935
+ echo "Existing image tag targets a different source" >&2
1936
+ exit 1
1937
+ fi
1938
+ echo "push=false" >> "$GITHUB_OUTPUT"
1939
+ elif grep -Eqi 'manifest unknown' "$pull_output"; then
1940
+ echo "push=true" >> "$GITHUB_OUTPUT"
1941
+ else
1942
+ cat "$pull_output" >&2
1943
+ echo "Unable to determine whether the image tag already exists" >&2
1944
+ exit 1
1945
+ fi
1946
+ - uses: docker/build-push-action@f9f3042f7e2789586610d6e8b85c8f03e5195baf
1947
+ if: steps.image.outputs.push == 'true'
1948
+ with:
1949
+ context: .
1950
+ file: ./Dockerfile
1951
+ push: true
1952
+ tags: ${{ steps.tags.outputs.value }}
1953
+ labels: |
1954
+ org.opencontainers.image.source=${{ github.server_url }}/${{ github.repository }}
1955
+ org.opencontainers.image.version=${{ needs.build.outputs.version }}
1956
+ org.opencontainers.image.revision=${{ needs.build.outputs.source_sha }}