Files
OpenCode 68a9071cf1 feat: reconcile local master with origin (exa/hot-platform hunters, leaks ledger, latest results)
Local branch had diverged from origin/master (sibling commits on the same base). Rewrote local history linearly on top of origin/master, folding in all local content: exa/hot-platform discovery hunters, leaks ledger, nightly sweep orchestrator, updated .gitignore and skill docs, plus the latest hunt output and vault state. Remote-only files (vault keys, channel scripts) were restored rather than dropped, so the resulting tree is a full union of both sides.
2026-08-07 12:53:47 +08:00

1 line
84 KiB
JSON

{"repo": "aut-ken/arkts-code-reviewer", "files": {"tests/test_wiki_selector_failure_observability.py": {"c708db4ded4a81bf127aba9b77efc48cd594fb81": {"t": 1785746627.9521508, "n": 14998, "h": "97d71561959e0c20", "c": "from __future__ import annotations\n\nimport json\nimport stat\nfrom dataclasses import dataclass\nfrom pathlib import Path\nfrom types import SimpleNamespace\nfrom typing import cast\n\nimport pytest\nfrom test_wiki_knowledge_intent_mr_selector import _combined_request, _Transport\n\nfrom arkts_code_reviewer.retrieval.wiki.canonical import canonical_json\nfrom arkts_code_reviewer.retrieval.wiki.knowledge_intent_mr_selector import (\n WikiKnowledgeIntentMRSelectorFailure,\n WikiKnowledgeIntentMRSelectorRequest,\n build_wiki_knowledge_intent_mr_selector_request_from_compression,\n)\nfrom arkts_code_reviewer.retrieval.wiki.knowledge_intent_mr_selector_runner import (\n WikiKnowledgeIntentMRSelectorExecution,\n execute_wiki_knowledge_intent_mr_selector,\n)\nfrom arkts_code_reviewer.retrieval.wiki.knowledge_intent_runner import (\n WikiKnowledgeIntentTransportError,\n WikiKnowledgeIntentTransportResponse,\n)\nfrom arkts_code_reviewer.retrieval.wiki.wiki_first_retrieval_pipeline import (\n WikiFirstRetrievalPipelineError,\n WikiFirstRetrievalPipelineResult,\n)\nfrom arkts_code_reviewer.retrieval.wiki.wiki_mr_selector import (\n build_wiki_mr_selector_policy,\n)\nfrom tools.run_wiki_first_retrieval_timer_e2e import (\n _publish_failure_artifact,\n _require_provider_validated_timer_result,\n _safe_failure,\n)\n\n\n@dataclass\nclass _TimeoutTransport:\n calls: int = 0\n\n def send(\n self,\n request_body: bytes,\n *,\n timeout_milliseconds: int,\n max_response_bytes: int,\n ) -> WikiKnowledgeIntentTransportResponse:\n self.calls += 1\n assert request_body\n assert timeout_milliseconds == 300_000\n assert max_response_bytes > 0\n raise WikiKnowledgeIntentTransportError(\n \"provider_timeout\",\n latency_milliseconds=17,\n )\n\n\n@dataclass\nclass _HttpFailureTransport:\n body: bytes\n calls: int = 0\n\n def send(\n self,\n request_body: bytes,\n *,\n timeout_milliseconds: int,\n max_response_bytes: int,\n ) -> WikiKnowledgeIntentTransportResponse:\n self.calls += 1\n assert request_body\n assert timeout_milliseconds == 300_000\n assert len(self.body) <= max_response_bytes\n return WikiKnowledgeIntentTransportResponse(\n status_code=429,\n body=self.body,\n latency_milliseconds=23,\n )\n\n\n@dataclass\nclass _InvalidSelectorOutputTransport:\n calls: int = 0\n\n def send(\n self,\n request_body: bytes,\n *,\n timeout_milliseconds: int,\n max_response_bytes: int,\n ) -> WikiKnowledgeIntentTransportResponse:\n self.calls += 1\n assert request_body\n assert timeout_milliseconds == 300_000\n body = canonical_json(\n {\n \"id\": \"chatcmpl-invalid-selector-test\",\n \"choices\": [\n {\n \"finish_reason\": \"stop\",\n \"index\": 0,\n \"message\": {\n \"role\": \"assistant\",\n \"content\": '{\"unknown\":true}',\n \"reasoning_content\": None,\n \"tool_calls\": None,\n },\n }\n ],\n \"created\": 1,\n \"model\": \"deepseek-v4-pro\",\n \"object\": \"chat.completion\",\n \"usage\": {\n \"prompt_tokens\": 120,\n \"completion_tokens\": 40,\n \"total_tokens\": 160,\n \"prompt_cache_hit_tokens\": 100,\n \"prompt_cache_miss_tokens\": 20,\n },\n }\n ).encode(\"utf-8\")\n assert len(body) <= max_response_bytes\n return WikiKnowledgeIntentTransportResponse(\n status_code=200,\n body=body,\n latency_milliseconds=19,\n )\n\n\n@dataclass\nclass _CredentialFailureTransport:\n calls: int = 0\n\n def send(\n self,\n request_body: bytes,\n *,\n timeout_milliseconds: int,\n max_response_bytes: int,\n ) -> WikiKnowledgeIntentTransportResponse:\n self.calls += 1\n assert request_body\n assert timeout_milliseconds == 300_000\n assert max_response_bytes > 0\n raise WikiKnowledgeIntentTransportError(\n \"credential_unavailable\",\n latency_milliseconds=0,\n )\n\n\ndef _http_failure_execution(tmp_path: Path) -> WikiKnowledgeIntentMRSelectorExecution:\n combined, compression, original_request = _combined_request(tmp_path)\n request = build_wiki_knowledge_intent_mr_selector_request_from_compression(\n combined_ledger=combined,\n compression=compression,\n task_code_facts=original_request.tasks,\n policy=build_wiki_mr_selector_policy(\n max_selector_input_tokens=40_000,\n allow_static_fallback=False,\n ),\n )\n assert isinstance(request, WikiKnowledgeIntentMRSelectorRequest)\n body = canonical_json(\n {\n \"error\": {\n \"code\": \"rate_limit_exceeded\",\n \"type\": \"rate_limit_error\",\n \"message\": (\n \"PRIVATE_DEEPSEEK_KEY=sk-private PRIVATE_DATABASE_URL=postgresql://private\"\n ),\n },\n \"usage\": {\n \"prompt_tokens\": 120,\n \"completion_tokens\": 0,\n \"total_tokens\": 120,\n },\n }\n ).encode(\"utf-8\")\n transport = _HttpFailureTransport(body=body)\n execution = execute_wiki_knowledge_intent_mr_selector(\n request=request,\n combined_ledger=combined,\n compression=compression,\n transport=transport,\n allow_network=True,\n )\n assert transport.calls == 1\n return execution\n\n\ndef test_timeout_is_structured_without_inventing_usage_or_retry(tmp_path: Path) -> None:\n combined, compression, request = _combined_request(tmp_path)\n transport = _TimeoutTransport()\n\n execution = execute_wiki_knowledge_intent_mr_selector(\n request=request,\n combined_ledger=combined,\n compression=compression,\n transport=transport,\n allow_network=True,\n )\n\n assert execution.status == \"static_fallback\"\n assert execution.provider_attempt_count == 1\n assert execution.retry_count == 0\n assert execution.latency_milliseconds == 17\n assert execution.provider_failure_code == \"provider_timeout\"\n assert execution.primary_failure is not None\n assert execution.primary_failure.stage == \"transport\"\n assert execution.primary_failure.category == \"timeout\"\n assert execution.primary_failure.internal_code == \"provider_timeout\"\n assert execution.usage_available is False\n assert execution.cost_estimate_available is False\n assert execution.prompt_tokens == 0\n assert execution.completion_tokens == 0\n assert execution.total_tokens == 0\n assert execution.prompt_cache_hit_tokens is None\n assert execution.prompt_cache_miss_tokens is None\n assert execution.estimated_cost_microusd == 0\n assert execution.raw_response_sha256 is None\n assert execution.raw_response_byte_count == 0\n assert transport.calls == 1\n\n\ndef test_selector_schema_failure_preserves_available_usage_and_cost(\n tmp_path: Path,\n) -> None:\n combined, compression, request = _combined_request(tmp_path)\n transport = _InvalidSelectorOutputTransport()\n\n execution = execute_wiki_knowledge_intent_mr_selector(\n request=request,\n combined_ledger=combined,\n compression=compression,\n transport=transport,\n allow_network=True,\n )\n\n assert execution.status == \"static_fallback\"\n assert execution.primary_failure is not None\n assert execution.primary_failure.stage == \"selector_validation\"\n assert execution.primary_failure.category == \"schema\"\n assert execution.primary_failure.internal_code == \"selector_output_schema_invalid\"\n assert execution.usage_available is True\n assert execution.prompt_tokens == 120\n assert execution.completion_tokens == 40\n assert execution.total_tokens == 160\n assert execution.prompt_cache_hit_tokens == 100\n assert execution.prompt_cache_miss_tokens == 20\n assert execution.cost_estimate_available is True\n assert execution.estimated_cost_microusd > 0\n assert execution.retry_count == 0\n assert transport.calls == 1\n\n\ndef test_http_primary_failure_and_fallback_failure_remain_distinct(\n tmp_path: Path,\n) -> None:\n execution = _http_failure_execution(tmp_path)\n\n assert execution.status == \"failed\"\n assert execution.provider_attempt_count == 1\n assert execution.retry_count == 0\n assert execution.provider_failure_code == \"provider_rate_limited\"\n assert execution.primary_failure is not None\n assert execution.primary_failure.stage == \"http_response\"\n assert execution.primary_failure.category == \"http\"\n assert execution.primary_failure.internal_code == \"provider_rate_limited\"\n assert execution.primary_failure.provider_http_status == 429\n assert execution.primary_failure.provider_error_code == \"rate_limit_exceeded\"\n assert execution.primary_failure.provider_error_type == \"rate_limit_error\"\n assert execution.usage_available is True\n assert execution.cost_estimate_available is True\n assert execution.prompt_tokens == 120\n assert execution.completion_tokens == 0\n assert execution.total_tokens == 120\n assert execution.estimated_cost_microusd > 0\n assert isinstance(execution.selector_result, WikiKnowledgeIntentMRSelectorFailure)\n assert execution.selector_result.failure_code == \"static_fallback_not_allowed\"\n assert execution.raw_response_sha256 is not None\n assert execution.raw_response_byte_count > 0\n\n error = WikiFirstRetrievalPipelineError(\n stage=\"mr_selector_execution\",\n code=execution.selector_result.failure_code,\n selector_execution=execution,\n )\n assert error.selector_execution == execution\n\n\ndef test_credential_preflight_is_not_counted_as_a_network_attempt(tmp_path: Path) -> None:\n combined, compression, request = _combined_request(tmp_path)\n transport = _CredentialFailureTransport()\n\n execution = execute_wiki_knowledge_intent_mr_selector(\n request=request,\n combined_ledger=combined,\n compression=compression,\n transport=transport,\n allow_network=True,\n )\n\n assert execution.status == \"static_fallback\"\n assert execution.provider_attempt_count == 0\n assert execution.network_attempted is False\n assert execution.provider_failure_code == \"credential_unavailable\"\n assert execution.primary_failure is not None\n assert execution.primary_failure.category == \"credential\"\n assert transport.calls == 1\n\n\ndef test_timer_acceptance_requires_a_nonempty_provider_validated_result(\n tmp_path: Path,\n) -> None:\n combined, compression, request = _combined_request(tmp_path)\n validated_execution = execute_wiki_knowledge_intent_mr_selector(\n request=request,\n combined_ledger=combined,\n compression=compression,\n transport=_Transport(request=request, valid=True),\n allow_network=True,\n )\n validated_run = validated_execution.selector_result\n assert not isinstance(validated_run, WikiKnowledgeIntentMRSelectorFailure)\n accepted = cast(\n WikiFirstRetrievalPipelineResult,\n SimpleNamespace(\n selector_execution=validated_execution,\n selector_run=validated_run,\n reference_pack=SimpleNamespace(\n selection_mode=\"provider_validated\",\n reference_count=1,\n ),\n ),\n )\n _require_provider_validated_timer_result(accepted)\n\n fallback_execution = execute_wiki_knowledge_intent_mr_selector(\n request=request,\n combined_ledger=combined,\n compression=compression,\n transport=_TimeoutTransport(),\n allow_network=True,\n )\n fallback_run = fallback_execution.selector_result\n assert not isinstance(fallback_run, WikiKnowledgeIntentMRSelectorFailure)\n rejected = cast(\n WikiFirstRetrievalPipelineResult,\n SimpleNamespace(\n selector_execution=fallback_execution,\n selector_run=fallback_run,\n reference_pack=SimpleNamespace(\n selection_mode=\"static_fallback\",\n reference_count=1,\n ),\n ),\n )\n with pytest.raises(\n WikiFirstRetrievalPipelineError,\n match=\"timer_provider_validated_acceptance: selector_not_provider_validated\",\n ):\n _require_provider_validated_timer_result(rejected)\n\n\ndef test_timer_failure_helper_publishes_one_private_sanitized_artifact(\n tmp_path: Path,\n) -> None:\n execution = _http_failure_execution(tmp_path / \"selector\")\n assert isinstance(execution.selector_result, WikiKnowledgeIntentMRSelectorFailure)\n error = WikiFirstRetrievalPipelineError(\n stage=\"mr_selector_execution\",\n code=execution.selector_result.failure_code,\n selector_execution=execution,\n )\n repository_root = tmp_path / \"repository\"\n material = repository_root / \"material\"\n material.mkdir(parents=True)\n output = material / \"failed-run\"\n output.mkdir(mode=0o700)\n\n raw = _safe_failure(phase=\"wiki_first_retrieval_pipeline\", exc=error)\n path = _publish_failure_artifact(\n output=output,\n raw=raw,\n )\n\n payload = json.loads(path.read_bytes())\n serialized = path.read_text(encoding=\"utf-8\")\n assert path.name == \"00-run-failure.json\"\n assert [item.name for item in output.iterdir()] == [\"00-run-failure.json\"]\n assert stat.S_IMODE(output.stat().st_mode) == 0o700\n assert stat.S_IMODE(path.stat().st_mode) == 0o600\n assert payload[\"pipeline_stage\"] == \"mr_selector_execution\"\n assert payload[\"pipeline_code\"] == \"static_fallback_not_allowed\"\n diagnostic = payload[\"selector_execution\"]\n assert diagnostic[\"provider_attempt_count\"] == 1\n assert diagnostic[\"retry_count\"] == 0\n assert diagnostic[\"usage_available\"] is True\n assert diagnostic[\"cost_estimate_available\"] is True\n assert diagnostic[\"primary_failure\"] == {\n \"stage\": \"http_response\",\n \"category\": \"http\",\n \"internal_code\": \"provider_rate_limited\",\n \"provider_http_status\": 429,\n \"provider_error_code\": \"rate_limit_exceeded\",\n \"provider_error_type\": \"rate_limit_error\",\n \"observed\": None,\n \"limit\": None,\n }\n assert diagnostic[\"fallback_result\"][\"failure_code\"] == (\"static_fallback_not_allowed\")\n assert diagnostic[\"raw_response_sha256\"]\n assert diagnostic[\"raw_response_byte_count\"] > 0\n assert diagnostic[\"raw_response_recorded\"] is False\n for forbidden in (\n \"PRIVATE_DEEPSEEK_KEY\",\n \"sk-private\",\n \"PRIVATE_DATABASE_URL\",\n \"postgresql://private\",\n ):\n assert forbidden not in serialized\n"}, "351447bee97d71040ec94ef4eb4379f30265a7c6": {"t": 1785766393.6422572, "n": 14998, "h": "97d71561959e0c20", "c": "from __future__ import annotations\n\nimport json\nimport stat\nfrom dataclasses import dataclass\nfrom pathlib import Path\nfrom types import SimpleNamespace\nfrom typing import cast\n\nimport pytest\nfrom test_wiki_knowledge_intent_mr_selector import _combined_request, _Transport\n\nfrom arkts_code_reviewer.retrieval.wiki.canonical import canonical_json\nfrom arkts_code_reviewer.retrieval.wiki.knowledge_intent_mr_selector import (\n WikiKnowledgeIntentMRSelectorFailure,\n WikiKnowledgeIntentMRSelectorRequest,\n build_wiki_knowledge_intent_mr_selector_request_from_compression,\n)\nfrom arkts_code_reviewer.retrieval.wiki.knowledge_intent_mr_selector_runner import (\n WikiKnowledgeIntentMRSelectorExecution,\n execute_wiki_knowledge_intent_mr_selector,\n)\nfrom arkts_code_reviewer.retrieval.wiki.knowledge_intent_runner import (\n WikiKnowledgeIntentTransportError,\n WikiKnowledgeIntentTransportResponse,\n)\nfrom arkts_code_reviewer.retrieval.wiki.wiki_first_retrieval_pipeline import (\n WikiFirstRetrievalPipelineError,\n WikiFirstRetrievalPipelineResult,\n)\nfrom arkts_code_reviewer.retrieval.wiki.wiki_mr_selector import (\n build_wiki_mr_selector_policy,\n)\nfrom tools.run_wiki_first_retrieval_timer_e2e import (\n _publish_failure_artifact,\n _require_provider_validated_timer_result,\n _safe_failure,\n)\n\n\n@dataclass\nclass _TimeoutTransport:\n calls: int = 0\n\n def send(\n self,\n request_body: bytes,\n *,\n timeout_milliseconds: int,\n max_response_bytes: int,\n ) -> WikiKnowledgeIntentTransportResponse:\n self.calls += 1\n assert request_body\n assert timeout_milliseconds == 300_000\n assert max_response_bytes > 0\n raise WikiKnowledgeIntentTransportError(\n \"provider_timeout\",\n latency_milliseconds=17,\n )\n\n\n@dataclass\nclass _HttpFailureTransport:\n body: bytes\n calls: int = 0\n\n def send(\n self,\n request_body: bytes,\n *,\n timeout_milliseconds: int,\n max_response_bytes: int,\n ) -> WikiKnowledgeIntentTransportResponse:\n self.calls += 1\n assert request_body\n assert timeout_milliseconds == 300_000\n assert len(self.body) <= max_response_bytes\n return WikiKnowledgeIntentTransportResponse(\n status_code=429,\n body=self.body,\n latency_milliseconds=23,\n )\n\n\n@dataclass\nclass _InvalidSelectorOutputTransport:\n calls: int = 0\n\n def send(\n self,\n request_body: bytes,\n *,\n timeout_milliseconds: int,\n max_response_bytes: int,\n ) -> WikiKnowledgeIntentTransportResponse:\n self.calls += 1\n assert request_body\n assert timeout_milliseconds == 300_000\n body = canonical_json(\n {\n \"id\": \"chatcmpl-invalid-selector-test\",\n \"choices\": [\n {\n \"finish_reason\": \"stop\",\n \"index\": 0,\n \"message\": {\n \"role\": \"assistant\",\n \"content\": '{\"unknown\":true}',\n \"reasoning_content\": None,\n \"tool_calls\": None,\n },\n }\n ],\n \"created\": 1,\n \"model\": \"deepseek-v4-pro\",\n \"object\": \"chat.completion\",\n \"usage\": {\n \"prompt_tokens\": 120,\n \"completion_tokens\": 40,\n \"total_tokens\": 160,\n \"prompt_cache_hit_tokens\": 100,\n \"prompt_cache_miss_tokens\": 20,\n },\n }\n ).encode(\"utf-8\")\n assert len(body) <= max_response_bytes\n return WikiKnowledgeIntentTransportResponse(\n status_code=200,\n body=body,\n latency_milliseconds=19,\n )\n\n\n@dataclass\nclass _CredentialFailureTransport:\n calls: int = 0\n\n def send(\n self,\n request_body: bytes,\n *,\n timeout_milliseconds: int,\n max_response_bytes: int,\n ) -> WikiKnowledgeIntentTransportResponse:\n self.calls += 1\n assert request_body\n assert timeout_milliseconds == 300_000\n assert max_response_bytes > 0\n raise WikiKnowledgeIntentTransportError(\n \"credential_unavailable\",\n latency_milliseconds=0,\n )\n\n\ndef _http_failure_execution(tmp_path: Path) -> WikiKnowledgeIntentMRSelectorExecution:\n combined, compression, original_request = _combined_request(tmp_path)\n request = build_wiki_knowledge_intent_mr_selector_request_from_compression(\n combined_ledger=combined,\n compression=compression,\n task_code_facts=original_request.tasks,\n policy=build_wiki_mr_selector_policy(\n max_selector_input_tokens=40_000,\n allow_static_fallback=False,\n ),\n )\n assert isinstance(request, WikiKnowledgeIntentMRSelectorRequest)\n body = canonical_json(\n {\n \"error\": {\n \"code\": \"rate_limit_exceeded\",\n \"type\": \"rate_limit_error\",\n \"message\": (\n \"PRIVATE_DEEPSEEK_KEY=sk-private PRIVATE_DATABASE_URL=postgresql://private\"\n ),\n },\n \"usage\": {\n \"prompt_tokens\": 120,\n \"completion_tokens\": 0,\n \"total_tokens\": 120,\n },\n }\n ).encode(\"utf-8\")\n transport = _HttpFailureTransport(body=body)\n execution = execute_wiki_knowledge_intent_mr_selector(\n request=request,\n combined_ledger=combined,\n compression=compression,\n transport=transport,\n allow_network=True,\n )\n assert transport.calls == 1\n return execution\n\n\ndef test_timeout_is_structured_without_inventing_usage_or_retry(tmp_path: Path) -> None:\n combined, compression, request = _combined_request(tmp_path)\n transport = _TimeoutTransport()\n\n execution = execute_wiki_knowledge_intent_mr_selector(\n request=request,\n combined_ledger=combined,\n compression=compression,\n transport=transport,\n allow_network=True,\n )\n\n assert execution.status == \"static_fallback\"\n assert execution.provider_attempt_count == 1\n assert execution.retry_count == 0\n assert execution.latency_milliseconds == 17\n assert execution.provider_failure_code == \"provider_timeout\"\n assert execution.primary_failure is not None\n assert execution.primary_failure.stage == \"transport\"\n assert execution.primary_failure.category == \"timeout\"\n assert execution.primary_failure.internal_code == \"provider_timeout\"\n assert execution.usage_available is False\n assert execution.cost_estimate_available is False\n assert execution.prompt_tokens == 0\n assert execution.completion_tokens == 0\n assert execution.total_tokens == 0\n assert execution.prompt_cache_hit_tokens is None\n assert execution.prompt_cache_miss_tokens is None\n assert execution.estimated_cost_microusd == 0\n assert execution.raw_response_sha256 is None\n assert execution.raw_response_byte_count == 0\n assert transport.calls == 1\n\n\ndef test_selector_schema_failure_preserves_available_usage_and_cost(\n tmp_path: Path,\n) -> None:\n combined, compression, request = _combined_request(tmp_path)\n transport = _InvalidSelectorOutputTransport()\n\n execution = execute_wiki_knowledge_intent_mr_selector(\n request=request,\n combined_ledger=combined,\n compression=compression,\n transport=transport,\n allow_network=True,\n )\n\n assert execution.status == \"static_fallback\"\n assert execution.primary_failure is not None\n assert execution.primary_failure.stage == \"selector_validation\"\n assert execution.primary_failure.category == \"schema\"\n assert execution.primary_failure.internal_code == \"selector_output_schema_invalid\"\n assert execution.usage_available is True\n assert execution.prompt_tokens == 120\n assert execution.completion_tokens == 40\n assert execution.total_tokens == 160\n assert execution.prompt_cache_hit_tokens == 100\n assert execution.prompt_cache_miss_tokens == 20\n assert execution.cost_estimate_available is True\n assert execution.estimated_cost_microusd > 0\n assert execution.retry_count == 0\n assert transport.calls == 1\n\n\ndef test_http_primary_failure_and_fallback_failure_remain_distinct(\n tmp_path: Path,\n) -> None:\n execution = _http_failure_execution(tmp_path)\n\n assert execution.status == \"failed\"\n assert execution.provider_attempt_count == 1\n assert execution.retry_count == 0\n assert execution.provider_failure_code == \"provider_rate_limited\"\n assert execution.primary_failure is not None\n assert execution.primary_failure.stage == \"http_response\"\n assert execution.primary_failure.category == \"http\"\n assert execution.primary_failure.internal_code == \"provider_rate_limited\"\n assert execution.primary_failure.provider_http_status == 429\n assert execution.primary_failure.provider_error_code == \"rate_limit_exceeded\"\n assert execution.primary_failure.provider_error_type == \"rate_limit_error\"\n assert execution.usage_available is True\n assert execution.cost_estimate_available is True\n assert execution.prompt_tokens == 120\n assert execution.completion_tokens == 0\n assert execution.total_tokens == 120\n assert execution.estimated_cost_microusd > 0\n assert isinstance(execution.selector_result, WikiKnowledgeIntentMRSelectorFailure)\n assert execution.selector_result.failure_code == \"static_fallback_not_allowed\"\n assert execution.raw_response_sha256 is not None\n assert execution.raw_response_byte_count > 0\n\n error = WikiFirstRetrievalPipelineError(\n stage=\"mr_selector_execution\",\n code=execution.selector_result.failure_code,\n selector_execution=execution,\n )\n assert error.selector_execution == execution\n\n\ndef test_credential_preflight_is_not_counted_as_a_network_attempt(tmp_path: Path) -> None:\n combined, compression, request = _combined_request(tmp_path)\n transport = _CredentialFailureTransport()\n\n execution = execute_wiki_knowledge_intent_mr_selector(\n request=request,\n combined_ledger=combined,\n compression=compression,\n transport=transport,\n allow_network=True,\n )\n\n assert execution.status == \"static_fallback\"\n assert execution.provider_attempt_count == 0\n assert execution.network_attempted is False\n assert execution.provider_failure_code == \"credential_unavailable\"\n assert execution.primary_failure is not None\n assert execution.primary_failure.category == \"credential\"\n assert transport.calls == 1\n\n\ndef test_timer_acceptance_requires_a_nonempty_provider_validated_result(\n tmp_path: Path,\n) -> None:\n combined, compression, request = _combined_request(tmp_path)\n validated_execution = execute_wiki_knowledge_intent_mr_selector(\n request=request,\n combined_ledger=combined,\n compression=compression,\n transport=_Transport(request=request, valid=True),\n allow_network=True,\n )\n validated_run = validated_execution.selector_result\n assert not isinstance(validated_run, WikiKnowledgeIntentMRSelectorFailure)\n accepted = cast(\n WikiFirstRetrievalPipelineResult,\n SimpleNamespace(\n selector_execution=validated_execution,\n selector_run=validated_run,\n reference_pack=SimpleNamespace(\n selection_mode=\"provider_validated\",\n reference_count=1,\n ),\n ),\n )\n _require_provider_validated_timer_result(accepted)\n\n fallback_execution = execute_wiki_knowledge_intent_mr_selector(\n request=request,\n combined_ledger=combined,\n compression=compression,\n transport=_TimeoutTransport(),\n allow_network=True,\n )\n fallback_run = fallback_execution.selector_result\n assert not isinstance(fallback_run, WikiKnowledgeIntentMRSelectorFailure)\n rejected = cast(\n WikiFirstRetrievalPipelineResult,\n SimpleNamespace(\n selector_execution=fallback_execution,\n selector_run=fallback_run,\n reference_pack=SimpleNamespace(\n selection_mode=\"static_fallback\",\n reference_count=1,\n ),\n ),\n )\n with pytest.raises(\n WikiFirstRetrievalPipelineError,\n match=\"timer_provider_validated_acceptance: selector_not_provider_validated\",\n ):\n _require_provider_validated_timer_result(rejected)\n\n\ndef test_timer_failure_helper_publishes_one_private_sanitized_artifact(\n tmp_path: Path,\n) -> None:\n execution = _http_failure_execution(tmp_path / \"selector\")\n assert isinstance(execution.selector_result, WikiKnowledgeIntentMRSelectorFailure)\n error = WikiFirstRetrievalPipelineError(\n stage=\"mr_selector_execution\",\n code=execution.selector_result.failure_code,\n selector_execution=execution,\n )\n repository_root = tmp_path / \"repository\"\n material = repository_root / \"material\"\n material.mkdir(parents=True)\n output = material / \"failed-run\"\n output.mkdir(mode=0o700)\n\n raw = _safe_failure(phase=\"wiki_first_retrieval_pipeline\", exc=error)\n path = _publish_failure_artifact(\n output=output,\n raw=raw,\n )\n\n payload = json.loads(path.read_bytes())\n serialized = path.read_text(encoding=\"utf-8\")\n assert path.name == \"00-run-failure.json\"\n assert [item.name for item in output.iterdir()] == [\"00-run-failure.json\"]\n assert stat.S_IMODE(output.stat().st_mode) == 0o700\n assert stat.S_IMODE(path.stat().st_mode) == 0o600\n assert payload[\"pipeline_stage\"] == \"mr_selector_execution\"\n assert payload[\"pipeline_code\"] == \"static_fallback_not_allowed\"\n diagnostic = payload[\"selector_execution\"]\n assert diagnostic[\"provider_attempt_count\"] == 1\n assert diagnostic[\"retry_count\"] == 0\n assert diagnostic[\"usage_available\"] is True\n assert diagnostic[\"cost_estimate_available\"] is True\n assert diagnostic[\"primary_failure\"] == {\n \"stage\": \"http_response\",\n \"category\": \"http\",\n \"internal_code\": \"provider_rate_limited\",\n \"provider_http_status\": 429,\n \"provider_error_code\": \"rate_limit_exceeded\",\n \"provider_error_type\": \"rate_limit_error\",\n \"observed\": None,\n \"limit\": None,\n }\n assert diagnostic[\"fallback_result\"][\"failure_code\"] == (\"static_fallback_not_allowed\")\n assert diagnostic[\"raw_response_sha256\"]\n assert diagnostic[\"raw_response_byte_count\"] > 0\n assert diagnostic[\"raw_response_recorded\"] is False\n for forbidden in (\n \"PRIVATE_DEEPSEEK_KEY\",\n \"sk-private\",\n \"PRIVATE_DATABASE_URL\",\n \"postgresql://private\",\n ):\n assert forbidden not in serialized\n"}, "fc11422368a025c0c3a155dd2ce4a623e612cccd": {"t": 1786067846.9904504, "n": 14998, "h": "97d71561959e0c20", "c": "from __future__ import annotations\n\nimport json\nimport stat\nfrom dataclasses import dataclass\nfrom pathlib import Path\nfrom types import SimpleNamespace\nfrom typing import cast\n\nimport pytest\nfrom test_wiki_knowledge_intent_mr_selector import _combined_request, _Transport\n\nfrom arkts_code_reviewer.retrieval.wiki.canonical import canonical_json\nfrom arkts_code_reviewer.retrieval.wiki.knowledge_intent_mr_selector import (\n WikiKnowledgeIntentMRSelectorFailure,\n WikiKnowledgeIntentMRSelectorRequest,\n build_wiki_knowledge_intent_mr_selector_request_from_compression,\n)\nfrom arkts_code_reviewer.retrieval.wiki.knowledge_intent_mr_selector_runner import (\n WikiKnowledgeIntentMRSelectorExecution,\n execute_wiki_knowledge_intent_mr_selector,\n)\nfrom arkts_code_reviewer.retrieval.wiki.knowledge_intent_runner import (\n WikiKnowledgeIntentTransportError,\n WikiKnowledgeIntentTransportResponse,\n)\nfrom arkts_code_reviewer.retrieval.wiki.wiki_first_retrieval_pipeline import (\n WikiFirstRetrievalPipelineError,\n WikiFirstRetrievalPipelineResult,\n)\nfrom arkts_code_reviewer.retrieval.wiki.wiki_mr_selector import (\n build_wiki_mr_selector_policy,\n)\nfrom tools.run_wiki_first_retrieval_timer_e2e import (\n _publish_failure_artifact,\n _require_provider_validated_timer_result,\n _safe_failure,\n)\n\n\n@dataclass\nclass _TimeoutTransport:\n calls: int = 0\n\n def send(\n self,\n request_body: bytes,\n *,\n timeout_milliseconds: int,\n max_response_bytes: int,\n ) -> WikiKnowledgeIntentTransportResponse:\n self.calls += 1\n assert request_body\n assert timeout_milliseconds == 300_000\n assert max_response_bytes > 0\n raise WikiKnowledgeIntentTransportError(\n \"provider_timeout\",\n latency_milliseconds=17,\n )\n\n\n@dataclass\nclass _HttpFailureTransport:\n body: bytes\n calls: int = 0\n\n def send(\n self,\n request_body: bytes,\n *,\n timeout_milliseconds: int,\n max_response_bytes: int,\n ) -> WikiKnowledgeIntentTransportResponse:\n self.calls += 1\n assert request_body\n assert timeout_milliseconds == 300_000\n assert len(self.body) <= max_response_bytes\n return WikiKnowledgeIntentTransportResponse(\n status_code=429,\n body=self.body,\n latency_milliseconds=23,\n )\n\n\n@dataclass\nclass _InvalidSelectorOutputTransport:\n calls: int = 0\n\n def send(\n self,\n request_body: bytes,\n *,\n timeout_milliseconds: int,\n max_response_bytes: int,\n ) -> WikiKnowledgeIntentTransportResponse:\n self.calls += 1\n assert request_body\n assert timeout_milliseconds == 300_000\n body = canonical_json(\n {\n \"id\": \"chatcmpl-invalid-selector-test\",\n \"choices\": [\n {\n \"finish_reason\": \"stop\",\n \"index\": 0,\n \"message\": {\n \"role\": \"assistant\",\n \"content\": '{\"unknown\":true}',\n \"reasoning_content\": None,\n \"tool_calls\": None,\n },\n }\n ],\n \"created\": 1,\n \"model\": \"deepseek-v4-pro\",\n \"object\": \"chat.completion\",\n \"usage\": {\n \"prompt_tokens\": 120,\n \"completion_tokens\": 40,\n \"total_tokens\": 160,\n \"prompt_cache_hit_tokens\": 100,\n \"prompt_cache_miss_tokens\": 20,\n },\n }\n ).encode(\"utf-8\")\n assert len(body) <= max_response_bytes\n return WikiKnowledgeIntentTransportResponse(\n status_code=200,\n body=body,\n latency_milliseconds=19,\n )\n\n\n@dataclass\nclass _CredentialFailureTransport:\n calls: int = 0\n\n def send(\n self,\n request_body: bytes,\n *,\n timeout_milliseconds: int,\n max_response_bytes: int,\n ) -> WikiKnowledgeIntentTransportResponse:\n self.calls += 1\n assert request_body\n assert timeout_milliseconds == 300_000\n assert max_response_bytes > 0\n raise WikiKnowledgeIntentTransportError(\n \"credential_unavailable\",\n latency_milliseconds=0,\n )\n\n\ndef _http_failure_execution(tmp_path: Path) -> WikiKnowledgeIntentMRSelectorExecution:\n combined, compression, original_request = _combined_request(tmp_path)\n request = build_wiki_knowledge_intent_mr_selector_request_from_compression(\n combined_ledger=combined,\n compression=compression,\n task_code_facts=original_request.tasks,\n policy=build_wiki_mr_selector_policy(\n max_selector_input_tokens=40_000,\n allow_static_fallback=False,\n ),\n )\n assert isinstance(request, WikiKnowledgeIntentMRSelectorRequest)\n body = canonical_json(\n {\n \"error\": {\n \"code\": \"rate_limit_exceeded\",\n \"type\": \"rate_limit_error\",\n \"message\": (\n \"PRIVATE_DEEPSEEK_KEY=sk-private PRIVATE_DATABASE_URL=postgresql://private\"\n ),\n },\n \"usage\": {\n \"prompt_tokens\": 120,\n \"completion_tokens\": 0,\n \"total_tokens\": 120,\n },\n }\n ).encode(\"utf-8\")\n transport = _HttpFailureTransport(body=body)\n execution = execute_wiki_knowledge_intent_mr_selector(\n request=request,\n combined_ledger=combined,\n compression=compression,\n transport=transport,\n allow_network=True,\n )\n assert transport.calls == 1\n return execution\n\n\ndef test_timeout_is_structured_without_inventing_usage_or_retry(tmp_path: Path) -> None:\n combined, compression, request = _combined_request(tmp_path)\n transport = _TimeoutTransport()\n\n execution = execute_wiki_knowledge_intent_mr_selector(\n request=request,\n combined_ledger=combined,\n compression=compression,\n transport=transport,\n allow_network=True,\n )\n\n assert execution.status == \"static_fallback\"\n assert execution.provider_attempt_count == 1\n assert execution.retry_count == 0\n assert execution.latency_milliseconds == 17\n assert execution.provider_failure_code == \"provider_timeout\"\n assert execution.primary_failure is not None\n assert execution.primary_failure.stage == \"transport\"\n assert execution.primary_failure.category == \"timeout\"\n assert execution.primary_failure.internal_code == \"provider_timeout\"\n assert execution.usage_available is False\n assert execution.cost_estimate_available is False\n assert execution.prompt_tokens == 0\n assert execution.completion_tokens == 0\n assert execution.total_tokens == 0\n assert execution.prompt_cache_hit_tokens is None\n assert execution.prompt_cache_miss_tokens is None\n assert execution.estimated_cost_microusd == 0\n assert execution.raw_response_sha256 is None\n assert execution.raw_response_byte_count == 0\n assert transport.calls == 1\n\n\ndef test_selector_schema_failure_preserves_available_usage_and_cost(\n tmp_path: Path,\n) -> None:\n combined, compression, request = _combined_request(tmp_path)\n transport = _InvalidSelectorOutputTransport()\n\n execution = execute_wiki_knowledge_intent_mr_selector(\n request=request,\n combined_ledger=combined,\n compression=compression,\n transport=transport,\n allow_network=True,\n )\n\n assert execution.status == \"static_fallback\"\n assert execution.primary_failure is not None\n assert execution.primary_failure.stage == \"selector_validation\"\n assert execution.primary_failure.category == \"schema\"\n assert execution.primary_failure.internal_code == \"selector_output_schema_invalid\"\n assert execution.usage_available is True\n assert execution.prompt_tokens == 120\n assert execution.completion_tokens == 40\n assert execution.total_tokens == 160\n assert execution.prompt_cache_hit_tokens == 100\n assert execution.prompt_cache_miss_tokens == 20\n assert execution.cost_estimate_available is True\n assert execution.estimated_cost_microusd > 0\n assert execution.retry_count == 0\n assert transport.calls == 1\n\n\ndef test_http_primary_failure_and_fallback_failure_remain_distinct(\n tmp_path: Path,\n) -> None:\n execution = _http_failure_execution(tmp_path)\n\n assert execution.status == \"failed\"\n assert execution.provider_attempt_count == 1\n assert execution.retry_count == 0\n assert execution.provider_failure_code == \"provider_rate_limited\"\n assert execution.primary_failure is not None\n assert execution.primary_failure.stage == \"http_response\"\n assert execution.primary_failure.category == \"http\"\n assert execution.primary_failure.internal_code == \"provider_rate_limited\"\n assert execution.primary_failure.provider_http_status == 429\n assert execution.primary_failure.provider_error_code == \"rate_limit_exceeded\"\n assert execution.primary_failure.provider_error_type == \"rate_limit_error\"\n assert execution.usage_available is True\n assert execution.cost_estimate_available is True\n assert execution.prompt_tokens == 120\n assert execution.completion_tokens == 0\n assert execution.total_tokens == 120\n assert execution.estimated_cost_microusd > 0\n assert isinstance(execution.selector_result, WikiKnowledgeIntentMRSelectorFailure)\n assert execution.selector_result.failure_code == \"static_fallback_not_allowed\"\n assert execution.raw_response_sha256 is not None\n assert execution.raw_response_byte_count > 0\n\n error = WikiFirstRetrievalPipelineError(\n stage=\"mr_selector_execution\",\n code=execution.selector_result.failure_code,\n selector_execution=execution,\n )\n assert error.selector_execution == execution\n\n\ndef test_credential_preflight_is_not_counted_as_a_network_attempt(tmp_path: Path) -> None:\n combined, compression, request = _combined_request(tmp_path)\n transport = _CredentialFailureTransport()\n\n execution = execute_wiki_knowledge_intent_mr_selector(\n request=request,\n combined_ledger=combined,\n compression=compression,\n transport=transport,\n allow_network=True,\n )\n\n assert execution.status == \"static_fallback\"\n assert execution.provider_attempt_count == 0\n assert execution.network_attempted is False\n assert execution.provider_failure_code == \"credential_unavailable\"\n assert execution.primary_failure is not None\n assert execution.primary_failure.category == \"credential\"\n assert transport.calls == 1\n\n\ndef test_timer_acceptance_requires_a_nonempty_provider_validated_result(\n tmp_path: Path,\n) -> None:\n combined, compression, request = _combined_request(tmp_path)\n validated_execution = execute_wiki_knowledge_intent_mr_selector(\n request=request,\n combined_ledger=combined,\n compression=compression,\n transport=_Transport(request=request, valid=True),\n allow_network=True,\n )\n validated_run = validated_execution.selector_result\n assert not isinstance(validated_run, WikiKnowledgeIntentMRSelectorFailure)\n accepted = cast(\n WikiFirstRetrievalPipelineResult,\n SimpleNamespace(\n selector_execution=validated_execution,\n selector_run=validated_run,\n reference_pack=SimpleNamespace(\n selection_mode=\"provider_validated\",\n reference_count=1,\n ),\n ),\n )\n _require_provider_validated_timer_result(accepted)\n\n fallback_execution = execute_wiki_knowledge_intent_mr_selector(\n request=request,\n combined_ledger=combined,\n compression=compression,\n transport=_TimeoutTransport(),\n allow_network=True,\n )\n fallback_run = fallback_execution.selector_result\n assert not isinstance(fallback_run, WikiKnowledgeIntentMRSelectorFailure)\n rejected = cast(\n WikiFirstRetrievalPipelineResult,\n SimpleNamespace(\n selector_execution=fallback_execution,\n selector_run=fallback_run,\n reference_pack=SimpleNamespace(\n selection_mode=\"static_fallback\",\n reference_count=1,\n ),\n ),\n )\n with pytest.raises(\n WikiFirstRetrievalPipelineError,\n match=\"timer_provider_validated_acceptance: selector_not_provider_validated\",\n ):\n _require_provider_validated_timer_result(rejected)\n\n\ndef test_timer_failure_helper_publishes_one_private_sanitized_artifact(\n tmp_path: Path,\n) -> None:\n execution = _http_failure_execution(tmp_path / \"selector\")\n assert isinstance(execution.selector_result, WikiKnowledgeIntentMRSelectorFailure)\n error = WikiFirstRetrievalPipelineError(\n stage=\"mr_selector_execution\",\n code=execution.selector_result.failure_code,\n selector_execution=execution,\n )\n repository_root = tmp_path / \"repository\"\n material = repository_root / \"material\"\n material.mkdir(parents=True)\n output = material / \"failed-run\"\n output.mkdir(mode=0o700)\n\n raw = _safe_failure(phase=\"wiki_first_retrieval_pipeline\", exc=error)\n path = _publish_failure_artifact(\n output=output,\n raw=raw,\n )\n\n payload = json.loads(path.read_bytes())\n serialized = path.read_text(encoding=\"utf-8\")\n assert path.name == \"00-run-failure.json\"\n assert [item.name for item in output.iterdir()] == [\"00-run-failure.json\"]\n assert stat.S_IMODE(output.stat().st_mode) == 0o700\n assert stat.S_IMODE(path.stat().st_mode) == 0o600\n assert payload[\"pipeline_stage\"] == \"mr_selector_execution\"\n assert payload[\"pipeline_code\"] == \"static_fallback_not_allowed\"\n diagnostic = payload[\"selector_execution\"]\n assert diagnostic[\"provider_attempt_count\"] == 1\n assert diagnostic[\"retry_count\"] == 0\n assert diagnostic[\"usage_available\"] is True\n assert diagnostic[\"cost_estimate_available\"] is True\n assert diagnostic[\"primary_failure\"] == {\n \"stage\": \"http_response\",\n \"category\": \"http\",\n \"internal_code\": \"provider_rate_limited\",\n \"provider_http_status\": 429,\n \"provider_error_code\": \"rate_limit_exceeded\",\n \"provider_error_type\": \"rate_limit_error\",\n \"observed\": None,\n \"limit\": None,\n }\n assert diagnostic[\"fallback_result\"][\"failure_code\"] == (\"static_fallback_not_allowed\")\n assert diagnostic[\"raw_response_sha256\"]\n assert diagnostic[\"raw_response_byte_count\"] > 0\n assert diagnostic[\"raw_response_recorded\"] is False\n for forbidden in (\n \"PRIVATE_DEEPSEEK_KEY\",\n \"sk-private\",\n \"PRIVATE_DATABASE_URL\",\n \"postgresql://private\",\n ):\n assert forbidden not in serialized\n"}, "320a25d24b46b72fc7dc1a4b30ba372b77f85acd": {"t": 1786068481.270394, "n": 14998, "h": "97d71561959e0c20", "c": "from __future__ import annotations\n\nimport json\nimport stat\nfrom dataclasses import dataclass\nfrom pathlib import Path\nfrom types import SimpleNamespace\nfrom typing import cast\n\nimport pytest\nfrom test_wiki_knowledge_intent_mr_selector import _combined_request, _Transport\n\nfrom arkts_code_reviewer.retrieval.wiki.canonical import canonical_json\nfrom arkts_code_reviewer.retrieval.wiki.knowledge_intent_mr_selector import (\n WikiKnowledgeIntentMRSelectorFailure,\n WikiKnowledgeIntentMRSelectorRequest,\n build_wiki_knowledge_intent_mr_selector_request_from_compression,\n)\nfrom arkts_code_reviewer.retrieval.wiki.knowledge_intent_mr_selector_runner import (\n WikiKnowledgeIntentMRSelectorExecution,\n execute_wiki_knowledge_intent_mr_selector,\n)\nfrom arkts_code_reviewer.retrieval.wiki.knowledge_intent_runner import (\n WikiKnowledgeIntentTransportError,\n WikiKnowledgeIntentTransportResponse,\n)\nfrom arkts_code_reviewer.retrieval.wiki.wiki_first_retrieval_pipeline import (\n WikiFirstRetrievalPipelineError,\n WikiFirstRetrievalPipelineResult,\n)\nfrom arkts_code_reviewer.retrieval.wiki.wiki_mr_selector import (\n build_wiki_mr_selector_policy,\n)\nfrom tools.run_wiki_first_retrieval_timer_e2e import (\n _publish_failure_artifact,\n _require_provider_validated_timer_result,\n _safe_failure,\n)\n\n\n@dataclass\nclass _TimeoutTransport:\n calls: int = 0\n\n def send(\n self,\n request_body: bytes,\n *,\n timeout_milliseconds: int,\n max_response_bytes: int,\n ) -> WikiKnowledgeIntentTransportResponse:\n self.calls += 1\n assert request_body\n assert timeout_milliseconds == 300_000\n assert max_response_bytes > 0\n raise WikiKnowledgeIntentTransportError(\n \"provider_timeout\",\n latency_milliseconds=17,\n )\n\n\n@dataclass\nclass _HttpFailureTransport:\n body: bytes\n calls: int = 0\n\n def send(\n self,\n request_body: bytes,\n *,\n timeout_milliseconds: int,\n max_response_bytes: int,\n ) -> WikiKnowledgeIntentTransportResponse:\n self.calls += 1\n assert request_body\n assert timeout_milliseconds == 300_000\n assert len(self.body) <= max_response_bytes\n return WikiKnowledgeIntentTransportResponse(\n status_code=429,\n body=self.body,\n latency_milliseconds=23,\n )\n\n\n@dataclass\nclass _InvalidSelectorOutputTransport:\n calls: int = 0\n\n def send(\n self,\n request_body: bytes,\n *,\n timeout_milliseconds: int,\n max_response_bytes: int,\n ) -> WikiKnowledgeIntentTransportResponse:\n self.calls += 1\n assert request_body\n assert timeout_milliseconds == 300_000\n body = canonical_json(\n {\n \"id\": \"chatcmpl-invalid-selector-test\",\n \"choices\": [\n {\n \"finish_reason\": \"stop\",\n \"index\": 0,\n \"message\": {\n \"role\": \"assistant\",\n \"content\": '{\"unknown\":true}',\n \"reasoning_content\": None,\n \"tool_calls\": None,\n },\n }\n ],\n \"created\": 1,\n \"model\": \"deepseek-v4-pro\",\n \"object\": \"chat.completion\",\n \"usage\": {\n \"prompt_tokens\": 120,\n \"completion_tokens\": 40,\n \"total_tokens\": 160,\n \"prompt_cache_hit_tokens\": 100,\n \"prompt_cache_miss_tokens\": 20,\n },\n }\n ).encode(\"utf-8\")\n assert len(body) <= max_response_bytes\n return WikiKnowledgeIntentTransportResponse(\n status_code=200,\n body=body,\n latency_milliseconds=19,\n )\n\n\n@dataclass\nclass _CredentialFailureTransport:\n calls: int = 0\n\n def send(\n self,\n request_body: bytes,\n *,\n timeout_milliseconds: int,\n max_response_bytes: int,\n ) -> WikiKnowledgeIntentTransportResponse:\n self.calls += 1\n assert request_body\n assert timeout_milliseconds == 300_000\n assert max_response_bytes > 0\n raise WikiKnowledgeIntentTransportError(\n \"credential_unavailable\",\n latency_milliseconds=0,\n )\n\n\ndef _http_failure_execution(tmp_path: Path) -> WikiKnowledgeIntentMRSelectorExecution:\n combined, compression, original_request = _combined_request(tmp_path)\n request = build_wiki_knowledge_intent_mr_selector_request_from_compression(\n combined_ledger=combined,\n compression=compression,\n task_code_facts=original_request.tasks,\n policy=build_wiki_mr_selector_policy(\n max_selector_input_tokens=40_000,\n allow_static_fallback=False,\n ),\n )\n assert isinstance(request, WikiKnowledgeIntentMRSelectorRequest)\n body = canonical_json(\n {\n \"error\": {\n \"code\": \"rate_limit_exceeded\",\n \"type\": \"rate_limit_error\",\n \"message\": (\n \"PRIVATE_DEEPSEEK_KEY=sk-private PRIVATE_DATABASE_URL=postgresql://private\"\n ),\n },\n \"usage\": {\n \"prompt_tokens\": 120,\n \"completion_tokens\": 0,\n \"total_tokens\": 120,\n },\n }\n ).encode(\"utf-8\")\n transport = _HttpFailureTransport(body=body)\n execution = execute_wiki_knowledge_intent_mr_selector(\n request=request,\n combined_ledger=combined,\n compression=compression,\n transport=transport,\n allow_network=True,\n )\n assert transport.calls == 1\n return execution\n\n\ndef test_timeout_is_structured_without_inventing_usage_or_retry(tmp_path: Path) -> None:\n combined, compression, request = _combined_request(tmp_path)\n transport = _TimeoutTransport()\n\n execution = execute_wiki_knowledge_intent_mr_selector(\n request=request,\n combined_ledger=combined,\n compression=compression,\n transport=transport,\n allow_network=True,\n )\n\n assert execution.status == \"static_fallback\"\n assert execution.provider_attempt_count == 1\n assert execution.retry_count == 0\n assert execution.latency_milliseconds == 17\n assert execution.provider_failure_code == \"provider_timeout\"\n assert execution.primary_failure is not None\n assert execution.primary_failure.stage == \"transport\"\n assert execution.primary_failure.category == \"timeout\"\n assert execution.primary_failure.internal_code == \"provider_timeout\"\n assert execution.usage_available is False\n assert execution.cost_estimate_available is False\n assert execution.prompt_tokens == 0\n assert execution.completion_tokens == 0\n assert execution.total_tokens == 0\n assert execution.prompt_cache_hit_tokens is None\n assert execution.prompt_cache_miss_tokens is None\n assert execution.estimated_cost_microusd == 0\n assert execution.raw_response_sha256 is None\n assert execution.raw_response_byte_count == 0\n assert transport.calls == 1\n\n\ndef test_selector_schema_failure_preserves_available_usage_and_cost(\n tmp_path: Path,\n) -> None:\n combined, compression, request = _combined_request(tmp_path)\n transport = _InvalidSelectorOutputTransport()\n\n execution = execute_wiki_knowledge_intent_mr_selector(\n request=request,\n combined_ledger=combined,\n compression=compression,\n transport=transport,\n allow_network=True,\n )\n\n assert execution.status == \"static_fallback\"\n assert execution.primary_failure is not None\n assert execution.primary_failure.stage == \"selector_validation\"\n assert execution.primary_failure.category == \"schema\"\n assert execution.primary_failure.internal_code == \"selector_output_schema_invalid\"\n assert execution.usage_available is True\n assert execution.prompt_tokens == 120\n assert execution.completion_tokens == 40\n assert execution.total_tokens == 160\n assert execution.prompt_cache_hit_tokens == 100\n assert execution.prompt_cache_miss_tokens == 20\n assert execution.cost_estimate_available is True\n assert execution.estimated_cost_microusd > 0\n assert execution.retry_count == 0\n assert transport.calls == 1\n\n\ndef test_http_primary_failure_and_fallback_failure_remain_distinct(\n tmp_path: Path,\n) -> None:\n execution = _http_failure_execution(tmp_path)\n\n assert execution.status == \"failed\"\n assert execution.provider_attempt_count == 1\n assert execution.retry_count == 0\n assert execution.provider_failure_code == \"provider_rate_limited\"\n assert execution.primary_failure is not None\n assert execution.primary_failure.stage == \"http_response\"\n assert execution.primary_failure.category == \"http\"\n assert execution.primary_failure.internal_code == \"provider_rate_limited\"\n assert execution.primary_failure.provider_http_status == 429\n assert execution.primary_failure.provider_error_code == \"rate_limit_exceeded\"\n assert execution.primary_failure.provider_error_type == \"rate_limit_error\"\n assert execution.usage_available is True\n assert execution.cost_estimate_available is True\n assert execution.prompt_tokens == 120\n assert execution.completion_tokens == 0\n assert execution.total_tokens == 120\n assert execution.estimated_cost_microusd > 0\n assert isinstance(execution.selector_result, WikiKnowledgeIntentMRSelectorFailure)\n assert execution.selector_result.failure_code == \"static_fallback_not_allowed\"\n assert execution.raw_response_sha256 is not None\n assert execution.raw_response_byte_count > 0\n\n error = WikiFirstRetrievalPipelineError(\n stage=\"mr_selector_execution\",\n code=execution.selector_result.failure_code,\n selector_execution=execution,\n )\n assert error.selector_execution == execution\n\n\ndef test_credential_preflight_is_not_counted_as_a_network_attempt(tmp_path: Path) -> None:\n combined, compression, request = _combined_request(tmp_path)\n transport = _CredentialFailureTransport()\n\n execution = execute_wiki_knowledge_intent_mr_selector(\n request=request,\n combined_ledger=combined,\n compression=compression,\n transport=transport,\n allow_network=True,\n )\n\n assert execution.status == \"static_fallback\"\n assert execution.provider_attempt_count == 0\n assert execution.network_attempted is False\n assert execution.provider_failure_code == \"credential_unavailable\"\n assert execution.primary_failure is not None\n assert execution.primary_failure.category == \"credential\"\n assert transport.calls == 1\n\n\ndef test_timer_acceptance_requires_a_nonempty_provider_validated_result(\n tmp_path: Path,\n) -> None:\n combined, compression, request = _combined_request(tmp_path)\n validated_execution = execute_wiki_knowledge_intent_mr_selector(\n request=request,\n combined_ledger=combined,\n compression=compression,\n transport=_Transport(request=request, valid=True),\n allow_network=True,\n )\n validated_run = validated_execution.selector_result\n assert not isinstance(validated_run, WikiKnowledgeIntentMRSelectorFailure)\n accepted = cast(\n WikiFirstRetrievalPipelineResult,\n SimpleNamespace(\n selector_execution=validated_execution,\n selector_run=validated_run,\n reference_pack=SimpleNamespace(\n selection_mode=\"provider_validated\",\n reference_count=1,\n ),\n ),\n )\n _require_provider_validated_timer_result(accepted)\n\n fallback_execution = execute_wiki_knowledge_intent_mr_selector(\n request=request,\n combined_ledger=combined,\n compression=compression,\n transport=_TimeoutTransport(),\n allow_network=True,\n )\n fallback_run = fallback_execution.selector_result\n assert not isinstance(fallback_run, WikiKnowledgeIntentMRSelectorFailure)\n rejected = cast(\n WikiFirstRetrievalPipelineResult,\n SimpleNamespace(\n selector_execution=fallback_execution,\n selector_run=fallback_run,\n reference_pack=SimpleNamespace(\n selection_mode=\"static_fallback\",\n reference_count=1,\n ),\n ),\n )\n with pytest.raises(\n WikiFirstRetrievalPipelineError,\n match=\"timer_provider_validated_acceptance: selector_not_provider_validated\",\n ):\n _require_provider_validated_timer_result(rejected)\n\n\ndef test_timer_failure_helper_publishes_one_private_sanitized_artifact(\n tmp_path: Path,\n) -> None:\n execution = _http_failure_execution(tmp_path / \"selector\")\n assert isinstance(execution.selector_result, WikiKnowledgeIntentMRSelectorFailure)\n error = WikiFirstRetrievalPipelineError(\n stage=\"mr_selector_execution\",\n code=execution.selector_result.failure_code,\n selector_execution=execution,\n )\n repository_root = tmp_path / \"repository\"\n material = repository_root / \"material\"\n material.mkdir(parents=True)\n output = material / \"failed-run\"\n output.mkdir(mode=0o700)\n\n raw = _safe_failure(phase=\"wiki_first_retrieval_pipeline\", exc=error)\n path = _publish_failure_artifact(\n output=output,\n raw=raw,\n )\n\n payload = json.loads(path.read_bytes())\n serialized = path.read_text(encoding=\"utf-8\")\n assert path.name == \"00-run-failure.json\"\n assert [item.name for item in output.iterdir()] == [\"00-run-failure.json\"]\n assert stat.S_IMODE(output.stat().st_mode) == 0o700\n assert stat.S_IMODE(path.stat().st_mode) == 0o600\n assert payload[\"pipeline_stage\"] == \"mr_selector_execution\"\n assert payload[\"pipeline_code\"] == \"static_fallback_not_allowed\"\n diagnostic = payload[\"selector_execution\"]\n assert diagnostic[\"provider_attempt_count\"] == 1\n assert diagnostic[\"retry_count\"] == 0\n assert diagnostic[\"usage_available\"] is True\n assert diagnostic[\"cost_estimate_available\"] is True\n assert diagnostic[\"primary_failure\"] == {\n \"stage\": \"http_response\",\n \"category\": \"http\",\n \"internal_code\": \"provider_rate_limited\",\n \"provider_http_status\": 429,\n \"provider_error_code\": \"rate_limit_exceeded\",\n \"provider_error_type\": \"rate_limit_error\",\n \"observed\": None,\n \"limit\": None,\n }\n assert diagnostic[\"fallback_result\"][\"failure_code\"] == (\"static_fallback_not_allowed\")\n assert diagnostic[\"raw_response_sha256\"]\n assert diagnostic[\"raw_response_byte_count\"] > 0\n assert diagnostic[\"raw_response_recorded\"] is False\n for forbidden in (\n \"PRIVATE_DEEPSEEK_KEY\",\n \"sk-private\",\n \"PRIVATE_DATABASE_URL\",\n \"postgresql://private\",\n ):\n assert forbidden not in serialized\n"}}, "tests/test_run_wiki_blind_discovery_grok_cli.py": {"320a25d24b46b72fc7dc1a4b30ba372b77f85acd": {"t": 1786068240.4190629, "n": 12528, "h": "18be4c8ad4960cfd", "c": "from __future__ import annotations\n\nimport base64\nimport json\nimport os\nimport subprocess\nimport sys\nfrom pathlib import Path\nfrom typing import cast\n\nfrom test_wiki_discovery_tools import _packet\nfrom wiki_snapshot_test_utils import build_wiki_fixture, write_source_config\n\nfrom arkts_code_reviewer.retrieval.wiki.canonical import canonical_json\nfrom arkts_code_reviewer.retrieval.wiki.deepseek_discovery_runner import (\n WikiDeepSeekDiscoveryFinalEnvelope,\n)\nfrom arkts_code_reviewer.retrieval.wiki.discovery_tools import (\n start_wiki_discovery_session,\n)\nfrom arkts_code_reviewer.retrieval.wiki.model_blind_discovery import (\n WIKI_MODEL_BLIND_DISCOVERY_TAXONOMY_ROOT_ID,\n build_wiki_model_blind_discovery_request,\n)\nfrom arkts_code_reviewer.retrieval.wiki.snapshot import load_existing_wiki_snapshot\n\nROOT = Path(__file__).resolve().parents[1]\nRUNNER = ROOT / \"tools/run_wiki_blind_discovery_grok.py\"\nPROMPT = ROOT / \"prompts/retrieval/grok-wiki-blind-discovery-diagnostic-v1.md\"\nRESULT_FILES = (\n \"00-grok-blind-discovery-diagnostic-attempt.json\",\n \"01-grok-blind-discovery-cli-wrapper.json\",\n \"02-grok-blind-discovery-mcp-calls.ndjson\",\n \"03-grok-blind-discovery-runtime-trace.json\",\n \"04-grok-blind-discovery-final-envelope.json\",\n \"05-grok-blind-discovery-output.json\",\n \"06-grok-blind-discovery-diagnostic-observation.json\",\n \"07-grok-blind-discovery-failure-observation.json\",\n)\n\n\ndef _environment() -> dict[str, str]:\n environment = os.environ.copy()\n environment[\"PYTHONPATH\"] = f\"{ROOT / 'src'}:{ROOT / 'tests'}\"\n environment[\"ARKTS_CODE_REVIEWER_TEST_GROK_BINARY\"] = \"1\"\n environment[\"DEEPSEEK_API_KEY\"] = \"must-not-reach-grok\"\n environment[\"OPENAI_API_KEY\"] = \"must-not-reach-grok\"\n environment[\"XAI_API_KEY\"] = \"synthetic-test-key\"\n return environment\n\n\ndef _fixture_inputs(tmp_path: Path) -> tuple[list[str], bytes, dict[str, object]]:\n wiki_root, config = build_wiki_fixture(tmp_path)\n config_path = tmp_path / \"wiki-source.json\"\n write_source_config(config_path, config)\n snapshot = load_existing_wiki_snapshot(wiki_root, config)\n packet = _packet(snapshot)\n raw_packet = (\n json.dumps(\n packet.model_dump(mode=\"json\"),\n ensure_ascii=False,\n indent=2,\n sort_keys=True,\n allow_nan=False,\n )\n + \"\\n\"\n ).encode()\n packet_path = tmp_path / \"packet.json\"\n packet_path.write_bytes(raw_packet)\n request = build_wiki_model_blind_discovery_request(\n raw_packet,\n subject_id=packet.query_cards[0].subject_id,\n )\n session = start_wiki_discovery_session(request=request, snapshot=snapshot)\n session.browse_taxonomy(\n WIKI_MODEL_BLIND_DISCOVERY_TAXONOMY_ROOT_ID,\n page_index=0,\n page_size=50,\n )\n session.full_text_search(\"taskpool.execute\", page_index=0, page_size=20)\n opened = session.open_document(\n \"taskpool-a\",\n view=\"content_window\",\n start_byte=0,\n max_bytes=512,\n )\n journal = b\"\".join(\n canonical_json(call.model_dump(mode=\"json\")).encode() + b\"\\n\"\n for call in session.calls\n )\n envelope = WikiDeepSeekDiscoveryFinalEnvelope.model_validate(\n {\n \"schema_version\": \"wiki-deepseek-blind-discovery-final-envelope-v1\",\n \"request_id\": request.request_id,\n \"subject_id\": request.subject_id,\n \"review_question_id\": request.review_question_id,\n \"result_state\": \"positive\",\n \"rationale\": \"The guide directly documents the API.\",\n \"required_groups\": [\n {\n \"knowledge_need\": \"TaskPool execution guidance\",\n \"necessity_rationale\": \"The visible code invokes TaskPool.\",\n \"alternatives\": [\n {\n \"document_id\": \"taskpool-a\",\n \"selection_rationale\": \"The guide names the API.\",\n \"locators\": [\n {\n \"open_result_id\": opened.result_id,\n \"exact_quote\": \"Use taskpool.execute.\",\n \"occurrence_index\": None,\n \"atom_id\": None,\n }\n ],\n }\n ],\n }\n ],\n \"source_gap\": None,\n }\n )\n wrapper: dict[str, object] = {\n \"text\": canonical_json(envelope.model_dump(mode=\"json\")),\n \"stopReason\": \"EndTurn\",\n \"sessionId\": \"synthetic-session\",\n \"requestId\": \"synthetic-request\",\n \"num_turns\": 4,\n \"usage\": {\n \"input_tokens\": 100,\n \"output_tokens\": 50,\n \"reasoning_tokens\": 10,\n \"total_tokens\": 150,\n },\n \"modelUsage\": {\n \"grok-4.5-build\": {\n \"inputTokens\": 100,\n \"outputTokens\": 50,\n \"modelCalls\": 4,\n }\n },\n \"structuredOutput\": envelope.model_dump(mode=\"json\"),\n \"structuredOutputError\": None,\n }\n args = [\n \"--wiki-root\",\n str(wiki_root),\n \"--source-config\",\n str(config_path),\n \"--packet\",\n str(packet_path),\n \"--subject-id\",\n request.subject_id,\n \"--prompt\",\n str(PROMPT),\n ]\n return args, journal, wrapper\n\n\ndef _fake_grok(\n tmp_path: Path,\n *,\n journal: bytes,\n wrapper: dict[str, object],\n) -> tuple[Path, Path]:\n capture = tmp_path / \"grok-invocations.txt\"\n binary = tmp_path / \"fake-grok\"\n journal_b64 = base64.b64encode(journal).decode()\n wrapper_b64 = base64.b64encode(json.dumps(wrapper, ensure_ascii=False).encode()).decode()\n binary.write_text(\n f\"\"\"#!{sys.executable}\nimport base64\nimport json\nimport sys\nimport tomllib\nfrom pathlib import Path\n\ncapture = Path({str(capture)!r})\narguments = sys.argv[1:]\nif arguments == [\"--version\"]:\n mode = \"version\"\n output = \"grok 0.2.114 (0c78503879)\\\\n\"\nelif arguments[:3] == [\"mcp\", \"list\", \"--json\"]:\n mode = \"mcp-list\"\n config = tomllib.loads((Path.cwd() / \".grok/config.toml\").read_text(encoding=\"utf-8\"))\n server = config[\"mcp_servers\"][\"arkts_wiki_blind\"]\n output = json.dumps([{{\n \"name\": \"arkts_wiki_blind\",\n \"enabled\": True,\n \"command\": server[\"command\"],\n \"args\": server[\"args\"],\n }}])\nelif arguments[:2] == [\"mcp\", \"doctor\"]:\n mode = \"mcp-doctor\"\n output = json.dumps({{\n \"servers\": [{{\n \"name\": \"arkts_wiki_blind\",\n \"healthy\": True,\n \"checks\": [\n {{\"label\": \"server started\", \"passed\": True}},\n {{\"label\": \"handshake OK\", \"passed\": True}},\n {{\"label\": \"3 tools discovered\", \"passed\": True}},\n ],\n }}]\n }})\nelse:\n mode = \"model\"\n cwd = Path(arguments[arguments.index(\"--cwd\") + 1])\n config = tomllib.loads((cwd / \".grok/config.toml\").read_text(encoding=\"utf-8\"))\n server_args = config[\"mcp_servers\"][\"arkts_wiki_blind\"][\"args\"]\n journal_path = Path(server_args[server_args.index(\"--journal\") + 1])\n journal_path.write_bytes(base64.b64decode({journal_b64!r}))\n journal_path.chmod(0o600)\n output = base64.b64decode({wrapper_b64!r}).decode(\"utf-8\")\nwith capture.open(\"a\", encoding=\"utf-8\") as stream:\n stream.write(mode + \"\\\\n\")\nsys.stdout.write(output)\n\"\"\",\n encoding=\"utf-8\",\n )\n binary.chmod(0o700)\n return binary, capture\n\n\ndef _run(args: list[str]) -> subprocess.CompletedProcess[str]:\n return subprocess.run(\n [sys.executable, str(RUNNER), *args],\n cwd=ROOT,\n env=_environment(),\n text=True,\n capture_output=True,\n check=False,\n timeout=30,\n )\n\n\ndef _approval_args(\n base: list[str],\n binary: Path,\n inspection: dict[str, object],\n artifact_dir: Path,\n) -> list[str]:\n return [\n *base,\n \"--testing-grok-binary\",\n str(binary),\n \"--artifact-dir\",\n str(artifact_dir),\n \"--execute-live\",\n \"--acknowledgement\",\n str(inspection[\"required_acknowledgement\"]),\n \"--approve-request-id\",\n str(inspection[\"request_id\"]),\n \"--approve-wiki-snapshot-id\",\n str(inspection[\"wiki_snapshot_id\"]),\n \"--approve-prompt-id\",\n str(inspection[\"prompt_id\"]),\n \"--approve-model-input-sha256\",\n str(inspection[\"model_input_sha256\"]),\n \"--approve-response-schema-sha256\",\n str(inspection[\"response_schema_sha256\"]),\n \"--approve-grok-cli-version\",\n str(inspection[\"grok_cli_version\"]),\n \"--approve-grok-binary-path\",\n str(inspection[\"grok_binary_path\"]),\n \"--approve-grok-binary-sha256\",\n str(inspection[\"grok_binary_sha256\"]),\n \"--approve-mcp-server-sha256\",\n str(inspection[\"mcp_server_sha256\"]),\n \"--approve-model\",\n str(inspection[\"requested_model\"]),\n \"--approve-timeout-ms\",\n str(inspection[\"wall_clock_timeout_ms\"]),\n \"--approve-max-wrapper-bytes\",\n str(inspection[\"max_wrapper_bytes\"]),\n \"--approve-max-turns\",\n str(inspection[\"max_turns\"]),\n ]\n\n\ndef test_default_inspection_verifies_three_tool_surface_without_model_call(\n tmp_path: Path,\n) -> None:\n base, journal, wrapper = _fixture_inputs(tmp_path)\n binary, capture = _fake_grok(tmp_path, journal=journal, wrapper=wrapper)\n\n completed = _run([*base, \"--testing-grok-binary\", str(binary)])\n\n assert completed.returncode == 0, completed.stderr\n inspection = json.loads(completed.stdout)\n assert inspection[\"mode\"] == \"inspect_only\"\n assert inspection[\"mcp_surface_verified_by_cli_doctor\"] is True\n assert inspection[\"mcp_tool_names\"] == [\n \"wiki_taxonomy_browse\",\n \"wiki_full_text_search\",\n \"wiki_open_document\",\n ]\n assert inspection[\"network_attempted\"] is False\n assert capture.read_text(encoding=\"utf-8\").splitlines() == [\n \"version\",\n \"mcp-list\",\n \"mcp-doctor\",\n ]\n\n\ndef test_live_rejects_approval_mismatch_before_model(tmp_path: Path) -> None:\n base, journal, wrapper = _fixture_inputs(tmp_path)\n binary, capture = _fake_grok(tmp_path, journal=journal, wrapper=wrapper)\n inspected = _run([*base, \"--testing-grok-binary\", str(binary)])\n inspection = cast(dict[str, object], json.loads(inspected.stdout))\n artifact_dir = tmp_path / \"artifacts\"\n artifact_dir.mkdir(mode=0o700)\n args = _approval_args(base, binary, inspection, artifact_dir)\n args[args.index(\"--approve-request-id\") + 1] = (\n \"wiki-model-blind-discovery-request:sha256:\" + \"0\" * 64\n )\n\n completed = _run(args)\n\n assert completed.returncode == 2\n assert \"approve_request_id\" in completed.stderr\n assert \"model\" not in capture.read_text(encoding=\"utf-8\").splitlines()\n assert not any((artifact_dir / name).exists() for name in RESULT_FILES)\n\n\ndef test_one_fake_live_session_replays_trace_and_publishes_diagnostic_only(\n tmp_path: Path,\n) -> None:\n base, journal, wrapper = _fixture_inputs(tmp_path)\n binary, capture = _fake_grok(tmp_path, journal=journal, wrapper=wrapper)\n inspected = _run([*base, \"--testing-grok-binary\", str(binary)])\n inspection = cast(dict[str, object], json.loads(inspected.stdout))\n artifact_dir = tmp_path / \"artifacts\"\n artifact_dir.mkdir(mode=0o700)\n\n completed = _run(_approval_args(base, binary, inspection, artifact_dir))\n\n assert completed.returncode == 0, completed.stderr\n summary = json.loads(completed.stdout)\n assert summary[\"status\"] == \"success\"\n assert summary[\"tool_operation_count\"] == 3\n assert summary[\"existing_model_discovery_receipt_eligible\"] is False\n observation = json.loads((artifact_dir / RESULT_FILES[6]).read_bytes())\n assert observation[\"local_mcp_trace_replayed\"] is True\n assert observation[\"provider_raw_turn_trace_available\"] is False\n assert observation[\"existing_model_discovery_receipt_eligible\"] is False\n assert observation[\"truth_eligible\"] is False\n assert observation[\"evidence_eligible\"] is False\n modes = capture.read_text(encoding=\"utf-8\").splitlines()\n assert modes.count(\"model\") == 1\n assert not (artifact_dir / RESULT_FILES[7]).exists()\n for name in RESULT_FILES[:7]:\n assert oct((artifact_dir / name).stat().st_mode & 0o777) == \"0o600\"\n"}}, "src/arkts_code_reviewer/knowledge/document_first/semantic_facet_export_policy.py": {"320a25d24b46b72fc7dc1a4b30ba372b77f85acd": {"t": 1786068356.5423667, "n": 8622, "h": "60823c9431185b14", "c": "from __future__ import annotations\n\nfrom pathlib import Path, PurePosixPath\nfrom typing import Annotated, Literal, Self\n\nfrom pydantic import Field, ValidationInfo, field_validator, model_validator\nfrom ruamel.yaml import YAML\nfrom ruamel.yaml.error import YAMLError\n\nfrom arkts_code_reviewer.knowledge.document_first._canonical import (\n FrozenModel,\n canonical_hash,\n)\n\nSEMANTIC_FACET_EXPORT_POLICY_SCHEMA_VERSION: Literal[\n \"semantic-facet-export-policy-v1\"\n] = \"semantic-facet-export-policy-v1\"\nSemanticFacetExportPromptVersion = Literal[\n \"deepseek-semantic-facet-v1\",\n \"deepseek-semantic-facet-v2\",\n \"deepseek-semantic-facet-v3\",\n]\n\n_REPO_ROOT = Path(__file__).resolve().parents[4]\n_PACKAGED_DEFAULTS = Path(__file__).resolve().parent / \"defaults\"\n\n\ndef _default_asset_path(filename: str, source_relative_path: str) -> Path:\n packaged = _PACKAGED_DEFAULTS / filename\n if packaged.is_file():\n return packaged\n return _REPO_ROOT / source_relative_path\n\n\nDEFAULT_SEMANTIC_FACET_EXPORT_POLICY_PATH = _default_asset_path(\n \"knowledge_semantic_facet_export_v3.yaml\",\n \"config/knowledge_semantic_facet_export_v3.yaml\",\n)\n\n\ndef _sequence(value: object, context: str) -> tuple[object, ...]:\n if not isinstance(value, list | tuple):\n raise ValueError(f\"{context} must be a sequence\")\n return tuple(value)\n\n\ndef _sorted_unique_strings(value: object, context: str) -> tuple[str, ...]:\n items = _sequence(value, context)\n if any(not isinstance(item, str) or not item or item != item.strip() for item in items):\n raise ValueError(f\"{context} must contain non-empty trimmed strings\")\n strings = tuple(item for item in items if isinstance(item, str))\n if strings != tuple(sorted(set(strings))):\n raise ValueError(f\"{context} must be sorted and unique\")\n return strings\n\n\ndef _relative_path(value: str, context: str) -> str:\n path = PurePosixPath(value)\n if (\n not value\n or value != value.strip()\n or path.is_absolute()\n or \".\" in path.parts\n or \"..\" in path.parts\n or \"\\\\\" in value\n ):\n raise ValueError(f\"{context} must stay below its source root\")\n return str(path)\n\n\nclass SemanticFacetExportSourceRule(FrozenModel):\n source_id: Annotated[str, Field(min_length=1)]\n revision: Annotated[str, Field(pattern=r\"^[0-9a-f]{40}$\")]\n relative_paths: tuple[str, ...]\n\n @field_validator(\"source_id\")\n @classmethod\n def validate_source_id(cls, value: str) -> str:\n if value != value.strip():\n raise ValueError(\"SemanticFacetExportSourceRule.source_id must be trimmed\")\n return value\n\n @field_validator(\"relative_paths\", mode=\"before\")\n @classmethod\n def parse_paths(cls, value: object) -> tuple[str, ...]:\n paths = _sorted_unique_strings(\n value,\n \"SemanticFacetExportSourceRule.relative_paths\",\n )\n if not paths:\n raise ValueError(\"SemanticFacetExportSourceRule.relative_paths must not be empty\")\n return tuple(\n _relative_path(path, \"SemanticFacetExportSourceRule.relative_paths\")\n for path in paths\n )\n\n\nclass SemanticFacetExportPolicy(FrozenModel):\n schema_version: Literal[\"semantic-facet-export-policy-v1\"]\n version: Annotated[str, Field(min_length=1)]\n enabled: bool\n provider: Literal[\"deepseek\"]\n endpoint_url: Literal[\"https://api.deepseek.com/chat/completions\"]\n allowed_models: tuple[str, ...]\n allowed_prompt_versions: tuple[SemanticFacetExportPromptVersion, ...]\n source_allowlist: tuple[SemanticFacetExportSourceRule, ...]\n\n max_document_characters: Annotated[int, Field(ge=1, le=500_000)]\n max_atoms: Annotated[int, Field(ge=1, le=50_000)]\n max_fragments: Annotated[int, Field(ge=1, le=100_000)]\n max_request_body_bytes: Annotated[int, Field(ge=1_024, le=8_000_000)]\n\n max_facets: Annotated[int, Field(ge=1, le=50_000)]\n max_primary_fragments_per_facet: Annotated[int, Field(ge=1, le=10_000)]\n max_context_fragments_per_facet: Annotated[int, Field(ge=0, le=10_000)]\n max_categories_per_facet: Annotated[int, Field(ge=1, le=15)]\n max_aliases_per_facet: Annotated[int, Field(ge=0, le=1_000)]\n max_terms_per_context_field: Annotated[int, Field(ge=1, le=1_000)]\n\n max_output_tokens: Annotated[int, Field(ge=256, le=16_384)]\n wall_clock_timeout_ms: Annotated[int, Field(ge=1_000, le=300_000)]\n max_response_bytes: Annotated[int, Field(ge=1_024, le=8_000_000)]\n max_attempts: Literal[1]\n retry_policy: Literal[\"none_single_attempt_v1\"]\n thinking: Literal[\"disabled\"]\n temperature: Literal[0]\n response_format: Literal[\"json_object\"]\n tls_verify: Literal[True]\n follow_redirects: Literal[False]\n trust_env: Literal[False]\n qualification: Literal[\n \"development_single_document_semantic_facet_export_allowlist_\"\n \"not_execution_or_production_approval\"\n ]\n\n @field_validator(\"allowed_models\", \"allowed_prompt_versions\", mode=\"before\")\n @classmethod\n def parse_string_sets(\n cls,\n value: object,\n info: ValidationInfo,\n ) -> tuple[str, ...]:\n return _sorted_unique_strings(value, f\"SemanticFacetExportPolicy.{info.field_name}\")\n\n @field_validator(\"source_allowlist\", mode=\"before\")\n @classmethod\n def parse_source_allowlist(cls, value: object) -> tuple[object, ...]:\n return _sequence(value, \"SemanticFacetExportPolicy.source_allowlist\")\n\n @field_validator(\"version\")\n @classmethod\n def validate_version(cls, value: str) -> str:\n if value != value.strip():\n raise ValueError(\"SemanticFacetExportPolicy.version must be trimmed\")\n return value\n\n @model_validator(mode=\"after\")\n def validate_complete_policy(self) -> Self:\n keys = tuple((item.source_id, item.revision) for item in self.source_allowlist)\n if keys != tuple(sorted(set(keys))):\n raise ValueError(\n \"SemanticFacetExportPolicy source rules must be sorted and unique\"\n )\n configured = bool(\n self.allowed_models or self.allowed_prompt_versions or self.source_allowlist\n )\n if self.enabled and not (\n self.allowed_models and self.allowed_prompt_versions and self.source_allowlist\n ):\n raise ValueError(\n \"enabled Semantic Facet export policy requires complete allowlists\"\n )\n if not self.enabled and configured:\n raise ValueError(\n \"disabled Semantic Facet export policy cannot carry allowlists\"\n )\n if self.max_fragments < self.max_atoms:\n raise ValueError(\n \"Semantic Facet max_fragments cannot be smaller than max_atoms\"\n )\n if (\n self.max_primary_fragments_per_facet > self.max_fragments\n or self.max_context_fragments_per_facet > self.max_fragments\n ):\n raise ValueError(\n \"Semantic Facet per-Facet Fragment limits cannot exceed max_fragments\"\n )\n return self\n\n @property\n def fingerprint(self) -> str:\n return canonical_hash(\n \"semantic-facet-export-policy\",\n self.model_dump(mode=\"json\"),\n )\n\n def permits_source(\n self,\n *,\n source_id: str,\n revision: str,\n relative_path: str,\n ) -> bool:\n return any(\n rule.source_id == source_id\n and rule.revision == revision\n and relative_path in rule.relative_paths\n for rule in self.source_allowlist\n )\n\n\ndef load_semantic_facet_export_policy(\n path: str | Path | None = None,\n) -> SemanticFacetExportPolicy:\n policy_path = DEFAULT_SEMANTIC_FACET_EXPORT_POLICY_PATH if path is None else Path(path)\n if policy_path.is_symlink() or not policy_path.is_file():\n raise ValueError(\"Semantic Facet export policy must be a regular non-symlink file\")\n yaml = YAML(typ=\"safe\")\n yaml.allow_duplicate_keys = False\n try:\n payload = yaml.load(policy_path.read_text(encoding=\"utf-8\"))\n return SemanticFacetExportPolicy.model_validate(payload)\n except (OSError, UnicodeError, TypeError, ValueError, YAMLError) as exc:\n raise ValueError(f\"invalid Semantic Facet export policy: {exc}\") from exc\n\n\n__all__ = [\n \"DEFAULT_SEMANTIC_FACET_EXPORT_POLICY_PATH\",\n \"SEMANTIC_FACET_EXPORT_POLICY_SCHEMA_VERSION\",\n \"SemanticFacetExportPolicy\",\n \"SemanticFacetExportPromptVersion\",\n \"SemanticFacetExportSourceRule\",\n \"load_semantic_facet_export_policy\",\n]\n"}}}}