plugin-scanner 2.0.4__tar.gz → 2.0.5__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 (262) hide show
  1. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/PKG-INFO +1 -1
  2. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/pyproject.toml +1 -1
  3. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/pyproject.toml.bak +1 -1
  4. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/src/codex_plugin_scanner/version.py +1 -1
  5. plugin_scanner-2.0.4/docs/guard/competitive-parity-matrix.md +0 -48
  6. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/.clusterfuzzlite/Dockerfile +0 -0
  7. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/.clusterfuzzlite/build.sh +0 -0
  8. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/.clusterfuzzlite/project.yaml +0 -0
  9. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/.clusterfuzzlite/requirements-atheris.txt +0 -0
  10. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/.dockerignore +0 -0
  11. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/.github/CODEOWNERS +0 -0
  12. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/.github/dependabot.yml +0 -0
  13. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/.github/workflows/ci.yml +0 -0
  14. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/.github/workflows/codeql.yml +0 -0
  15. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/.github/workflows/dependabot-uv-lock.yml +0 -0
  16. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/.github/workflows/e2e-test.yml +0 -0
  17. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/.github/workflows/fuzz.yml +0 -0
  18. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/.github/workflows/harness-smoke.yml +0 -0
  19. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/.github/workflows/publish-action-repo.yml +0 -0
  20. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/.github/workflows/publish.yml +0 -0
  21. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/.github/workflows/scorecard.yml +0 -0
  22. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/.gitignore +0 -0
  23. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/.pre-commit-hooks.yaml +0 -0
  24. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/CONTRIBUTING.md +0 -0
  25. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/Dockerfile +0 -0
  26. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/LICENSE +0 -0
  27. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/README.md +0 -0
  28. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/SECURITY.md +0 -0
  29. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/action/README.legacy.md +0 -0
  30. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/action/README.md +0 -0
  31. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/action/action.yml +0 -0
  32. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/action/cisco-version.txt +0 -0
  33. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/action/pypi-attestations-version.txt +0 -0
  34. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/action/scanner-version.txt +0 -0
  35. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/dashboard/index.html +0 -0
  36. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/dashboard/package.json +0 -0
  37. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/dashboard/pnpm-lock.yaml +0 -0
  38. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/dashboard/public/brand/Logo_Whole.png +0 -0
  39. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/dashboard/src/app.tsx +0 -0
  40. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/dashboard/src/approval-center-layout.tsx +0 -0
  41. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/dashboard/src/approval-center-primitives.tsx +0 -0
  42. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/dashboard/src/approval-center-utils.ts +0 -0
  43. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/dashboard/src/guard-api.ts +0 -0
  44. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/dashboard/src/guard-demo.ts +0 -0
  45. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/dashboard/src/guard-types.ts +0 -0
  46. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/dashboard/src/main.tsx +0 -0
  47. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/dashboard/src/styles.css +0 -0
  48. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/dashboard/src/vite-env.d.ts +0 -0
  49. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/dashboard/tsconfig.json +0 -0
  50. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/dashboard/vite.config.ts +0 -0
  51. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/docker-requirements.txt +0 -0
  52. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/docs/guard/approval-audit.md +0 -0
  53. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/docs/guard/architecture.md +0 -0
  54. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/docs/guard/get-started.md +0 -0
  55. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/docs/guard/harness-support.md +0 -0
  56. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/docs/guard/local-dashboard-failure-ledger.md +0 -0
  57. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/docs/guard/local-dashboard-redesign-todo.md +0 -0
  58. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/docs/guard/local-vs-cloud.md +0 -0
  59. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/docs/guard/repo-boundaries.md +0 -0
  60. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/docs/guard/testing-matrix.md +0 -0
  61. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/docs/trust/mcp-trust-draft.md +0 -0
  62. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/docs/trust/plugin-trust-draft.md +0 -0
  63. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/docs/trust/skill-trust-local.md +0 -0
  64. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/fuzzers/manifest_fuzzer.py +0 -0
  65. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/requirements.txt +0 -0
  66. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/schemas/plugin-quality.v1.json +0 -0
  67. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/schemas/scan-result.v1.json +0 -0
  68. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/schemas/verify-result.v1.json +0 -0
  69. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/src/codex_plugin_scanner/__init__.py +0 -0
  70. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/src/codex_plugin_scanner/action_runner.py +0 -0
  71. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/src/codex_plugin_scanner/checks/__init__.py +0 -0
  72. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/src/codex_plugin_scanner/checks/best_practices.py +0 -0
  73. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/src/codex_plugin_scanner/checks/claude.py +0 -0
  74. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/src/codex_plugin_scanner/checks/code_quality.py +0 -0
  75. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/src/codex_plugin_scanner/checks/ecosystem_common.py +0 -0
  76. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/src/codex_plugin_scanner/checks/gemini.py +0 -0
  77. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/src/codex_plugin_scanner/checks/manifest.py +0 -0
  78. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/src/codex_plugin_scanner/checks/manifest_support.py +0 -0
  79. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/src/codex_plugin_scanner/checks/marketplace.py +0 -0
  80. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/src/codex_plugin_scanner/checks/opencode.py +0 -0
  81. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/src/codex_plugin_scanner/checks/operational_security.py +0 -0
  82. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/src/codex_plugin_scanner/checks/security.py +0 -0
  83. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/src/codex_plugin_scanner/checks/skill_security.py +0 -0
  84. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/src/codex_plugin_scanner/cli.py +0 -0
  85. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/src/codex_plugin_scanner/config.py +0 -0
  86. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/src/codex_plugin_scanner/ecosystems/__init__.py +0 -0
  87. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/src/codex_plugin_scanner/ecosystems/base.py +0 -0
  88. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/src/codex_plugin_scanner/ecosystems/claude.py +0 -0
  89. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/src/codex_plugin_scanner/ecosystems/codex.py +0 -0
  90. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/src/codex_plugin_scanner/ecosystems/detect.py +0 -0
  91. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/src/codex_plugin_scanner/ecosystems/gemini.py +0 -0
  92. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/src/codex_plugin_scanner/ecosystems/opencode.py +0 -0
  93. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/src/codex_plugin_scanner/ecosystems/registry.py +0 -0
  94. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/src/codex_plugin_scanner/ecosystems/types.py +0 -0
  95. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/src/codex_plugin_scanner/guard/__init__.py +0 -0
  96. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/src/codex_plugin_scanner/guard/adapters/__init__.py +0 -0
  97. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/src/codex_plugin_scanner/guard/adapters/base.py +0 -0
  98. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/src/codex_plugin_scanner/guard/adapters/claude_code.py +0 -0
  99. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/src/codex_plugin_scanner/guard/adapters/codex.py +0 -0
  100. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/src/codex_plugin_scanner/guard/adapters/cursor.py +0 -0
  101. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/src/codex_plugin_scanner/guard/adapters/gemini.py +0 -0
  102. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/src/codex_plugin_scanner/guard/adapters/opencode.py +0 -0
  103. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/src/codex_plugin_scanner/guard/approvals.py +0 -0
  104. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/src/codex_plugin_scanner/guard/cli/__init__.py +0 -0
  105. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/src/codex_plugin_scanner/guard/cli/approval_commands.py +0 -0
  106. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/src/codex_plugin_scanner/guard/cli/commands.py +0 -0
  107. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/src/codex_plugin_scanner/guard/cli/product.py +0 -0
  108. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/src/codex_plugin_scanner/guard/cli/prompt.py +0 -0
  109. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/src/codex_plugin_scanner/guard/cli/render.py +0 -0
  110. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/src/codex_plugin_scanner/guard/config.py +0 -0
  111. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/src/codex_plugin_scanner/guard/consumer/__init__.py +0 -0
  112. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/src/codex_plugin_scanner/guard/consumer/service.py +0 -0
  113. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/src/codex_plugin_scanner/guard/daemon/__init__.py +0 -0
  114. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/src/codex_plugin_scanner/guard/daemon/manager.py +0 -0
  115. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/src/codex_plugin_scanner/guard/daemon/server.py +0 -0
  116. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/src/codex_plugin_scanner/guard/daemon/static/assets/guard-dashboard.js +0 -0
  117. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/src/codex_plugin_scanner/guard/daemon/static/assets/index.css +0 -0
  118. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/src/codex_plugin_scanner/guard/daemon/static/brand/Logo_Whole.png +0 -0
  119. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/src/codex_plugin_scanner/guard/daemon/static/index.html +0 -0
  120. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/src/codex_plugin_scanner/guard/incident.py +0 -0
  121. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/src/codex_plugin_scanner/guard/models.py +0 -0
  122. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/src/codex_plugin_scanner/guard/policy/__init__.py +0 -0
  123. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/src/codex_plugin_scanner/guard/policy/engine.py +0 -0
  124. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/src/codex_plugin_scanner/guard/protect.py +0 -0
  125. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/src/codex_plugin_scanner/guard/proxy/__init__.py +0 -0
  126. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/src/codex_plugin_scanner/guard/proxy/remote.py +0 -0
  127. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/src/codex_plugin_scanner/guard/proxy/stdio.py +0 -0
  128. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/src/codex_plugin_scanner/guard/receipts/__init__.py +0 -0
  129. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/src/codex_plugin_scanner/guard/receipts/manager.py +0 -0
  130. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/src/codex_plugin_scanner/guard/risk.py +0 -0
  131. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/src/codex_plugin_scanner/guard/runtime/__init__.py +0 -0
  132. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/src/codex_plugin_scanner/guard/runtime/runner.py +0 -0
  133. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/src/codex_plugin_scanner/guard/schemas/__init__.py +0 -0
  134. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/src/codex_plugin_scanner/guard/schemas/consumer_mode.py +0 -0
  135. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/src/codex_plugin_scanner/guard/shims.py +0 -0
  136. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/src/codex_plugin_scanner/guard/store.py +0 -0
  137. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/src/codex_plugin_scanner/guard/store_approvals.py +0 -0
  138. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/src/codex_plugin_scanner/integrations/__init__.py +0 -0
  139. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/src/codex_plugin_scanner/integrations/cisco_skill_scanner.py +0 -0
  140. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/src/codex_plugin_scanner/lint_fixes.py +0 -0
  141. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/src/codex_plugin_scanner/marketplace_support.py +0 -0
  142. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/src/codex_plugin_scanner/models.py +0 -0
  143. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/src/codex_plugin_scanner/path_support.py +0 -0
  144. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/src/codex_plugin_scanner/policy.py +0 -0
  145. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/src/codex_plugin_scanner/quality_artifact.py +0 -0
  146. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/src/codex_plugin_scanner/repo_detect.py +0 -0
  147. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/src/codex_plugin_scanner/reporting.py +0 -0
  148. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/src/codex_plugin_scanner/rules/__init__.py +0 -0
  149. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/src/codex_plugin_scanner/rules/registry.py +0 -0
  150. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/src/codex_plugin_scanner/rules/specs.py +0 -0
  151. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/src/codex_plugin_scanner/scanner.py +0 -0
  152. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/src/codex_plugin_scanner/submission.py +0 -0
  153. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/src/codex_plugin_scanner/suppressions.py +0 -0
  154. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/src/codex_plugin_scanner/trust_domain_scoring.py +0 -0
  155. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/src/codex_plugin_scanner/trust_helpers.py +0 -0
  156. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/src/codex_plugin_scanner/trust_mcp_scoring.py +0 -0
  157. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/src/codex_plugin_scanner/trust_models.py +0 -0
  158. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/src/codex_plugin_scanner/trust_plugin_scoring.py +0 -0
  159. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/src/codex_plugin_scanner/trust_scoring.py +0 -0
  160. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/src/codex_plugin_scanner/trust_skill_scoring.py +0 -0
  161. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/src/codex_plugin_scanner/trust_specs.py +0 -0
  162. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/src/codex_plugin_scanner/verification.py +0 -0
  163. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/tests/__init__.py +0 -0
  164. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/tests/fixtures/__init__.py +0 -0
  165. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/tests/fixtures/bad-plugin/.codex-plugin/plugin.json +0 -0
  166. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/tests/fixtures/bad-plugin/.mcp.json +0 -0
  167. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/tests/fixtures/bad-plugin/secrets.js +0 -0
  168. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/tests/fixtures/claude-plugin-good/.claude-plugin/plugin.json +0 -0
  169. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/tests/fixtures/claude-plugin-good/LICENSE +0 -0
  170. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/tests/fixtures/claude-plugin-good/README.md +0 -0
  171. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/tests/fixtures/claude-plugin-good/SECURITY.md +0 -0
  172. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/tests/fixtures/claude-plugin-good/hooks/hooks.json +0 -0
  173. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/tests/fixtures/claude-plugin-good/skills/example/SKILL.md +0 -0
  174. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/tests/fixtures/code-quality-bad/evil.js +0 -0
  175. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/tests/fixtures/code-quality-bad/inject.js +0 -0
  176. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/tests/fixtures/gemini-extension-good/GEMINI.md +0 -0
  177. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/tests/fixtures/gemini-extension-good/LICENSE +0 -0
  178. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/tests/fixtures/gemini-extension-good/README.md +0 -0
  179. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/tests/fixtures/gemini-extension-good/SECURITY.md +0 -0
  180. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/tests/fixtures/gemini-extension-good/commands/hello.toml +0 -0
  181. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/tests/fixtures/gemini-extension-good/gemini-extension.json +0 -0
  182. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/tests/fixtures/good-plugin/.codex-plugin/plugin.json +0 -0
  183. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/tests/fixtures/good-plugin/.codexignore +0 -0
  184. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/tests/fixtures/good-plugin/LICENSE +0 -0
  185. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/tests/fixtures/good-plugin/README.md +0 -0
  186. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/tests/fixtures/good-plugin/SECURITY.md +0 -0
  187. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/tests/fixtures/good-plugin/assets/icon.svg +0 -0
  188. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/tests/fixtures/good-plugin/assets/logo.svg +0 -0
  189. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/tests/fixtures/good-plugin/assets/screenshot.svg +0 -0
  190. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/tests/fixtures/good-plugin/skills/example/SKILL.md +0 -0
  191. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/tests/fixtures/malformed-json/.codex-plugin/plugin.json +0 -0
  192. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/tests/fixtures/minimal-plugin/.codex-plugin/plugin.json +0 -0
  193. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/tests/fixtures/missing-fields/.codex-plugin/plugin.json +0 -0
  194. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/tests/fixtures/mit-license/LICENSE +0 -0
  195. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/tests/fixtures/multi-ecosystem-repo/codex-plugin/.codex-plugin/plugin.json +0 -0
  196. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/tests/fixtures/multi-ecosystem-repo/codex-plugin/LICENSE +0 -0
  197. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/tests/fixtures/multi-ecosystem-repo/codex-plugin/README.md +0 -0
  198. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/tests/fixtures/multi-ecosystem-repo/codex-plugin/SECURITY.md +0 -0
  199. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/tests/fixtures/multi-ecosystem-repo/gemini-ext/README.md +0 -0
  200. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/tests/fixtures/multi-ecosystem-repo/gemini-ext/gemini-extension.json +0 -0
  201. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/tests/fixtures/multi-plugin-repo/.agents/plugins/marketplace.json +0 -0
  202. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/tests/fixtures/multi-plugin-repo/plugins/alpha-plugin/.codex-plugin/plugin.json +0 -0
  203. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/tests/fixtures/multi-plugin-repo/plugins/alpha-plugin/.codexignore +0 -0
  204. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/tests/fixtures/multi-plugin-repo/plugins/alpha-plugin/LICENSE +0 -0
  205. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/tests/fixtures/multi-plugin-repo/plugins/alpha-plugin/README.md +0 -0
  206. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/tests/fixtures/multi-plugin-repo/plugins/alpha-plugin/SECURITY.md +0 -0
  207. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/tests/fixtures/multi-plugin-repo/plugins/alpha-plugin/skills/example/SKILL.md +0 -0
  208. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/tests/fixtures/multi-plugin-repo/plugins/beta-plugin/.codex-plugin/plugin.json +0 -0
  209. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/tests/fixtures/multi-plugin-repo/plugins/beta-plugin/skills/example/SKILL.md +0 -0
  210. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/tests/fixtures/no-version/.codex-plugin/plugin.json +0 -0
  211. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/tests/fixtures/opencode-good/.opencode/commands/hello.md +0 -0
  212. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/tests/fixtures/opencode-good/.opencode/plugins/example.ts +0 -0
  213. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/tests/fixtures/opencode-good/LICENSE +0 -0
  214. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/tests/fixtures/opencode-good/README.md +0 -0
  215. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/tests/fixtures/opencode-good/SECURITY.md +0 -0
  216. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/tests/fixtures/opencode-good/opencode.jsonc +0 -0
  217. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/tests/fixtures/skills-missing-dir/.codex-plugin/plugin.json +0 -0
  218. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/tests/fixtures/skills-no-frontmatter/.codex-plugin/plugin.json +0 -0
  219. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/tests/fixtures/skills-no-frontmatter/skills/bad-skill/SKILL.md +0 -0
  220. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/tests/fixtures/with-marketplace/.codex-plugin/plugin.json +0 -0
  221. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/tests/fixtures/with-marketplace/marketplace-broken.json +0 -0
  222. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/tests/fixtures/with-marketplace/marketplace.json +0 -0
  223. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/tests/test-trust-scoring.py +0 -0
  224. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/tests/test-trust-specs.py +0 -0
  225. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/tests/test_action_bundle.py +0 -0
  226. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/tests/test_action_runner.py +0 -0
  227. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/tests/test_best_practices.py +0 -0
  228. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/tests/test_cli.py +0 -0
  229. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/tests/test_code_quality.py +0 -0
  230. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/tests/test_config.py +0 -0
  231. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/tests/test_coverage_remaining.py +0 -0
  232. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/tests/test_ecosystems.py +0 -0
  233. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/tests/test_edge_cases.py +0 -0
  234. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/tests/test_final_coverage.py +0 -0
  235. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/tests/test_guard_approvals.py +0 -0
  236. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/tests/test_guard_cli.py +0 -0
  237. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/tests/test_guard_events.py +0 -0
  238. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/tests/test_guard_launch_env.py +0 -0
  239. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/tests/test_guard_product_flow.py +0 -0
  240. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/tests/test_guard_protect.py +0 -0
  241. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/tests/test_guard_risk.py +0 -0
  242. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/tests/test_guard_runtime.py +0 -0
  243. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/tests/test_integration.py +0 -0
  244. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/tests/test_lint_fixes.py +0 -0
  245. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/tests/test_live_cisco_smoke.py +0 -0
  246. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/tests/test_manifest.py +0 -0
  247. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/tests/test_marketplace.py +0 -0
  248. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/tests/test_operational_security.py +0 -0
  249. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/tests/test_policy.py +0 -0
  250. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/tests/test_quality_artifact.py +0 -0
  251. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/tests/test_rule_registry.py +0 -0
  252. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/tests/test_scanner.py +0 -0
  253. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/tests/test_schema_contracts.py +0 -0
  254. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/tests/test_security.py +0 -0
  255. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/tests/test_security_ops.py +0 -0
  256. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/tests/test_skill_security.py +0 -0
  257. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/tests/test_submission.py +0 -0
  258. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/tests/test_trust_scoring.py +0 -0
  259. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/tests/test_trust_specs.py +0 -0
  260. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/tests/test_verification.py +0 -0
  261. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/tests/test_versioning.py +0 -0
  262. {plugin_scanner-2.0.4 → plugin_scanner-2.0.5}/uv.lock +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: plugin-scanner
3
- Version: 2.0.4
3
+ Version: 2.0.5
4
4
  Summary: Lint, verify, and gate plugin ecosystems for maintainers, CI, and publish workflows.
5
5
  Project-URL: Homepage, https://github.com/hashgraph-online/ai-plugin-scanner
6
6
  Project-URL: Repository, https://github.com/hashgraph-online/ai-plugin-scanner
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "plugin-scanner"
7
- version = "2.0.4"
7
+ version = "2.0.5"
8
8
  description = "Lint, verify, and gate plugin ecosystems for maintainers, CI, and publish workflows."
9
9
  readme = "README.md"
10
10
  license = "Apache-2.0"
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "hol-guard"
7
- version = "2.0.4"
7
+ version = "2.0.5"
8
8
  description = "Protect local AI harnesses with HOL Guard and run scanner checks for Codex, Claude, Cursor, Gemini, and OpenCode."
9
9
  readme = "README.md"
10
10
  license = "Apache-2.0"
@@ -1,3 +1,3 @@
1
1
  """Single source of truth for tool version."""
2
2
 
3
- __version__ = "2.0.4"
3
+ __version__ = "2.0.5"
@@ -1,48 +0,0 @@
1
- # Guard Competitive Parity Matrix
2
-
3
- ## Scope
4
-
5
- This matrix compares the current Guard phase against the SafeDep-style capability set from `guard-competitive-prd.md` and `guard-competitive-todo.md`.
6
-
7
- Statuses:
8
- - `shipped`
9
- - `partial`
10
- - `missing`
11
- - `out-of-scope`
12
-
13
- Roadmap labels:
14
- - `parity`
15
- - `advantage`
16
- - `differentiator`
17
- - `later`
18
-
19
- ## Capability Matrix
20
-
21
- | Capability | Status | Why | Label |
22
- | --- | --- | --- | --- |
23
- | Local install-time protection | `partial` | `guard protect` now wraps install and registration commands for package and harness flows, but zero-config harness coverage is not complete across every ecosystem path. | `parity` |
24
- | Runtime protection | `shipped` | Guard blocks before execution, persists receipts, carries incident context, and supports browser or terminal approval paths. | `parity` |
25
- | Zero-config onboarding | `partial` | Stable daemon bootstrapping and direct CLI usage work immediately, but shell shim and guided minimal-config paths are still uneven by harness. | `parity` |
26
- | Threat intelligence feed | `partial` | Broker verdict, advisory, revocation, and watchlist endpoints exist, but ingestion breadth and external curated feeds are still narrower than the PRD target. | `parity` |
27
- | Inventory and discovery | `shipped` | Local inventory, synced inventory, inventory diff, and broker inventory endpoints are implemented. | `parity` |
28
- | Exceptions management | `shipped` | Local and synced exceptions support owner, rationale, source, and expiry. | `parity` |
29
- | ABOM export | `shipped` | Guard exports local ABOM and synced broker ABOM. | `parity` |
30
- | Audit trail | `shipped` | Receipts, history, artifact timelines, receipt export, and local events now form a usable audit path. | `parity` |
31
- | GitHub App / repo-side surface | `partial` | Scanner logic can power repo-side checks, but a coherent Guard GitHub App packaging and policy bridge is still incomplete. | `parity` |
32
- | Centralized dashboard | `partial` | Portal and broker inventory, history, alerts, policy, and pricing surfaces exist, but frontend execution is still being refined separately. | `parity` |
33
- | Org policy | `shipped` | Team policy packs, synced exceptions, and alert preferences are implemented in broker and portal support layers. | `parity` |
34
- | Alerting | `partial` | Alert preferences, watchlist, and lifecycle events are implemented, but full outbound delivery breadth is still limited. | `parity` |
35
- | Pricing and funnel | `partial` | Guard pricing, entitlements, and upgrade triggers exist, but premium packaging still needs broader product-surface enforcement. | `parity` |
36
- | Harness-native trust | `shipped` | Guard classifies MCP servers, skills, plugin-like artifacts, commands, and harness config with harness-specific risk context. | `differentiator` |
37
- | Consumer-to-maintainer loop | `partial` | Receipts, advisories, trust lookups, and attestation-aware verdicts exist, but maintainer-side remediation handoff is still incomplete. | `advantage` |
38
- | Cross-harness trust memory | `shipped` | Guard policy, receipts, synced inventory, and team policy operate across Codex, Claude Code, Cursor, Gemini CLI, and OpenCode artifacts. | `differentiator` |
39
- | Maintainer-side attestation bridge | `partial` | Trust resolution and registry-attested surfaces are wired in, but deeper maintainer remediation workflows remain incomplete. | `advantage` |
40
- | OpenClaw remediation loop | `missing` | Consumer pain signals are not yet fully connected to maintainer-side remediation in `internet-dot`. | `later` |
41
- | Hermes policy consumption | `missing` | Hermes consumption of Guard policy and receipts is not yet complete in this phase. | `later` |
42
-
43
- ## Summary
44
-
45
- - `parity`: install-time protection packaging, threat feed depth, GitHub app packaging, dashboard polish, and alert delivery still need more work.
46
- - `advantage`: consumer-to-maintainer trust loops and attestation bridges are real but not complete enough to market as finished.
47
- - `differentiator`: harness-native trust and cross-harness trust memory are the strongest Guard advantages today.
48
- - `later`: OpenClaw and Hermes integrations remain explicit later-phase work outside the repos completed here.
File without changes
File without changes
File without changes