plugin-scanner 2.0.1113__tar.gz → 2.0.1115__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 (1476) hide show
  1. plugin_scanner-2.0.1115/PKG-INFO +954 -0
  2. plugin_scanner-2.0.1115/pyproject.toml +153 -0
  3. plugin_scanner-2.0.1115/pyproject.toml.bak +155 -0
  4. plugin_scanner-2.0.1115/release-metadata/plugin-scanner-v2.0.1115.toolchain.cdx.json +35 -0
  5. plugin_scanner-2.0.1115/src/codex_plugin_scanner/guard/action_lattice.py +147 -0
  6. plugin_scanner-2.0.1115/src/codex_plugin_scanner/guard/adapters/base.py +449 -0
  7. plugin_scanner-2.0.1115/src/codex_plugin_scanner/guard/adapters/claude_code.py +764 -0
  8. plugin_scanner-2.0.1115/src/codex_plugin_scanner/guard/adapters/codex.py +1472 -0
  9. plugin_scanner-2.0.1115/src/codex_plugin_scanner/guard/adapters/codex_remote_control.py +288 -0
  10. plugin_scanner-2.0.1115/src/codex_plugin_scanner/guard/adapters/cursor.py +486 -0
  11. plugin_scanner-2.0.1115/src/codex_plugin_scanner/guard/adapters/grok.py +497 -0
  12. plugin_scanner-2.0.1115/src/codex_plugin_scanner/guard/adapters/grok_config.py +289 -0
  13. plugin_scanner-2.0.1115/src/codex_plugin_scanner/guard/adapters/grok_hooks.py +127 -0
  14. plugin_scanner-2.0.1115/src/codex_plugin_scanner/guard/adapters/hermes.py +1600 -0
  15. plugin_scanner-2.0.1115/src/codex_plugin_scanner/guard/adapters/pi_hooks.py +71 -0
  16. plugin_scanner-2.0.1115/src/codex_plugin_scanner/guard/adapters/zcode_config.py +564 -0
  17. plugin_scanner-2.0.1115/src/codex_plugin_scanner/guard/adapters/zcode_hooks.py +175 -0
  18. plugin_scanner-2.0.1115/src/codex_plugin_scanner/guard/aibom_detection.py +727 -0
  19. plugin_scanner-2.0.1115/src/codex_plugin_scanner/guard/approvals.py +2205 -0
  20. plugin_scanner-2.0.1115/src/codex_plugin_scanner/guard/cli/_commands_shared.py +401 -0
  21. plugin_scanner-2.0.1115/src/codex_plugin_scanner/guard/cli/commands_dispatch_local.py +479 -0
  22. plugin_scanner-2.0.1115/src/codex_plugin_scanner/guard/cli/commands_dispatch_proxy.py +379 -0
  23. plugin_scanner-2.0.1115/src/codex_plugin_scanner/guard/cli/commands_hook.py +525 -0
  24. plugin_scanner-2.0.1115/src/codex_plugin_scanner/guard/cli/commands_hook_claude.py +167 -0
  25. plugin_scanner-2.0.1115/src/codex_plugin_scanner/guard/cli/commands_hook_copilot.py +596 -0
  26. plugin_scanner-2.0.1115/src/codex_plugin_scanner/guard/cli/commands_hook_generic.py +933 -0
  27. plugin_scanner-2.0.1115/src/codex_plugin_scanner/guard/cli/commands_hook_runtime_eval.py +868 -0
  28. plugin_scanner-2.0.1115/src/codex_plugin_scanner/guard/cli/commands_hook_runtime_finish.py +374 -0
  29. plugin_scanner-2.0.1115/src/codex_plugin_scanner/guard/cli/commands_hook_runtime_review.py +481 -0
  30. plugin_scanner-2.0.1115/src/codex_plugin_scanner/guard/cli/commands_hook_runtime_state.py +126 -0
  31. plugin_scanner-2.0.1115/src/codex_plugin_scanner/guard/cli/commands_parser_cloud.py +466 -0
  32. plugin_scanner-2.0.1115/src/codex_plugin_scanner/guard/cli/commands_parser_local.py +318 -0
  33. plugin_scanner-2.0.1115/src/codex_plugin_scanner/guard/cli/commands_support_claude_approval.py +543 -0
  34. plugin_scanner-2.0.1115/src/codex_plugin_scanner/guard/cli/commands_support_connect.py +544 -0
  35. plugin_scanner-2.0.1115/src/codex_plugin_scanner/guard/cli/commands_support_hook_payload.py +542 -0
  36. plugin_scanner-2.0.1115/src/codex_plugin_scanner/guard/cli/commands_support_hook_state.py +1149 -0
  37. plugin_scanner-2.0.1115/src/codex_plugin_scanner/guard/cli/commands_support_interaction.py +775 -0
  38. plugin_scanner-2.0.1115/src/codex_plugin_scanner/guard/cli/commands_support_permission_store.py +617 -0
  39. plugin_scanner-2.0.1115/src/codex_plugin_scanner/guard/cli/commands_support_prompts.py +529 -0
  40. plugin_scanner-2.0.1115/src/codex_plugin_scanner/guard/cli/commands_support_runtime_policy.py +959 -0
  41. plugin_scanner-2.0.1115/src/codex_plugin_scanner/guard/cli/commands_support_runtime_resolution.py +804 -0
  42. plugin_scanner-2.0.1115/src/codex_plugin_scanner/guard/cli/prompt.py +411 -0
  43. plugin_scanner-2.0.1115/src/codex_plugin_scanner/guard/cli/protect_approvals.py +322 -0
  44. plugin_scanner-2.0.1115/src/codex_plugin_scanner/guard/cli/render.py +2875 -0
  45. plugin_scanner-2.0.1115/src/codex_plugin_scanner/guard/config.py +1075 -0
  46. plugin_scanner-2.0.1115/src/codex_plugin_scanner/guard/consumer/__init__.py +87 -0
  47. plugin_scanner-2.0.1115/src/codex_plugin_scanner/guard/consumer/service.py +1513 -0
  48. plugin_scanner-2.0.1115/src/codex_plugin_scanner/guard/daemon/server.py +6132 -0
  49. plugin_scanner-2.0.1115/src/codex_plugin_scanner/guard/local_authority_integrity.py +172 -0
  50. plugin_scanner-2.0.1115/src/codex_plugin_scanner/guard/local_supply_chain.py +4206 -0
  51. plugin_scanner-2.0.1115/src/codex_plugin_scanner/guard/mcp_tool_calls.py +1427 -0
  52. plugin_scanner-2.0.1115/src/codex_plugin_scanner/guard/mdm/policy.py +382 -0
  53. plugin_scanner-2.0.1115/src/codex_plugin_scanner/guard/models.py +254 -0
  54. plugin_scanner-2.0.1115/src/codex_plugin_scanner/guard/package_execution_context.py +314 -0
  55. plugin_scanner-2.0.1115/src/codex_plugin_scanner/guard/package_execution_context_inputs.py +391 -0
  56. plugin_scanner-2.0.1115/src/codex_plugin_scanner/guard/policy/engine.py +66 -0
  57. plugin_scanner-2.0.1115/src/codex_plugin_scanner/guard/protect.py +1003 -0
  58. plugin_scanner-2.0.1115/src/codex_plugin_scanner/guard/proxy/runtime_mcp.py +3696 -0
  59. plugin_scanner-2.0.1115/src/codex_plugin_scanner/guard/proxy/stdio.py +927 -0
  60. plugin_scanner-2.0.1115/src/codex_plugin_scanner/guard/receipts/manager.py +117 -0
  61. plugin_scanner-2.0.1115/src/codex_plugin_scanner/guard/runtime/approval_context.py +1586 -0
  62. plugin_scanner-2.0.1115/src/codex_plugin_scanner/guard/runtime/approval_reuse.py +239 -0
  63. plugin_scanner-2.0.1115/src/codex_plugin_scanner/guard/runtime/cisco_preflight.py +310 -0
  64. plugin_scanner-2.0.1115/src/codex_plugin_scanner/guard/runtime/command_executors.py +1003 -0
  65. plugin_scanner-2.0.1115/src/codex_plugin_scanner/guard/runtime/composition_rules.py +154 -0
  66. plugin_scanner-2.0.1115/src/codex_plugin_scanner/guard/runtime/mcp_protection.py +438 -0
  67. plugin_scanner-2.0.1115/src/codex_plugin_scanner/guard/runtime/mcp_skill_firewall.py +541 -0
  68. plugin_scanner-2.0.1115/src/codex_plugin_scanner/guard/runtime/runner.py +5999 -0
  69. plugin_scanner-2.0.1115/src/codex_plugin_scanner/guard/runtime/supply_chain_package_eval.py +4223 -0
  70. plugin_scanner-2.0.1115/src/codex_plugin_scanner/guard/schemas/guard_product_model_v1.json +655 -0
  71. plugin_scanner-2.0.1115/src/codex_plugin_scanner/guard/store_base.py +1524 -0
  72. plugin_scanner-2.0.1115/src/codex_plugin_scanner/guard/store_connection_schema.py +913 -0
  73. plugin_scanner-2.0.1115/src/codex_plugin_scanner/guard/store_event_receipts.py +546 -0
  74. plugin_scanner-2.0.1115/src/codex_plugin_scanner/guard/store_policy.py +1775 -0
  75. plugin_scanner-2.0.1115/src/codex_plugin_scanner/guard/synced_policy.py +42 -0
  76. plugin_scanner-2.0.1115/src/codex_plugin_scanner/version.py +3 -0
  77. plugin_scanner-2.0.1115/tests/conftest.py +243 -0
  78. plugin_scanner-2.0.1115/tests/test_codex_remote_control.py +353 -0
  79. plugin_scanner-2.0.1115/tests/test_cursor_cli.py +194 -0
  80. plugin_scanner-2.0.1115/tests/test_cursor_hooks.py +1576 -0
  81. plugin_scanner-2.0.1115/tests/test_grok_adapter.py +525 -0
  82. plugin_scanner-2.0.1115/tests/test_guard_action_lattice.py +214 -0
  83. plugin_scanner-2.0.1115/tests/test_guard_approval_context.py +248 -0
  84. plugin_scanner-2.0.1115/tests/test_guard_approval_decisions.py +746 -0
  85. plugin_scanner-2.0.1115/tests/test_guard_approval_gate.py +2136 -0
  86. plugin_scanner-2.0.1115/tests/test_guard_approval_policy_versions.py +270 -0
  87. plugin_scanner-2.0.1115/tests/test_guard_approval_precedence_consumers.py +1136 -0
  88. plugin_scanner-2.0.1115/tests/test_guard_approval_precedence_generic_stdio.py +1192 -0
  89. plugin_scanner-2.0.1115/tests/test_guard_approval_reuse.py +1708 -0
  90. plugin_scanner-2.0.1115/tests/test_guard_approvals.py +3654 -0
  91. plugin_scanner-2.0.1115/tests/test_guard_bun_install_approval_replay.py +136 -0
  92. plugin_scanner-2.0.1115/tests/test_guard_bypass_detector.py +219 -0
  93. plugin_scanner-2.0.1115/tests/test_guard_cli.py +9636 -0
  94. plugin_scanner-2.0.1115/tests/test_guard_codex_browser_authority.py +706 -0
  95. plugin_scanner-2.0.1115/tests/test_guard_codex_e2e.py +130 -0
  96. plugin_scanner-2.0.1115/tests/test_guard_codex_proxy.py +1919 -0
  97. plugin_scanner-2.0.1115/tests/test_guard_consumer_approval_precedence.py +2727 -0
  98. plugin_scanner-2.0.1115/tests/test_guard_copilot_benign_policy_hint.py +359 -0
  99. plugin_scanner-2.0.1115/tests/test_guard_decision_propagation.py +200 -0
  100. plugin_scanner-2.0.1115/tests/test_guard_events.py +1151 -0
  101. plugin_scanner-2.0.1115/tests/test_guard_hashnet_mcp_canaries.py +285 -0
  102. plugin_scanner-2.0.1115/tests/test_guard_hook_executable_identity.py +685 -0
  103. plugin_scanner-2.0.1115/tests/test_guard_hook_post_claim_freshness.py +1084 -0
  104. plugin_scanner-2.0.1115/tests/test_guard_hook_saved_block_terminal.py +446 -0
  105. plugin_scanner-2.0.1115/tests/test_guard_interpreted_entrypoint_identity.py +669 -0
  106. plugin_scanner-2.0.1115/tests/test_guard_js_package_hook_phase11.py +391 -0
  107. plugin_scanner-2.0.1115/tests/test_guard_launch_env.py +1349 -0
  108. plugin_scanner-2.0.1115/tests/test_guard_local_authority_integrity.py +350 -0
  109. plugin_scanner-2.0.1115/tests/test_guard_local_supply_chain_phase15.py +798 -0
  110. plugin_scanner-2.0.1115/tests/test_guard_manifest_install_firewall.py +2017 -0
  111. plugin_scanner-2.0.1115/tests/test_guard_mcp_adapter_env_identity.py +318 -0
  112. plugin_scanner-2.0.1115/tests/test_guard_mcp_package_proxy_phase14.py +1163 -0
  113. plugin_scanner-2.0.1115/tests/test_guard_mcp_protection.py +1411 -0
  114. plugin_scanner-2.0.1115/tests/test_guard_mcp_skill_firewall.py +180 -0
  115. plugin_scanner-2.0.1115/tests/test_guard_non_codex_resume.py +263 -0
  116. plugin_scanner-2.0.1115/tests/test_guard_package_execution_context.py +461 -0
  117. plugin_scanner-2.0.1115/tests/test_guard_package_hook.py +697 -0
  118. plugin_scanner-2.0.1115/tests/test_guard_package_hook_phase14.py +507 -0
  119. plugin_scanner-2.0.1115/tests/test_guard_package_shims.py +2952 -0
  120. plugin_scanner-2.0.1115/tests/test_guard_phase04_harness_ux.py +624 -0
  121. plugin_scanner-2.0.1115/tests/test_guard_phase05_approval_memory.py +1378 -0
  122. plugin_scanner-2.0.1115/tests/test_guard_policy_dedup.py +301 -0
  123. plugin_scanner-2.0.1115/tests/test_guard_product_flow.py +948 -0
  124. plugin_scanner-2.0.1115/tests/test_guard_protect.py +1238 -0
  125. plugin_scanner-2.0.1115/tests/test_guard_render.py +1041 -0
  126. plugin_scanner-2.0.1115/tests/test_guard_risk.py +4248 -0
  127. plugin_scanner-2.0.1115/tests/test_guard_runtime.py +22571 -0
  128. plugin_scanner-2.0.1115/tests/test_guard_runtime_detectors.py +1464 -0
  129. plugin_scanner-2.0.1115/tests/test_guard_runtime_mcp_saved_blocks.py +2310 -0
  130. plugin_scanner-2.0.1115/tests/test_guard_shim_intercept_proofs.py +296 -0
  131. plugin_scanner-2.0.1115/tests/test_guard_stdio_launch_identity.py +255 -0
  132. plugin_scanner-2.0.1115/tests/test_guard_store_migrations.py +2105 -0
  133. plugin_scanner-2.0.1115/tests/test_guard_supply_chain_evaluator.py +2629 -0
  134. plugin_scanner-2.0.1115/tests/test_guard_verdicts.py +150 -0
  135. plugin_scanner-2.0.1115/tests/test_guard_wrapper_flows.py +394 -0
  136. plugin_scanner-2.0.1115/tests/test_zcode_hooks.py +123 -0
  137. plugin_scanner-2.0.1115/uv.lock +4406 -0
  138. plugin_scanner-2.0.1113/PKG-INFO +0 -954
  139. plugin_scanner-2.0.1113/pyproject.toml +0 -153
  140. plugin_scanner-2.0.1113/pyproject.toml.bak +0 -155
  141. plugin_scanner-2.0.1113/release-metadata/plugin-scanner-v2.0.1113.toolchain.cdx.json +0 -35
  142. plugin_scanner-2.0.1113/src/codex_plugin_scanner/guard/adapters/base.py +0 -414
  143. plugin_scanner-2.0.1113/src/codex_plugin_scanner/guard/adapters/claude_code.py +0 -732
  144. plugin_scanner-2.0.1113/src/codex_plugin_scanner/guard/adapters/codex.py +0 -1422
  145. plugin_scanner-2.0.1113/src/codex_plugin_scanner/guard/adapters/codex_remote_control.py +0 -237
  146. plugin_scanner-2.0.1113/src/codex_plugin_scanner/guard/adapters/cursor.py +0 -461
  147. plugin_scanner-2.0.1113/src/codex_plugin_scanner/guard/adapters/grok.py +0 -484
  148. plugin_scanner-2.0.1113/src/codex_plugin_scanner/guard/adapters/grok_config.py +0 -267
  149. plugin_scanner-2.0.1113/src/codex_plugin_scanner/guard/adapters/grok_hooks.py +0 -127
  150. plugin_scanner-2.0.1113/src/codex_plugin_scanner/guard/adapters/hermes.py +0 -1578
  151. plugin_scanner-2.0.1113/src/codex_plugin_scanner/guard/adapters/pi_hooks.py +0 -71
  152. plugin_scanner-2.0.1113/src/codex_plugin_scanner/guard/adapters/zcode_config.py +0 -500
  153. plugin_scanner-2.0.1113/src/codex_plugin_scanner/guard/adapters/zcode_hooks.py +0 -175
  154. plugin_scanner-2.0.1113/src/codex_plugin_scanner/guard/aibom_detection.py +0 -668
  155. plugin_scanner-2.0.1113/src/codex_plugin_scanner/guard/approvals.py +0 -2150
  156. plugin_scanner-2.0.1113/src/codex_plugin_scanner/guard/cli/_commands_shared.py +0 -400
  157. plugin_scanner-2.0.1113/src/codex_plugin_scanner/guard/cli/commands_dispatch_local.py +0 -472
  158. plugin_scanner-2.0.1113/src/codex_plugin_scanner/guard/cli/commands_dispatch_proxy.py +0 -365
  159. plugin_scanner-2.0.1113/src/codex_plugin_scanner/guard/cli/commands_hook.py +0 -408
  160. plugin_scanner-2.0.1113/src/codex_plugin_scanner/guard/cli/commands_hook_claude.py +0 -166
  161. plugin_scanner-2.0.1113/src/codex_plugin_scanner/guard/cli/commands_hook_copilot.py +0 -459
  162. plugin_scanner-2.0.1113/src/codex_plugin_scanner/guard/cli/commands_hook_generic.py +0 -336
  163. plugin_scanner-2.0.1113/src/codex_plugin_scanner/guard/cli/commands_hook_runtime_eval.py +0 -441
  164. plugin_scanner-2.0.1113/src/codex_plugin_scanner/guard/cli/commands_hook_runtime_finish.py +0 -274
  165. plugin_scanner-2.0.1113/src/codex_plugin_scanner/guard/cli/commands_hook_runtime_review.py +0 -444
  166. plugin_scanner-2.0.1113/src/codex_plugin_scanner/guard/cli/commands_hook_runtime_state.py +0 -34
  167. plugin_scanner-2.0.1113/src/codex_plugin_scanner/guard/cli/commands_parser_cloud.py +0 -466
  168. plugin_scanner-2.0.1113/src/codex_plugin_scanner/guard/cli/commands_parser_local.py +0 -318
  169. plugin_scanner-2.0.1113/src/codex_plugin_scanner/guard/cli/commands_support_claude_approval.py +0 -561
  170. plugin_scanner-2.0.1113/src/codex_plugin_scanner/guard/cli/commands_support_connect.py +0 -563
  171. plugin_scanner-2.0.1113/src/codex_plugin_scanner/guard/cli/commands_support_hook_payload.py +0 -535
  172. plugin_scanner-2.0.1113/src/codex_plugin_scanner/guard/cli/commands_support_hook_state.py +0 -545
  173. plugin_scanner-2.0.1113/src/codex_plugin_scanner/guard/cli/commands_support_interaction.py +0 -576
  174. plugin_scanner-2.0.1113/src/codex_plugin_scanner/guard/cli/commands_support_permission_store.py +0 -572
  175. plugin_scanner-2.0.1113/src/codex_plugin_scanner/guard/cli/commands_support_prompts.py +0 -525
  176. plugin_scanner-2.0.1113/src/codex_plugin_scanner/guard/cli/commands_support_runtime_policy.py +0 -598
  177. plugin_scanner-2.0.1113/src/codex_plugin_scanner/guard/cli/commands_support_runtime_resolution.py +0 -534
  178. plugin_scanner-2.0.1113/src/codex_plugin_scanner/guard/cli/prompt.py +0 -428
  179. plugin_scanner-2.0.1113/src/codex_plugin_scanner/guard/cli/protect_approvals.py +0 -320
  180. plugin_scanner-2.0.1113/src/codex_plugin_scanner/guard/cli/render.py +0 -2865
  181. plugin_scanner-2.0.1113/src/codex_plugin_scanner/guard/config.py +0 -1088
  182. plugin_scanner-2.0.1113/src/codex_plugin_scanner/guard/consumer/__init__.py +0 -71
  183. plugin_scanner-2.0.1113/src/codex_plugin_scanner/guard/consumer/service.py +0 -848
  184. plugin_scanner-2.0.1113/src/codex_plugin_scanner/guard/daemon/server.py +0 -6135
  185. plugin_scanner-2.0.1113/src/codex_plugin_scanner/guard/local_supply_chain.py +0 -3305
  186. plugin_scanner-2.0.1113/src/codex_plugin_scanner/guard/mcp_tool_calls.py +0 -871
  187. plugin_scanner-2.0.1113/src/codex_plugin_scanner/guard/mdm/policy.py +0 -384
  188. plugin_scanner-2.0.1113/src/codex_plugin_scanner/guard/models.py +0 -252
  189. plugin_scanner-2.0.1113/src/codex_plugin_scanner/guard/package_execution_context.py +0 -312
  190. plugin_scanner-2.0.1113/src/codex_plugin_scanner/guard/package_execution_context_inputs.py +0 -281
  191. plugin_scanner-2.0.1113/src/codex_plugin_scanner/guard/policy/engine.py +0 -81
  192. plugin_scanner-2.0.1113/src/codex_plugin_scanner/guard/protect.py +0 -1007
  193. plugin_scanner-2.0.1113/src/codex_plugin_scanner/guard/proxy/runtime_mcp.py +0 -1627
  194. plugin_scanner-2.0.1113/src/codex_plugin_scanner/guard/proxy/stdio.py +0 -566
  195. plugin_scanner-2.0.1113/src/codex_plugin_scanner/guard/receipts/manager.py +0 -121
  196. plugin_scanner-2.0.1113/src/codex_plugin_scanner/guard/runtime/cisco_preflight.py +0 -317
  197. plugin_scanner-2.0.1113/src/codex_plugin_scanner/guard/runtime/command_executors.py +0 -1006
  198. plugin_scanner-2.0.1113/src/codex_plugin_scanner/guard/runtime/composition_rules.py +0 -145
  199. plugin_scanner-2.0.1113/src/codex_plugin_scanner/guard/runtime/mcp_protection.py +0 -426
  200. plugin_scanner-2.0.1113/src/codex_plugin_scanner/guard/runtime/mcp_skill_firewall.py +0 -527
  201. plugin_scanner-2.0.1113/src/codex_plugin_scanner/guard/runtime/runner.py +0 -4839
  202. plugin_scanner-2.0.1113/src/codex_plugin_scanner/guard/runtime/supply_chain_package_eval.py +0 -4191
  203. plugin_scanner-2.0.1113/src/codex_plugin_scanner/guard/schemas/guard_product_model_v1.json +0 -655
  204. plugin_scanner-2.0.1113/src/codex_plugin_scanner/guard/store_base.py +0 -1491
  205. plugin_scanner-2.0.1113/src/codex_plugin_scanner/guard/store_connection_schema.py +0 -763
  206. plugin_scanner-2.0.1113/src/codex_plugin_scanner/guard/store_event_receipts.py +0 -213
  207. plugin_scanner-2.0.1113/src/codex_plugin_scanner/guard/store_policy.py +0 -650
  208. plugin_scanner-2.0.1113/src/codex_plugin_scanner/version.py +0 -3
  209. plugin_scanner-2.0.1113/tests/conftest.py +0 -208
  210. plugin_scanner-2.0.1113/tests/test_codex_remote_control.py +0 -325
  211. plugin_scanner-2.0.1113/tests/test_cursor_cli.py +0 -194
  212. plugin_scanner-2.0.1113/tests/test_cursor_hooks.py +0 -1380
  213. plugin_scanner-2.0.1113/tests/test_grok_adapter.py +0 -521
  214. plugin_scanner-2.0.1113/tests/test_guard_approval_decisions.py +0 -744
  215. plugin_scanner-2.0.1113/tests/test_guard_approval_gate.py +0 -2137
  216. plugin_scanner-2.0.1113/tests/test_guard_approvals.py +0 -3653
  217. plugin_scanner-2.0.1113/tests/test_guard_bun_install_approval_replay.py +0 -131
  218. plugin_scanner-2.0.1113/tests/test_guard_bypass_detector.py +0 -219
  219. plugin_scanner-2.0.1113/tests/test_guard_cli.py +0 -9560
  220. plugin_scanner-2.0.1113/tests/test_guard_codex_e2e.py +0 -114
  221. plugin_scanner-2.0.1113/tests/test_guard_codex_proxy.py +0 -1613
  222. plugin_scanner-2.0.1113/tests/test_guard_decision_propagation.py +0 -162
  223. plugin_scanner-2.0.1113/tests/test_guard_events.py +0 -1151
  224. plugin_scanner-2.0.1113/tests/test_guard_hashnet_mcp_canaries.py +0 -292
  225. plugin_scanner-2.0.1113/tests/test_guard_js_package_hook_phase11.py +0 -350
  226. plugin_scanner-2.0.1113/tests/test_guard_launch_env.py +0 -1358
  227. plugin_scanner-2.0.1113/tests/test_guard_local_supply_chain_phase15.py +0 -790
  228. plugin_scanner-2.0.1113/tests/test_guard_manifest_install_firewall.py +0 -643
  229. plugin_scanner-2.0.1113/tests/test_guard_mcp_package_proxy_phase14.py +0 -930
  230. plugin_scanner-2.0.1113/tests/test_guard_mcp_protection.py +0 -1073
  231. plugin_scanner-2.0.1113/tests/test_guard_mcp_skill_firewall.py +0 -121
  232. plugin_scanner-2.0.1113/tests/test_guard_non_codex_resume.py +0 -251
  233. plugin_scanner-2.0.1113/tests/test_guard_package_execution_context.py +0 -361
  234. plugin_scanner-2.0.1113/tests/test_guard_package_hook.py +0 -664
  235. plugin_scanner-2.0.1113/tests/test_guard_package_hook_phase14.py +0 -475
  236. plugin_scanner-2.0.1113/tests/test_guard_package_shims.py +0 -2693
  237. plugin_scanner-2.0.1113/tests/test_guard_phase04_harness_ux.py +0 -622
  238. plugin_scanner-2.0.1113/tests/test_guard_phase05_approval_memory.py +0 -1378
  239. plugin_scanner-2.0.1113/tests/test_guard_policy_dedup.py +0 -301
  240. plugin_scanner-2.0.1113/tests/test_guard_product_flow.py +0 -922
  241. plugin_scanner-2.0.1113/tests/test_guard_protect.py +0 -1178
  242. plugin_scanner-2.0.1113/tests/test_guard_render.py +0 -1042
  243. plugin_scanner-2.0.1113/tests/test_guard_risk.py +0 -4248
  244. plugin_scanner-2.0.1113/tests/test_guard_runtime.py +0 -20988
  245. plugin_scanner-2.0.1113/tests/test_guard_runtime_detectors.py +0 -1109
  246. plugin_scanner-2.0.1113/tests/test_guard_shim_intercept_proofs.py +0 -293
  247. plugin_scanner-2.0.1113/tests/test_guard_store_migrations.py +0 -1991
  248. plugin_scanner-2.0.1113/tests/test_guard_supply_chain_evaluator.py +0 -2487
  249. plugin_scanner-2.0.1113/tests/test_guard_verdicts.py +0 -137
  250. plugin_scanner-2.0.1113/tests/test_guard_wrapper_flows.py +0 -327
  251. plugin_scanner-2.0.1113/tests/test_zcode_hooks.py +0 -122
  252. plugin_scanner-2.0.1113/uv.lock +0 -4406
  253. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/.clusterfuzzlite/Dockerfile +0 -0
  254. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/.clusterfuzzlite/build.sh +0 -0
  255. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/.clusterfuzzlite/project.yaml +0 -0
  256. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/.clusterfuzzlite/requirements-atheris.txt +0 -0
  257. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/.dockerignore +0 -0
  258. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/.factory/droids/hol-guard-runner.md +0 -0
  259. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/.factory/skills/hol-guard/SKILL.md +0 -0
  260. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/.github/CODEOWNERS +0 -0
  261. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/.github/ISSUE_TEMPLATE/bug-report.yml +0 -0
  262. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  263. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/.github/ISSUE_TEMPLATE/feature-request.yml +0 -0
  264. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/.github/dependabot.yml +0 -0
  265. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/.github/pr-bodies/claude-permission-request-visible.md +0 -0
  266. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/.github/workflows/ci.yml +0 -0
  267. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/.github/workflows/codeql.yml +0 -0
  268. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/.github/workflows/dependabot-uv-lock.yml +0 -0
  269. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/.github/workflows/devcontainer-features.yml +0 -0
  270. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/.github/workflows/fuzz.yml +0 -0
  271. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/.github/workflows/harness-smoke.yml +0 -0
  272. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/.github/workflows/mdm-artifacts.yml +0 -0
  273. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/.github/workflows/publish-action-repo.yml +0 -0
  274. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/.github/workflows/publish.yml +0 -0
  275. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/.github/workflows/scorecard.yml +0 -0
  276. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/.github/workflows/security-gates.yml +0 -0
  277. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/.gitignore +0 -0
  278. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/.pre-commit-hooks.yaml +0 -0
  279. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/CONTRIBUTING.md +0 -0
  280. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/Dockerfile +0 -0
  281. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/LICENSE +0 -0
  282. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/PRODUCT.md +0 -0
  283. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/README.md +0 -0
  284. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/SECURITY.md +0 -0
  285. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/action/CONTRIBUTING.md +0 -0
  286. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/action/README.md +0 -0
  287. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/action/SECURITY.md +0 -0
  288. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/action/action.yml +0 -0
  289. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/action/cisco-version.txt +0 -0
  290. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/action/pypi-attestations-version.txt +0 -0
  291. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/action/scanner-sha256.txt +0 -0
  292. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/action/scanner-version.txt +0 -0
  293. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/e2e/fixture-states.ts +0 -0
  294. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/e2e/policy-cloud-exceptions-states.spec.ts +0 -0
  295. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/e2e/proof-dir.ts +0 -0
  296. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/e2e/scrg172-states.spec.ts +0 -0
  297. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/e2e/static-server.mjs +0 -0
  298. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/index.html +0 -0
  299. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/package-lock.json +0 -0
  300. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/package.json +0 -0
  301. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/playwright.config.ts +0 -0
  302. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/pnpm-lock.yaml +0 -0
  303. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/public/apple-touch-icon.png +0 -0
  304. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/public/brand/Logo_Icon_Dark.png +0 -0
  305. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/public/brand/Logo_Whole.png +0 -0
  306. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/public/favicon-16x16.png +0 -0
  307. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/public/favicon-32x32.png +0 -0
  308. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/public/favicon.ico +0 -0
  309. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/about/about-analytics.ts +0 -0
  310. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/about/about-content.test.ts +0 -0
  311. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/about/about-content.ts +0 -0
  312. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/about/about-design.test.ts +0 -0
  313. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/about/about-external-links.test.ts +0 -0
  314. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/about/about-external-links.ts +0 -0
  315. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/about/about-section-shell.test.ts +0 -0
  316. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/about/about-types.ts +0 -0
  317. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/about/about-workspace.tsx +0 -0
  318. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/about/components/about-external-link.tsx +0 -0
  319. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/about/components/about-footer.tsx +0 -0
  320. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/about/components/about-hero.tsx +0 -0
  321. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/about/components/about-runtime-proof-strip.tsx +0 -0
  322. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/about/components/data-boundary-panel.tsx +0 -0
  323. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/about/components/ecosystem-programs.tsx +0 -0
  324. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/about/components/open-standards-map.tsx +0 -0
  325. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/about/components/pathway-grid.tsx +0 -0
  326. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/about/components/section-shell.tsx +0 -0
  327. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/about/components/tracked-action-button.tsx +0 -0
  328. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/about/components/trust-contract-panel.tsx +0 -0
  329. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/app-activity-evidence.test.ts +0 -0
  330. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/app-detail-phase11.test.ts +0 -0
  331. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/app-detail-workspace.test.ts +0 -0
  332. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/app-routing.test.ts +0 -0
  333. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/app.tsx +0 -0
  334. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/approval-center-layout.test.ts +0 -0
  335. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/approval-center-layout.tsx +0 -0
  336. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/approval-center-mobile.test.ts +0 -0
  337. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/approval-center-primitives.tsx +0 -0
  338. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/approval-center-review-cards.tsx +0 -0
  339. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/approval-center-utils.ts +0 -0
  340. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/approval-gate-utils.ts +0 -0
  341. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/approval-gate.test.ts +0 -0
  342. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/approval-proof-inline.tsx +0 -0
  343. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/approval-proof-modal.tsx +0 -0
  344. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/approval-scopes.test.ts +0 -0
  345. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/approval-scopes.ts +0 -0
  346. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/apps/app-catalog.ts +0 -0
  347. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/apps/app-detail-workspace.tsx +0 -0
  348. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/audit-run-progress.tsx +0 -0
  349. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/audit-workspace.tsx +0 -0
  350. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/clear-policy-payload.test.ts +0 -0
  351. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/clear-policy-payload.ts +0 -0
  352. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/cloud-user-menu.tsx +0 -0
  353. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/compare-time-periods.tsx +0 -0
  354. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/consolidated-evidence-alert.test.ts +0 -0
  355. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/consolidated-evidence-alert.tsx +0 -0
  356. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/data-flow-evidence-card.tsx +0 -0
  357. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/error-boundary.tsx +0 -0
  358. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/evidence/app-tab.tsx +0 -0
  359. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/evidence/breakdown-card.tsx +0 -0
  360. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/evidence/categories.tsx +0 -0
  361. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/evidence/category-tab.tsx +0 -0
  362. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/evidence/decision-badge.tsx +0 -0
  363. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/evidence/evidence-action-detail.tsx +0 -0
  364. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/evidence/evidence-action-list.tsx +0 -0
  365. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/evidence/evidence-activity-heatmap-mini.tsx +0 -0
  366. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/evidence/evidence-activity-heatmap.test.ts +0 -0
  367. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/evidence/evidence-activity-heatmap.tsx +0 -0
  368. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/evidence/evidence-analytics-panel.tsx +0 -0
  369. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/evidence/evidence-clear-modal.tsx +0 -0
  370. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/evidence/evidence-copy.test.ts +0 -0
  371. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/evidence/evidence-data-provenance-strip.tsx +0 -0
  372. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/evidence/evidence-detail.test.ts +0 -0
  373. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/evidence/evidence-export-drawer.tsx +0 -0
  374. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/evidence/evidence-export.test.ts +0 -0
  375. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/evidence/evidence-export.ts +0 -0
  376. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/evidence/evidence-filter-bar.tsx +0 -0
  377. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/evidence/evidence-filters.test.ts +0 -0
  378. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/evidence/evidence-filters.ts +0 -0
  379. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/evidence/evidence-format.test.ts +0 -0
  380. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/evidence/evidence-format.ts +0 -0
  381. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/evidence/evidence-hero.tsx +0 -0
  382. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/evidence/evidence-insight-strip.tsx +0 -0
  383. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/evidence/evidence-insights-headline-bento.test.ts +0 -0
  384. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/evidence/evidence-insights-headline-bento.tsx +0 -0
  385. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/evidence/evidence-insights-home-preview.test.ts +0 -0
  386. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/evidence/evidence-insights-home-preview.tsx +0 -0
  387. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/evidence/evidence-insights-layout.test.ts +0 -0
  388. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/evidence/evidence-insights-share-button.tsx +0 -0
  389. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/evidence/evidence-insights-share-errors.ts +0 -0
  390. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/evidence/evidence-insights-share-modal.tsx +0 -0
  391. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/evidence/evidence-insights-share-sheet.tsx +0 -0
  392. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/evidence/evidence-insights-surface.tsx +0 -0
  393. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/evidence/evidence-metrics.test.ts +0 -0
  394. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/evidence/evidence-metrics.ts +0 -0
  395. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/evidence/evidence-pagination.test.ts +0 -0
  396. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/evidence/evidence-pagination.ts +0 -0
  397. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/evidence/evidence-perf.test.ts +0 -0
  398. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/evidence/evidence-period.ts +0 -0
  399. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/evidence/evidence-share-bar.tsx +0 -0
  400. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/evidence/evidence-sort.test.ts +0 -0
  401. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/evidence/evidence-sort.ts +0 -0
  402. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/evidence/evidence-story.test.ts +0 -0
  403. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/evidence/evidence-table.tsx +0 -0
  404. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/evidence/evidence-trend-chart.test.ts +0 -0
  405. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/evidence/evidence-trend-chart.tsx +0 -0
  406. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/evidence/evidence-types.ts +0 -0
  407. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/evidence/evidence-url-state.test.ts +0 -0
  408. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/evidence/evidence-url-state.ts +0 -0
  409. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/evidence/evidence-view-shell.tsx +0 -0
  410. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/evidence/explore-tab.tsx +0 -0
  411. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/evidence/guard-stat-metric.tsx +0 -0
  412. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/evidence/index.ts +0 -0
  413. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/evidence/plain-english.ts +0 -0
  414. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/evidence/scoped-evidence-table.test.ts +0 -0
  415. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/evidence/scoped-evidence-table.tsx +0 -0
  416. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/evidence/sparkline.tsx +0 -0
  417. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/evidence/story-tab.tsx +0 -0
  418. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/evidence/use-receipt-analytics.ts +0 -0
  419. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/feed-health-workspace.tsx +0 -0
  420. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/fleet-workspace-phase11.test.ts +0 -0
  421. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/fleet-workspace.test.ts +0 -0
  422. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/fleet-workspace.tsx +0 -0
  423. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/github-issue-link.test.ts +0 -0
  424. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/github-issue-link.ts +0 -0
  425. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/guard-api.test.ts +0 -0
  426. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/guard-api.ts +0 -0
  427. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/guard-demo.ts +0 -0
  428. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/guard-modal-layer.tsx +0 -0
  429. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/guard-types.ts +0 -0
  430. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/guard-update-panel.tsx +0 -0
  431. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/guard-update.test.ts +0 -0
  432. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/harness-action-errors.test.ts +0 -0
  433. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/harness-action-errors.ts +0 -0
  434. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/help-modal.tsx +0 -0
  435. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/history-analytics.tsx +0 -0
  436. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/history-charts.tsx +0 -0
  437. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/history-export.ts +0 -0
  438. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/home-dashboard.test.ts +0 -0
  439. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/home-dashboard.tsx +0 -0
  440. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/home-protection-module.tsx +0 -0
  441. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/logged-action-panel.tsx +0 -0
  442. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/main.tsx +0 -0
  443. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/package-firewall-connect-browser.test.ts +0 -0
  444. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/package-firewall-connect-browser.ts +0 -0
  445. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/package-firewall-connect.test.tsx +0 -0
  446. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/package-workbench-common.tsx +0 -0
  447. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/package-workbench-filter-modal.tsx +0 -0
  448. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/package-workbench-finding-detail.tsx +0 -0
  449. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/package-workbench-panel.test.tsx +0 -0
  450. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/package-workbench-panel.tsx +0 -0
  451. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/phase09-review.test.ts +0 -0
  452. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/policy-active-mode-card.tsx +0 -0
  453. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/policy-cloud-exception-detail-panel.tsx +0 -0
  454. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/policy-cloud-exception-request-draft.test.ts +0 -0
  455. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/policy-cloud-exception-request-draft.ts +0 -0
  456. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/policy-cloud-exception-request-ia.test.ts +0 -0
  457. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/policy-cloud-exception-request-layout.tsx +0 -0
  458. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/policy-cloud-exception-request-panel.tsx +0 -0
  459. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/policy-cloud-exception-request-steps.tsx +0 -0
  460. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/policy-cloud-exceptions-boundary.test.ts +0 -0
  461. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/policy-cloud-exceptions-ia.test.tsx +0 -0
  462. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/policy-cloud-exceptions-list.tsx +0 -0
  463. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/policy-cloud-exceptions-summary.tsx +0 -0
  464. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/policy-cloud-exceptions-tab.tsx +0 -0
  465. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/policy-cloud-exceptions-utils.test.ts +0 -0
  466. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/policy-cloud-exceptions-utils.ts +0 -0
  467. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/policy-data-truth.test.ts +0 -0
  468. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/policy-exception-form.tsx +0 -0
  469. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/policy-export.ts +0 -0
  470. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/policy-final-release-guard.test.ts +0 -0
  471. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/policy-guard-cloud-bundle-card.test.ts +0 -0
  472. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/policy-guard-cloud-bundle-card.tsx +0 -0
  473. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/policy-guard-cloud-bundle-helpers.ts +0 -0
  474. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/policy-page-chrome.tsx +0 -0
  475. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/policy-remembered-cloud-rules.tsx +0 -0
  476. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/policy-remembered-local-rules.tsx +0 -0
  477. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/policy-remembered-rules-right-rail.tsx +0 -0
  478. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/policy-remembered-rules-summary.test.ts +0 -0
  479. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/policy-remembered-rules-tab.tsx +0 -0
  480. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/policy-remembered-rules.test.tsx +0 -0
  481. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/policy-review-scope.test.ts +0 -0
  482. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/policy-strict-config-enforcement-preview.tsx +0 -0
  483. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/policy-strict-config-ia.test.ts +0 -0
  484. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/policy-strict-config-local-policy-card.tsx +0 -0
  485. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/policy-strict-config-right-rail.tsx +0 -0
  486. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/policy-strict-config-segmented.tsx +0 -0
  487. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/policy-strict-config-strict-mode-card.tsx +0 -0
  488. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/policy-strict-config-surfaces.ts +0 -0
  489. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/policy-strict-config-tab.tsx +0 -0
  490. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/policy-strict-config-utils.test.ts +0 -0
  491. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/policy-strict-config-utils.ts +0 -0
  492. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/policy-summary-surfaces.ts +0 -0
  493. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/policy-ui-hardening.test.ts +0 -0
  494. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/policy-workspace-helpers.test.ts +0 -0
  495. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/policy-workspace-helpers.ts +0 -0
  496. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/policy-workspace-page.tsx +0 -0
  497. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/policy-workspace-views.tsx +0 -0
  498. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/policy-workspace.tsx +0 -0
  499. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/queue-bulk-approve-flow.tsx +0 -0
  500. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/queue-bulk-approve.test.ts +0 -0
  501. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/queue-bulk-risk-disclosure.test.ts +0 -0
  502. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/queue-bulk-risk-disclosure.ts +0 -0
  503. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/queue-connection-error.tsx +0 -0
  504. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/queue-state.test.ts +0 -0
  505. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/queue-state.ts +0 -0
  506. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/receipts-workspace.test.ts +0 -0
  507. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/receipts-workspace.tsx +0 -0
  508. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/request-read-state.test.ts +0 -0
  509. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/request-read-state.ts +0 -0
  510. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/review-workspace.tsx +0 -0
  511. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/risk-signal-cards.test.ts +0 -0
  512. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/risk-signal-cards.tsx +0 -0
  513. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/runtime-overview.test.ts +0 -0
  514. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/runtime-overview.tsx +0 -0
  515. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/scanner-evidence-badge.tsx +0 -0
  516. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/scrg159-170.test.ts +0 -0
  517. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/scrg171-172.test.ts +0 -0
  518. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/scsr-phase09-next-action.test.ts +0 -0
  519. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/scsr-phase09-package-firewall-status.test.ts +0 -0
  520. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/scsr-phase09c-evidence-rail.test.ts +0 -0
  521. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/scsr-phase09d-intercept-drawer.test.ts +0 -0
  522. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/scsr-phase09e-posture-banners.test.ts +0 -0
  523. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/scsr-phase09f-mobile-polish.test.ts +0 -0
  524. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/scsr-phase09g-cloud-capabilities.test.ts +0 -0
  525. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/scsr-phase09h-hero-cards.test.ts +0 -0
  526. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/scsr-phase10-package-workbench.test.ts +0 -0
  527. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/security-fixes.test.ts +0 -0
  528. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/settings/settings-ia.test.ts +0 -0
  529. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/settings/settings-ia.tsx +0 -0
  530. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/settings/settings-row-primitives.tsx +0 -0
  531. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/settings/settings-section-shell.tsx +0 -0
  532. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/settings-save-proof-modal.test.ts +0 -0
  533. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/settings-save-proof-modal.tsx +0 -0
  534. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/settings-workspace-phase11.test.ts +0 -0
  535. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/settings-workspace.test.ts +0 -0
  536. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/settings-workspace.tsx +0 -0
  537. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/shell-footer.test.ts +0 -0
  538. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/shell-footer.tsx +0 -0
  539. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/styles.css +0 -0
  540. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/supply-chain-audit-connect.test.tsx +0 -0
  541. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/supply-chain-audit-connect.ts +0 -0
  542. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/supply-chain-audit-findings-summary.tsx +0 -0
  543. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/supply-chain-audit-normalize.ts +0 -0
  544. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/supply-chain-audit-recovery-modal.tsx +0 -0
  545. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/supply-chain-audit-recovery.test.ts +0 -0
  546. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/supply-chain-audit-recovery.ts +0 -0
  547. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/supply-chain-audit-result.test.ts +0 -0
  548. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/supply-chain-audit-result.ts +0 -0
  549. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/supply-chain-audit-workspace.test.ts +0 -0
  550. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/supply-chain-audit-workspace.ts +0 -0
  551. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/supply-chain-bundle-panel.tsx +0 -0
  552. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/supply-chain-cloud-capabilities-panel.tsx +0 -0
  553. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/supply-chain-cloud-capabilities.ts +0 -0
  554. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/supply-chain-evidence-rail-panel.tsx +0 -0
  555. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/supply-chain-evidence-rail.ts +0 -0
  556. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/supply-chain-firewall-action-result.ts +0 -0
  557. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/supply-chain-firewall-controls.tsx +0 -0
  558. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/supply-chain-firewall-manager-row.tsx +0 -0
  559. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/supply-chain-firewall-next-action.ts +0 -0
  560. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/supply-chain-firewall-panel.tsx +0 -0
  561. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/supply-chain-firewall-views.tsx +0 -0
  562. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/supply-chain-hub-workspace.tsx +0 -0
  563. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/supply-chain-intercept-proof-modal.tsx +0 -0
  564. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/supply-chain-issue-focus.tsx +0 -0
  565. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/supply-chain-issues.test.ts +0 -0
  566. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/supply-chain-issues.ts +0 -0
  567. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/supply-chain-manager-cards.tsx +0 -0
  568. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/supply-chain-manager-drawer.tsx +0 -0
  569. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/supply-chain-posture-banners.tsx +0 -0
  570. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/supply-chain-posture.ts +0 -0
  571. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/supply-chain-protection-stats.ts +0 -0
  572. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/supply-chain-status-header.tsx +0 -0
  573. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/supply-chain-ux-consolidation.test.ts +0 -0
  574. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/supply-chain-workspace-hero-state.ts +0 -0
  575. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/supply-chain-workspace-hero.tsx +0 -0
  576. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/supply-chain-workspace-layout.ts +0 -0
  577. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/supply-chain-workspace.tsx +0 -0
  578. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/totp-enrollment-qr-panel.tsx +0 -0
  579. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/use-copy-feedback-timeout.ts +0 -0
  580. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/use-debounce.ts +0 -0
  581. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/use-focus-trap.ts +0 -0
  582. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/use-keyboard-shortcut.ts +0 -0
  583. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/use-queue-bulk-approve.test.ts +0 -0
  584. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/use-queue-bulk-approve.ts +0 -0
  585. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/use-reduced-motion.ts +0 -0
  586. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/use-resolved-approval-gate.ts +0 -0
  587. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/use-route-focus.ts +0 -0
  588. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/use-supply-chain-audit-session.ts +0 -0
  589. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/vite-env.d.ts +0 -0
  590. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/watched-app-card.tsx +0 -0
  591. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/workspace-page-header.test.tsx +0 -0
  592. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/src/workspace-page-header.tsx +0 -0
  593. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/tsconfig.json +0 -0
  594. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/dashboard/vite.config.ts +0 -0
  595. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/devcontainer-features/hol-guard/README.md +0 -0
  596. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/devcontainer-features/hol-guard/devcontainer-feature.json +0 -0
  597. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/devcontainer-features/hol-guard/install.sh +0 -0
  598. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/docker-requirements.txt +0 -0
  599. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/docs/guard/SKILL.md +0 -0
  600. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/docs/guard/adr/0001-mdm-managed-install-contract.md +0 -0
  601. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/docs/guard/all-harness-hook-review.md +0 -0
  602. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/docs/guard/architecture.md +0 -0
  603. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/docs/guard/cloud-command-capability.md +0 -0
  604. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/docs/guard/command-backup-extension-coverage.md +0 -0
  605. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/docs/guard/command-cicd-platform-extension-coverage.md +0 -0
  606. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/docs/guard/command-cloud-extension-coverage.md +0 -0
  607. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/docs/guard/command-database-extension-coverage.md +0 -0
  608. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/docs/guard/command-domain-extension-coverage.md +0 -0
  609. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/docs/guard/command-extension-architecture.md +0 -0
  610. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/docs/guard/command-extension-precedence.md +0 -0
  611. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/docs/guard/command-extension-threat-model.md +0 -0
  612. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/docs/guard/command-managed-service-extension-coverage.md +0 -0
  613. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/docs/guard/command-package-extension-coverage.md +0 -0
  614. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/docs/guard/command-remote-extension-coverage.md +0 -0
  615. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/docs/guard/command-search-messaging-extension-coverage.md +0 -0
  616. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/docs/guard/command-storage-extension-coverage.md +0 -0
  617. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/docs/guard/cursor-local-cloud-contract.md +0 -0
  618. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/docs/guard/enterprise-event-taxonomy.md +0 -0
  619. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/docs/guard/enterprise-export-examples.md +0 -0
  620. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/docs/guard/enterprise-packet.md +0 -0
  621. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/docs/guard/get-started.md +0 -0
  622. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/docs/guard/github-command-capability-security.md +0 -0
  623. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/docs/guard/grok-executable-security.md +0 -0
  624. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/docs/guard/harness-support.md +0 -0
  625. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/docs/guard/hook-review-engine.md +0 -0
  626. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/docs/guard/incident-response.md +0 -0
  627. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/docs/guard/local-vs-cloud.md +0 -0
  628. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/docs/guard/mdm-deployment.md +0 -0
  629. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/docs/guard/mdm-endpoints.v1.json +0 -0
  630. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/docs/guard/mdm-general-availability-roadmap.md +0 -0
  631. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/docs/guard/mdm-networking.md +0 -0
  632. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/docs/guard/mdm-release-evidence-template.md +0 -0
  633. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/docs/guard/pi-fast-hook-review.md +0 -0
  634. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/docs/guard/policy-cloud-exceptions-boundary.md +0 -0
  635. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/docs/guard/release-checklist.md +0 -0
  636. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/docs/guard/remediation.md +0 -0
  637. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/docs/guard/review-local-queue-contract.md +0 -0
  638. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/docs/guard/schemas/mdm-policy-v1.schema.json +0 -0
  639. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/docs/guard/schemas/mdm-status-v1.schema.json +0 -0
  640. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/docs/guard/testing-matrix.md +0 -0
  641. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/docs/guard/troubleshooting.md +0 -0
  642. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/docs/guard/trust-attestation-security.md +0 -0
  643. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/docs/guard-review-backend-contract.md +0 -0
  644. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/docs/trust/mcp-trust-draft.md +0 -0
  645. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/docs/trust/plugin-trust-draft.md +0 -0
  646. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/docs/trust/skill-trust-local.md +0 -0
  647. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/fuzzers/manifest_fuzzer.py +0 -0
  648. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/requirements.txt +0 -0
  649. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/schemas/plugin-quality.v1.json +0 -0
  650. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/schemas/scan-result.v1.json +0 -0
  651. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/schemas/verify-result.v1.json +0 -0
  652. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/scripts/bench_guard_hooks.py +0 -0
  653. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/scripts/check_privileged_workflows.py +0 -0
  654. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/scripts/codex-auto-resume-smoke.py +0 -0
  655. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/scripts/e2e-cursor-hook-smoke.py +0 -0
  656. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/scripts/mdm/generate-release-manifest.py +0 -0
  657. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/scripts/mdm/generate-sbom.py +0 -0
  658. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/scripts/mdm/hol-guard-entry.py +0 -0
  659. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/scripts/mdm/macos/activate-current-user.sh +0 -0
  660. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/scripts/mdm/macos/build-pkg.sh +0 -0
  661. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/scripts/mdm/macos/deactivate-user.sh +0 -0
  662. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/scripts/mdm/macos/detect.sh +0 -0
  663. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/scripts/mdm/macos/org.hol.guard.user-activation.plist +0 -0
  664. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/scripts/mdm/macos/pkg-scripts/postinstall +0 -0
  665. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/scripts/mdm/macos/pkg-scripts/preinstall +0 -0
  666. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/scripts/mdm/macos/uninstall.sh +0 -0
  667. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/scripts/mdm/windows/activate-user.ps1 +0 -0
  668. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/scripts/mdm/windows/authorize-deactivation.ps1 +0 -0
  669. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/scripts/mdm/windows/build-msi.ps1 +0 -0
  670. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/scripts/mdm/windows/deactivate-user.ps1 +0 -0
  671. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/scripts/mdm/windows/detect.ps1 +0 -0
  672. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/scripts/mdm/windows/hol-guard.wxs +0 -0
  673. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/scripts/mdm/write-release-evidence.py +0 -0
  674. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/scripts/run-cloud-exception-sync-proof.sh +0 -0
  675. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/scripts/run-policy-cloud-exceptions-release-audit.sh +0 -0
  676. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/scripts/sync_repo_version.py +0 -0
  677. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/scripts/update_awesome_codex_plugins_contributing.py +0 -0
  678. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/scripts/write_release_toolchain_sbom.py +0 -0
  679. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/__init__.py +0 -0
  680. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/_scanner_commands.py +0 -0
  681. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/action_runner.py +0 -0
  682. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/argparse_utils.py +0 -0
  683. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/checks/__init__.py +0 -0
  684. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/checks/best_practices.py +0 -0
  685. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/checks/claude.py +0 -0
  686. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/checks/code_quality.py +0 -0
  687. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/checks/ecosystem_common.py +0 -0
  688. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/checks/gemini.py +0 -0
  689. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/checks/manifest.py +0 -0
  690. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/checks/manifest_support.py +0 -0
  691. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/checks/marketplace.py +0 -0
  692. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/checks/mcp_security.py +0 -0
  693. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/checks/opencode.py +0 -0
  694. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/checks/operational_security.py +0 -0
  695. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/checks/security.py +0 -0
  696. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/checks/skill_security.py +0 -0
  697. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/cli.py +0 -0
  698. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/cli_ui.py +0 -0
  699. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/config.py +0 -0
  700. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/ecosystems/__init__.py +0 -0
  701. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/ecosystems/base.py +0 -0
  702. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/ecosystems/claude.py +0 -0
  703. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/ecosystems/codex.py +0 -0
  704. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/ecosystems/detect.py +0 -0
  705. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/ecosystems/gemini.py +0 -0
  706. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/ecosystems/opencode.py +0 -0
  707. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/ecosystems/registry.py +0 -0
  708. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/ecosystems/types.py +0 -0
  709. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/github_reporting.py +0 -0
  710. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/__init__.py +0 -0
  711. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/access_graph_events.py +0 -0
  712. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/adapters/__init__.py +0 -0
  713. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/adapters/antigravity.py +0 -0
  714. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/adapters/claude_daemon_hook_bridge.py +0 -0
  715. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/adapters/cloud_identity.py +0 -0
  716. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/adapters/codex_daemon_hook_bridge.py +0 -0
  717. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/adapters/contracts.py +0 -0
  718. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/adapters/copilot.py +0 -0
  719. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/adapters/cursor_cli.py +0 -0
  720. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/adapters/cursor_hooks.py +0 -0
  721. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/adapters/cursor_native_approval.py +0 -0
  722. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/adapters/gemini.py +0 -0
  723. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/adapters/grok_executable.py +0 -0
  724. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/adapters/hook_python.py +0 -0
  725. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/adapters/kimi.py +0 -0
  726. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/adapters/kimi_hooks.py +0 -0
  727. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/adapters/mcp_servers.py +0 -0
  728. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/adapters/openclaw.py +0 -0
  729. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/adapters/openclaw_config.py +0 -0
  730. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/adapters/openclaw_support.py +0 -0
  731. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/adapters/opencode.py +0 -0
  732. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/adapters/opencode_artifacts.py +0 -0
  733. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/adapters/opencode_pretool.py +0 -0
  734. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/adapters/pi.py +0 -0
  735. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/adapters/pi_extension_approval_source.py +0 -0
  736. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/adapters/pi_extension_content_source.py +0 -0
  737. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/adapters/pi_extension_source.py +0 -0
  738. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/adapters/pi_support.py +0 -0
  739. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/adapters/zcode.py +0 -0
  740. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/advisory_model.py +0 -0
  741. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/aibom_cli.py +0 -0
  742. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/aibom_content_upload.py +0 -0
  743. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/aibom_symlink.py +0 -0
  744. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/aibom_trust_metadata.py +0 -0
  745. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/approval_gate.py +0 -0
  746. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/approval_gate_state.py +0 -0
  747. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/approval_scope_support.py +0 -0
  748. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/bridge/__init__.py +0 -0
  749. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/capabilities.py +0 -0
  750. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/cli/__init__.py +0 -0
  751. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/cli/approval_commands.py +0 -0
  752. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/cli/approval_gate_prompt.py +0 -0
  753. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/cli/bootstrap.py +0 -0
  754. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/cli/commands.py +0 -0
  755. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/cli/commands_dispatch_admin.py +0 -0
  756. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/cli/commands_dispatch_cloud.py +0 -0
  757. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/cli/commands_dispatch_mdm.py +0 -0
  758. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/cli/commands_dispatch_records.py +0 -0
  759. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/cli/commands_dispatch_trust.py +0 -0
  760. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/cli/commands_parser.py +0 -0
  761. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/cli/commands_parser_helpers.py +0 -0
  762. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/cli/commands_parser_mdm.py +0 -0
  763. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/cli/commands_parser_policy.py +0 -0
  764. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/cli/commands_router.py +0 -0
  765. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/cli/commands_support.py +0 -0
  766. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/cli/commands_support_codex_commands.py +0 -0
  767. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/cli/commands_support_codex_git.py +0 -0
  768. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/cli/commands_support_codex_paths.py +0 -0
  769. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/cli/commands_support_codex_reads.py +0 -0
  770. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/cli/commands_support_codex_tool_output.py +0 -0
  771. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/cli/commands_support_codex_tool_output_messages.py +0 -0
  772. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/cli/commands_support_native_search.py +0 -0
  773. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/cli/commands_support_runtime_artifacts.py +0 -0
  774. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/cli/commands_support_service.py +0 -0
  775. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/cli/commands_support_workspace.py +0 -0
  776. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/cli/connect_flow.py +0 -0
  777. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/cli/cursor_actions.py +0 -0
  778. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/cli/dashboard_sync.py +0 -0
  779. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/cli/docs.py +0 -0
  780. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/cli/install_commands.py +0 -0
  781. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/cli/install_dry_run.py +0 -0
  782. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/cli/oauth_client.py +0 -0
  783. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/cli/product.py +0 -0
  784. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/cli/progress.py +0 -0
  785. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/cli/remote_pair_flow.py +0 -0
  786. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/cli/render_uninstall.py +0 -0
  787. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/cli/uninstall_commands.py +0 -0
  788. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/cli/update_commands.py +0 -0
  789. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/cloud_exception_requests.py +0 -0
  790. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/cloud_exceptions.py +0 -0
  791. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/codex_app_server.py +0 -0
  792. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/codex_config.py +0 -0
  793. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/codex_resume.py +0 -0
  794. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/codex_skill_config.py +0 -0
  795. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/contracts/__init__.py +0 -0
  796. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/contracts/supply_chain_decision_evidence_v1.py +0 -0
  797. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/daemon/__init__.py +0 -0
  798. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/daemon/client.py +0 -0
  799. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/daemon/command_queue_worker.py +0 -0
  800. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/daemon/dashboard_update.py +0 -0
  801. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/daemon/dashboard_update_runner.py +0 -0
  802. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/daemon/discovery.py +0 -0
  803. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/daemon/hook_metrics.py +0 -0
  804. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/daemon/hook_worker.py +0 -0
  805. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/daemon/manager.py +0 -0
  806. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/daemon/static/apple-touch-icon.png +0 -0
  807. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/daemon/static/assets/chunks/about-workspace.js +0 -0
  808. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/daemon/static/assets/chunks/app-catalog.js +0 -0
  809. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/daemon/static/assets/chunks/app-detail-workspace.js +0 -0
  810. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/daemon/static/assets/chunks/audit-workspace.js +0 -0
  811. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/daemon/static/assets/chunks/feed-health-workspace.js +0 -0
  812. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/daemon/static/assets/chunks/fleet-workspace.js +0 -0
  813. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/daemon/static/assets/chunks/help-modal.js +0 -0
  814. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/daemon/static/assets/chunks/home-dashboard.js +0 -0
  815. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/daemon/static/assets/chunks/home-protection-module.js +0 -0
  816. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/daemon/static/assets/chunks/policy-workspace-page.js +0 -0
  817. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/daemon/static/assets/chunks/settings-workspace.js +0 -0
  818. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/daemon/static/assets/chunks/supply-chain-hub-workspace.js +0 -0
  819. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/daemon/static/assets/chunks/supply-chain-protection-stats.js +0 -0
  820. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/daemon/static/assets/chunks/supply-chain-workspace.js +0 -0
  821. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/daemon/static/assets/guard-dashboard.js +0 -0
  822. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/daemon/static/assets/index.css +0 -0
  823. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/daemon/static/brand/Logo_Icon_Dark.png +0 -0
  824. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/daemon/static/brand/Logo_Whole.png +0 -0
  825. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/daemon/static/favicon-16x16.png +0 -0
  826. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/daemon/static/favicon-32x32.png +0 -0
  827. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/daemon/static/favicon.ico +0 -0
  828. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/daemon/static/index.html +0 -0
  829. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/desktop_notifications.py +0 -0
  830. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/edge_events.py +0 -0
  831. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/harness_resume.py +0 -0
  832. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/harness_usage.py +0 -0
  833. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/incident.py +0 -0
  834. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/insights.py +0 -0
  835. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/insights_share.py +0 -0
  836. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/inventory_cisco.py +0 -0
  837. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/inventory_contract.py +0 -0
  838. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/inventory_item_description.py +0 -0
  839. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/launcher.py +0 -0
  840. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/local_dashboard_session.py +0 -0
  841. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/local_trust_contract.py +0 -0
  842. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/local_trust_controller.py +0 -0
  843. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/mcp/__init__.py +0 -0
  844. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/mcp/adapters.py +0 -0
  845. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/mcp/sanitizers.py +0 -0
  846. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/mcp/schemas.py +0 -0
  847. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/mcp/server.py +0 -0
  848. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/mcp/tools.py +0 -0
  849. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/mdm/__init__.py +0 -0
  850. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/mdm/contracts.py +0 -0
  851. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/mdm/lifecycle.py +0 -0
  852. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/mdm/manifest.py +0 -0
  853. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/mdm/native.py +0 -0
  854. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/mdm/network.py +0 -0
  855. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/memory_decision_event.py +0 -0
  856. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/memory_decision_outbox.py +0 -0
  857. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/memory_pattern_fingerprint.py +0 -0
  858. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/package_execution_context_configuration.py +0 -0
  859. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/package_firewall_action_rate_limit.py +0 -0
  860. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/package_firewall_defaults.py +0 -0
  861. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/package_firewall_entitlement.py +0 -0
  862. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/package_firewall_receipts.py +0 -0
  863. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/package_shim_gate.py +0 -0
  864. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/package_shim_status.py +0 -0
  865. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/policy/__init__.py +0 -0
  866. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/policy_authority.py +0 -0
  867. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/policy_bundle_parser.py +0 -0
  868. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/policy_bundle_trusted_keys.py +0 -0
  869. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/policy_integrity.py +0 -0
  870. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/product_model.py +0 -0
  871. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/provenance.py +0 -0
  872. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/proxy/__init__.py +0 -0
  873. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/proxy/_env.py +0 -0
  874. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/proxy/remote.py +0 -0
  875. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/receipts/__init__.py +0 -0
  876. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/redaction.py +0 -0
  877. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/remote_pairing_constants.py +0 -0
  878. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/review_contracts.py +0 -0
  879. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/review_memory_ack.py +0 -0
  880. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/risk.py +0 -0
  881. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/runtime/__init__.py +0 -0
  882. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/runtime/action_identity.py +0 -0
  883. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/runtime/actions.py +0 -0
  884. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/runtime/advisory_escalation.py +0 -0
  885. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/runtime/advisory_matchers.py +0 -0
  886. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/runtime/approval_attention.py +0 -0
  887. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/runtime/auto_update.py +0 -0
  888. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/runtime/browser_mcp_intent.py +0 -0
  889. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/runtime/cisco_evidence.py +0 -0
  890. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/runtime/command_backup_extensions.py +0 -0
  891. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/runtime/command_builtin_extension_catalog.py +0 -0
  892. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/runtime/command_builtin_rules.py +0 -0
  893. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/runtime/command_capability.py +0 -0
  894. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/runtime/command_cicd_extensions.py +0 -0
  895. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/runtime/command_cloud_extensions.py +0 -0
  896. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/runtime/command_curl_parsing.py +0 -0
  897. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/runtime/command_database_extensions.py +0 -0
  898. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/runtime/command_database_matchers.py +0 -0
  899. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/runtime/command_domain_extensions.py +0 -0
  900. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/runtime/command_ecosystem_detection.py +0 -0
  901. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/runtime/command_evaluation.py +0 -0
  902. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/runtime/command_extension_matchers.py +0 -0
  903. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/runtime/command_extension_specs.py +0 -0
  904. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/runtime/command_extensions.py +0 -0
  905. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/runtime/command_inspection.py +0 -0
  906. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/runtime/command_managed_service_extensions.py +0 -0
  907. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/runtime/command_matcher_contracts.py +0 -0
  908. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/runtime/command_model.py +0 -0
  909. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/runtime/command_option_parsing.py +0 -0
  910. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/runtime/command_package_extensions.py +0 -0
  911. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/runtime/command_platform_extensions.py +0 -0
  912. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/runtime/command_queue.py +0 -0
  913. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/runtime/command_remote_extensions.py +0 -0
  914. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/runtime/command_rules.py +0 -0
  915. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/runtime/command_search_messaging_extensions.py +0 -0
  916. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/runtime/command_segment_parsing.py +0 -0
  917. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/runtime/command_storage_extensions.py +0 -0
  918. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/runtime/command_structure.py +0 -0
  919. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/runtime/command_structured_matchers.py +0 -0
  920. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/runtime/command_tokens.py +0 -0
  921. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/runtime/data_flow.py +0 -0
  922. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/runtime/data_flow_rules.py +0 -0
  923. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/runtime/data_flow_variables.py +0 -0
  924. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/runtime/decisions.py +0 -0
  925. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/runtime/detectors.py +0 -0
  926. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/runtime/evidence_hash.py +0 -0
  927. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/runtime/false_positive_rules.py +0 -0
  928. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/runtime/github_command_capabilities.py +0 -0
  929. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/runtime/github_graphql_capabilities.py +0 -0
  930. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/runtime/harness_attribution.py +0 -0
  931. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/runtime/homebrew_intent.py +0 -0
  932. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/runtime/hook_content_scanner.py +0 -0
  933. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/runtime/hook_decision_cache.py +0 -0
  934. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/runtime/hook_enrichment_queue.py +0 -0
  935. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/runtime/hook_output_text.py +0 -0
  936. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/runtime/hook_payload_reference.py +0 -0
  937. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/runtime/hook_review_engine.py +0 -0
  938. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/runtime/hook_review_types.py +0 -0
  939. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/runtime/hook_source_read.py +0 -0
  940. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/runtime/interpreter_options.py +0 -0
  941. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/runtime/js_semver.py +0 -0
  942. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/runtime/kubernetes_command_support.py +0 -0
  943. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/runtime/kubernetes_commands.py +0 -0
  944. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/runtime/kubernetes_heredoc_support.py +0 -0
  945. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/runtime/live_request_sync.py +0 -0
  946. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/runtime/local_request_snapshots.py +0 -0
  947. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/runtime/manifest_dependency_targets.py +0 -0
  948. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/runtime/package_execution_policy.py +0 -0
  949. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/runtime/package_intent.py +0 -0
  950. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/runtime/package_intent_common.py +0 -0
  951. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/runtime/package_intent_parser.py +0 -0
  952. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/runtime/package_manager_command.py +0 -0
  953. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/runtime/package_manifest_diff.py +0 -0
  954. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/runtime/persistence_rules.py +0 -0
  955. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/runtime/prompt_injection.py +0 -0
  956. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/runtime/safe_decode.py +0 -0
  957. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/runtime/sandbox.py +0 -0
  958. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/runtime/scanner_cache.py +0 -0
  959. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/runtime/secret_file_requests.py +0 -0
  960. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/runtime/secret_sensitivity.py +0 -0
  961. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/runtime/secret_sources.py +0 -0
  962. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/runtime/sed_scripts.py +0 -0
  963. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/runtime/self_approval.py +0 -0
  964. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/runtime/shell_command_wrappers.py +0 -0
  965. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/runtime/shell_commands.py +0 -0
  966. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/runtime/shell_structure.py +0 -0
  967. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/runtime/signals.py +0 -0
  968. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/runtime/skill_protection.py +0 -0
  969. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/runtime/source_paths.py +0 -0
  970. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/runtime/supply_chain.py +0 -0
  971. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/runtime/supply_chain_bundle.py +0 -0
  972. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/runtime/supply_chain_bundle_base.py +0 -0
  973. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/runtime/supply_chain_bundle_models.py +0 -0
  974. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/runtime/supply_chain_bundle_runtime.py +0 -0
  975. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/runtime/supply_chain_support.py +0 -0
  976. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/runtime/surface_server.py +0 -0
  977. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/runtime/temp_files.py +0 -0
  978. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/runtime/threat_intel.py +0 -0
  979. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/runtime/trust_attestation.py +0 -0
  980. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/runtime/workspace_path_guard.py +0 -0
  981. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/schemas/__init__.py +0 -0
  982. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/schemas/consumer_mode.py +0 -0
  983. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/schemas/guard_event_v1.py +0 -0
  984. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/schemas/surface_server.py +0 -0
  985. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/shell_profile_cleanup.py +0 -0
  986. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/shim_probe.py +0 -0
  987. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/shims.py +0 -0
  988. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/skill_document_evidence.py +0 -0
  989. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/sqlite_tuning.py +0 -0
  990. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/stable_digest.py +0 -0
  991. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/store.py +0 -0
  992. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/store_approval_facade.py +0 -0
  993. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/store_approvals.py +0 -0
  994. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/store_cloud_events.py +0 -0
  995. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/store_connect.py +0 -0
  996. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/store_evidence.py +0 -0
  997. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/store_evidence_facade.py +0 -0
  998. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/store_inventory.py +0 -0
  999. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/store_live_request_outbox.py +0 -0
  1000. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/store_oauth.py +0 -0
  1001. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/store_policy_decision.py +0 -0
  1002. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/store_policy_integrity_runtime.py +0 -0
  1003. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/store_policy_source_context.py +0 -0
  1004. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/store_read_state.py +0 -0
  1005. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/store_receipt_rollups.py +0 -0
  1006. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/store_receipts.py +0 -0
  1007. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/store_resume.py +0 -0
  1008. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/store_secret_policy_integrity.py +0 -0
  1009. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/store_sessions.py +0 -0
  1010. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/store_supply_chain.py +0 -0
  1011. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/store_threat_intel.py +0 -0
  1012. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/text.py +0 -0
  1013. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/totp.py +0 -0
  1014. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/trust_metadata_boundary.py +0 -0
  1015. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/guard/types.py +0 -0
  1016. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/install_integrity.py +0 -0
  1017. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/integrations/__init__.py +0 -0
  1018. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/integrations/cisco_mcp_scanner.py +0 -0
  1019. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/integrations/cisco_skill_scanner.py +0 -0
  1020. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/lint_fixes.py +0 -0
  1021. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/marketplace_support.py +0 -0
  1022. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/models.py +0 -0
  1023. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/path_support.py +0 -0
  1024. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/policy.py +0 -0
  1025. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/quality_artifact.py +0 -0
  1026. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/repo_detect.py +0 -0
  1027. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/reporting.py +0 -0
  1028. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/rules/__init__.py +0 -0
  1029. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/rules/registry.py +0 -0
  1030. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/rules/specs.py +0 -0
  1031. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/scanner.py +0 -0
  1032. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/submission.py +0 -0
  1033. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/suppressions.py +0 -0
  1034. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/trust_domain_scoring.py +0 -0
  1035. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/trust_helpers.py +0 -0
  1036. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/trust_instruction_scoring.py +0 -0
  1037. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/trust_mcp_scoring.py +0 -0
  1038. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/trust_models.py +0 -0
  1039. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/trust_plugin_scoring.py +0 -0
  1040. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/trust_scoring.py +0 -0
  1041. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/trust_skill_scoring.py +0 -0
  1042. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/trust_specs.py +0 -0
  1043. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/src/codex_plugin_scanner/verification.py +0 -0
  1044. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/__init__.py +0 -0
  1045. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/bundle_first_cloud.py +0 -0
  1046. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/cloud_exception_bundle_fixtures.py +0 -0
  1047. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/docker/test_all_harness_hooks.py +0 -0
  1048. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/e2e_droid_exec.py +0 -0
  1049. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/fixtures/__init__.py +0 -0
  1050. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/fixtures/bad-plugin/.codex-plugin/plugin.json +0 -0
  1051. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/fixtures/bad-plugin/.mcp.json +0 -0
  1052. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/fixtures/bad-plugin/secrets.js +0 -0
  1053. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/fixtures/claude-plugin-good/.claude-plugin/plugin.json +0 -0
  1054. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/fixtures/claude-plugin-good/LICENSE +0 -0
  1055. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/fixtures/claude-plugin-good/README.md +0 -0
  1056. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/fixtures/claude-plugin-good/SECURITY.md +0 -0
  1057. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/fixtures/claude-plugin-good/hooks/hooks.json +0 -0
  1058. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/fixtures/claude-plugin-good/skills/example/SKILL.md +0 -0
  1059. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/fixtures/code-quality-bad/evil.js +0 -0
  1060. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/fixtures/code-quality-bad/inject.js +0 -0
  1061. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/fixtures/cursor-hooks/benign-echo.json +0 -0
  1062. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/fixtures/cursor-hooks/benign-health-check.json +0 -0
  1063. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/fixtures/cursor-hooks/expected-permissions.json +0 -0
  1064. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/fixtures/cursor-hooks/malicious-aws-credentials-read.json +0 -0
  1065. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/fixtures/cursor-hooks/malicious-canary-exfil-shell.json +0 -0
  1066. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/fixtures/cursor-hooks/malicious-env-read.json +0 -0
  1067. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/fixtures/cursor-hooks/malicious-mcp-secret-read.json +0 -0
  1068. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/fixtures/gemini-extension-good/GEMINI.md +0 -0
  1069. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/fixtures/gemini-extension-good/LICENSE +0 -0
  1070. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/fixtures/gemini-extension-good/README.md +0 -0
  1071. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/fixtures/gemini-extension-good/SECURITY.md +0 -0
  1072. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/fixtures/gemini-extension-good/commands/hello.toml +0 -0
  1073. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/fixtures/gemini-extension-good/gemini-extension.json +0 -0
  1074. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/fixtures/good-plugin/.codex-plugin/plugin.json +0 -0
  1075. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/fixtures/good-plugin/.codexignore +0 -0
  1076. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/fixtures/good-plugin/LICENSE +0 -0
  1077. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/fixtures/good-plugin/README.md +0 -0
  1078. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/fixtures/good-plugin/SECURITY.md +0 -0
  1079. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/fixtures/good-plugin/assets/icon.svg +0 -0
  1080. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/fixtures/good-plugin/assets/logo.svg +0 -0
  1081. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/fixtures/good-plugin/assets/screenshot.svg +0 -0
  1082. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/fixtures/good-plugin/skills/example/SKILL.md +0 -0
  1083. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/fixtures/grok/pretooluse_bash.json +0 -0
  1084. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/fixtures/grok/pretooluse_edit.json +0 -0
  1085. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/fixtures/grok/pretooluse_grep_safe.json +0 -0
  1086. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/fixtures/grok/pretooluse_mcp.json +0 -0
  1087. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/fixtures/grok/pretooluse_read_secret.json +0 -0
  1088. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/fixtures/grok/pretooluse_unknown_tool.json +0 -0
  1089. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/fixtures/grok/pretooluse_webfetch.json +0 -0
  1090. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/fixtures/grok/user_prompt_submit.json +0 -0
  1091. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/fixtures/guard-red-team/README.md +0 -0
  1092. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/fixtures/guard-red-team/benign-docs-fake-token.py +0 -0
  1093. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/fixtures/guard-red-team/benign-health-endpoint.py +0 -0
  1094. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/fixtures/guard-red-team/benign-nvmrc-fake-creds.py +0 -0
  1095. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/fixtures/guard-red-team/benign-source-search.py +0 -0
  1096. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/fixtures/guard-red-team/canary-exfil-encoded.py +0 -0
  1097. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/fixtures/guard-red-team/canary-exfil.py +0 -0
  1098. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/fixtures/guard-red-team/expected-decisions.json +0 -0
  1099. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/fixtures/guard-red-team/malicious-dockerfile.txt +0 -0
  1100. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/fixtures/guard-red-team/malicious-encoded-shell-exfil.py +0 -0
  1101. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/fixtures/guard-red-team/malicious-github-action.yml +0 -0
  1102. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/fixtures/guard-red-team/malicious-mcp-delete.md +0 -0
  1103. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/fixtures/guard-red-team/malicious-mcp-secret-read.md +0 -0
  1104. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/fixtures/guard-red-team/malicious-mcp-skill-exfil.md +0 -0
  1105. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/fixtures/guard-red-team/malicious-npm-postinstall.js +0 -0
  1106. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/fixtures/guard-red-team/malicious-prompt-env-read.md +0 -0
  1107. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/fixtures/guard-red-team/malicious-prompt-guard-bypass.md +0 -0
  1108. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/fixtures/guard-red-team/malicious-prompt-npmrc-read.md +0 -0
  1109. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/fixtures/guard-red-team/malicious-python-setup.py +0 -0
  1110. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/fixtures/guard-red-team/smoke-evidence-template.json +0 -0
  1111. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/fixtures/hermes-plugin-evil/config.yaml +0 -0
  1112. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/fixtures/hermes-plugin-evil/mcp_servers.json +0 -0
  1113. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/fixtures/hermes-plugin-evil/skills/security/malicious/SKILL.md +0 -0
  1114. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/fixtures/hermes-plugin-evil/skills/stealth/sneaky/SKILL.md +0 -0
  1115. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/fixtures/hermes-plugin-evil/skills/stealth/sneaky/references/api-setup.md +0 -0
  1116. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/fixtures/hermes-plugin-evil/skills/stealth/sneaky/scripts/deploy.sh +0 -0
  1117. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/fixtures/hermes-plugin-evil/skills/utils/benign/SKILL.md +0 -0
  1118. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/fixtures/hook_payloads/README.md +0 -0
  1119. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/fixtures/malformed-json/.codex-plugin/plugin.json +0 -0
  1120. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/fixtures/malicious-skill-plugin/.codex-plugin/plugin.json +0 -0
  1121. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/fixtures/malicious-skill-plugin/.codexignore +0 -0
  1122. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/fixtures/malicious-skill-plugin/LICENSE +0 -0
  1123. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/fixtures/malicious-skill-plugin/README.md +0 -0
  1124. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/fixtures/malicious-skill-plugin/SECURITY.md +0 -0
  1125. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/fixtures/malicious-skill-plugin/skills/leaky-skill/SKILL.md +0 -0
  1126. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/fixtures/mcp-canary-server.py +0 -0
  1127. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/fixtures/minimal-plugin/.codex-plugin/plugin.json +0 -0
  1128. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/fixtures/missing-fields/.codex-plugin/plugin.json +0 -0
  1129. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/fixtures/mit-license/LICENSE +0 -0
  1130. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/fixtures/multi-ecosystem-repo/codex-plugin/.codex-plugin/plugin.json +0 -0
  1131. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/fixtures/multi-ecosystem-repo/codex-plugin/LICENSE +0 -0
  1132. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/fixtures/multi-ecosystem-repo/codex-plugin/README.md +0 -0
  1133. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/fixtures/multi-ecosystem-repo/codex-plugin/SECURITY.md +0 -0
  1134. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/fixtures/multi-ecosystem-repo/gemini-ext/README.md +0 -0
  1135. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/fixtures/multi-ecosystem-repo/gemini-ext/gemini-extension.json +0 -0
  1136. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/fixtures/multi-plugin-repo/.agents/plugins/marketplace.json +0 -0
  1137. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/fixtures/multi-plugin-repo/plugins/alpha-plugin/.codex-plugin/plugin.json +0 -0
  1138. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/fixtures/multi-plugin-repo/plugins/alpha-plugin/.codexignore +0 -0
  1139. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/fixtures/multi-plugin-repo/plugins/alpha-plugin/LICENSE +0 -0
  1140. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/fixtures/multi-plugin-repo/plugins/alpha-plugin/README.md +0 -0
  1141. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/fixtures/multi-plugin-repo/plugins/alpha-plugin/SECURITY.md +0 -0
  1142. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/fixtures/multi-plugin-repo/plugins/alpha-plugin/skills/example/SKILL.md +0 -0
  1143. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/fixtures/multi-plugin-repo/plugins/beta-plugin/.codex-plugin/plugin.json +0 -0
  1144. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/fixtures/multi-plugin-repo/plugins/beta-plugin/skills/example/SKILL.md +0 -0
  1145. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/fixtures/no-version/.codex-plugin/plugin.json +0 -0
  1146. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/fixtures/opencode-good/.opencode/commands/hello.md +0 -0
  1147. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/fixtures/opencode-good/.opencode/plugins/example.ts +0 -0
  1148. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/fixtures/opencode-good/LICENSE +0 -0
  1149. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/fixtures/opencode-good/README.md +0 -0
  1150. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/fixtures/opencode-good/SECURITY.md +0 -0
  1151. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/fixtures/opencode-good/opencode.jsonc +0 -0
  1152. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/fixtures/skills-missing-dir/.codex-plugin/plugin.json +0 -0
  1153. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/fixtures/skills-no-frontmatter/.codex-plugin/plugin.json +0 -0
  1154. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/fixtures/skills-no-frontmatter/skills/bad-skill/SKILL.md +0 -0
  1155. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/fixtures/supply-chain/benign-npm-controls-package.json +0 -0
  1156. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/fixtures/supply-chain/benign-npm-package.json +0 -0
  1157. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/fixtures/supply-chain/benign-pnpm-package.json +0 -0
  1158. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/fixtures/supply-chain/benign-pyproject.toml +0 -0
  1159. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/fixtures/supply-chain/critical-base-image-Dockerfile +0 -0
  1160. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/fixtures/supply-chain/malicious-Dockerfile +0 -0
  1161. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/fixtures/supply-chain/malicious-action.yml +0 -0
  1162. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/fixtures/supply-chain/malicious-npm-env-fs-network-package.json +0 -0
  1163. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/fixtures/supply-chain/malicious-npm-obfuscated-package.json +0 -0
  1164. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/fixtures/supply-chain/malicious-npm-package.json +0 -0
  1165. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/fixtures/supply-chain/malicious-setup.py +0 -0
  1166. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/fixtures/tier2/cargo-safe/Cargo.lock +0 -0
  1167. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/fixtures/tier2/cargo-safe/Cargo.toml +0 -0
  1168. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/fixtures/tier2/cargo-vulnerable/Cargo.lock +0 -0
  1169. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/fixtures/tier2/cargo-vulnerable/Cargo.toml +0 -0
  1170. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/fixtures/tier2/composer-safe/composer.json +0 -0
  1171. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/fixtures/tier2/composer-safe/composer.lock +0 -0
  1172. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/fixtures/tier2/composer-vulnerable/composer.json +0 -0
  1173. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/fixtures/tier2/composer-vulnerable/composer.lock +0 -0
  1174. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/fixtures/tier2/go-safe/go.mod +0 -0
  1175. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/fixtures/tier2/go-vulnerable/go.mod +0 -0
  1176. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/fixtures/tier2/gradle-safe/build.gradle +0 -0
  1177. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/fixtures/tier2/gradle-safe/gradle.lockfile +0 -0
  1178. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/fixtures/tier2/gradle-vulnerable/build.gradle +0 -0
  1179. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/fixtures/tier2/gradle-vulnerable/gradle.lockfile +0 -0
  1180. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/fixtures/tier2/maven-safe/pom.xml +0 -0
  1181. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/fixtures/tier2/maven-vulnerable/pom.xml +0 -0
  1182. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/fixtures/tier2/rubygems-safe/Gemfile +0 -0
  1183. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/fixtures/tier2/rubygems-safe/Gemfile.lock +0 -0
  1184. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/fixtures/tier2/rubygems-vulnerable/Gemfile +0 -0
  1185. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/fixtures/tier2/rubygems-vulnerable/Gemfile.lock +0 -0
  1186. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/fixtures/with-marketplace/.codex-plugin/plugin.json +0 -0
  1187. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/fixtures/with-marketplace/marketplace-broken.json +0 -0
  1188. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/fixtures/with-marketplace/marketplace.json +0 -0
  1189. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/fixtures/zcode/pretooluse_bash.json +0 -0
  1190. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/fixtures/zcode/pretooluse_mcp.json +0 -0
  1191. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/fixtures/zcode/user_prompt_submit.json +0 -0
  1192. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/guard_python_phase12_support.py +0 -0
  1193. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/guard_review_signing_helpers.py +0 -0
  1194. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/guard_tier2_phase13_support.py +0 -0
  1195. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/shim_execution_helpers.py +0 -0
  1196. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/support/keyring.py +0 -0
  1197. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_action_bundle.py +0 -0
  1198. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_action_runner.py +0 -0
  1199. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_aibom_chunking.py +0 -0
  1200. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_best_practices.py +0 -0
  1201. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_cisco_install_surfaces.py +0 -0
  1202. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_claude_daemon_hook_bridge.py +0 -0
  1203. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_cli.py +0 -0
  1204. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_cli_hook_source_ref.py +0 -0
  1205. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_cloud_exception_requests.py +0 -0
  1206. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_cloud_exception_sync_proof.py +0 -0
  1207. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_code_quality.py +0 -0
  1208. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_codex_daemon_hook_bridge.py +0 -0
  1209. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_codex_skill_config.py +0 -0
  1210. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_command_keys_and_uri_schemes.py +0 -0
  1211. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_config.py +0 -0
  1212. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_coverage_remaining.py +0 -0
  1213. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_cursor_adapter.py +0 -0
  1214. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_cursor_completion_gates.py +0 -0
  1215. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_cursor_headless_fixtures.py +0 -0
  1216. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_cursor_local_actions.py +0 -0
  1217. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_dashboard_sync_security.py +0 -0
  1218. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_dashboard_update.py +0 -0
  1219. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_ecosystems.py +0 -0
  1220. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_edge_cases.py +0 -0
  1221. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_final_coverage.py +0 -0
  1222. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_gemini_adapter.py +0 -0
  1223. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_access_graph.py +0 -0
  1224. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_action_identity.py +0 -0
  1225. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_advisory_escalation.py +0 -0
  1226. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_aibom_cli.py +0 -0
  1227. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_aibom_content_upload.py +0 -0
  1228. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_aibom_detection.py +0 -0
  1229. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_aibom_local_trust_coverage.py +0 -0
  1230. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_aibom_serializer_security.py +0 -0
  1231. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_aibom_symlink.py +0 -0
  1232. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_aibom_symlink_negative_matrix.py +0 -0
  1233. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_aibom_trust_metadata.py +0 -0
  1234. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_approval_attention.py +0 -0
  1235. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_approval_continuity.py +0 -0
  1236. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_approval_copy_commands.py +0 -0
  1237. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_approval_store_dedup.py +0 -0
  1238. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_approval_store_phase14.py +0 -0
  1239. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_approval_store_scale.py +0 -0
  1240. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_auto_first_sync.py +0 -0
  1241. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_bootstrap.py +0 -0
  1242. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_bridge.py +0 -0
  1243. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_browser_mcp_intent.py +0 -0
  1244. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_bulk_allow_once.py +0 -0
  1245. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_canary_fixtures.py +0 -0
  1246. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_capabilities.py +0 -0
  1247. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_cisco_evidence.py +0 -0
  1248. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_cisco_runtime_cli.py +0 -0
  1249. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_claude_adapter.py +0 -0
  1250. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_cli_commands_facade.py +0 -0
  1251. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_cloud_exceptions.py +0 -0
  1252. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_cloud_local_sync.py +0 -0
  1253. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_codex_app_server.py +0 -0
  1254. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_codex_auto_resume_smoke.py +0 -0
  1255. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_codex_install.py +0 -0
  1256. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_codex_resume_commands.py +0 -0
  1257. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_codex_resume_endpoints.py +0 -0
  1258. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_command_backup_extensions.py +0 -0
  1259. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_command_capability.py +0 -0
  1260. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_command_cicd_extensions.py +0 -0
  1261. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_command_cloud_extensions.py +0 -0
  1262. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_command_database_extensions.py +0 -0
  1263. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_command_domain_extensions.py +0 -0
  1264. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_command_ecosystem_setup.py +0 -0
  1265. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_command_executors_update.py +0 -0
  1266. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_command_extension_registry.py +0 -0
  1267. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_command_extensions.py +0 -0
  1268. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_command_managed_service_extensions.py +0 -0
  1269. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_command_model.py +0 -0
  1270. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_command_platform_extensions.py +0 -0
  1271. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_command_queue.py +0 -0
  1272. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_command_queue_stale_pending_result.py +0 -0
  1273. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_command_remote_extensions.py +0 -0
  1274. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_command_safe_variants.py +0 -0
  1275. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_command_search_messaging_extensions.py +0 -0
  1276. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_command_snapshot_paging.py +0 -0
  1277. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_command_specialized_variants.py +0 -0
  1278. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_command_storage_extensions.py +0 -0
  1279. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_commands_router.py +0 -0
  1280. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_config_paths.py +0 -0
  1281. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_connect_flow.py +0 -0
  1282. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_consumer_mode.py +0 -0
  1283. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_copilot_adapter.py +0 -0
  1284. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_copilot_proxy.py +0 -0
  1285. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_daemon_cli.py +0 -0
  1286. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_daemon_live_sync_lifecycle.py +0 -0
  1287. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_daemon_manager.py +0 -0
  1288. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_daemon_perf.py +0 -0
  1289. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_daemon_registry.py +0 -0
  1290. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_daemon_repair_perf.py +0 -0
  1291. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_daemon_wake.py +0 -0
  1292. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_daemon_worker_isolation.py +0 -0
  1293. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_data_flow.py +0 -0
  1294. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_desktop_notifications.py +0 -0
  1295. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_detector_fp.py +0 -0
  1296. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_docs.py +0 -0
  1297. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_event_schema_v1.py +0 -0
  1298. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_evidence_api_contract.py +0 -0
  1299. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_evidence_store.py +0 -0
  1300. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_github_command_capabilities.py +0 -0
  1301. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_grok_executable_security.py +0 -0
  1302. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_grok_protection.py +0 -0
  1303. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_harness_contracts.py +0 -0
  1304. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_harness_setup.py +0 -0
  1305. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_harness_smoke.py +0 -0
  1306. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_headless_daemon_api.py +0 -0
  1307. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_hook_payload_reference.py +0 -0
  1308. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_hook_worker.py +0 -0
  1309. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_hosted_dashboard_origin_blocklist.py +0 -0
  1310. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_init.py +0 -0
  1311. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_insights.py +0 -0
  1312. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_install_workspace.py +0 -0
  1313. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_inventory_cisco.py +0 -0
  1314. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_inventory_cisco_cloud_authority.py +0 -0
  1315. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_inventory_contract.py +0 -0
  1316. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_js_lab_phase11.py +0 -0
  1317. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_js_lockfile_resolution_phase11.py +0 -0
  1318. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_js_package_intent_phase11.py +0 -0
  1319. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_js_semver_phase11.py +0 -0
  1320. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_js_supply_chain_phase11.py +0 -0
  1321. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_kubernetes_runtime.py +0 -0
  1322. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_legacy_token_fixtures.py +0 -0
  1323. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_live_request_outbox.py +0 -0
  1324. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_live_request_sync.py +0 -0
  1325. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_local_supply_chain_audit_phase16.py +0 -0
  1326. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_manifest_path_traversal.py +0 -0
  1327. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_mcp_contract.py +0 -0
  1328. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_mcp_detectors.py +0 -0
  1329. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_mcp_sanitization.py +0 -0
  1330. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_mdm_cli.py +0 -0
  1331. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_mdm_lifecycle.py +0 -0
  1332. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_mdm_manifest.py +0 -0
  1333. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_mdm_native.py +0 -0
  1334. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_mdm_network.py +0 -0
  1335. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_mdm_policy.py +0 -0
  1336. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_memory_decision_event.py +0 -0
  1337. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_memory_decision_outbox.py +0 -0
  1338. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_oauth_client.py +0 -0
  1339. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_oauth_device_connect.py +0 -0
  1340. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_oauth_reconnect.py +0 -0
  1341. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_opencode_proxy.py +0 -0
  1342. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_package_execution_policy.py +0 -0
  1343. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_package_firewall_entitlement.py +0 -0
  1344. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_package_firewall_reuse_proof.py +0 -0
  1345. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_package_intent.py +0 -0
  1346. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_package_resume_phase14.py +0 -0
  1347. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_package_runner_identity.py +0 -0
  1348. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_package_shims_cli.py +0 -0
  1349. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_package_support_matrix.py +0 -0
  1350. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_phase03_local_install.py +0 -0
  1351. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_phase03_remainder.py +0 -0
  1352. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_phase04_failure_modes.py +0 -0
  1353. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_phase04_harness_contracts.py +0 -0
  1354. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_phase04_install_reason_proofs.py +0 -0
  1355. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_phase05_manager_coverage.py +0 -0
  1356. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_phase06_workspace_audit.py +0 -0
  1357. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_phase07_entitlement_daemon_security.py +0 -0
  1358. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_phase07_harness_coverage_matrix.py +0 -0
  1359. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_phase11_package_firewall_receipts.py +0 -0
  1360. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_phase11_package_firewall_status.py +0 -0
  1361. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_policy_bundle_browser_scopes.py +0 -0
  1362. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_policy_integrity.py +0 -0
  1363. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_policy_source_context.py +0 -0
  1364. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_product_model_contracts.py +0 -0
  1365. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_prompt_injection.py +0 -0
  1366. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_protect_package_spec_parsing.py +0 -0
  1367. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_provenance.py +0 -0
  1368. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_proxy_env_scrubbing.py +0 -0
  1369. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_python_lab_phase12.py +0 -0
  1370. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_python_package_hook_phase12.py +0 -0
  1371. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_python_package_intent_phase12.py +0 -0
  1372. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_python_supply_chain_heuristics_phase12.py +0 -0
  1373. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_python_supply_chain_phase12.py +0 -0
  1374. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_queue_api_contract.py +0 -0
  1375. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_queue_contract.py +0 -0
  1376. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_receipt_command_detail_backfill.py +0 -0
  1377. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_receipt_p5_fields.py +0 -0
  1378. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_receipt_persistence.py +0 -0
  1379. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_receipt_redaction_cursor.py +0 -0
  1380. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_receipt_redaction_level.py +0 -0
  1381. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_red_team.py +0 -0
  1382. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_red_team_e2e.py +0 -0
  1383. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_redaction.py +0 -0
  1384. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_registry_broker_skills_canaries.py +0 -0
  1385. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_remote_pair_flow.py +0 -0
  1386. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_remote_pair_proof.py +0 -0
  1387. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_resolution_copy.py +0 -0
  1388. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_runtime_action_harnesses.py +0 -0
  1389. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_runtime_actions.py +0 -0
  1390. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_runtime_actions_phase14.py +0 -0
  1391. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_runtime_decisions.py +0 -0
  1392. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_runtime_signals.py +0 -0
  1393. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_safe_decode.py +0 -0
  1394. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_sandbox.py +0 -0
  1395. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_settings_api.py +0 -0
  1396. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_settings_presets.py +0 -0
  1397. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_shell_command_wrappers.py +0 -0
  1398. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_shim_profile.py +0 -0
  1399. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_shim_truth.py +0 -0
  1400. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_skill_document_evidence.py +0 -0
  1401. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_skill_protection.py +0 -0
  1402. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_skill_protection_phase14.py +0 -0
  1403. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_source_search_redaction.py +0 -0
  1404. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_source_view_secret_fixtures.py +0 -0
  1405. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_stable_digest.py +0 -0
  1406. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_supply_chain.py +0 -0
  1407. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_supply_chain_bundle.py +0 -0
  1408. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_supply_chain_daemon.py +0 -0
  1409. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_supply_chain_decision_contract.py +0 -0
  1410. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_supply_chain_disclosure_reasons.py +0 -0
  1411. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_supply_chain_sync.py +0 -0
  1412. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_surface_server.py +0 -0
  1413. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_sync_http_error_message.py +0 -0
  1414. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_threat_intel.py +0 -0
  1415. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_tier2_labs_phase13.py +0 -0
  1416. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_tier2_package_intent_phase13.py +0 -0
  1417. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_tier2_supply_chain_phase13.py +0 -0
  1418. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_trust_attestation_boundary.py +0 -0
  1419. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_trust_cli_passive_backend.py +0 -0
  1420. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_uninstall_commands.py +0 -0
  1421. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_guard_web_recovery.py +0 -0
  1422. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_harness_attribution.py +0 -0
  1423. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_hermes_adapter.py +0 -0
  1424. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_hook_content_scanner.py +0 -0
  1425. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_hook_decision_cache.py +0 -0
  1426. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_hook_enrichment_queue.py +0 -0
  1427. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_hook_metrics.py +0 -0
  1428. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_hook_review_engine.py +0 -0
  1429. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_hook_review_types.py +0 -0
  1430. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_hook_security_regressions.py +0 -0
  1431. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_hook_source_paths.py +0 -0
  1432. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_hook_source_read_fast_path.py +0 -0
  1433. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_insights_share.py +0 -0
  1434. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_install_integrity.py +0 -0
  1435. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_integration.py +0 -0
  1436. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_interpreter_options.py +0 -0
  1437. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_inventory_item_description.py +0 -0
  1438. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_kimi_adapter.py +0 -0
  1439. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_lint_fixes.py +0 -0
  1440. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_live_cisco_smoke.py +0 -0
  1441. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_manifest.py +0 -0
  1442. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_marketplace.py +0 -0
  1443. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_mcp_security.py +0 -0
  1444. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_mcp_tool_call_raw_command_text.py +0 -0
  1445. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_multi_source_connect.py +0 -0
  1446. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_openclaw_adapter.py +0 -0
  1447. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_opencode_adapter.py +0 -0
  1448. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_opencode_hook_python.py +0 -0
  1449. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_opencode_pretool.py +0 -0
  1450. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_operational_security.py +0 -0
  1451. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_pi_adapter.py +0 -0
  1452. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_pi_managed_extension_prune.py +0 -0
  1453. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_policy.py +0 -0
  1454. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_policy_bundle_parser.py +0 -0
  1455. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_policy_decision_source_context.py +0 -0
  1456. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_pr_testpypi_canary_workflow.py +0 -0
  1457. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_privileged_workflow_policy.py +0 -0
  1458. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_quality_artifact.py +0 -0
  1459. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_raw_command_text.py +0 -0
  1460. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_release_toolchain_sbom.py +0 -0
  1461. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_rule_registry.py +0 -0
  1462. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_scanner.py +0 -0
  1463. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_schema_contracts.py +0 -0
  1464. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_security.py +0 -0
  1465. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_security_ops.py +0 -0
  1466. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_shim_probe_security.py +0 -0
  1467. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_skill_security.py +0 -0
  1468. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_skill_uri_blocking.py +0 -0
  1469. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_submission.py +0 -0
  1470. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_sync_repo_version.py +0 -0
  1471. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_trust_scoring.py +0 -0
  1472. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_trust_specs.py +0 -0
  1473. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_verification.py +0 -0
  1474. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_versioning.py +0 -0
  1475. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_zcode_adapter.py +0 -0
  1476. {plugin_scanner-2.0.1113 → plugin_scanner-2.0.1115}/tests/test_zcode_mcp.py +0 -0
@@ -0,0 +1,954 @@
1
+ Metadata-Version: 2.4
2
+ Name: plugin-scanner
3
+ Version: 2.0.1115
4
+ Summary: Lint, verify, and gate plugin ecosystems for maintainers, CI, and publish workflows.
5
+ Project-URL: Homepage, https://hol.org/guard
6
+ Project-URL: Documentation, https://github.com/hashgraph-online/hol-guard/tree/main/docs/guard
7
+ Project-URL: Repository, https://github.com/hashgraph-online/hol-guard
8
+ Project-URL: Issues, https://github.com/hashgraph-online/hol-guard/issues
9
+ Project-URL: Changelog, https://github.com/hashgraph-online/hol-guard/releases
10
+ Author-email: HOL <support@hol.org>
11
+ License-Expression: Apache-2.0
12
+ License-File: LICENSE
13
+ Keywords: ai agent security,ai agents,ai antivirus,claude,cli,codex,cursor,gemini,mcp security,opencode,plugin security,prompt injection,runtime security,secrets detection,supply chain security
14
+ Classifier: Development Status :: 5 - Production/Stable
15
+ Classifier: Environment :: Console
16
+ Classifier: Intended Audience :: Developers
17
+ Classifier: License :: OSI Approved :: Apache Software License
18
+ Classifier: Programming Language :: Python :: 3
19
+ Classifier: Programming Language :: Python :: 3.10
20
+ Classifier: Programming Language :: Python :: 3.11
21
+ Classifier: Programming Language :: Python :: 3.12
22
+ Classifier: Programming Language :: Python :: 3.13
23
+ Classifier: Programming Language :: Python :: 3.14
24
+ Classifier: Topic :: Security
25
+ Classifier: Topic :: Software Development :: Quality Assurance
26
+ Requires-Python: >=3.10
27
+ Requires-Dist: cisco-ai-skill-scanner~=2.0.11; python_version < '3.14'
28
+ Requires-Dist: cryptography>=49.0.0
29
+ Requires-Dist: keyring>=25.0
30
+ Requires-Dist: mcp<2,>=1.28.1; python_version >= '3.10'
31
+ Requires-Dist: packaging>=24.0
32
+ Requires-Dist: requests<3,>=2.32
33
+ Requires-Dist: rich<15,>=14.0
34
+ Requires-Dist: tomli>=2.0; python_version < '3.11'
35
+ Provides-Extra: cisco
36
+ Requires-Dist: litellm==1.91.3; (python_version >= '3.11' and python_version < '3.14') and extra == 'cisco'
37
+ Provides-Extra: dev
38
+ Requires-Dist: basedpyright>=1.39.8; extra == 'dev'
39
+ Requires-Dist: build>=1.5.0; extra == 'dev'
40
+ Requires-Dist: jsonschema>=4.26.0; extra == 'dev'
41
+ Requires-Dist: pytest-cov>=7.1.0; extra == 'dev'
42
+ Requires-Dist: pytest>=9.0.3; extra == 'dev'
43
+ Requires-Dist: pyyaml>=6.0.3; extra == 'dev'
44
+ Requires-Dist: ruff>=0.15.15; extra == 'dev'
45
+ Provides-Extra: mdm-build
46
+ Requires-Dist: pyinstaller<7,>=6.16; extra == 'mdm-build'
47
+ Provides-Extra: publish
48
+ Requires-Dist: twine>=6.2.0; extra == 'publish'
49
+ Description-Content-Type: text/markdown
50
+
51
+ # HOL Guard: Open-Source Antivirus for AI Agents
52
+
53
+ [![HOL Guard Version](https://img.shields.io/pypi/v/hol-guard.svg?logo=pypi&logoColor=white&cacheSeconds=300)](https://pypi.org/project/hol-guard/)
54
+ [![Plugin Scanner Version](https://img.shields.io/pypi/v/plugin-scanner.svg?logo=pypi&logoColor=white&cacheSeconds=300)](https://pypi.org/project/plugin-scanner/)
55
+ [![HOL Guard Downloads](https://img.shields.io/pypi/dm/hol-guard?logo=pypi&logoColor=white)](https://pypi.org/project/hol-guard/)
56
+ [![Plugin Scanner Downloads](https://img.shields.io/pypi/dm/plugin-scanner?logo=pypi&logoColor=white)](https://pypi.org/project/plugin-scanner/)
57
+ [![Python 3.10+](https://img.shields.io/badge/python-3.10%2B-3776AB?logo=python&logoColor=white)](#install-the-package-you-need)
58
+ [![CI](https://img.shields.io/github/actions/workflow/status/hashgraph-online/hol-guard/ci.yml?branch=main&label=CI&logo=githubactions&logoColor=white)](https://github.com/hashgraph-online/hol-guard/actions/workflows/ci.yml)
59
+ [![Publish](https://img.shields.io/github/actions/workflow/status/hashgraph-online/hol-guard/publish.yml?branch=main&label=Publish&logo=githubactions&logoColor=white)](https://github.com/hashgraph-online/hol-guard/actions/workflows/publish.yml)
60
+ [![Container Image](https://img.shields.io/badge/ghcr-hol--guard-2496ED?logo=docker&logoColor=white)](https://github.com/hashgraph-online/hol-guard/pkgs/container/hol-guard)
61
+ [![OpenSSF Scorecard](https://api.scorecard.dev/projects/github.com/hashgraph-online/hol-guard/badge)](https://scorecard.dev/viewer/?uri=github.com/hashgraph-online/hol-guard)
62
+ [![License](https://img.shields.io/badge/license-Apache--2.0-blue.svg)](./LICENSE)
63
+ [![GitHub Stars](https://img.shields.io/github/stars/hashgraph-online/hol-guard?style=social)](https://github.com/hashgraph-online/hol-guard/stargazers)
64
+ [![Lint: ruff](https://img.shields.io/badge/lint-ruff-D7FF64.svg)](https://github.com/astral-sh/ruff)
65
+
66
+ | ![HOL whole dark logo](https://hol.org/brand/Logo_Whole_Dark.png) | **Stop risky AI actions before they compromise your machine.** HOL Guard is a local-first security layer for AI agents, tools, plugins, skills, MCP servers, and package installs.<br><br>[Install HOL Guard](https://hol.org/guard/activate)<br>[Read the documentation](https://github.com/hashgraph-online/hol-guard/blob/main/docs/guard/get-started.md)<br>[PyPI Package (`hol-guard`)](https://pypi.org/project/hol-guard/)<br>[Report an Issue](https://github.com/hashgraph-online/hol-guard/issues) |
67
+ | :--- | :--- |
68
+
69
+ HOL Guard brings antivirus-style runtime protection to AI agents. It evaluates supported agent actions and local artifacts for secret exposure, prompt injection, unsafe commands, malicious packages, and MCP risks. Guard can allow safe work, block known threats, pause ambiguous actions for approval, and record security receipts for later review.
70
+
71
+ Use HOL Guard locally without a cloud account. Connect Guard Cloud when you want synchronized evidence, team policies, fleet visibility, and shared approval workflows.
72
+
73
+ ## Install HOL Guard
74
+
75
+ ```bash
76
+ pipx install hol-guard
77
+ hol-guard init
78
+ ```
79
+
80
+ `hol-guard init` discovers compatible AI agents, explains each setup change before applying it, and guides you through your first protected action.
81
+
82
+ [Install guide](https://github.com/hashgraph-online/hol-guard/blob/main/docs/guard/get-started.md) · [Supported agents](https://github.com/hashgraph-online/hol-guard/blob/main/docs/guard/harness-support.md) · [Local vs. cloud](https://github.com/hashgraph-online/hol-guard/blob/main/docs/guard/local-vs-cloud.md) · [Security policy](https://github.com/hashgraph-online/hol-guard/blob/main/SECURITY.md)
83
+
84
+ ## What HOL Guard Protects
85
+
86
+ | Threat surface | Guard protection |
87
+ | :--- | :--- |
88
+ | **Agent tool calls** | Evaluates supported shell, file, MCP, prompt, and tool-result events through native hooks, managed proxies, or reversible launch overlays. |
89
+ | **Secrets and credentials** | Detects sensitive file access, credential-shaped output, staged exfiltration, and suspicious outbound commands. |
90
+ | **AI supply chain** | Reviews package installs, plugins, skills, MCP servers, hooks, and agent configuration before trust is granted. |
91
+ | **Prompt injection** | For adapters that expose prompt events, screens prompt and tool intent for instructions that attempt to expose secrets, evade controls, or trigger destructive behavior. |
92
+ | **Human approval** | Routes ambiguous actions to native prompts, the local approval center, or Guard Cloud according to the active policy. |
93
+ | **Security evidence** | Records attributable receipts and inventory changes so decisions can be reviewed, explained, and synchronized. |
94
+
95
+ Guard prefers the strongest integration each agent exposes. Enforcement depth varies by agent and event type; see the [support matrix](https://github.com/hashgraph-online/hol-guard/blob/main/docs/guard/harness-support.md) for the exact current contract.
96
+
97
+ ## Supported AI Agents
98
+
99
+ HOL Guard currently integrates with Codex, Claude Code, GitHub Copilot CLI, Cursor, Gemini CLI, Hermes, OpenClaw, OpenCode, Antigravity, Kimi Code, Grok, Pi / oh-my-pi, and ZCode.
100
+
101
+ These developer agents are Guard's deepest integrations today, but the product boundary is broader: the same policy, supply-chain, approval, and evidence layers are designed to protect AI agents and their local tool ecosystems as new adapters are added.
102
+
103
+ ## Why HOL Guard
104
+
105
+ Most security tools see only one part of an AI agent's attack surface. Code scanners run after files change. Sandboxes constrain a process but do not understand agent intent. MCP gateways see MCP traffic but not local shell commands, package installs, skills, hooks, or agent configuration.
106
+
107
+ HOL Guard combines those signals at the local runtime boundary. It discovers the agent and its tools, evaluates supported actions against one policy, requests human approval only when needed, and records the resulting decision. The goal is practical protection without turning ordinary AI-assisted work into a stream of prompts.
108
+
109
+ ## Choose the Right Package
110
+
111
+ | If you want to... | Install | Start with |
112
+ | :--- | :--- | :--- |
113
+ | protect AI agents and their local runtime | `hol-guard` | `hol-guard init` |
114
+ | lint and verify plugins, skills, MCP servers, and marketplace packages in CI | `plugin-scanner` | `plugin-scanner verify .` |
115
+
116
+ `hol-guard` is the end-user antivirus and runtime protection product. `plugin-scanner` is the maintainer and CI companion for analyzing agent ecosystem packages before release.
117
+
118
+ ## Guard Operations
119
+
120
+ To update an existing pipx install from PyPI:
121
+
122
+ ```bash
123
+ pipx upgrade hol-guard
124
+ ```
125
+
126
+ If you installed Guard with pipx, verify the active user command before testing local flows:
127
+
128
+ ```bash
129
+ command -v hol-guard
130
+ hol-guard --version
131
+ ```
132
+
133
+ For a local wheel build, install into the pipx-managed `hol-guard` environment. Do not test with `PYTHONPATH=src`; that bypasses the same package path users run.
134
+
135
+ ```bash
136
+ python3 -m build --wheel
137
+ hol-guard update --wheel dist
138
+ hol-guard --version
139
+ ```
140
+
141
+ `hol-guard update --wheel` accepts either a specific `.whl` file or a directory and picks the newest matching `hol_guard-*.whl`.
142
+
143
+ To force a specific release, use Python package specifier syntax:
144
+
145
+ ```bash
146
+ pipx install --force 'hol-guard==2.0.345'
147
+ ```
148
+
149
+ Do not use `hol-guard@<version>`; pipx treats that as a separate app name, not a package version.
150
+
151
+ `hol-guard init` is the first-run guided setup. It shows a progressive plan first, then gates each side effect: approve dashboard, Guard completes it, then approve app protection, Guard completes it, then approve Cloud connect and notifications. Nothing opens or changes until you approve that checkpoint. Use `hol-guard init --yes` only for automation when you already trust the plan.
152
+
153
+ Manual and follow-up commands:
154
+
155
+ ```bash
156
+ pipx run hol-guard bootstrap
157
+ pipx run hol-guard hermes bootstrap
158
+ pipx run hol-guard run codex --dry-run
159
+ pipx run hol-guard run codex
160
+ pipx run hol-guard approvals
161
+ pipx run hol-guard receipts
162
+ pipx run hol-guard status
163
+ pipx run hol-guard connect
164
+ pipx run hol-guard connect status
165
+ pipx run hol-guard connect repair
166
+ pipx run hol-guard sync
167
+ pipx run hol-guard supply-chain sync
168
+ pipx run hol-guard supply-chain scan
169
+ pipx run hol-guard supply-chain explain minimist@1.2.5 --ecosystem npm
170
+ pipx run hol-guard explain install-connect
171
+ pipx run hol-guard command test 'git reset --hard HEAD~1'
172
+ pipx run hol-guard command explain 'grep "rm -rf|git clean" README.md'
173
+ pipx run hol-guard command extensions
174
+ ```
175
+
176
+ What you get from Guard:
177
+
178
+ - Detects supported AI agent configuration on your machine
179
+ - Records a baseline before you trust a tool
180
+ - Pauses cleanly on new or changed artifacts before launch
181
+ - Queues blocked changes in a localhost approval center when the harness cannot prompt inline
182
+ - Stores receipts locally so you can review decisions later
183
+ - Keeps sync optional until you actually want shared history
184
+
185
+ See [docs/guard/get-started.md](docs/guard/get-started.md) for the full local flow.
186
+
187
+ ### Inspect command protection without running it
188
+
189
+ Command safety extensions make Guard's shell, Git, filesystem, system, Windows, data-protection, container,
190
+ Kubernetes, encoded-execution, and self-protection behavior inspectable. Required core extensions cannot be mistaken
191
+ for optional integrations. They are built-in capability boundaries over the same parser used by harness hooks, not
192
+ downloadable regex bundles.
193
+
194
+ Each extension publishes stable rule IDs and structured rule metadata. Command inspection also returns a canonical,
195
+ side-effect-free parse model with wrapper, pipeline, environment-override, provenance, and confidence details so
196
+ automation can distinguish exact parsing from malformed or unsupported input.
197
+
198
+ Use `command test` for a concise classification and `command explain` for the complete evaluation trace. Both are
199
+ side-effect free: they do not execute the command, evaluate final policy, create an approval, or record a receipt.
200
+ Use `--json` for a stable automation contract.
201
+
202
+ ```bash
203
+ hol-guard command test 'rm -rf ./build'
204
+ hol-guard command explain 'grep "rm -rf|git clean" README.md'
205
+ hol-guard command extensions command.git --json
206
+ ```
207
+
208
+ Structured core rules preserve every match in a compound command. A Git preview such as `git clean -ndx` remains
209
+ safe, while an unrelated destructive segment still produces review. New structured coverage feeds the same runtime
210
+ artifact and policy pipeline as existing command classifications.
211
+
212
+ <details>
213
+ <summary>Guard commands at a glance</summary>
214
+
215
+ - `hol-guard start`
216
+ Shows the next step for the harnesses Guard found.
217
+ - `hol-guard init`
218
+ Runs first-run onboarding as approval checkpoints: local dashboard, harness discovery and install, optional Guard Cloud connect, and desktop notification setup.
219
+ - `hol-guard bootstrap`
220
+ Detects the best local harness, starts the approval center, and installs Guard in front of it.
221
+ - `hol-guard hermes bootstrap`
222
+ Installs the Guard-managed Hermes overlay bundle directly.
223
+ - `hol-guard status`
224
+ Shows what Guard is watching now.
225
+ - `hol-guard install <harness>`
226
+ Creates the launcher shim for that harness.
227
+ - `hol-guard uninstall --self`
228
+ Removes Guard-managed harness wiring, package shims, local Guard state, and uninstalls the current `hol-guard` package.
229
+ - `hol-guard update`
230
+ Updates the installed `hol-guard` package in the current environment.
231
+ - `hol-guard run <harness> --dry-run`
232
+ Records the current state once before you trust it.
233
+ - `hol-guard run <harness>`
234
+ Reviews changes before launch and hands blocked sessions to the approval center when needed.
235
+ - `hol-guard approvals`
236
+ Lists pending approvals or resolves them from the terminal.
237
+ - `hol-guard receipts`
238
+ Shows local approval and block history.
239
+
240
+ </details>
241
+
242
+ <details>
243
+ <summary>Harness approval strategy</summary>
244
+
245
+ - `claude-code`
246
+ Guard prefers Claude hooks first, then the local approval center when the shell cannot prompt.
247
+ - `copilot`
248
+ Guard can wrap the `copilot` CLI, detect `~/.copilot/config.json`, `~/.copilot/mcp-config.json`, workspace `.vscode/mcp.json`, and install Guard-managed Copilot hook wiring for documented `preToolUse` and `postToolUse` events.
249
+ Guard does not treat a VS Code Copilot inline permission sheet by itself as proof of Guard interception; current proof should come from Guard hook responses, Guard receipts, or an MCP client that explicitly answers Guard elicitation.
250
+ - `codex`
251
+ Guard asks inline in the same Codex chat when the interactive CLI or Codex App can answer MCP elicitations, and falls back to the local approval center only for `codex exec` or any other nonresponsive session. When Guard has the right Codex thread binding, approving or blocking in the browser resumes the same Codex thread with HOL Guard-branded continuation copy. Live app-server sessions continue in place, and headless `codex exec` sessions resume through `codex exec resume` with the exact blocked command context. If the session cannot be identified, Guard says so plainly and tells you the manual next step instead of pretending it resumed.
252
+ - `cursor`
253
+ Guard respects Cursor’s native tool approval and focuses on artifact trust before launch.
254
+ - `opencode`
255
+ Guard authors package-level policy while OpenCode keeps native once, always, or reject prompts for managed MCP tools.
256
+ - `kimi`
257
+ Guard installs managed `PreToolUse` and `UserPromptSubmit` hooks in `~/.kimi-code/config.toml`, blocks with exit code `2` and a JSON `permissionDecision: "deny"` response, and fails open on hook crash or timeout.
258
+ - `grok`
259
+ Guard installs managed Grok hook JSON under `~/.grok/hooks/` plus permission deny rules in `~/.grok/managed_config.toml`, blocks with exit code `2` and a Grok-native `{"decision":"deny"}` response, never reads `~/.grok/auth`, and launches only a trusted absolute Grok executable. Custom install roots can be selected once with `hol-guard run grok --grok-executable /absolute/path/to/grok`.
260
+ - `pi`
261
+ Guard scans `~/.pi/agent/` and project `.pi/` packages, extensions, skills, prompts, and themes; installs a managed Pi extension that reviews `input` and `tool_call` events inline; and blocks with a Pi-native `{"decision":"deny"}` response when Guard policy says no.
262
+ - `zcode`
263
+ Guard detects `~/.zcode/cli/config.json`, configured MCP servers, enabled plugins, the plugin cache, and plugin manifests; installs managed `PreToolUse` and `UserPromptSubmit` hooks in the config `hooks` section without touching user `mcp` or `plugins`; and blocks with exit code `2` and a `permissionDecision: "deny"` response.
264
+ - `hermes`
265
+ Guard installs a managed Hermes overlay bundle, routes MCP servers through Guard proxies, and prefers native-or-center delivery for blocked requests.
266
+ - `gemini`
267
+ Guard scans extensions and falls back to the local approval center for blocked changes.
268
+
269
+ </details>
270
+
271
+ ## Guard: Protection Levels
272
+
273
+ HOL Guard is antivirus for AI agents. It evaluates supported runtime events and local artifacts, then applies the active policy before execution where the agent provides a pre-action boundary. Other integrations use native approval, managed proxy, launch-time, or post-action evidence surfaces according to the [support matrix](https://github.com/hashgraph-online/hol-guard/blob/main/docs/guard/harness-support.md).
274
+
275
+ Choose a protection level with `hol-guard settings set security-level <level>`:
276
+
277
+ | Level | Who it's for | What it blocks |
278
+ | :--- | :--- | :--- |
279
+ | **Gentle** | Teams who want minimal friction; experienced users | High-confidence secrets and clear exfil only |
280
+ | **Balanced** | Most users (default) | Secrets, shell exfil, prompt injections, supply-chain hooks |
281
+ | **Strict** | Security-conscious teams | Everything above plus low-confidence signals and untrusted prompts |
282
+ | **Paranoid** | High-security environments | All the above plus any unrecognized MCP server action |
283
+
284
+ If you are unsure, start with **Balanced**. You can promote to **Strict** after reviewing your first week of receipts.
285
+
286
+ ## Guard: Troubleshooting
287
+
288
+ ### Why was my command paused?
289
+
290
+ Guard paused a command because one or more detectors fired. To see exactly what triggered:
291
+
292
+ ```bash
293
+ hol-guard receipts # review recent decisions
294
+ hol-guard doctor # run a probe and see which detectors are active
295
+ hol-guard doctor --perf # include per-detector timing
296
+ ```
297
+
298
+ If the block looks like a false positive, you can approve it from the receipts view or from the dashboard at `http://localhost:6174`.
299
+
300
+ ### How do I clear approvals?
301
+
302
+ From the terminal:
303
+
304
+ ```bash
305
+ hol-guard approvals # list pending approvals
306
+ hol-guard approvals clear # clear all pending approvals (prompts for confirmation)
307
+ ```
308
+
309
+ From the dashboard: open `http://localhost:6174`, go to the **Approval Center**, and use the **Clear all** button. You will be asked to confirm before any approvals are removed.
310
+
311
+ ### How do I require human proof before saved approvals?
312
+
313
+ Enable the local approval gate when saved allow decisions, global trust, policy clears, or settings changes should require a human password before Guard persists them:
314
+
315
+ ```bash
316
+ hol-guard settings approval-password enable \
317
+ --new-password '<password>' \
318
+ --confirm-password '<password>' \
319
+ --cooldown-seconds 900
320
+ hol-guard settings approval-password status
321
+ ```
322
+
323
+ Use cooldown only for ordinary non-global allow decisions. Guard still requires fresh proof for global allow, policy clear, settings import/reset, disabling the gate, disabling TOTP, and recovery. When TOTP is enabled, it replaces password proof and cooldown is disabled, so every protected action requires a current authenticator code. To unlock or lock the current password-only approval window from a terminal:
324
+
325
+ ```bash
326
+ hol-guard approvals unlock --duration 15m
327
+ hol-guard approvals lock
328
+ ```
329
+
330
+ For Google Authenticator-compatible second-factor proof, enroll TOTP after the password gate is enabled:
331
+
332
+ ```bash
333
+ hol-guard settings approval-totp enroll --current-password '<password>' --device-label '<device>'
334
+ hol-guard settings approval-totp verify --current-password '<password>' --code 123456
335
+ hol-guard settings approval-totp status
336
+ ```
337
+
338
+ TOTP uses SHA-1, 6 digits, 30-second steps, and a Base32 `otpauth://totp/HOL%20Guard:<device>` provisioning URI. Guard stores the seed encrypted locally, rejects replayed steps, and never includes the seed in settings export, receipts, or public status. When TOTP is enabled, disabling TOTP or the password gate requires a current authenticator code instead of the password.
339
+
340
+ Approval proof creates only a 30-second, transaction-local grant for the exact action, scope, subject, and session nonce being processed. The grant is never returned to the browser or reused as a general login session. Guard tracks password and authenticator failures independently and locks the active factor after five failed attempts; rotating either factor revokes outstanding grants and any saved recovery, session, or trusted-device state.
341
+
342
+ ## Guard: Advisory Sync Privacy
343
+
344
+ Guard's advisory database updates are optional and pull-only. When you run `hol-guard advisories sync`, Guard fetches a signed advisory list from `advisories.hol.org`. No local file paths, harness configs, receipt data, or workspace identifiers are sent to any server during sync.
345
+
346
+ Advisory sync requires a HOL Guard Cloud account. If you have not signed in, sync is skipped and Guard continues using the locally bundled advisory database. Run `hol-guard connect` to connect a free account, or `hol-guard connect --headless` on SSH/CI hosts.
347
+
348
+ ## Scanner Quickstart
349
+
350
+ ```bash
351
+ pipx install plugin-scanner
352
+ plugin-scanner lint .
353
+ plugin-scanner verify .
354
+ ```
355
+
356
+ ```yaml
357
+ # GitHub Actions PR gate
358
+ - name: AI plugin quality gate
359
+ uses: hashgraph-online/ai-plugin-scanner-action@v1
360
+ with:
361
+ plugin_dir: "."
362
+ fail_on_severity: high
363
+ min_score: 80
364
+ ```
365
+
366
+ When to add `plugin-scanner`:
367
+
368
+ - You publish plugins, skills, or marketplace packages
369
+ - You want a CI gate before release
370
+ - You need SARIF, verification payloads, or submission artifacts
371
+
372
+ If your repository uses a Codex marketplace root like `.agents/plugins/marketplace.json`, keep `plugin_dir: "."`. The scanner will discover local `./plugins/...` entries automatically, scan each local plugin manifest, and skip remote marketplace entries instead of treating the repo root as a single plugin.
373
+
374
+ ## Need More Detail?
375
+
376
+ - Contributor setup: jump to [Development](#development)
377
+ - Local Guard docs: [docs/guard/get-started.md](docs/guard/get-started.md)
378
+ - GitHub Action docs: [hashgraph-online/ai-plugin-scanner-action](https://github.com/hashgraph-online/ai-plugin-scanner-action)
379
+ - Registry and trust references: keep reading below
380
+
381
+ <details>
382
+ <summary>Scanner reference: trust scoring, installs, ecosystems, and CLI commands</summary>
383
+
384
+ ## How Trust Scoring Works
385
+
386
+ The scanner now emits explicit trust provenance alongside the quality grade:
387
+
388
+ - bundled skills use the published HCS-28 baseline adapter ids, weights, and denominator rules directly
389
+ - MCP configuration trust uses the same HCS-style adapter, weight, and contribution-mode pattern locally
390
+ - top-level Codex plugin trust uses the same HCS-style adapter, weight, and contribution-mode pattern locally
391
+
392
+ Current local specs:
393
+
394
+ - [Skill Trust Local Draft](docs/trust/skill-trust-local.md)
395
+ - [MCP Trust Draft](docs/trust/mcp-trust-draft.md)
396
+ - [Codex Plugin Trust Draft](docs/trust/plugin-trust-draft.md)
397
+
398
+ This keeps the quality grade and the trust score separate. Signals like `SECURITY.md` remain visible, but their weight is now a named adapter weight rather than an inferred side effect of raw category points.
399
+
400
+ ## Quick Start For Contributors
401
+
402
+ ```bash
403
+ git clone https://github.com/hashgraph-online/hol-guard.git
404
+ cd hol-guard
405
+ uv sync --extra dev --extra cisco --group cisco-mcp
406
+ pytest -q
407
+ ```
408
+
409
+ Use `uv sync --extra dev --python 3.10` when you need the lean baseline path without the Cisco MCP extra.
410
+
411
+ ## Install The Package You Need
412
+
413
+ ### Lean baseline install
414
+
415
+ Guard package:
416
+
417
+ ```bash
418
+ pip install hol-guard
419
+ ```
420
+
421
+ Scanner package:
422
+
423
+ ```bash
424
+ pip install plugin-scanner
425
+ ```
426
+
427
+ The lean baseline keeps Python 3.10+ support intact. It includes the shipped `cisco-ai-skill-scanner` integration on Python 3.10 through 3.13; on Python 3.14+ Guard installs without the LiteLLM-dependent Cisco scanner path and reports Cisco evidence as unavailable until patched LiteLLM releases support that runtime.
428
+
429
+ ### Resolver-safe Cisco extra
430
+
431
+ Install the Cisco extra on Python 3.11 through 3.13 when you want the Cisco-compatible LiteLLM pin in addition to the baseline skill scanner:
432
+
433
+ ```bash
434
+ pip install "hol-guard[cisco]"
435
+ ```
436
+
437
+ ```bash
438
+ pip install "plugin-scanner[cisco]"
439
+ ```
440
+
441
+ `cisco-ai-mcp-scanner` stays in the repo-controlled `cisco-mcp` uv dependency group because its published wheel metadata still pins an older exact LiteLLM release. Docker and CI install that scanner with the lock-derived requirements and uv overrides, while the published `cisco` extra remains resolver-safe for pip users.
442
+
443
+ On Guard surfaces, the Cisco extra keeps the LiteLLM-dependent Cisco skill-scanner path on a patched resolver-safe version. Repo-controlled Docker and `uv sync --extra dev --extra cisco --group cisco-mcp --python 3.13` installs add optional Cisco MCP evidence to `hol-guard scan`, `hol-guard preflight`, and `hol-guard explain <path>`. Use `--cisco-mode {auto,on,off}` to control that consumer-mode evidence path for local artifact scans. `hol-guard run` and Guard runtime prompt/file-read protection remain native Guard behavior in this pass.
444
+
445
+ Guard inventory snapshots can also carry Cisco MCP and skill-scanner status when a Hermes or OpenClaw inventory run explicitly enables those scanners. The Cloud evidence model records scanner source, status, redacted finding text, duration, mapped artifact ID, and risk component metadata without storing raw local paths or secrets.
446
+
447
+ Guard does not add Cisco AIBOM runtime integration in this pass. If AIBOM support returns later, it should stay on evidence or export surfaces rather than Guard blocking or approval logic.
448
+
449
+ ### Cisco package status
450
+
451
+ Credit to [Cisco AI Defense](https://github.com/cisco-ai-defense) for open-sourcing the packages below.
452
+
453
+ | Package | Status in this repo | Notes |
454
+ | :--- | :--- | :--- |
455
+ | `cisco-ai-skill-scanner` | shipped by default | Included in the lean baseline install. |
456
+ | `cisco-ai-mcp-scanner` | repo-controlled CI/Docker only | Installed through the uv `cisco-mcp` group and Docker requirements until Cisco publishes LiteLLM-compatible metadata. |
457
+ | `cisco-ai-a2a-scanner` | deferred | Requires live A2A endpoints and is not added in this pass. |
458
+ | `cisco-aibom` | deferred | No Guard runtime integration in this pass. Revisit later only for evidence or export workflows. |
459
+
460
+ If you want both tools in one shell during local development:
461
+
462
+ ```bash
463
+ pipx install hol-guard
464
+ pipx install plugin-scanner
465
+ ```
466
+
467
+ Container-first environments can use the published image instead. The repo-controlled image installs a lock-derived Cisco dependency set on Python 3.13 so the container has full static Cisco coverage by default.
468
+
469
+ ```bash
470
+ docker run --rm \
471
+ -v "$PWD:/workspace" \
472
+ ghcr.io/hashgraph-online/hol-guard:<version> \
473
+ scan /workspace --format text
474
+ ```
475
+
476
+ Command names by package:
477
+
478
+ ```bash
479
+ hol-guard start
480
+ plugin-scanner verify .
481
+ ```
482
+
483
+ ### DevContainer / Codespaces
484
+
485
+ Add HOL Guard to your `devcontainer.json` for automatic protection in VS Code Codespaces and remote dev containers:
486
+
487
+ ```json
488
+ {
489
+ "features": {
490
+ "ghcr.io/hashgraph-online/hol-guard/hol-guard:1": {}
491
+ }
492
+ }
493
+ ```
494
+
495
+ Options:
496
+
497
+ | Option | Default | Description |
498
+ | :--- | :--- | :--- |
499
+ | `version` | `latest` | Pin to a specific release (e.g. `2.0.1004`) |
500
+ | `initHarness` | `auto` | Harness to configure: `auto` (detect installed), `none` (skip init), or a specific name (`codex`, `claude-code`, `cursor`, `gemini`, `opencode`, `pi`) — informational, Guard auto-detects regardless |
501
+ | `strictMode` | `false` | Enable strict mode on install |
502
+
503
+ See [`devcontainer-features/hol-guard/README.md`](devcontainer-features/hol-guard/README.md) for details.
504
+
505
+ ## Ecosystem Support
506
+
507
+ | Ecosystem | Detection Surfaces |
508
+ | :--- | :--- |
509
+ | Codex | `.codex-plugin/plugin.json`, `marketplace.json`, `.agents/plugins/marketplace.json` |
510
+ | Claude Code | `.claude-plugin/plugin.json`, `.claude-plugin/marketplace.json` |
511
+ | Gemini CLI | `gemini-extension.json`, `commands/**/*.toml` |
512
+ | OpenCode | `opencode.json`, `opencode.jsonc`, `.opencode/commands`, `.opencode/plugins` |
513
+
514
+ Use `--ecosystem auto` (default) to scan all detected packages in a repository, or select a single ecosystem explicitly.
515
+
516
+ ## What The Scanner Checks
517
+
518
+ `plugin-scanner` supports a full quality suite:
519
+
520
+ - `scan` for full-surface security and release analysis
521
+ - `lint` for rule-oriented authoring feedback
522
+ - `verify` for runtime and install-surface readiness checks
523
+ - `submit` for artifact-backed submission gating
524
+ - `doctor` for targeted diagnostics and troubleshooting bundles
525
+
526
+ The scanner evaluates only the surfaces a plugin actually exposes, then normalizes the final score across applicable checks. A plugin is not rewarded or penalized for optional surfaces it does not ship.
527
+
528
+ | Category | Max Points | Coverage |
529
+ | :--- | :--- | :--- |
530
+ | Manifest Validation | 31 | `plugin.json`, required fields, semver, kebab-case, recommended metadata, interface metadata, interface links and assets, safe declared paths |
531
+ | Security | 36 | `SECURITY.md`, `LICENSE`, hardcoded secret detection, dangerous MCP commands, MCP transport hardening, risky approval defaults, Cisco MCP scan status, elevated MCP findings, MCP analyzability |
532
+ | Operational Security | 20 | SHA-pinned GitHub Actions, `write-all`, privileged untrusted checkout patterns, Dependabot, dependency lockfiles |
533
+ | Best Practices | 15 | `README.md`, skills directory, `SKILL.md` frontmatter, committed `.env`, `.codexignore` |
534
+ | Marketplace | 15 | `.agents/plugins/marketplace.json` validity, legacy `marketplace.json` compatibility, policy fields, safe source paths |
535
+ | Skill Security | 15 | Cisco integration status, elevated skill findings, analyzability |
536
+ | Code Quality | 10 | `eval`, `new Function`, shell-injection patterns |
537
+
538
+ ## CLI Usage
539
+
540
+ ```bash
541
+ # Scan a plugin directory
542
+ plugin-scanner scan ./my-plugin
543
+
544
+ # Auto-detect all supported ecosystems inside a repo (default)
545
+ plugin-scanner scan ./plugins-repo --ecosystem auto
546
+
547
+ # Scan only Claude package surfaces
548
+ plugin-scanner scan ./plugins-repo --ecosystem claude
549
+
550
+ # List supported ecosystems
551
+ plugin-scanner --list-ecosystems
552
+
553
+ # Output JSON
554
+ plugin-scanner scan ./my-plugin --format json
555
+
556
+ # Write a SARIF report for GitHub code scanning
557
+ plugin-scanner scan ./my-plugin --format sarif --output plugin-scanner.sarif
558
+
559
+ # Fail CI on findings at or above high severity
560
+ plugin-scanner scan ./my-plugin --fail-on-severity high
561
+
562
+ # Require Cisco skill scanning with a strict policy
563
+ plugin-scanner scan ./my-plugin --cisco-skill-scan on --cisco-policy strict
564
+
565
+ # Require optional Cisco MCP static analysis
566
+ plugin-scanner scan ./my-plugin --cisco-mcp-scan on
567
+ ```
568
+
569
+ Use the bare `plugin-scanner ./my-plugin` form only for compatibility with older automation. New scripts and docs should
570
+ prefer explicit subcommands so `scan`, `lint`, `verify`, `submit`, and `doctor` have predictable help, flags, and output.
571
+
572
+ | Need | Command | Output contract |
573
+ | :--- | :--- | :--- |
574
+ | Human release summary | `plugin-scanner scan ./my-plugin` | terminal summary first, optional JSON/Markdown/SARIF with `--format` |
575
+ | Rule-level authoring feedback | `plugin-scanner lint ./my-plugin` | human findings by default, JSON with `--format json` |
576
+ | Runtime readiness details | `plugin-scanner verify ./my-plugin` | human pass/fail by default, JSON with `--format json` |
577
+ | Publishable quality artifact | `plugin-scanner submit ./my-plugin --attest dist/plugin-quality.json` | writes one artifact for one plugin directory |
578
+ | Troubleshooting bundle | `plugin-scanner doctor ./my-plugin --component mcp --bundle dist/doctor.zip` | diagnostic JSON and bundle artifacts |
579
+
580
+ ## Quality Suite Commands
581
+
582
+ ```bash
583
+ # Summary scan (legacy form still works)
584
+ plugin-scanner scan ./my-plugin --format json --profile public-marketplace
585
+
586
+ # Scan a multi-plugin repo from the marketplace root
587
+ plugin-scanner scan . --format json
588
+
589
+ # Rule-oriented lint (with optional mechanical fixes)
590
+ plugin-scanner lint ./my-plugin --list-rules
591
+ plugin-scanner lint ./my-plugin --explain README_MISSING
592
+ plugin-scanner lint ./my-plugin --fix --profile strict-security
593
+
594
+ # Runtime readiness verification
595
+ plugin-scanner verify ./my-plugin --format json
596
+ plugin-scanner verify . --format json
597
+ plugin-scanner verify ./my-plugin --online --format text
598
+
599
+ # Artifact-backed submission gate
600
+ plugin-scanner submit ./my-plugin --profile public-marketplace --attest dist/plugin-quality.json
601
+
602
+ # Diagnostic bundle
603
+ plugin-scanner doctor ./my-plugin --component mcp --bundle dist/doctor.zip
604
+ ```
605
+
606
+ </details>
607
+
608
+ <details>
609
+ <summary>Advanced reference: specs, action publishing, automation, and examples</summary>
610
+
611
+ ## Codex Spec Alignment
612
+
613
+ The scanner follows the current Codex plugin packaging conventions more closely:
614
+
615
+ - local manifest paths should use `./` prefixes
616
+ - `.agents/plugins/marketplace.json` is the preferred marketplace manifest location
617
+ - root `marketplace.json` is still supported in compatibility mode
618
+ - `interface` metadata no longer requires an undocumented `type` field
619
+ - `verify` performs an MCP initialize handshake before probing declared capabilities
620
+
621
+ `lint --fix` preserves or adds the documented `./` prefixes instead of stripping them away.
622
+
623
+ For repo-scoped marketplaces, `scan`, `lint`, `verify`, and `doctor` can target the repository root directly. `submit` remains intentionally single-plugin so the emitted artifact points at one concrete plugin package.
624
+
625
+ ## Config + Baseline Example
626
+
627
+ ```toml
628
+ # .plugin-scanner.toml
629
+ [scanner]
630
+ profile = "public-marketplace"
631
+ baseline_file = "baseline.txt"
632
+ ignore_paths = ["tests/*", "fixtures/*"]
633
+
634
+ [rules]
635
+ disabled = ["README_MISSING"]
636
+ severity_overrides = { CODEXIGNORE_MISSING = "low" }
637
+ ```
638
+
639
+ ## Example Output
640
+
641
+ ```text
642
+ 🔗 Plugin Scanner v2.0.0
643
+ Scanning: ./my-plugin
644
+
645
+ ── Manifest Validation (31/31) ──
646
+ ✅ plugin.json exists +4
647
+ ✅ Valid JSON +4
648
+ ✅ Required fields present +5
649
+ ✅ Version follows semver +3
650
+ ✅ Name is kebab-case +2
651
+ ✅ Recommended metadata present +4
652
+ ✅ Interface metadata complete if declared +3
653
+ ✅ Interface links and assets valid if declared +3
654
+ ✅ Declared paths are safe +3
655
+
656
+ ── Security (16/16) ──
657
+ ✅ SECURITY.md found +3
658
+ ✅ LICENSE found +3
659
+ ✅ No hardcoded secrets +7
660
+ ✅ No dangerous MCP commands +0
661
+ ✅ MCP remote transports are hardened +0
662
+ ✅ No approval bypass defaults +3
663
+
664
+ ── Operational Security (0/0) ──
665
+ ✅ Third-party GitHub Actions pinned to SHAs +0
666
+ ✅ No write-all GitHub Actions permissions +0
667
+ ✅ No privileged untrusted checkout patterns +0
668
+ ✅ Dependabot configured for automation surfaces +0
669
+ ✅ Dependency manifests have lockfiles +0
670
+
671
+ ── Skill Security (15/15) ──
672
+ ✅ Cisco skill scan completed +3
673
+ ✅ No elevated Cisco skill findings +8
674
+ ✅ Skills analyzable +4
675
+
676
+ Findings: critical:0, high:0, medium:0, low:0, info:0
677
+
678
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
679
+ Final Score: 100/100 (A - Excellent)
680
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
681
+ ```
682
+
683
+ ## Report Formats
684
+
685
+ | Format | Use Case |
686
+ | :--- | :--- |
687
+ | `text` | Human-readable terminal summary with category totals and findings |
688
+ | `json` | Structured integrations and findings for tooling and dashboards |
689
+ | `markdown` | Pull request, issue, or review-ready summaries |
690
+ | `sarif` | GitHub code scanning uploads and security automation |
691
+
692
+ ## Scanner Signals
693
+
694
+ The scanner currently detects or validates:
695
+
696
+ - Hardcoded secrets such as AWS keys, GitHub tokens, OpenAI keys, Slack tokens, GitLab tokens, and generic password or token patterns
697
+ - Dangerous MCP command patterns such as `rm -rf`, `sudo`, `curl|sh`, `wget|sh`, `eval`, `exec`, and PowerShell or `cmd /c` shells
698
+ - Insecure MCP remotes, including non-HTTPS endpoints and non-loopback HTTP transports
699
+ - Risky Codex defaults such as approval bypass and unrestricted sandbox defaults inside shipped plugin config or docs
700
+ - Publishability issues in `interface` metadata, HTTPS links, and declared asset paths
701
+ - Workflow hardening gaps including unpinned third-party actions, `write-all`, privileged checkout patterns, missing Dependabot, and missing lockfiles
702
+ - Skill-level issues surfaced by Cisco `skill-scanner` when the optional integration is installed
703
+ - Static MCP findings surfaced by Cisco `mcp-scanner` when the repo-controlled Docker image or `cisco-mcp` uv group is installed
704
+
705
+ ## CI And Automation
706
+
707
+ Add the scanner to a plugin repository CI job:
708
+
709
+ ```yaml
710
+ permissions:
711
+ contents: read
712
+ security-events: write
713
+
714
+ jobs:
715
+ scan-plugin:
716
+ runs-on: ubuntu-latest
717
+ steps:
718
+ - uses: actions/checkout@v6
719
+ - uses: hashgraph-online/ai-plugin-scanner-action@v1
720
+ with:
721
+ plugin_dir: "."
722
+ mode: scan
723
+ profile: public-marketplace
724
+ min_score: 80
725
+ fail_on_severity: high
726
+ format: sarif
727
+ upload_sarif: true
728
+ ```
729
+
730
+ For a multi-plugin repo, the same workflow can stay pointed at `plugin_dir: "."` as long as the repository has `.agents/plugins/marketplace.json` with local `./plugins/...` entries.
731
+
732
+ For repo-controlled validation in this repository, Linux jobs that target full coverage install the `cisco` extra on Python 3.12, while the baseline matrix keeps Python 3.10 compatibility explicit.
733
+
734
+ Local pre-commit style hook:
735
+
736
+ ```yaml
737
+ repos:
738
+ - repo: local
739
+ hooks:
740
+ - id: plugin-scanner
741
+ name: Plugin Scanner
742
+ entry: plugin-scanner
743
+ language: system
744
+ types: [directory]
745
+ pass_filenames: false
746
+ args: ["./"]
747
+ ```
748
+
749
+ ## GitHub Action
750
+
751
+ The Marketplace action lives in the dedicated repository [hashgraph-online/ai-plugin-scanner-action](https://github.com/hashgraph-online/ai-plugin-scanner-action).
752
+
753
+ The Marketplace action bundle is maintained in [`action/`](./action) and published automatically to [hashgraph-online/ai-plugin-scanner-action](https://github.com/hashgraph-online/ai-plugin-scanner-action) by [`.github/workflows/publish-action-repo.yml`](./.github/workflows/publish-action-repo.yml) after each PyPI release. The legacy alias [hashgraph-online/hol-codex-plugin-scanner-action](https://github.com/hashgraph-online/hol-codex-plugin-scanner-action) remains available for existing workflows.
754
+ When you run the scanner in your own job instead of the packaged action, install `plugin-scanner[cisco]` on Python 3.11 through 3.13 for the resolver-safe Cisco skill-scanner path. Use the repo-controlled Docker image or `uv sync --extra dev --extra cisco --group cisco-mcp --python 3.13` when you also need Cisco MCP coverage with `CISCO_MCP_SCAN=auto` or `CISCO_MCP_SCAN=on`.
755
+
756
+ ### Plugin Author Submission Flow
757
+
758
+ The action can also handle submission intake. A plugin repository can wire the scanner into CI so a passing scan opens or reuses a submission issue in [awesome-codex-plugins](https://github.com/hashgraph-online/awesome-codex-plugins).
759
+
760
+ It also emits automation-friendly machine outputs:
761
+
762
+ - `score`, `grade`, `grade_label`, `max_severity`, and `findings_total` as GitHub Action outputs
763
+ - a concise markdown summary in the job summary by default
764
+ - an optional machine-readable registry payload file for downstream registry, badge, or awesome-list automation
765
+
766
+ The intended path is:
767
+
768
+ 1. Add the scanner action to plugin CI.
769
+ 2. Require `min_score: 80` and a severity gate such as `fail_on_severity: high`.
770
+ 3. Enable submission mode with a token that has `issues:write` on `hashgraph-online/awesome-codex-plugins`.
771
+ 4. When the plugin clears the threshold, the action opens or reuses a submission issue.
772
+ 5. The issue body includes machine-readable registry payload data, so registry automation can ingest the same submission event.
773
+
774
+ Example:
775
+
776
+ ```yaml
777
+ permissions:
778
+ contents: read
779
+
780
+ jobs:
781
+ scan-plugin:
782
+ runs-on: ubuntu-latest
783
+ steps:
784
+ - uses: actions/checkout@v6
785
+
786
+ - name: Scan and submit if eligible
787
+ id: scan
788
+ uses: hashgraph-online/ai-plugin-scanner-action@v1
789
+ with:
790
+ plugin_dir: "."
791
+ min_score: 80
792
+ fail_on_severity: high
793
+ submission_enabled: true
794
+ submission_score_threshold: 80
795
+ submission_token: ${{ secrets.AWESOME_CODEX_PLUGINS_TOKEN }}
796
+
797
+ - name: Print submission issue
798
+ if: steps.scan.outputs.submission_performed == 'true'
799
+ run: echo "${{ steps.scan.outputs.submission_issue_urls }}"
800
+ ```
801
+
802
+ `submission_token` is required when `submission_enabled: true`. This flow is idempotent. If the plugin repository was already submitted, the action reuses the existing open issue instead of opening duplicates by matching an exact hidden plugin URL marker in the existing issue body.
803
+
804
+ ### Registry Payload For Plugin Ecosystem Automation
805
+
806
+ If you want to feed the same scan into a registry, badge pipeline, or another plugin ecosystem automation step, request a registry payload file directly from the action:
807
+
808
+ ```yaml
809
+ permissions:
810
+ contents: read
811
+
812
+ jobs:
813
+ scan-plugin:
814
+ runs-on: ubuntu-latest
815
+ steps:
816
+ - uses: actions/checkout@v6
817
+
818
+ - name: Scan plugin
819
+ id: scan
820
+ uses: hashgraph-online/ai-plugin-scanner-action@v1
821
+ with:
822
+ plugin_dir: "."
823
+ format: sarif
824
+ output: ai-plugin-scanner.sarif
825
+ registry_payload_output: ai-plugin-registry-payload.json
826
+
827
+ - name: Show trust signals
828
+ run: |
829
+ echo "Score: ${{ steps.scan.outputs.score }}"
830
+ echo "Grade: ${{ steps.scan.outputs.grade_label }}"
831
+ echo "Max severity: ${{ steps.scan.outputs.max_severity }}"
832
+
833
+ - name: Upload registry payload
834
+ uses: actions/upload-artifact@v6
835
+ with:
836
+ name: ai-plugin-registry-payload
837
+ path: ${{ steps.scan.outputs.registry_payload_path }}
838
+ ```
839
+
840
+ The registry payload mirrors the submission data used by HOL ecosystem automation, so one scan can drive code scanning, review summaries, awesome-list intake, and registry trust ingestion.
841
+
842
+ ## Development
843
+
844
+ ```bash
845
+ pip install -e ".[dev,cisco]"
846
+ ruff check src tests
847
+ ruff format --check src
848
+ pytest -q
849
+ python -m build
850
+ ```
851
+
852
+ Use `pip install -e ".[dev]"` or `uv sync --extra dev --python 3.10` when you need the lean baseline path without the Cisco MCP extra.
853
+
854
+ ## Repository Workflows
855
+
856
+ - Matrix CI for Python `3.10` through `3.13`
857
+ - Package publishing via the `publish.yml` workflow
858
+ - OpenSSF Scorecard automation for repository hardening visibility
859
+
860
+ ## Security
861
+
862
+ For disclosure and response policy, see [SECURITY.md](./SECURITY.md).
863
+
864
+ ## Contributing
865
+
866
+ Contribution guidance lives in [CONTRIBUTING.md](./CONTRIBUTING.md).
867
+
868
+ ## Maintainers
869
+
870
+ Maintained by HOL.
871
+
872
+ ## Example: HOL Registry Broker Plugin
873
+
874
+ The [HOL Registry Broker Codex Plugin](https://github.com/hashgraph-online/registry-broker-codex-plugin) bridges Codex plugins with the [HOL Universal Registry](https://hol.org/registry/plugins), providing agent discovery, trust signals, and verified identity on Hedera.
875
+
876
+ [![Registry Broker trust badge](https://img.shields.io/endpoint?url=https%3A%2F%2Fhol.org%2Fapi%2Fregistry%2Fbadges%2Fplugin%3Fslug%3Dhol%252Fregistry-broker-codex-plugin%26metric%3Dtrust%26style%3Dflat)](https://hol.org/registry/plugins/hol%2Fregistry-broker-codex-plugin)
877
+
878
+ HOL Registry scores: **Trust 80** / **Review 83** / **Enforce 74**
879
+
880
+ ```text
881
+ 🔗 Plugin Scanner v2.0.0
882
+ Scanning: ./registry-broker-codex-plugin
883
+
884
+ ── Manifest Validation (31/31) ──
885
+ ✅ plugin.json exists +4
886
+ ✅ Valid JSON +4
887
+ ✅ Required fields present +5
888
+ ✅ Version follows semver +3
889
+ ✅ Name is kebab-case +2
890
+ ✅ Recommended metadata present +4
891
+ ✅ Interface metadata complete if declared +3
892
+ ✅ Interface links and assets valid if declared +3
893
+ ✅ Declared paths are safe +3
894
+
895
+ ── Security (24/24) ──
896
+ ✅ SECURITY.md found +3
897
+ ✅ LICENSE found +3
898
+ ✅ No hardcoded secrets +7
899
+ ✅ No dangerous MCP commands +3
900
+ ✅ MCP remote transports are hardened +3
901
+ ✅ No approval bypass defaults +5
902
+
903
+ ── Operational Security (20/20) ──
904
+ ✅ Third-party GitHub Actions pinned to SHAs +5
905
+ ✅ No write-all GitHub Actions permissions +5
906
+ ✅ No privileged untrusted checkout patterns +3
907
+ ✅ Dependabot configured for automation surfaces +4
908
+ ✅ Dependency manifests have lockfiles +3
909
+
910
+ ── Best Practices (15/15) ──
911
+ ✅ README.md found +5
912
+ ✅ Skills directory present +3
913
+ ✅ SKILL.md frontmatter valid +4
914
+ ✅ No committed .env +2
915
+ ✅ .codexignore found +1
916
+
917
+ ── Marketplace (15/15) ──
918
+ ✅ marketplace.json valid +5
919
+ ✅ Policy fields present +5
920
+ ✅ Marketplace sources are safe +5
921
+
922
+ ── Skill Security (15/15) ──
923
+ ✅ Cisco skill scan completed +3
924
+ ✅ No elevated Cisco skill findings +8
925
+ ✅ Skills analyzable +4
926
+
927
+ ── Code Quality (10/10) ──
928
+ ✅ No eval or Function constructor +5
929
+ ✅ No shell injection patterns +5
930
+
931
+ Findings: critical:0, high:0, medium:0, low:0, info:0
932
+
933
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
934
+ Final Score: 130/130
935
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
936
+ ```
937
+
938
+ Plugins that pass the scanner with a high score are candidates for listing in the [HOL Plugin Registry](https://hol.org/registry/plugins).
939
+
940
+ </details>
941
+
942
+ ## Resources
943
+
944
+ - [HOL Plugin Registry](https://hol.org/registry/plugins)
945
+ - [HOL Standards Documentation](https://hol.org/docs/standards)
946
+ - [OpenAI Codex Plugin Documentation](https://developers.openai.com/codex/plugins)
947
+ - [Model Context Protocol Documentation](https://modelcontextprotocol.io)
948
+ - [Cisco AI Skill Scanner](https://pypi.org/project/cisco-ai-skill-scanner/)
949
+ - [Cisco AI MCP Scanner](https://pypi.org/project/cisco-ai-mcp-scanner/)
950
+ - [HOL GitHub Organization](https://github.com/hashgraph-online)
951
+
952
+ ## License
953
+
954
+ Apache-2.0