plugin-scanner 2.0.80__tar.gz → 2.0.82__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.80 → plugin_scanner-2.0.82}/PKG-INFO +1 -1
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/dashboard/src/approval-center-primitives.tsx +1 -1
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/dashboard/src/receipts-workspace.tsx +12 -10
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/pyproject.toml +1 -1
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/pyproject.toml.bak +1 -1
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/version.py +1 -1
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/.clusterfuzzlite/Dockerfile +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/.clusterfuzzlite/build.sh +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/.clusterfuzzlite/project.yaml +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/.clusterfuzzlite/requirements-atheris.txt +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/.dockerignore +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/.github/CODEOWNERS +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/.github/ISSUE_TEMPLATE/bug-report.yml +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/.github/ISSUE_TEMPLATE/feature-request.yml +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/.github/dependabot.yml +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/.github/workflows/ci.yml +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/.github/workflows/codeql.yml +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/.github/workflows/dependabot-uv-lock.yml +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/.github/workflows/fuzz.yml +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/.github/workflows/harness-smoke.yml +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/.github/workflows/publish.yml +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/.github/workflows/scorecard.yml +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/.gitignore +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/.pre-commit-hooks.yaml +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/CONTRIBUTING.md +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/Dockerfile +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/LICENSE +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/README.md +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/SECURITY.md +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/dashboard/index.html +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/dashboard/package.json +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/dashboard/pnpm-lock.yaml +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/dashboard/public/apple-touch-icon.png +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/dashboard/public/brand/Logo_Icon_Dark.png +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/dashboard/public/brand/Logo_Whole.png +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/dashboard/public/favicon-16x16.png +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/dashboard/public/favicon-32x32.png +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/dashboard/public/favicon.ico +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/dashboard/src/app.tsx +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/dashboard/src/approval-center-layout.tsx +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/dashboard/src/approval-center-utils.ts +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/dashboard/src/fleet-workspace.tsx +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/dashboard/src/guard-api.ts +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/dashboard/src/guard-demo.ts +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/dashboard/src/guard-types.ts +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/dashboard/src/main.tsx +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/dashboard/src/runtime-overview.tsx +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/dashboard/src/settings-workspace.tsx +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/dashboard/src/styles.css +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/dashboard/src/vite-env.d.ts +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/dashboard/tsconfig.json +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/dashboard/vite.config.ts +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/docker-requirements.txt +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/docs/guard/approval-audit.md +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/docs/guard/architecture.md +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/docs/guard/get-started.md +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/docs/guard/harness-support.md +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/docs/guard/local-vs-cloud.md +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/docs/guard/testing-matrix.md +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/docs/trust/mcp-trust-draft.md +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/docs/trust/plugin-trust-draft.md +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/docs/trust/skill-trust-local.md +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/fuzzers/manifest_fuzzer.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/requirements.txt +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/schemas/plugin-quality.v1.json +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/schemas/scan-result.v1.json +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/schemas/verify-result.v1.json +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/__init__.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/action_runner.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/argparse_utils.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/checks/__init__.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/checks/best_practices.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/checks/claude.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/checks/code_quality.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/checks/ecosystem_common.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/checks/gemini.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/checks/manifest.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/checks/manifest_support.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/checks/marketplace.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/checks/mcp_security.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/checks/opencode.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/checks/operational_security.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/checks/security.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/checks/skill_security.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/cli.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/cli_ui.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/config.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/ecosystems/__init__.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/ecosystems/base.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/ecosystems/claude.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/ecosystems/codex.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/ecosystems/detect.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/ecosystems/gemini.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/ecosystems/opencode.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/ecosystems/registry.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/ecosystems/types.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/github_reporting.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/guard/__init__.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/guard/adapters/__init__.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/guard/adapters/antigravity.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/guard/adapters/base.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/guard/adapters/claude_code.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/guard/adapters/codex.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/guard/adapters/copilot.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/guard/adapters/cursor.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/guard/adapters/gemini.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/guard/adapters/hermes.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/guard/adapters/mcp_servers.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/guard/adapters/opencode.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/guard/adapters/opencode_artifacts.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/guard/advisory_model.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/guard/approvals.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/guard/bridge/__init__.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/guard/capabilities.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/guard/cli/__init__.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/guard/cli/approval_commands.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/guard/cli/bootstrap.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/guard/cli/commands.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/guard/cli/connect_flow.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/guard/cli/install_commands.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/guard/cli/product.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/guard/cli/prompt.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/guard/cli/render.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/guard/cli/update_commands.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/guard/codex_config.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/guard/config.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/guard/consumer/__init__.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/guard/consumer/service.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/guard/daemon/__init__.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/guard/daemon/client.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/guard/daemon/manager.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/guard/daemon/server.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/guard/daemon/static/apple-touch-icon.png +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/guard/daemon/static/assets/guard-dashboard.js +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/guard/daemon/static/assets/index.css +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/guard/daemon/static/brand/Logo_Icon_Dark.png +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/guard/daemon/static/brand/Logo_Whole.png +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/guard/daemon/static/favicon-16x16.png +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/guard/daemon/static/favicon-32x32.png +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/guard/daemon/static/favicon.ico +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/guard/daemon/static/index.html +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/guard/edge_events.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/guard/incident.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/guard/launcher.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/guard/mcp_tool_calls.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/guard/models.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/guard/policy/__init__.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/guard/policy/engine.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/guard/protect.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/guard/proxy/__init__.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/guard/proxy/remote.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/guard/proxy/runtime_mcp.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/guard/proxy/stdio.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/guard/receipts/__init__.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/guard/receipts/manager.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/guard/redaction.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/guard/risk.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/guard/runtime/__init__.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/guard/runtime/runner.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/guard/runtime/secret_file_requests.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/guard/runtime/surface_server.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/guard/schemas/__init__.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/guard/schemas/consumer_mode.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/guard/schemas/guard_event_v1.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/guard/schemas/surface_server.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/guard/shims.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/guard/store.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/guard/store_approvals.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/guard/store_connect.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/guard/types.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/integrations/__init__.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/integrations/cisco_mcp_scanner.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/integrations/cisco_skill_scanner.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/lint_fixes.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/marketplace_support.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/models.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/path_support.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/policy.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/quality_artifact.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/repo_detect.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/reporting.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/rules/__init__.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/rules/registry.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/rules/specs.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/scanner.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/submission.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/suppressions.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/trust_domain_scoring.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/trust_helpers.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/trust_mcp_scoring.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/trust_models.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/trust_plugin_scoring.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/trust_scoring.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/trust_skill_scoring.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/trust_specs.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/verification.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/tests/__init__.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/tests/conftest.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/tests/fixtures/__init__.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/tests/fixtures/bad-plugin/.codex-plugin/plugin.json +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/tests/fixtures/bad-plugin/.mcp.json +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/tests/fixtures/bad-plugin/secrets.js +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/tests/fixtures/claude-plugin-good/.claude-plugin/plugin.json +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/tests/fixtures/claude-plugin-good/LICENSE +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/tests/fixtures/claude-plugin-good/README.md +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/tests/fixtures/claude-plugin-good/SECURITY.md +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/tests/fixtures/claude-plugin-good/hooks/hooks.json +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/tests/fixtures/claude-plugin-good/skills/example/SKILL.md +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/tests/fixtures/code-quality-bad/evil.js +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/tests/fixtures/code-quality-bad/inject.js +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/tests/fixtures/gemini-extension-good/GEMINI.md +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/tests/fixtures/gemini-extension-good/LICENSE +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/tests/fixtures/gemini-extension-good/README.md +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/tests/fixtures/gemini-extension-good/SECURITY.md +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/tests/fixtures/gemini-extension-good/commands/hello.toml +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/tests/fixtures/gemini-extension-good/gemini-extension.json +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/tests/fixtures/good-plugin/.codex-plugin/plugin.json +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/tests/fixtures/good-plugin/.codexignore +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/tests/fixtures/good-plugin/LICENSE +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/tests/fixtures/good-plugin/README.md +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/tests/fixtures/good-plugin/SECURITY.md +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/tests/fixtures/good-plugin/assets/icon.svg +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/tests/fixtures/good-plugin/assets/logo.svg +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/tests/fixtures/good-plugin/assets/screenshot.svg +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/tests/fixtures/good-plugin/skills/example/SKILL.md +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/tests/fixtures/guard-codex-malicious-mcp/.codex/config.toml +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/tests/fixtures/hermes-plugin-evil/config.yaml +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/tests/fixtures/hermes-plugin-evil/mcp_servers.json +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/tests/fixtures/hermes-plugin-evil/skills/security/malicious/SKILL.md +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/tests/fixtures/hermes-plugin-evil/skills/stealth/sneaky/SKILL.md +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/tests/fixtures/hermes-plugin-evil/skills/stealth/sneaky/references/api-setup.md +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/tests/fixtures/hermes-plugin-evil/skills/stealth/sneaky/scripts/deploy.sh +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/tests/fixtures/hermes-plugin-evil/skills/utils/benign/SKILL.md +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/tests/fixtures/malformed-json/.codex-plugin/plugin.json +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/tests/fixtures/malicious-skill-plugin/.codex-plugin/plugin.json +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/tests/fixtures/malicious-skill-plugin/.codexignore +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/tests/fixtures/malicious-skill-plugin/LICENSE +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/tests/fixtures/malicious-skill-plugin/README.md +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/tests/fixtures/malicious-skill-plugin/SECURITY.md +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/tests/fixtures/malicious-skill-plugin/skills/leaky-skill/SKILL.md +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/tests/fixtures/mcp-canary-server.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/tests/fixtures/minimal-plugin/.codex-plugin/plugin.json +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/tests/fixtures/missing-fields/.codex-plugin/plugin.json +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/tests/fixtures/mit-license/LICENSE +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/tests/fixtures/multi-ecosystem-repo/codex-plugin/.codex-plugin/plugin.json +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/tests/fixtures/multi-ecosystem-repo/codex-plugin/LICENSE +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/tests/fixtures/multi-ecosystem-repo/codex-plugin/README.md +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/tests/fixtures/multi-ecosystem-repo/codex-plugin/SECURITY.md +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/tests/fixtures/multi-ecosystem-repo/gemini-ext/README.md +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/tests/fixtures/multi-ecosystem-repo/gemini-ext/gemini-extension.json +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/tests/fixtures/multi-plugin-repo/.agents/plugins/marketplace.json +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/tests/fixtures/multi-plugin-repo/plugins/alpha-plugin/.codex-plugin/plugin.json +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/tests/fixtures/multi-plugin-repo/plugins/alpha-plugin/.codexignore +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/tests/fixtures/multi-plugin-repo/plugins/alpha-plugin/LICENSE +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/tests/fixtures/multi-plugin-repo/plugins/alpha-plugin/README.md +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/tests/fixtures/multi-plugin-repo/plugins/alpha-plugin/SECURITY.md +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/tests/fixtures/multi-plugin-repo/plugins/alpha-plugin/skills/example/SKILL.md +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/tests/fixtures/multi-plugin-repo/plugins/beta-plugin/.codex-plugin/plugin.json +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/tests/fixtures/multi-plugin-repo/plugins/beta-plugin/skills/example/SKILL.md +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/tests/fixtures/no-version/.codex-plugin/plugin.json +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/tests/fixtures/opencode-good/.opencode/commands/hello.md +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/tests/fixtures/opencode-good/.opencode/plugins/example.ts +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/tests/fixtures/opencode-good/LICENSE +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/tests/fixtures/opencode-good/README.md +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/tests/fixtures/opencode-good/SECURITY.md +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/tests/fixtures/opencode-good/opencode.jsonc +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/tests/fixtures/skills-missing-dir/.codex-plugin/plugin.json +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/tests/fixtures/skills-no-frontmatter/.codex-plugin/plugin.json +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/tests/fixtures/skills-no-frontmatter/skills/bad-skill/SKILL.md +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/tests/fixtures/with-marketplace/.codex-plugin/plugin.json +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/tests/fixtures/with-marketplace/marketplace-broken.json +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/tests/fixtures/with-marketplace/marketplace.json +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/tests/test-trust-scoring.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/tests/test-trust-specs.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/tests/test_action_runner.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/tests/test_best_practices.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/tests/test_cisco_install_surfaces.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/tests/test_cli.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/tests/test_code_quality.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/tests/test_config.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/tests/test_coverage_remaining.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/tests/test_ecosystems.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/tests/test_edge_cases.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/tests/test_final_coverage.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/tests/test_guard_approvals.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/tests/test_guard_bootstrap.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/tests/test_guard_capabilities.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/tests/test_guard_claude_adapter.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/tests/test_guard_cli.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/tests/test_guard_codex_e2e.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/tests/test_guard_codex_install.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/tests/test_guard_codex_proxy.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/tests/test_guard_config_paths.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/tests/test_guard_connect_flow.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/tests/test_guard_consumer_mode.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/tests/test_guard_copilot_adapter.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/tests/test_guard_copilot_proxy.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/tests/test_guard_daemon_manager.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/tests/test_guard_event_schema_v1.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/tests/test_guard_events.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/tests/test_guard_launch_env.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/tests/test_guard_opencode_proxy.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/tests/test_guard_product_flow.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/tests/test_guard_protect.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/tests/test_guard_render.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/tests/test_guard_risk.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/tests/test_guard_runtime.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/tests/test_guard_store_migrations.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/tests/test_guard_surface_server.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/tests/test_guard_verdicts.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/tests/test_hermes_adapter.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/tests/test_integration.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/tests/test_lint_fixes.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/tests/test_live_cisco_smoke.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/tests/test_manifest.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/tests/test_marketplace.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/tests/test_mcp_security.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/tests/test_operational_security.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/tests/test_policy.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/tests/test_quality_artifact.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/tests/test_rule_registry.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/tests/test_scanner.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/tests/test_schema_contracts.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/tests/test_security.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/tests/test_security_ops.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/tests/test_skill_security.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/tests/test_submission.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/tests/test_trust_scoring.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/tests/test_trust_specs.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/tests/test_verification.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/tests/test_versioning.py +0 -0
- {plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/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.82
|
|
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
|
{plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/dashboard/src/approval-center-primitives.tsx
RENAMED
|
@@ -402,7 +402,7 @@ function SidebarLink(props: {
|
|
|
402
402
|
aria-current={props.active ? "page" : undefined}
|
|
403
403
|
className={`flex min-h-10 items-center gap-2.5 rounded-lg px-3 py-2 text-sm font-medium no-underline transition-colors duration-150 ${
|
|
404
404
|
props.active
|
|
405
|
-
? "bg-brand-blue/
|
|
405
|
+
? "bg-brand-blue/[0.05] font-semibold text-brand-dark"
|
|
406
406
|
: "text-slate-600 hover:bg-slate-200/50 hover:text-slate-900"
|
|
407
407
|
}`}
|
|
408
408
|
>
|
|
@@ -112,6 +112,7 @@ function ReadyReceiptsWorkspace(props: { receiptItems: GuardReceipt[] }) {
|
|
|
112
112
|
setPage((value) => Math.min(totalPages, value + 1));
|
|
113
113
|
}, [totalPages]);
|
|
114
114
|
|
|
115
|
+
|
|
115
116
|
if (receiptItems.length === 0) {
|
|
116
117
|
return (
|
|
117
118
|
<EmptyState
|
|
@@ -126,7 +127,6 @@ function ReadyReceiptsWorkspace(props: { receiptItems: GuardReceipt[] }) {
|
|
|
126
127
|
<section className="guard-surface-in rounded-[2rem] border border-brand-blue/15 bg-[radial-gradient(circle_at_top_left,rgba(85,153,254,0.12),transparent_32%),linear-gradient(135deg,#ffffff_0%,#ffffff_62%,rgba(181,108,255,0.08)_100%)] p-5 shadow-[0_20px_60px_rgba(63,65,116,0.08)] sm:p-6 lg:p-7">
|
|
127
128
|
<div className="flex flex-col gap-4 lg:flex-row lg:items-start lg:justify-between">
|
|
128
129
|
<div className="space-y-1">
|
|
129
|
-
<SectionLabel>History</SectionLabel>
|
|
130
130
|
<h1 className="mt-2 text-3xl font-semibold tracking-[-0.02em] text-brand-dark">
|
|
131
131
|
History
|
|
132
132
|
</h1>
|
|
@@ -143,7 +143,7 @@ function ReadyReceiptsWorkspace(props: { receiptItems: GuardReceipt[] }) {
|
|
|
143
143
|
|
|
144
144
|
<section className="rounded-[1.75rem] border border-slate-200/70 bg-white/80 p-5 shadow-sm sm:p-6">
|
|
145
145
|
<SectionLabel>Find history</SectionLabel>
|
|
146
|
-
<div className="mt-3
|
|
146
|
+
<div className="mt-3 grid gap-3 lg:grid-cols-[minmax(0,1fr)_180px]">
|
|
147
147
|
<ListControls
|
|
148
148
|
searchLabel="Search history"
|
|
149
149
|
searchValue={searchTerm}
|
|
@@ -155,7 +155,7 @@ function ReadyReceiptsWorkspace(props: { receiptItems: GuardReceipt[] }) {
|
|
|
155
155
|
onSearchChange={handleSearchChange}
|
|
156
156
|
onFilterChange={handleHarnessFilterChange}
|
|
157
157
|
/>
|
|
158
|
-
<label className="block
|
|
158
|
+
<label className="block">
|
|
159
159
|
<span className="sr-only">Filter evidence by decision</span>
|
|
160
160
|
<select
|
|
161
161
|
value={decisionFilter}
|
|
@@ -205,10 +205,10 @@ function HistoryRow(props: { receipt: GuardReceipt }) {
|
|
|
205
205
|
const changed = receipt.changed_capabilities.join(", ") || "Nothing recorded";
|
|
206
206
|
const decisionTone = receipt.policy_decision === "allow" ? "green" : receipt.policy_decision === "block" ? "purple" : "blue";
|
|
207
207
|
return (
|
|
208
|
-
<article className="px-4 py-
|
|
208
|
+
<article className="px-4 py-3 transition-colors duration-150 hover:bg-surface-1/70 sm:px-5">
|
|
209
209
|
<div className="grid gap-4 lg:grid-cols-[minmax(0,1fr)_150px_120px] lg:items-start">
|
|
210
210
|
<div className="min-w-0">
|
|
211
|
-
<div className="flex flex-wrap items-center gap-
|
|
211
|
+
<div className="flex flex-wrap items-center gap-3">
|
|
212
212
|
<Tag tone={decisionTone}>{policyActionLabel(receipt.policy_decision)}</Tag>
|
|
213
213
|
<span className="text-xs font-medium text-muted-foreground">{harnessDisplayName(receipt.harness)}</span>
|
|
214
214
|
</div>
|
|
@@ -224,13 +224,15 @@ function HistoryRow(props: { receipt: GuardReceipt }) {
|
|
|
224
224
|
<p className="mt-1 line-clamp-2 text-xs font-medium leading-relaxed text-brand-dark">{changed}</p>
|
|
225
225
|
</div>
|
|
226
226
|
<div className="text-xs font-medium text-muted-foreground lg:text-right">
|
|
227
|
-
{receipt.timestamp}
|
|
227
|
+
{new Date(receipt.timestamp).toLocaleString("en-US", { dateStyle: "medium", timeStyle: "short" })}
|
|
228
228
|
</div>
|
|
229
229
|
</div>
|
|
230
|
-
<details className="group mt-
|
|
231
|
-
<summary className="
|
|
232
|
-
<span className="
|
|
233
|
-
|
|
230
|
+
<details className="group mt-2">
|
|
231
|
+
<summary className="flex cursor-pointer select-none items-center gap-2 text-xs font-semibold text-brand-blue [&::-webkit-details-marker]:hidden">
|
|
232
|
+
<span className="flex items-center gap-2">
|
|
233
|
+
<span className="transition-transform duration-150 group-open:rotate-90">›</span>
|
|
234
|
+
More details
|
|
235
|
+
</span>
|
|
234
236
|
</summary>
|
|
235
237
|
<div className="mt-3 rounded-xl border border-slate-200/70 bg-white p-3">
|
|
236
238
|
<KeyValueGrid
|
|
@@ -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.82"
|
|
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.82"
|
|
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"
|
|
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
|
|
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
|
|
File without changes
|
|
File without changes
|
{plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/checks/best_practices.py
RENAMED
|
File without changes
|
|
File without changes
|
{plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/checks/code_quality.py
RENAMED
|
File without changes
|
{plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/checks/ecosystem_common.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/checks/manifest_support.py
RENAMED
|
File without changes
|
{plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/checks/marketplace.py
RENAMED
|
File without changes
|
{plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/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.80 → plugin_scanner-2.0.82}/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.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/ecosystems/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/ecosystems/claude.py
RENAMED
|
File without changes
|
{plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/ecosystems/codex.py
RENAMED
|
File without changes
|
{plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/ecosystems/detect.py
RENAMED
|
File without changes
|
{plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/ecosystems/gemini.py
RENAMED
|
File without changes
|
{plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/ecosystems/opencode.py
RENAMED
|
File without changes
|
{plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/ecosystems/registry.py
RENAMED
|
File without changes
|
{plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/ecosystems/types.py
RENAMED
|
File without changes
|
{plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/github_reporting.py
RENAMED
|
File without changes
|
|
File without changes
|
{plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/guard/adapters/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/guard/adapters/base.py
RENAMED
|
File without changes
|
|
File without changes
|
{plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/guard/adapters/codex.py
RENAMED
|
File without changes
|
{plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/guard/adapters/copilot.py
RENAMED
|
File without changes
|
{plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/guard/adapters/cursor.py
RENAMED
|
File without changes
|
{plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/guard/adapters/gemini.py
RENAMED
|
File without changes
|
{plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/guard/adapters/hermes.py
RENAMED
|
File without changes
|
|
File without changes
|
{plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/guard/adapters/opencode.py
RENAMED
|
File without changes
|
|
File without changes
|
{plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/guard/advisory_model.py
RENAMED
|
File without changes
|
|
File without changes
|
{plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/guard/bridge/__init__.py
RENAMED
|
File without changes
|
{plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/guard/capabilities.py
RENAMED
|
File without changes
|
{plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/guard/cli/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/guard/cli/bootstrap.py
RENAMED
|
File without changes
|
{plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/guard/cli/commands.py
RENAMED
|
File without changes
|
{plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/guard/cli/connect_flow.py
RENAMED
|
File without changes
|
|
File without changes
|
{plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/guard/cli/product.py
RENAMED
|
File without changes
|
{plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/guard/cli/prompt.py
RENAMED
|
File without changes
|
{plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/guard/cli/render.py
RENAMED
|
File without changes
|
|
File without changes
|
{plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/guard/codex_config.py
RENAMED
|
File without changes
|
|
File without changes
|
{plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/guard/consumer/__init__.py
RENAMED
|
File without changes
|
{plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/guard/consumer/service.py
RENAMED
|
File without changes
|
{plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/guard/daemon/__init__.py
RENAMED
|
File without changes
|
{plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/guard/daemon/client.py
RENAMED
|
File without changes
|
{plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/guard/daemon/manager.py
RENAMED
|
File without changes
|
{plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/guard/edge_events.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/guard/mcp_tool_calls.py
RENAMED
|
File without changes
|
|
File without changes
|
{plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/guard/policy/__init__.py
RENAMED
|
File without changes
|
{plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/guard/policy/engine.py
RENAMED
|
File without changes
|
|
File without changes
|
{plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/guard/proxy/__init__.py
RENAMED
|
File without changes
|
{plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/guard/proxy/remote.py
RENAMED
|
File without changes
|
{plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/guard/proxy/runtime_mcp.py
RENAMED
|
File without changes
|
{plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/guard/proxy/stdio.py
RENAMED
|
File without changes
|
{plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/guard/receipts/__init__.py
RENAMED
|
File without changes
|
{plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/guard/receipts/manager.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/guard/runtime/__init__.py
RENAMED
|
File without changes
|
{plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/guard/runtime/runner.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/guard/schemas/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/guard/store_approvals.py
RENAMED
|
File without changes
|
{plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/guard/store_connect.py
RENAMED
|
File without changes
|
|
File without changes
|
{plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/integrations/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/src/codex_plugin_scanner/marketplace_support.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{plugin_scanner-2.0.80 → plugin_scanner-2.0.82}/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
|