plugin-scanner 2.0.63__tar.gz → 2.0.64__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.
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/PKG-INFO +1 -1
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/pyproject.toml +1 -1
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/pyproject.toml.bak +1 -1
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/guard/cli/commands.py +6 -11
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/version.py +1 -1
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/tests/test_guard_claude_adapter.py +5 -1
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/tests/test_guard_runtime.py +10 -2
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/tests/test_guard_surface_server.py +5 -1
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/.clusterfuzzlite/Dockerfile +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/.clusterfuzzlite/build.sh +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/.clusterfuzzlite/project.yaml +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/.clusterfuzzlite/requirements-atheris.txt +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/.dockerignore +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/.github/CODEOWNERS +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/.github/ISSUE_TEMPLATE/bug-report.yml +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/.github/ISSUE_TEMPLATE/feature-request.yml +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/.github/dependabot.yml +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/.github/workflows/ci.yml +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/.github/workflows/codeql.yml +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/.github/workflows/dependabot-uv-lock.yml +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/.github/workflows/fuzz.yml +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/.github/workflows/harness-smoke.yml +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/.github/workflows/publish.yml +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/.github/workflows/scorecard.yml +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/.gitignore +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/.pre-commit-hooks.yaml +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/CONTRIBUTING.md +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/Dockerfile +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/LICENSE +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/README.md +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/SECURITY.md +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/dashboard/index.html +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/dashboard/package.json +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/dashboard/pnpm-lock.yaml +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/dashboard/public/brand/Logo_Whole.png +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/dashboard/src/app.tsx +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/dashboard/src/approval-center-layout.tsx +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/dashboard/src/approval-center-primitives.tsx +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/dashboard/src/approval-center-utils.ts +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/dashboard/src/fleet-workspace.tsx +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/dashboard/src/guard-api.ts +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/dashboard/src/guard-demo.ts +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/dashboard/src/guard-types.ts +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/dashboard/src/main.tsx +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/dashboard/src/receipts-workspace.tsx +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/dashboard/src/runtime-overview.tsx +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/dashboard/src/styles.css +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/dashboard/src/vite-env.d.ts +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/dashboard/tsconfig.json +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/dashboard/vite.config.ts +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/docker-requirements.txt +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/docs/guard/approval-audit.md +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/docs/guard/architecture.md +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/docs/guard/get-started.md +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/docs/guard/harness-support.md +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/docs/guard/local-vs-cloud.md +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/docs/guard/testing-matrix.md +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/docs/trust/mcp-trust-draft.md +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/docs/trust/plugin-trust-draft.md +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/docs/trust/skill-trust-local.md +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/fuzzers/manifest_fuzzer.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/requirements.txt +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/schemas/plugin-quality.v1.json +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/schemas/scan-result.v1.json +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/schemas/verify-result.v1.json +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/__init__.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/action_runner.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/argparse_utils.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/checks/__init__.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/checks/best_practices.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/checks/claude.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/checks/code_quality.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/checks/ecosystem_common.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/checks/gemini.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/checks/manifest.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/checks/manifest_support.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/checks/marketplace.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/checks/mcp_security.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/checks/opencode.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/checks/operational_security.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/checks/security.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/checks/skill_security.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/cli.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/cli_ui.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/config.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/ecosystems/__init__.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/ecosystems/base.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/ecosystems/claude.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/ecosystems/codex.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/ecosystems/detect.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/ecosystems/gemini.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/ecosystems/opencode.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/ecosystems/registry.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/ecosystems/types.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/github_reporting.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/guard/__init__.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/guard/adapters/__init__.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/guard/adapters/antigravity.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/guard/adapters/base.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/guard/adapters/claude_code.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/guard/adapters/codex.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/guard/adapters/copilot.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/guard/adapters/cursor.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/guard/adapters/gemini.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/guard/adapters/hermes.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/guard/adapters/mcp_servers.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/guard/adapters/opencode.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/guard/adapters/opencode_artifacts.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/guard/approvals.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/guard/bridge/__init__.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/guard/capabilities.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/guard/cli/__init__.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/guard/cli/approval_commands.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/guard/cli/bootstrap.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/guard/cli/connect_flow.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/guard/cli/install_commands.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/guard/cli/product.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/guard/cli/prompt.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/guard/cli/render.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/guard/cli/update_commands.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/guard/codex_config.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/guard/config.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/guard/consumer/__init__.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/guard/consumer/service.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/guard/daemon/__init__.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/guard/daemon/client.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/guard/daemon/manager.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/guard/daemon/server.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/guard/daemon/static/assets/guard-dashboard.js +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/guard/daemon/static/assets/index.css +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/guard/daemon/static/brand/Logo_Whole.png +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/guard/daemon/static/index.html +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/guard/incident.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/guard/launcher.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/guard/mcp_tool_calls.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/guard/models.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/guard/policy/__init__.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/guard/policy/engine.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/guard/protect.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/guard/proxy/__init__.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/guard/proxy/remote.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/guard/proxy/runtime_mcp.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/guard/proxy/stdio.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/guard/receipts/__init__.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/guard/receipts/manager.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/guard/risk.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/guard/runtime/__init__.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/guard/runtime/runner.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/guard/runtime/secret_file_requests.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/guard/runtime/surface_server.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/guard/schemas/__init__.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/guard/schemas/consumer_mode.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/guard/schemas/surface_server.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/guard/shims.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/guard/store.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/guard/store_approvals.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/guard/store_connect.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/guard/types.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/integrations/__init__.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/integrations/cisco_mcp_scanner.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/integrations/cisco_skill_scanner.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/lint_fixes.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/marketplace_support.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/models.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/path_support.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/policy.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/quality_artifact.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/repo_detect.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/reporting.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/rules/__init__.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/rules/registry.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/rules/specs.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/scanner.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/submission.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/suppressions.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/trust_domain_scoring.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/trust_helpers.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/trust_mcp_scoring.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/trust_models.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/trust_plugin_scoring.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/trust_scoring.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/trust_skill_scoring.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/trust_specs.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/verification.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/tests/__init__.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/tests/conftest.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/tests/fixtures/__init__.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/tests/fixtures/bad-plugin/.codex-plugin/plugin.json +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/tests/fixtures/bad-plugin/.mcp.json +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/tests/fixtures/bad-plugin/secrets.js +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/tests/fixtures/claude-plugin-good/.claude-plugin/plugin.json +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/tests/fixtures/claude-plugin-good/LICENSE +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/tests/fixtures/claude-plugin-good/README.md +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/tests/fixtures/claude-plugin-good/SECURITY.md +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/tests/fixtures/claude-plugin-good/hooks/hooks.json +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/tests/fixtures/claude-plugin-good/skills/example/SKILL.md +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/tests/fixtures/code-quality-bad/evil.js +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/tests/fixtures/code-quality-bad/inject.js +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/tests/fixtures/gemini-extension-good/GEMINI.md +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/tests/fixtures/gemini-extension-good/LICENSE +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/tests/fixtures/gemini-extension-good/README.md +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/tests/fixtures/gemini-extension-good/SECURITY.md +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/tests/fixtures/gemini-extension-good/commands/hello.toml +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/tests/fixtures/gemini-extension-good/gemini-extension.json +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/tests/fixtures/good-plugin/.codex-plugin/plugin.json +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/tests/fixtures/good-plugin/.codexignore +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/tests/fixtures/good-plugin/LICENSE +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/tests/fixtures/good-plugin/README.md +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/tests/fixtures/good-plugin/SECURITY.md +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/tests/fixtures/good-plugin/assets/icon.svg +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/tests/fixtures/good-plugin/assets/logo.svg +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/tests/fixtures/good-plugin/assets/screenshot.svg +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/tests/fixtures/good-plugin/skills/example/SKILL.md +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/tests/fixtures/guard-codex-malicious-mcp/.codex/config.toml +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/tests/fixtures/hermes-plugin-evil/config.yaml +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/tests/fixtures/hermes-plugin-evil/mcp_servers.json +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/tests/fixtures/hermes-plugin-evil/skills/security/malicious/SKILL.md +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/tests/fixtures/hermes-plugin-evil/skills/stealth/sneaky/SKILL.md +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/tests/fixtures/hermes-plugin-evil/skills/stealth/sneaky/references/api-setup.md +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/tests/fixtures/hermes-plugin-evil/skills/stealth/sneaky/scripts/deploy.sh +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/tests/fixtures/hermes-plugin-evil/skills/utils/benign/SKILL.md +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/tests/fixtures/malformed-json/.codex-plugin/plugin.json +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/tests/fixtures/malicious-skill-plugin/.codex-plugin/plugin.json +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/tests/fixtures/malicious-skill-plugin/.codexignore +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/tests/fixtures/malicious-skill-plugin/LICENSE +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/tests/fixtures/malicious-skill-plugin/README.md +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/tests/fixtures/malicious-skill-plugin/SECURITY.md +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/tests/fixtures/malicious-skill-plugin/skills/leaky-skill/SKILL.md +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/tests/fixtures/mcp-canary-server.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/tests/fixtures/minimal-plugin/.codex-plugin/plugin.json +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/tests/fixtures/missing-fields/.codex-plugin/plugin.json +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/tests/fixtures/mit-license/LICENSE +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/tests/fixtures/multi-ecosystem-repo/codex-plugin/.codex-plugin/plugin.json +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/tests/fixtures/multi-ecosystem-repo/codex-plugin/LICENSE +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/tests/fixtures/multi-ecosystem-repo/codex-plugin/README.md +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/tests/fixtures/multi-ecosystem-repo/codex-plugin/SECURITY.md +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/tests/fixtures/multi-ecosystem-repo/gemini-ext/README.md +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/tests/fixtures/multi-ecosystem-repo/gemini-ext/gemini-extension.json +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/tests/fixtures/multi-plugin-repo/.agents/plugins/marketplace.json +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/tests/fixtures/multi-plugin-repo/plugins/alpha-plugin/.codex-plugin/plugin.json +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/tests/fixtures/multi-plugin-repo/plugins/alpha-plugin/.codexignore +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/tests/fixtures/multi-plugin-repo/plugins/alpha-plugin/LICENSE +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/tests/fixtures/multi-plugin-repo/plugins/alpha-plugin/README.md +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/tests/fixtures/multi-plugin-repo/plugins/alpha-plugin/SECURITY.md +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/tests/fixtures/multi-plugin-repo/plugins/alpha-plugin/skills/example/SKILL.md +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/tests/fixtures/multi-plugin-repo/plugins/beta-plugin/.codex-plugin/plugin.json +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/tests/fixtures/multi-plugin-repo/plugins/beta-plugin/skills/example/SKILL.md +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/tests/fixtures/no-version/.codex-plugin/plugin.json +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/tests/fixtures/opencode-good/.opencode/commands/hello.md +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/tests/fixtures/opencode-good/.opencode/plugins/example.ts +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/tests/fixtures/opencode-good/LICENSE +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/tests/fixtures/opencode-good/README.md +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/tests/fixtures/opencode-good/SECURITY.md +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/tests/fixtures/opencode-good/opencode.jsonc +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/tests/fixtures/skills-missing-dir/.codex-plugin/plugin.json +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/tests/fixtures/skills-no-frontmatter/.codex-plugin/plugin.json +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/tests/fixtures/skills-no-frontmatter/skills/bad-skill/SKILL.md +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/tests/fixtures/with-marketplace/.codex-plugin/plugin.json +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/tests/fixtures/with-marketplace/marketplace-broken.json +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/tests/fixtures/with-marketplace/marketplace.json +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/tests/test-trust-scoring.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/tests/test-trust-specs.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/tests/test_action_runner.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/tests/test_best_practices.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/tests/test_cisco_install_surfaces.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/tests/test_cli.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/tests/test_code_quality.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/tests/test_config.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/tests/test_coverage_remaining.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/tests/test_ecosystems.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/tests/test_edge_cases.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/tests/test_final_coverage.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/tests/test_guard_approvals.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/tests/test_guard_bootstrap.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/tests/test_guard_capabilities.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/tests/test_guard_cli.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/tests/test_guard_codex_e2e.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/tests/test_guard_codex_install.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/tests/test_guard_codex_proxy.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/tests/test_guard_config_paths.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/tests/test_guard_connect_flow.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/tests/test_guard_consumer_mode.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/tests/test_guard_copilot_adapter.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/tests/test_guard_copilot_proxy.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/tests/test_guard_daemon_manager.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/tests/test_guard_events.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/tests/test_guard_launch_env.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/tests/test_guard_opencode_proxy.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/tests/test_guard_product_flow.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/tests/test_guard_protect.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/tests/test_guard_render.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/tests/test_guard_risk.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/tests/test_guard_store_migrations.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/tests/test_guard_verdicts.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/tests/test_hermes_adapter.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/tests/test_integration.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/tests/test_lint_fixes.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/tests/test_live_cisco_smoke.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/tests/test_manifest.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/tests/test_marketplace.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/tests/test_mcp_security.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/tests/test_operational_security.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/tests/test_policy.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/tests/test_quality_artifact.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/tests/test_rule_registry.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/tests/test_scanner.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/tests/test_schema_contracts.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/tests/test_security.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/tests/test_security_ops.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/tests/test_skill_security.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/tests/test_submission.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/tests/test_trust_scoring.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/tests/test_trust_specs.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/tests/test_verification.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/tests/test_versioning.py +0 -0
- {plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/uv.lock +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: plugin-scanner
|
|
3
|
-
Version: 2.0.
|
|
3
|
+
Version: 2.0.64
|
|
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.
|
|
7
|
+
version = "2.0.64"
|
|
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.
|
|
7
|
+
version = "2.0.64"
|
|
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"
|
{plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/guard/cli/commands.py
RENAMED
|
@@ -2438,22 +2438,17 @@ def _claude_prompt_additional_context(
|
|
|
2438
2438
|
return None
|
|
2439
2439
|
if _prompt_requires_hard_block(artifact):
|
|
2440
2440
|
return None
|
|
2441
|
-
briefing_sentence = "HOL Guard
|
|
2441
|
+
briefing_sentence = "HOL Guard will intercept Claude's next sensitive action and open a branded approval question."
|
|
2442
2442
|
if "secret_read" in _prompt_request_classes(artifact):
|
|
2443
2443
|
briefing_sentence = (
|
|
2444
|
-
"HOL Guard
|
|
2445
|
-
"
|
|
2446
|
-
)
|
|
2447
|
-
else:
|
|
2448
|
-
briefing_sentence = (
|
|
2449
|
-
"HOL Guard intercepted Claude's next sensitive action and opened the approval dialog shown below."
|
|
2444
|
+
"HOL Guard will intercept Claude's next attempt to access local secrets and open a branded approval "
|
|
2445
|
+
"question to protect you."
|
|
2450
2446
|
)
|
|
2451
2447
|
return (
|
|
2452
2448
|
f"{_ensure_terminal_punctuation(native_reason)} "
|
|
2453
|
-
"
|
|
2454
|
-
"
|
|
2455
|
-
"
|
|
2456
|
-
"retry the sensitive action. Then tell the user exactly: "
|
|
2449
|
+
"Do not ask for approval at the prompt stage. Attempt the intended sensitive tool once so HOL Guard can "
|
|
2450
|
+
"evaluate the exact tool, path, and arguments, then route that concrete action into a HOL Guard approval "
|
|
2451
|
+
"question with Allow once, Allow during this session, and Keep blocked. First tell the user exactly: "
|
|
2457
2452
|
f"'{briefing_sentence}' "
|
|
2458
2453
|
"Attempt that sensitive tool at most once. If HOL Guard or Claude denies it, do not retry the same sensitive "
|
|
2459
2454
|
"action automatically. Instead, tell the user approval is required in Claude to continue."
|
|
@@ -399,7 +399,11 @@ def test_claude_daemon_hook_command_falls_back_without_blocking_prompt_on_daemon
|
|
|
399
399
|
assert result.stderr == ""
|
|
400
400
|
payload = json.loads(result.stdout)
|
|
401
401
|
assert payload["hookSpecificOutput"]["hookEventName"] == "UserPromptSubmit"
|
|
402
|
-
assert "
|
|
402
|
+
assert "Do not ask for approval at the prompt stage" in payload["hookSpecificOutput"]["additionalContext"]
|
|
403
|
+
assert (
|
|
404
|
+
"route that concrete action into a HOL Guard approval question"
|
|
405
|
+
in payload["hookSpecificOutput"]["additionalContext"]
|
|
406
|
+
)
|
|
403
407
|
assert "Keep blocked" in payload["hookSpecificOutput"]["additionalContext"]
|
|
404
408
|
|
|
405
409
|
|
|
@@ -4899,7 +4899,11 @@ def test_guard_hook_brands_claude_user_prompt_submit_before_native_approval(
|
|
|
4899
4899
|
|
|
4900
4900
|
assert rc == 0
|
|
4901
4901
|
assert payload["hookSpecificOutput"]["hookEventName"] == "UserPromptSubmit"
|
|
4902
|
-
assert "
|
|
4902
|
+
assert "Do not ask for approval at the prompt stage" in payload["hookSpecificOutput"]["additionalContext"]
|
|
4903
|
+
assert (
|
|
4904
|
+
"route that concrete action into a HOL Guard approval question"
|
|
4905
|
+
in payload["hookSpecificOutput"]["additionalContext"]
|
|
4906
|
+
)
|
|
4903
4907
|
assert "Keep blocked" in payload["hookSpecificOutput"]["additionalContext"]
|
|
4904
4908
|
assert any(receipt["artifact_id"].startswith("claude-code:session:prompt") for receipt in receipts)
|
|
4905
4909
|
|
|
@@ -4929,7 +4933,11 @@ def test_guard_hook_brands_generic_claude_user_prompt_submit_before_native_appro
|
|
|
4929
4933
|
|
|
4930
4934
|
assert rc == 0
|
|
4931
4935
|
assert payload["hookSpecificOutput"]["hookEventName"] == "UserPromptSubmit"
|
|
4932
|
-
assert "
|
|
4936
|
+
assert "Do not ask for approval at the prompt stage" in payload["hookSpecificOutput"]["additionalContext"]
|
|
4937
|
+
assert (
|
|
4938
|
+
"route that concrete action into a HOL Guard approval question"
|
|
4939
|
+
in payload["hookSpecificOutput"]["additionalContext"]
|
|
4940
|
+
)
|
|
4933
4941
|
assert "Keep blocked" in payload["hookSpecificOutput"]["additionalContext"]
|
|
4934
4942
|
|
|
4935
4943
|
|
|
@@ -255,7 +255,11 @@ class TestGuardSurfaceServer:
|
|
|
255
255
|
|
|
256
256
|
assert "HOL Guard intercepted this prompt" in hook_payload["systemMessage"]
|
|
257
257
|
assert hook_payload["hookSpecificOutput"]["hookEventName"] == "UserPromptSubmit"
|
|
258
|
-
assert "
|
|
258
|
+
assert "Do not ask for approval at the prompt stage" in hook_payload["hookSpecificOutput"]["additionalContext"]
|
|
259
|
+
assert (
|
|
260
|
+
"route that concrete action into a HOL Guard approval question"
|
|
261
|
+
in hook_payload["hookSpecificOutput"]["additionalContext"]
|
|
262
|
+
)
|
|
259
263
|
assert "Allow once" in hook_payload["hookSpecificOutput"]["additionalContext"]
|
|
260
264
|
assert "Keep blocked" in hook_payload["hookSpecificOutput"]["additionalContext"]
|
|
261
265
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/dashboard/src/approval-center-primitives.tsx
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/checks/best_practices.py
RENAMED
|
File without changes
|
|
File without changes
|
{plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/checks/code_quality.py
RENAMED
|
File without changes
|
{plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/checks/ecosystem_common.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/checks/manifest_support.py
RENAMED
|
File without changes
|
{plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/checks/marketplace.py
RENAMED
|
File without changes
|
{plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/checks/mcp_security.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/checks/skill_security.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/ecosystems/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/ecosystems/claude.py
RENAMED
|
File without changes
|
{plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/ecosystems/codex.py
RENAMED
|
File without changes
|
{plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/ecosystems/detect.py
RENAMED
|
File without changes
|
{plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/ecosystems/gemini.py
RENAMED
|
File without changes
|
{plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/ecosystems/opencode.py
RENAMED
|
File without changes
|
{plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/ecosystems/registry.py
RENAMED
|
File without changes
|
{plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/ecosystems/types.py
RENAMED
|
File without changes
|
{plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/github_reporting.py
RENAMED
|
File without changes
|
|
File without changes
|
{plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/guard/adapters/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/guard/adapters/base.py
RENAMED
|
File without changes
|
|
File without changes
|
{plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/guard/adapters/codex.py
RENAMED
|
File without changes
|
{plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/guard/adapters/copilot.py
RENAMED
|
File without changes
|
{plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/guard/adapters/cursor.py
RENAMED
|
File without changes
|
{plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/guard/adapters/gemini.py
RENAMED
|
File without changes
|
{plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/guard/adapters/hermes.py
RENAMED
|
File without changes
|
|
File without changes
|
{plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/guard/adapters/opencode.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/guard/bridge/__init__.py
RENAMED
|
File without changes
|
{plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/guard/capabilities.py
RENAMED
|
File without changes
|
{plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/guard/cli/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/guard/cli/bootstrap.py
RENAMED
|
File without changes
|
{plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/guard/cli/connect_flow.py
RENAMED
|
File without changes
|
|
File without changes
|
{plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/guard/cli/product.py
RENAMED
|
File without changes
|
{plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/guard/cli/prompt.py
RENAMED
|
File without changes
|
{plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/guard/cli/render.py
RENAMED
|
File without changes
|
|
File without changes
|
{plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/guard/codex_config.py
RENAMED
|
File without changes
|
|
File without changes
|
{plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/guard/consumer/__init__.py
RENAMED
|
File without changes
|
{plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/guard/consumer/service.py
RENAMED
|
File without changes
|
{plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/guard/daemon/__init__.py
RENAMED
|
File without changes
|
{plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/guard/daemon/client.py
RENAMED
|
File without changes
|
{plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/guard/daemon/manager.py
RENAMED
|
File without changes
|
{plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/guard/daemon/server.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/guard/mcp_tool_calls.py
RENAMED
|
File without changes
|
|
File without changes
|
{plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/guard/policy/__init__.py
RENAMED
|
File without changes
|
{plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/guard/policy/engine.py
RENAMED
|
File without changes
|
|
File without changes
|
{plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/guard/proxy/__init__.py
RENAMED
|
File without changes
|
{plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/guard/proxy/remote.py
RENAMED
|
File without changes
|
{plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/guard/proxy/runtime_mcp.py
RENAMED
|
File without changes
|
{plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/guard/proxy/stdio.py
RENAMED
|
File without changes
|
{plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/guard/receipts/__init__.py
RENAMED
|
File without changes
|
{plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/guard/receipts/manager.py
RENAMED
|
File without changes
|
|
File without changes
|
{plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/guard/runtime/__init__.py
RENAMED
|
File without changes
|
{plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/guard/runtime/runner.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/guard/schemas/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/guard/store_approvals.py
RENAMED
|
File without changes
|
{plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/guard/store_connect.py
RENAMED
|
File without changes
|
|
File without changes
|
{plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/integrations/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/marketplace_support.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/quality_artifact.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/trust_domain_scoring.py
RENAMED
|
File without changes
|
|
File without changes
|
{plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/trust_mcp_scoring.py
RENAMED
|
File without changes
|
|
File without changes
|
{plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/trust_plugin_scoring.py
RENAMED
|
File without changes
|
|
File without changes
|
{plugin_scanner-2.0.63 → plugin_scanner-2.0.64}/src/codex_plugin_scanner/trust_skill_scoring.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|