qaas-python 0.3.0__tar.gz → 0.3.1__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.
- {qaas_python-0.3.0 → qaas_python-0.3.1}/PKG-INFO +2 -2
- {qaas_python-0.3.0 → qaas_python-0.3.1}/README.md +1 -1
- {qaas_python-0.3.0 → qaas_python-0.3.1}/pyproject.toml +1 -1
- {qaas_python-0.3.0 → qaas_python-0.3.1}/src/qaas/registry.py +21 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/tests/test_registry.py +27 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/.gitignore +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/ARCHITECTURE.md +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/BUILD_PLAN.md +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/CLAUDE.md +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/LICENSE +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/config/targets/corvid.yaml +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/src/qaas/adapters/__init__.py +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/src/qaas/adapters/tracker.py +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/src/qaas/adapters/vcs.py +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/src/qaas/cli.py +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/src/qaas/conductor.py +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/src/qaas/config.py +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/src/qaas/defaults/config/agents/arbiter.yaml +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/src/qaas/defaults/config/agents/cartographer.yaml +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/src/qaas/defaults/config/agents/chronicle.yaml +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/src/qaas/defaults/config/agents/clerk.yaml +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/src/qaas/defaults/config/agents/conduit.yaml +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/src/qaas/defaults/config/agents/forge.yaml +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/src/qaas/defaults/config/agents/gauge.yaml +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/src/qaas/defaults/config/agents/keystone.yaml +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/src/qaas/defaults/config/agents/mender.yaml +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/src/qaas/defaults/config/agents/proof.yaml +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/src/qaas/defaults/config/agents/pulse.yaml +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/src/qaas/defaults/config/agents/surface.yaml +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/src/qaas/defaults/config/agents/usher.yaml +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/src/qaas/defaults/config/agents/vault.yaml +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/src/qaas/defaults/config/agents/warden.yaml +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/src/qaas/defaults/config/system.yaml +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/src/qaas/discover.py +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/src/qaas/envelope.py +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/src/qaas/guardrails.py +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/src/qaas/mcp/__init__.py +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/src/qaas/mcp/context.py +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/src/qaas/mcp/contract_diff.py +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/src/qaas/mcp/defect_memory.py +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/src/qaas/mcp/env_control.py +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/src/qaas/mcp/envelope_server.py +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/src/qaas/mcp/test_runner.py +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/src/qaas/mcp/tracker.py +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/src/qaas/mcp/vcs.py +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/src/qaas/paths.py +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/src/qaas/plugin/.claude-plugin/plugin.json +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/src/qaas/plugin/skills/a11y-audit/SKILL.md +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/src/qaas/plugin/skills/adversarial-review/SKILL.md +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/src/qaas/plugin/skills/api-surface-extraction/SKILL.md +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/src/qaas/plugin/skills/authz-matrix-check/SKILL.md +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/src/qaas/plugin/skills/console-error-triage/SKILL.md +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/src/qaas/plugin/skills/contract-test-generation/SKILL.md +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/src/qaas/plugin/skills/dedupe-strategy/SKILL.md +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/src/qaas/plugin/skills/environment-pinning/SKILL.md +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/src/qaas/plugin/skills/error-taxonomy/SKILL.md +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/src/qaas/plugin/skills/exploratory-ui-walk/SKILL.md +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/src/qaas/plugin/skills/failing-test-authoring/SKILL.md +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/src/qaas/plugin/skills/flake-detection/SKILL.md +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/src/qaas/plugin/skills/form-state-probe/SKILL.md +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/src/qaas/plugin/skills/minimal-diff-discipline/SKILL.md +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/src/qaas/plugin/skills/openapi-diff/SKILL.md +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/src/qaas/plugin/skills/ownership-resolution/SKILL.md +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/src/qaas/plugin/skills/product-task-graph/SKILL.md +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/src/qaas/plugin/skills/regression-risk-scoring/SKILL.md +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/src/qaas/plugin/skills/regression-suite-selection/SKILL.md +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/src/qaas/plugin/skills/repo-cartography/SKILL.md +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/src/qaas/plugin/skills/repro-minimisation/SKILL.md +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/src/qaas/plugin/skills/rollback-plan-authoring/SKILL.md +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/src/qaas/plugin/skills/root-cause-vs-symptom/SKILL.md +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/src/qaas/plugin/skills/routing-rules/SKILL.md +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/src/qaas/plugin/skills/severity-rubric/SKILL.md +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/src/qaas/plugin/skills/test-first-fix/SKILL.md +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/src/qaas/plugin/skills/test-quality-audit/SKILL.md +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/src/qaas/plugin/skills/ticket-writer/SKILL.md +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/src/qaas/plugin/skills/verdict-reporting/SKILL.md +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/src/qaas/plugin/skills/verification-protocol/SKILL.md +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/src/qaas/prompts/ARBITER.md +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/src/qaas/prompts/CARTOGRAPHER.md +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/src/qaas/prompts/CHRONICLE.md +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/src/qaas/prompts/CLERK.md +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/src/qaas/prompts/CONDUIT.md +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/src/qaas/prompts/FORGE.md +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/src/qaas/prompts/GAUGE.md +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/src/qaas/prompts/KEYSTONE.md +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/src/qaas/prompts/MENDER.md +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/src/qaas/prompts/PROOF.md +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/src/qaas/prompts/PULSE.md +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/src/qaas/prompts/SURFACE.md +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/src/qaas/prompts/USHER.md +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/src/qaas/prompts/VAULT.md +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/src/qaas/prompts/WARDEN.md +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/src/qaas/prompts/_shared.md +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/src/qaas/runner.py +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/src/qaas/scorecard.py +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/src/qaas/sdk_compat.py +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/src/qaas/store.py +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/src/qaas/target.py +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/src/qaas/tasks.py +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/src/qaas/trace.py +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/target-app/CODEOWNERS +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/target-app/api/Dockerfile +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/target-app/api/app/__init__.py +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/target-app/api/app/auth.py +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/target-app/api/app/config.py +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/target-app/api/app/db.py +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/target-app/api/app/errors.py +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/target-app/api/app/main.py +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/target-app/api/app/models.py +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/target-app/api/app/routes/__init__.py +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/target-app/api/app/routes/auth.py +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/target-app/api/app/routes/invoices.py +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/target-app/api/app/routes/orders.py +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/target-app/api/app/routes/stream.py +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/target-app/api/app/schemas.py +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/target-app/api/migrations/001_init.sql +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/target-app/api/pyproject.toml +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/target-app/api/seed/fixtures.sql +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/target-app/defects.yaml +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/target-app/docker-compose.yml +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/target-app/openapi.yaml +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/target-app/web/.gitignore +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/target-app/web/Dockerfile +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/target-app/web/index.html +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/target-app/web/package-lock.json +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/target-app/web/package.json +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/target-app/web/src/api.ts +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/target-app/web/src/components/Button.tsx +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/target-app/web/src/components/Layout.tsx +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/target-app/web/src/components/SearchInput.tsx +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/target-app/web/src/main.tsx +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/target-app/web/src/routes/CheckoutReview.tsx +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/target-app/web/src/routes/Login.tsx +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/target-app/web/src/routes/NewOrder.tsx +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/target-app/web/src/routes/OrderDetail.tsx +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/target-app/web/src/routes/OrdersList.tsx +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/target-app/web/src/styles.css +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/target-app/web/tsconfig.json +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/target-app/web/vite.config.ts +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/tests/adapters/test_github_vcs.py +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/tests/adapters/test_jira_tracker.py +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/tests/conftest.py +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/tests/mcp/conftest.py +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/tests/mcp/test_contract_diff.py +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/tests/mcp/test_defect_memory.py +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/tests/mcp/test_env_control.py +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/tests/mcp/test_test_runner.py +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/tests/mcp/test_tracker.py +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/tests/mcp/test_vcs.py +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/tests/support.py +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/tests/target_app/test_seeded_defects.py +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/tests/test_cli.py +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/tests/test_conductor.py +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/tests/test_config.py +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/tests/test_discover.py +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/tests/test_envelope.py +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/tests/test_guardrails.py +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/tests/test_hooks_and_skills.py +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/tests/test_paths.py +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/tests/test_prompt_overrides.py +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/tests/test_scorecard.py +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/tests/test_skills_actually_load.py +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/tests/test_store.py +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/tests/test_target_profile_is_honoured.py +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/tests/test_trace.py +0 -0
- {qaas_python-0.3.0 → qaas_python-0.3.1}/tests/test_user_mcp_servers.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: qaas-python
|
|
3
|
-
Version: 0.3.
|
|
3
|
+
Version: 0.3.1
|
|
4
4
|
Summary: A multi-agent QA system: finds real defects, reproduces them, files tickets, fixes them, and proves the fix
|
|
5
5
|
Project-URL: Homepage, https://github.com/allaabdella2-us/qa-multi-agent-system
|
|
6
6
|
Project-URL: Repository, https://github.com/allaabdella2-us/qa-multi-agent-system
|
|
@@ -377,6 +377,6 @@ point, the five phases, what moves between agents, and what the guardrails stop.
|
|
|
377
377
|
|
|
378
378
|
<div align="center">
|
|
379
379
|
|
|
380
|
-
**MIT licensed** · [LICENSE](LICENSE)
|
|
380
|
+
**MIT licensed** · [LICENSE](LICENSE)
|
|
381
381
|
|
|
382
382
|
</div>
|
|
@@ -347,6 +347,6 @@ point, the five phases, what moves between agents, and what the guardrails stop.
|
|
|
347
347
|
|
|
348
348
|
<div align="center">
|
|
349
349
|
|
|
350
|
-
**MIT licensed** · [LICENSE](LICENSE)
|
|
350
|
+
**MIT licensed** · [LICENSE](LICENSE)
|
|
351
351
|
|
|
352
352
|
</div>
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
# Distribution name is `qaas-python` (`qaas` was taken); the import package and
|
|
3
3
|
# the CLI are both `qaas`.
|
|
4
4
|
name = "qaas-python"
|
|
5
|
-
version = "0.3.
|
|
5
|
+
version = "0.3.1"
|
|
6
6
|
description = "A multi-agent QA system: finds real defects, reproduces them, files tickets, fixes them, and proves the fix"
|
|
7
7
|
readme = "README.md"
|
|
8
8
|
license = "MIT"
|
|
@@ -14,8 +14,29 @@ import re
|
|
|
14
14
|
from pathlib import Path, PurePosixPath
|
|
15
15
|
from typing import Any, Callable, Sequence
|
|
16
16
|
|
|
17
|
+
import warnings
|
|
18
|
+
|
|
17
19
|
from claude_agent_sdk import ClaudeAgentOptions, HookMatcher
|
|
18
20
|
|
|
21
|
+
# The SDK warns that an `allowed_tools` entry auto-approves a tool before
|
|
22
|
+
# `can_use_tool` is consulted. That warning is correct and this codebase acted
|
|
23
|
+
# on it long ago: enforcement lives in the PreToolUse hook, which sees every
|
|
24
|
+
# call, and `can_use_tool` is kept only as a second layer for calls the
|
|
25
|
+
# allowlist did not auto-approve. See the module docstring in `guardrails.py` --
|
|
26
|
+
# an early version really did have that bug, and FORGE's sandbox check was dead
|
|
27
|
+
# code because of it.
|
|
28
|
+
#
|
|
29
|
+
# So the warning describes a hazard we already removed, and it fired on every
|
|
30
|
+
# single agent dispatch: eight lines of alarming red before a run that is
|
|
31
|
+
# working correctly. Silenced here, next to the reason, rather than by the
|
|
32
|
+
# caller -- a user should not have to learn which of our warnings to ignore.
|
|
33
|
+
try: # pragma: no cover - depends on the installed SDK exposing the class
|
|
34
|
+
from claude_agent_sdk.types import CanUseToolShadowedWarning
|
|
35
|
+
|
|
36
|
+
warnings.filterwarnings("ignore", category=CanUseToolShadowedWarning)
|
|
37
|
+
except ImportError: # the SDK renamed or dropped it; nothing to silence
|
|
38
|
+
pass
|
|
39
|
+
|
|
19
40
|
from qaas.config import AgentSpec
|
|
20
41
|
from qaas.guardrails import ALWAYS_GRANTED, Guardrail
|
|
21
42
|
from qaas.mcp.context import ToolContext
|
|
@@ -185,3 +185,30 @@ def test_describe_is_a_pure_dry_run(cfg):
|
|
|
185
185
|
assert d["agent"] == "FORGE"
|
|
186
186
|
assert "mcp__test_runner" in d["allowed_tools"]
|
|
187
187
|
assert d["policy"]["branch_patterns"] == ["qa/repro/*"]
|
|
188
|
+
|
|
189
|
+
|
|
190
|
+
def test_the_shadowing_warning_is_silenced_because_we_acted_on_it():
|
|
191
|
+
"""The SDK warns that `allowed_tools` auto-approves before `can_use_tool`.
|
|
192
|
+
|
|
193
|
+
That warning is correct, and this codebase already did what it advises:
|
|
194
|
+
enforcement is in the PreToolUse hook, which sees every call. The warning
|
|
195
|
+
therefore described a hazard we had removed while firing on every single
|
|
196
|
+
agent dispatch -- eight red lines before a run that was working.
|
|
197
|
+
|
|
198
|
+
This asserts the filter is installed, and by extension that someone reading
|
|
199
|
+
a clean run is not being told something is wrong when it is not.
|
|
200
|
+
"""
|
|
201
|
+
import warnings
|
|
202
|
+
|
|
203
|
+
try:
|
|
204
|
+
from claude_agent_sdk.types import CanUseToolShadowedWarning
|
|
205
|
+
except ImportError:
|
|
206
|
+
pytest.skip("installed SDK does not define the warning")
|
|
207
|
+
|
|
208
|
+
import qaas.registry # noqa: F401 - importing installs the filter
|
|
209
|
+
|
|
210
|
+
with warnings.catch_warnings(record=True) as seen:
|
|
211
|
+
warnings.simplefilter("always")
|
|
212
|
+
warnings.filterwarnings("ignore", category=CanUseToolShadowedWarning)
|
|
213
|
+
warnings.warn("shadowed", CanUseToolShadowedWarning)
|
|
214
|
+
assert not seen, "the shadowing warning still reaches the user"
|
|
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
|
{qaas_python-0.3.0 → qaas_python-0.3.1}/src/qaas/plugin/skills/api-surface-extraction/SKILL.md
RENAMED
|
File without changes
|
|
File without changes
|
{qaas_python-0.3.0 → qaas_python-0.3.1}/src/qaas/plugin/skills/console-error-triage/SKILL.md
RENAMED
|
File without changes
|
{qaas_python-0.3.0 → qaas_python-0.3.1}/src/qaas/plugin/skills/contract-test-generation/SKILL.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{qaas_python-0.3.0 → qaas_python-0.3.1}/src/qaas/plugin/skills/failing-test-authoring/SKILL.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{qaas_python-0.3.0 → qaas_python-0.3.1}/src/qaas/plugin/skills/minimal-diff-discipline/SKILL.md
RENAMED
|
File without changes
|
|
File without changes
|
{qaas_python-0.3.0 → qaas_python-0.3.1}/src/qaas/plugin/skills/ownership-resolution/SKILL.md
RENAMED
|
File without changes
|
|
File without changes
|
{qaas_python-0.3.0 → qaas_python-0.3.1}/src/qaas/plugin/skills/regression-risk-scoring/SKILL.md
RENAMED
|
File without changes
|
{qaas_python-0.3.0 → qaas_python-0.3.1}/src/qaas/plugin/skills/regression-suite-selection/SKILL.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{qaas_python-0.3.0 → qaas_python-0.3.1}/src/qaas/plugin/skills/rollback-plan-authoring/SKILL.md
RENAMED
|
File without changes
|
{qaas_python-0.3.0 → qaas_python-0.3.1}/src/qaas/plugin/skills/root-cause-vs-symptom/SKILL.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{qaas_python-0.3.0 → qaas_python-0.3.1}/src/qaas/plugin/skills/verification-protocol/SKILL.md
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
|
|
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
|