codd-dev 2.77.0__tar.gz → 2.78.0__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.
- {codd_dev-2.77.0 → codd_dev-2.78.0}/PKG-INFO +1 -1
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/__init__.py +1 -1
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/implement_oracle.py +31 -127
- codd_dev-2.78.0/codd/implement_oracle_types.py +174 -0
- codd_dev-2.78.0/codd/languages/adapters/implement_oracle.py +188 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/languages/builtin_adapters.py +32 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/languages/contract.py +6 -0
- codd_dev-2.78.0/codd/languages/oracle_executor.py +345 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/pyproject.toml +1 -1
- {codd_dev-2.77.0 → codd_dev-2.78.0}/.gitignore +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/LICENSE +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/README.md +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/bench_fixture/README.md +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/__main__.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/_git_helper.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/action_outcome.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/ai_invoke.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/ai_patch.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/artifact_contract.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/artifact_ids.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/artifacts/catalog.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/ask_user_question_adapter.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/assembler.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/bridge.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/brownfield/__init__.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/brownfield/pipeline.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/capability_completeness.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/claude_cli.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/cli.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/clustering.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/coherence_adapters.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/coherence_engine.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/confidence.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/config.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/config_schema.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/contracts.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/contracts_registry/__init__.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/contracts_registry/__main__.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/contracts_registry/certify.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/contracts_registry/generate_matrix.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/contracts_registry/registry.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/coverage_auditor.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/coverage_execution_coherence.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/coverage_metrics.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/dag/__init__.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/dag/auto_repair.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/dag/builder.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/dag/checks/__init__.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/dag/checks/_one_to_many_detection.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/dag/checks/artifact_contract_check.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/dag/checks/ci_health.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/dag/checks/dependency_freshness.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/dag/checks/depends_on_consistency.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/dag/checks/deployment_completeness.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/dag/checks/edge_validity.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/dag/checks/environment_coverage.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/dag/checks/implementation_coverage.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/dag/checks/node_completeness.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/dag/checks/opt_out.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/dag/checks/task_completion.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/dag/checks/transitive_closure.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/dag/checks/ui_coherence.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/dag/checks/user_journey_coherence.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/dag/coverage_axes.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/dag/defaults/cli.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/dag/defaults/cpp_embedded.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/dag/defaults/csharp.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/dag/defaults/elixir.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/dag/defaults/generic.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/dag/defaults/iot.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/dag/defaults/java.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/dag/defaults/kotlin.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/dag/defaults/mobile.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/dag/defaults/ruby.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/dag/defaults/rust.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/dag/defaults/scala.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/dag/defaults/swift.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/dag/defaults/test_frameworks.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/dag/defaults/web.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/dag/extractor.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/dag/impact.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/dag/runner.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/defaults.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/defaults.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/dependency_lock_coherence.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/deploy_targets/__init__.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/deploy_targets/app_service.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/deploy_targets/base.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/deploy_targets/docker_compose.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/deployer.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/deployment/__init__.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/deployment/checks/__init__.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/deployment/defaults/deploy_targets.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/deployment/defaults/runtime_capability_inference.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/deployment/defaults/schema_providers.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/deployment/defaults/verification_templates.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/deployment/extractor.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/deployment/providers/__init__.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/deployment/providers/ai_command.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/deployment/providers/ai_command_factory.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/deployment/providers/codex_app_server.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/deployment/providers/llm_consideration.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/deployment/providers/schema/__init__.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/deployment/providers/schema/prisma.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/deployment/providers/target/__init__.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/deployment/providers/target/docker_compose.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/deployment/providers/verification/__init__.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/deployment/providers/verification/assertion_handlers.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/deployment/providers/verification/cdp_browser.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/deployment/providers/verification/cdp_engines.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/deployment/providers/verification/cdp_launchers.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/deployment/providers/verification/cdp_wire.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/deployment/providers/verification/curl.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/deployment/providers/verification/form_strategies.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/deployment/providers/verification/means_catalog.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/deployment/providers/verification/playwright.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/deployment/providers/verification/pytest_http.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/deployment/providers/verification/vitest.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/design_md.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/diff/__init__.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/diff/apply.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/diff/engine.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/diff/persistence.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/diff/templates/diff_prompt.md +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/discovery.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/drift.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/e2e_contract_coherence.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/e2e_extractor.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/e2e_generator.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/e2e_harness.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/e2e_runner.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/elicit/__init__.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/elicit/apply.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/elicit/engine.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/elicit/finding.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/elicit/formatters/__init__.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/elicit/formatters/base.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/elicit/formatters/interactive.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/elicit/formatters/json_fmt.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/elicit/formatters/md.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/elicit/lexicon_loader.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/elicit/persistence.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/elicit/templates/elicit_prompt_L0.md +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/env_refs.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/extract_ai.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/extract_paths.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/extractor.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/fix/__init__.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/fix/candidate_selector.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/fix/design_updater.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/fix/impl_propagation.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/fix/interactive_prompt.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/fix/phenomenon_fixer.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/fix/phenomenon_parser.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/fix/risk_classifier.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/fix/templates/clarification_question.txt +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/fix/templates/design_update.txt +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/fix/templates/impl_update.txt +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/fix/templates/phenomenon_parse.txt +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/fix/templates/risk_assessment.txt +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/fix/templates_loader.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/fixer.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/fixup_drift.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/fixup_drift_strategies/__init__.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/fixup_drift_strategies/design_token_drift.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/fixup_drift_strategies/lexicon_violation.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/fixup_drift_strategies/url_drift.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/frontmatter.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/generator.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/git_evidence.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/graph.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/greenfield/__init__.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/greenfield/pipeline.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/hitl_session.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/hooks/__init__.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/hooks/pre-commit +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/hooks/recipes/claude_requirements_nudge.json +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/hooks/recipes/claude_settings_example.json +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/hooks/recipes/codex_hook.sh +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/hooks/recipes/git_post_commit.sh +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/hooks/recipes/git_pre_commit.sh +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/iac_nfr.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/implement_oracle_scope.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/implementer/__init__.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/implementer/chunked_runner.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/implementer/typecheck_loop.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/implementer.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/import_coherence.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/inheritance.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/init/__init__.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/init/lexicon_suggest.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/init/llm_lexicon_suggester.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/init/stack_detector.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/knowledge_fetcher.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/languages/__init__.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/languages/adapters/__init__.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/languages/adapters/runner_report.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/languages/compat.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/languages/loader.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/languages/path_planner.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/languages/profile.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/languages/profiles/go.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/languages/profiles/python.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/languages/profiles/typescript.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/languages/registry.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/languages/verify_executor.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/languages/verify_plan.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/lexicon.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/lexicon_cli/__init__.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/lexicon_cli/formatters/__init__.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/lexicon_cli/formatters/html.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/lexicon_cli/formatters/json_fmt.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/lexicon_cli/formatters/md.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/lexicon_cli/inspector.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/lexicon_cli/manager.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/lexicon_cli/reporter.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/lexicon_cli/threshold.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/llm/__init__.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/llm/approval.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/llm/best_practice_augmenter.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/llm/criteria_expander.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/llm/design_doc_extractor.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/llm/impl_step_deriver.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/llm/means_catalog_loader.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/llm/parser.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/llm/plan_deriver.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/llm/prompt_builder.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/llm/strategy_validator.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/llm/templates/best_practice_augment_meta.md +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/llm/templates/criteria_expand_meta.md +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/llm/templates/design_doc_extract_meta.md +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/llm/templates/impl_step_derive_meta.md +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/llm/templates/implementation_step_catalog.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/llm/templates/meta_instruction.md +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/llm/templates/plan_derive_meta.md +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/llm/templates/verification_means_catalog.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/mcp_server.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/measure.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/operational_e2e_audit.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/operations_derive.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/parsing/__init__.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/parsing/_shared.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/parsing/api_specs.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/parsing/filesystem_routes.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/parsing/iac.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/parsing/python_ast.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/parsing/schemas.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/parsing/tests_builddeps.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/parsing/treesitter.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/planner.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/policy.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/preflight/__init__.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/preflight/defaults/cli.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/preflight/defaults/generic.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/preflight/defaults/iot.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/preflight/defaults/mobile.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/preflight/defaults/web.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/project_types.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/propagate.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/propagation_common.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/propagator.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/reconciliation_ledger.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/reference_resolution.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/registry.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/repair/__init__.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/repair/approval_repair.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/repair/auto_scope_guard.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/repair/engine.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/repair/git_patcher.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/repair/history.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/repair/llm_repair_engine.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/repair/loop.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/repair/primary_picker.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/repair/proof_breaks.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/repair/repair_result.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/repair/repairability_classifier.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/repair/schema.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/repair/templates/analyze_meta.md +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/repair/templates/propose_meta.md +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/repair/templates/repair_strategy_meta.md +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/repair/templates/repairability_meta.md +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/repair/test_failure_attribution.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/repair/verify_runner.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/repair_slice.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/require.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/require_plugins.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/require_propagate.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/required_artifacts/defaults/cli.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/required_artifacts/defaults/generic.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/required_artifacts/defaults/iot.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/required_artifacts/defaults/mobile.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/required_artifacts/defaults/web.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/required_artifacts_deriver.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/requirement_completeness/defaults/cli.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/requirement_completeness/defaults/generic.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/requirement_completeness/defaults/iot.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/requirement_completeness/defaults/mobile.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/requirement_completeness/defaults/web.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/requirement_completeness_auditor.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/requirement_reconciliation.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/requirements_meta.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/restoration_report.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/restore.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/routes_extractor.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/runtime_smoke/__init__.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/runtime_smoke/checks.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/runtime_smoke/config.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/runtime_smoke/report.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/runtime_smoke/runner.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/scanner.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/schema_refs.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/screen_flow_validator.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/screen_transition_extractor.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/screen_transitions/defaults.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/skills_cli/__init__.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/skills_cli/discovery.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/skills_cli/manager.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/skills_cli/paths.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/stack/__init__.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/stack/adapters/__init__.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/stack/adapters/_base.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/stack/adapters/nextjs.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/stack/adapters/playwright.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/stack/compose.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/stack/loader.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/stack/lock.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/stack/obligations.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/stack/profile.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/stack/profiles/addons/playwright.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/stack/profiles/addons/prisma.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/stack/profiles/frameworks/nextjs.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/stack/project.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/stack/registry.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/stack/resolve.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/surface_reconciliation.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/synth.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/templates/codd.yaml.tmpl +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/templates/conventions.yaml.tmpl +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/templates/data_dependencies.yaml.tmpl +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/templates/doc_links.yaml.tmpl +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/templates/extract_ai_prompt_baseline.md +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/templates/extracted/api-contract.md.j2 +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/templates/extracted/architecture-overview.md.j2 +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/templates/extracted/module-detail.md.j2 +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/templates/extracted/schema-design.md.j2 +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/templates/extracted/system-context.md.j2 +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/templates/gitignore.tmpl +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/templates/lexicon_questions.md +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/templates/lexicon_schema.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/templates/overrides.yaml.tmpl +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/test_detection.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/test_import_coherence.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/traceability.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/validator.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/vb_marker_authenticity.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/vb_rerun_scope.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/verifiable_behavior_audit.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/watch/__init__.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/watch/events.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/watch/propagation_log.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/watch/propagation_pipeline.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/watch/test_runner.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/watch/watcher.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd/wiring.py +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/ai_governance_eu_act/coverage_matrix.md +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/ai_governance_eu_act/elicit_extend.md +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/ai_governance_eu_act/lexicon.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/ai_governance_eu_act/manifest.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/ai_governance_eu_act/recommended_kinds.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/ai_governance_eu_act/severity_rules.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/api_rate_limiting_caching/coverage_matrix.md +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/api_rate_limiting_caching/elicit_extend.md +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/api_rate_limiting_caching/lexicon.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/api_rate_limiting_caching/manifest.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/api_rate_limiting_caching/recommended_kinds.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/api_rate_limiting_caching/severity_rules.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/api_rest_openapi/coverage_matrix.md +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/api_rest_openapi/elicit_extend.md +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/api_rest_openapi/lexicon.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/api_rest_openapi/manifest.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/api_rest_openapi/recommended_kinds.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/api_rest_openapi/severity_rules.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/babok/elicit_extend.md +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/babok/lexicon.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/babok/manifest.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/babok/recommended_kinds.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/babok/severity_rules.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/backend_event_cloudevents/coverage_matrix.md +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/backend_event_cloudevents/elicit_extend.md +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/backend_event_cloudevents/lexicon.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/backend_event_cloudevents/manifest.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/backend_event_cloudevents/recommended_kinds.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/backend_event_cloudevents/severity_rules.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/backend_graphql/coverage_matrix.md +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/backend_graphql/elicit_extend.md +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/backend_graphql/lexicon.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/backend_graphql/manifest.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/backend_graphql/recommended_kinds.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/backend_graphql/severity_rules.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/backend_grpc_proto/coverage_matrix.md +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/backend_grpc_proto/elicit_extend.md +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/backend_grpc_proto/lexicon.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/backend_grpc_proto/manifest.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/backend_grpc_proto/recommended_kinds.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/backend_grpc_proto/severity_rules.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/compliance_hipaa/coverage_matrix.md +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/compliance_hipaa/elicit_extend.md +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/compliance_hipaa/lexicon.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/compliance_hipaa/manifest.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/compliance_hipaa/recommended_kinds.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/compliance_hipaa/severity_rules.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/compliance_iso27001/coverage_matrix.md +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/compliance_iso27001/elicit_extend.md +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/compliance_iso27001/lexicon.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/compliance_iso27001/manifest.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/compliance_iso27001/recommended_kinds.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/compliance_iso27001/severity_rules.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/compliance_pci_dss_4/coverage_matrix.md +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/compliance_pci_dss_4/elicit_extend.md +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/compliance_pci_dss_4/lexicon.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/compliance_pci_dss_4/manifest.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/compliance_pci_dss_4/recommended_kinds.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/compliance_pci_dss_4/severity_rules.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/data_aggregation_policies/coverage_matrix.md +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/data_aggregation_policies/elicit_extend.md +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/data_aggregation_policies/lexicon.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/data_aggregation_policies/manifest.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/data_aggregation_policies/recommended_kinds.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/data_aggregation_policies/severity_rules.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/data_eventsourcing_es_cqrs/coverage_matrix.md +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/data_eventsourcing_es_cqrs/elicit_extend.md +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/data_eventsourcing_es_cqrs/lexicon.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/data_eventsourcing_es_cqrs/manifest.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/data_eventsourcing_es_cqrs/recommended_kinds.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/data_eventsourcing_es_cqrs/severity_rules.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/data_governance_appi_gdpr/coverage_matrix.md +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/data_governance_appi_gdpr/elicit_extend.md +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/data_governance_appi_gdpr/lexicon.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/data_governance_appi_gdpr/manifest.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/data_governance_appi_gdpr/recommended_kinds.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/data_governance_appi_gdpr/severity_rules.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/data_nosql_jsonschema/coverage_matrix.md +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/data_nosql_jsonschema/elicit_extend.md +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/data_nosql_jsonschema/lexicon.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/data_nosql_jsonschema/manifest.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/data_nosql_jsonschema/recommended_kinds.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/data_nosql_jsonschema/severity_rules.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/data_relational_iso_sql/coverage_matrix.md +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/data_relational_iso_sql/elicit_extend.md +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/data_relational_iso_sql/lexicon.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/data_relational_iso_sql/manifest.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/data_relational_iso_sql/recommended_kinds.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/data_relational_iso_sql/severity_rules.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/ddd_domain_driven_design/coverage_matrix.md +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/ddd_domain_driven_design/elicit_extend.md +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/ddd_domain_driven_design/lexicon.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/ddd_domain_driven_design/manifest.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/ddd_domain_driven_design/recommended_kinds.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/ddd_domain_driven_design/severity_rules.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/dora_sre_metrics/coverage_matrix.md +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/dora_sre_metrics/elicit_extend.md +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/dora_sre_metrics/lexicon.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/dora_sre_metrics/manifest.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/dora_sre_metrics/recommended_kinds.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/dora_sre_metrics/severity_rules.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/i18n_unicode_cldr/coverage_matrix.md +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/i18n_unicode_cldr/elicit_extend.md +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/i18n_unicode_cldr/lexicon.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/i18n_unicode_cldr/manifest.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/i18n_unicode_cldr/recommended_kinds.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/i18n_unicode_cldr/severity_rules.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/ml_model_cards/coverage_matrix.md +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/ml_model_cards/elicit_extend.md +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/ml_model_cards/lexicon.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/ml_model_cards/manifest.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/ml_model_cards/recommended_kinds.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/ml_model_cards/severity_rules.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/mobile_a11y_native/coverage_matrix.md +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/mobile_a11y_native/elicit_extend.md +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/mobile_a11y_native/lexicon.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/mobile_a11y_native/manifest.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/mobile_a11y_native/recommended_kinds.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/mobile_a11y_native/severity_rules.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/mobile_android_material3/coverage_matrix.md +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/mobile_android_material3/elicit_extend.md +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/mobile_android_material3/lexicon.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/mobile_android_material3/manifest.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/mobile_android_material3/recommended_kinds.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/mobile_android_material3/severity_rules.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/mobile_ios_hig/coverage_matrix.md +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/mobile_ios_hig/elicit_extend.md +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/mobile_ios_hig/lexicon.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/mobile_ios_hig/manifest.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/mobile_ios_hig/recommended_kinds.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/mobile_ios_hig/severity_rules.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/mobile_security_masvs/coverage_matrix.md +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/mobile_security_masvs/elicit_extend.md +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/mobile_security_masvs/lexicon.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/mobile_security_masvs/manifest.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/mobile_security_masvs/recommended_kinds.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/mobile_security_masvs/severity_rules.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/ops_cicd_pipeline/coverage_matrix.md +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/ops_cicd_pipeline/elicit_extend.md +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/ops_cicd_pipeline/lexicon.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/ops_cicd_pipeline/manifest.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/ops_cicd_pipeline/recommended_kinds.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/ops_cicd_pipeline/severity_rules.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/ops_iac_terraform/coverage_matrix.md +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/ops_iac_terraform/elicit_extend.md +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/ops_iac_terraform/lexicon.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/ops_iac_terraform/manifest.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/ops_iac_terraform/recommended_kinds.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/ops_iac_terraform/severity_rules.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/ops_kubernetes/coverage_matrix.md +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/ops_kubernetes/elicit_extend.md +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/ops_kubernetes/lexicon.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/ops_kubernetes/manifest.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/ops_kubernetes/recommended_kinds.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/ops_kubernetes/severity_rules.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/ops_observability_otel/coverage_matrix.md +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/ops_observability_otel/elicit_extend.md +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/ops_observability_otel/lexicon.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/ops_observability_otel/manifest.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/ops_observability_otel/recommended_kinds.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/ops_observability_otel/severity_rules.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/process_iso25010/coverage_matrix.md +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/process_iso25010/elicit_extend.md +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/process_iso25010/lexicon.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/process_iso25010/manifest.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/process_iso25010/recommended_kinds.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/process_iso25010/severity_rules.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/process_test_iso29119/coverage_matrix.md +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/process_test_iso29119/elicit_extend.md +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/process_test_iso29119/lexicon.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/process_test_iso29119/manifest.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/process_test_iso29119/recommended_kinds.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/process_test_iso29119/severity_rules.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/twelve_factor_app/coverage_matrix.md +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/twelve_factor_app/elicit_extend.md +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/twelve_factor_app/lexicon.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/twelve_factor_app/manifest.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/twelve_factor_app/recommended_kinds.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/twelve_factor_app/severity_rules.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/web_a11y_wcag22_aa/coverage_matrix.md +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/web_a11y_wcag22_aa/elicit_extend.md +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/web_a11y_wcag22_aa/lexicon.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/web_a11y_wcag22_aa/manifest.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/web_a11y_wcag22_aa/recommended_kinds.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/web_a11y_wcag22_aa/severity_rules.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/web_authn_webauthn/coverage_matrix.md +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/web_authn_webauthn/elicit_extend.md +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/web_authn_webauthn/lexicon.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/web_authn_webauthn/manifest.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/web_authn_webauthn/recommended_kinds.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/web_authn_webauthn/severity_rules.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/web_browser_compat/coverage_matrix.md +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/web_browser_compat/elicit_extend.md +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/web_browser_compat/lexicon.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/web_browser_compat/manifest.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/web_browser_compat/recommended_kinds.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/web_browser_compat/severity_rules.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/web_forms_html5/coverage_matrix.md +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/web_forms_html5/elicit_extend.md +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/web_forms_html5/lexicon.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/web_forms_html5/manifest.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/web_forms_html5/recommended_kinds.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/web_forms_html5/severity_rules.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/web_performance_core_web_vitals/coverage_matrix.md +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/web_performance_core_web_vitals/elicit_extend.md +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/web_performance_core_web_vitals/lexicon.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/web_performance_core_web_vitals/manifest.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/web_performance_core_web_vitals/recommended_kinds.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/web_performance_core_web_vitals/severity_rules.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/web_pwa_manifest/coverage_matrix.md +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/web_pwa_manifest/elicit_extend.md +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/web_pwa_manifest/lexicon.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/web_pwa_manifest/manifest.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/web_pwa_manifest/recommended_kinds.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/web_pwa_manifest/severity_rules.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/web_responsive/coverage_matrix.md +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/web_responsive/elicit_extend.md +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/web_responsive/lexicon.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/web_responsive/manifest.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/web_responsive/recommended_kinds.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/web_responsive/severity_rules.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/web_security_owasp/coverage_matrix.md +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/web_security_owasp/elicit_extend.md +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/web_security_owasp/lexicon.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/web_security_owasp/manifest.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/web_security_owasp/recommended_kinds.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/web_security_owasp/severity_rules.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/web_seo_schemaorg/coverage_matrix.md +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/web_seo_schemaorg/elicit_extend.md +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/web_seo_schemaorg/lexicon.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/web_seo_schemaorg/manifest.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/web_seo_schemaorg/recommended_kinds.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/lexicons/web_seo_schemaorg/severity_rules.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/codd_plugins/stack_map.yaml +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/docs/cookbook/cdp_browser/README.md +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/docs/cookbook/presentation_aggregation/README.md +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/docs/requirements/README.md +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/dogfood/README.md +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/dogfood/fixtures/flat_py_app/README.md +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/examples/README.md +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/skills/codd-assemble/SKILL.md +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/skills/codd-evolve/SKILL.md +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/skills/codd-generate/SKILL.md +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/skills/codd-greenfield/SKILL.md +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/skills/codd-impact/SKILL.md +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/skills/codd-init/SKILL.md +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/skills/codd-propagate/SKILL.md +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/skills/codd-restore/SKILL.md +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/skills/codd-scan/SKILL.md +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/skills/codd-validate/SKILL.md +0 -0
- {codd_dev-2.77.0 → codd_dev-2.78.0}/tests/integration/standalone_repair_skeleton/README.md +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: codd-dev
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.78.0
|
|
4
4
|
Summary: CoDD: Coherence-Driven Development — cross-artifact change impact analysis
|
|
5
5
|
Project-URL: Homepage, https://github.com/yohey-w/codd-dev
|
|
6
6
|
Project-URL: Repository, https://github.com/yohey-w/codd-dev
|
|
@@ -91,6 +91,26 @@ from codd.project_types import (
|
|
|
91
91
|
resolve_layout_profile,
|
|
92
92
|
)
|
|
93
93
|
|
|
94
|
+
# Value-objects + evidence constants relocated to the LEAF module so the Contract
|
|
95
|
+
# Kernel oracle adapters (and the generic command-sequence executor) can import
|
|
96
|
+
# them without a cycle through this gate module. Re-imported + re-exported here so
|
|
97
|
+
# every existing ``from codd.implement_oracle import ImplementOracleResult`` keeps
|
|
98
|
+
# working and gets the SAME class object (identity preserved). See
|
|
99
|
+
# ``codd/implement_oracle_types.py`` — pure relocation, zero behaviour change.
|
|
100
|
+
from codd.implement_oracle_types import ( # noqa: F401 — re-exported for back-compat
|
|
101
|
+
EVIDENCE_BOUNDARY_VIOLATION,
|
|
102
|
+
EVIDENCE_CATEGORIES,
|
|
103
|
+
EVIDENCE_ENVIRONMENT_BUILD,
|
|
104
|
+
EVIDENCE_MISSING_SYMBOL,
|
|
105
|
+
EVIDENCE_MODULE_RESOLUTION,
|
|
106
|
+
EVIDENCE_OTHER,
|
|
107
|
+
EVIDENCE_TEST_NOT_COLLECTED,
|
|
108
|
+
ImplementOracleFinding,
|
|
109
|
+
ImplementOracleResult,
|
|
110
|
+
OracleScopeError,
|
|
111
|
+
_FEEDBACK_FINDING_CAP,
|
|
112
|
+
)
|
|
113
|
+
|
|
94
114
|
|
|
95
115
|
__all__ = [
|
|
96
116
|
"EVIDENCE_CATEGORIES",
|
|
@@ -116,29 +136,12 @@ __all__ = [
|
|
|
116
136
|
__test_exports__ = ["_execute_broad_campaign"]
|
|
117
137
|
|
|
118
138
|
|
|
119
|
-
#
|
|
120
|
-
#
|
|
121
|
-
#
|
|
122
|
-
#
|
|
123
|
-
#
|
|
124
|
-
#
|
|
125
|
-
# existing AST e2e-contract gate owns that axis; it is here so the category set is
|
|
126
|
-
# the full design set and a future composite/boundary adapter can use it.
|
|
127
|
-
EVIDENCE_MISSING_SYMBOL = "missing_symbol"
|
|
128
|
-
EVIDENCE_MODULE_RESOLUTION = "module_resolution_error"
|
|
129
|
-
EVIDENCE_TEST_NOT_COLLECTED = "test_not_collected"
|
|
130
|
-
EVIDENCE_ENVIRONMENT_BUILD = "environment_build_error"
|
|
131
|
-
EVIDENCE_BOUNDARY_VIOLATION = "boundary_violation"
|
|
132
|
-
EVIDENCE_OTHER = "type_error" # a real coherence error not in the categories above
|
|
133
|
-
|
|
134
|
-
EVIDENCE_CATEGORIES: tuple[str, ...] = (
|
|
135
|
-
EVIDENCE_MISSING_SYMBOL,
|
|
136
|
-
EVIDENCE_MODULE_RESOLUTION,
|
|
137
|
-
EVIDENCE_TEST_NOT_COLLECTED,
|
|
138
|
-
EVIDENCE_ENVIRONMENT_BUILD,
|
|
139
|
-
EVIDENCE_BOUNDARY_VIOLATION,
|
|
140
|
-
EVIDENCE_OTHER,
|
|
141
|
-
)
|
|
139
|
+
# NOTE: the language-neutral evidence categories (``EVIDENCE_*`` +
|
|
140
|
+
# ``EVIDENCE_CATEGORIES``) now live in ``codd.implement_oracle_types`` (the leaf
|
|
141
|
+
# module the oracle adapters share) and are re-imported at the top of this module —
|
|
142
|
+
# see that import for the rationale (cycle-free adapter access). The TS-specific
|
|
143
|
+
# code→category MAPS below stay here (they are TS normalizer internals, not shared
|
|
144
|
+
# value-objects).
|
|
142
145
|
|
|
143
146
|
|
|
144
147
|
#: TypeScript diagnostic codes → evidence category. The src↔src / test↔helper
|
|
@@ -180,111 +183,12 @@ _TS_DIAG_LINE = re.compile(
|
|
|
180
183
|
_TS_NO_INPUTS_RE = re.compile(r"TS18003|No inputs were found in config file", re.IGNORECASE)
|
|
181
184
|
|
|
182
185
|
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
or when ``tsc`` reports it found no inputs. An uncertifiable scope is a HARD
|
|
189
|
-
FAIL — a green oracle over an unknown scope is a false-green, the #1 failure
|
|
190
|
-
mode the design calls out.
|
|
191
|
-
"""
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
@dataclass(frozen=True)
|
|
195
|
-
class ImplementOracleFinding:
|
|
196
|
-
"""One normalized oracle diagnostic."""
|
|
197
|
-
|
|
198
|
-
category: str
|
|
199
|
-
code: str
|
|
200
|
-
message: str
|
|
201
|
-
path: str | None = None
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
@dataclass
|
|
205
|
-
class ImplementOracleResult:
|
|
206
|
-
"""Outcome of one implement-time oracle run (one ``tsc`` invocation)."""
|
|
207
|
-
|
|
208
|
-
passed: bool
|
|
209
|
-
executed: bool
|
|
210
|
-
command: str
|
|
211
|
-
findings: list[ImplementOracleFinding] = field(default_factory=list)
|
|
212
|
-
#: EDITABLE source/test targets the failure attributes to (for diagnostics).
|
|
213
|
-
failed_paths: list[str] = field(default_factory=list)
|
|
214
|
-
detail: str = ""
|
|
215
|
-
raw_output: str = ""
|
|
216
|
-
#: Structured diagnostics (code + primary file + symbol/module) for the SCOPED
|
|
217
|
-
#: rerun derivation + the loop-breaking signature. Empty for a pass / for a
|
|
218
|
-
#: non-TS oracle. Kept separate from ``findings`` (the SUT-facing normalized
|
|
219
|
-
#: evidence) because scope derivation needs the per-diagnostic counterpart
|
|
220
|
-
#: keys, not the language-neutral category. See ``codd.implement_oracle_scope``.
|
|
221
|
-
diagnostics: list[Any] = field(default_factory=list)
|
|
222
|
-
#: Orphan artifacts (generated source files no task owns) found by the global
|
|
223
|
-
#: orphan-artifact gate. Populated in WARN mode (observation; the gate does not
|
|
224
|
-
#: fail) and ENFORCE mode (the gate fails). Empty when the gate is off / no
|
|
225
|
-
#: scope index / no orphans. Project-relative paths, for the report + dashboard.
|
|
226
|
-
orphan_artifacts: list[str] = field(default_factory=list)
|
|
227
|
-
|
|
228
|
-
def category_counts(self) -> dict[str, int]:
|
|
229
|
-
counts: dict[str, int] = {}
|
|
230
|
-
for finding in self.findings:
|
|
231
|
-
counts[finding.category] = counts.get(finding.category, 0) + 1
|
|
232
|
-
return counts
|
|
233
|
-
|
|
234
|
-
def feedback_message(self) -> str:
|
|
235
|
-
"""SUT-facing feedback: what the native oracle proved is incoherent.
|
|
236
|
-
|
|
237
|
-
Deliberately concrete and bounded — it names the offending files, the
|
|
238
|
-
diagnostic codes, and the language-neutral category, then directs the SUT
|
|
239
|
-
to make the demanded symbols/modules exist. It NEVER prescribes a verify
|
|
240
|
-
fix (the SUT owns the contents); it states the contract that was broken.
|
|
241
|
-
"""
|
|
242
|
-
lines = [
|
|
243
|
-
"The implement-time coherence oracle REJECTED the generated code: "
|
|
244
|
-
"independently-generated files do not agree on the syntax, module "
|
|
245
|
-
"imports, or imported symbols they demand of each other. Nothing was "
|
|
246
|
-
"accepted. (TypeScript runs `tsc --noEmit`; Python runs an in-process "
|
|
247
|
-
"compile + a first-party import/symbol resolver + `pytest "
|
|
248
|
-
"--collect-only`.)",
|
|
249
|
-
"Fix the source AND tests so every file compiles, every import "
|
|
250
|
-
"resolves, and every imported symbol is actually defined/exported by "
|
|
251
|
-
"its module. Specifically:",
|
|
252
|
-
]
|
|
253
|
-
for finding in self.findings[:_FEEDBACK_FINDING_CAP]:
|
|
254
|
-
where = f"{finding.path}: " if finding.path else ""
|
|
255
|
-
lines.append(f" - [{finding.category}] {where}{finding.code}: {finding.message}")
|
|
256
|
-
extra = len(self.findings) - _FEEDBACK_FINDING_CAP
|
|
257
|
-
if extra > 0:
|
|
258
|
-
lines.append(f" ... and {extra} more diagnostic(s).")
|
|
259
|
-
lines.append(
|
|
260
|
-
"Ensure: (a) every imported name actually exists in its module — "
|
|
261
|
-
'TypeScript `import { X } from "./mod.js"` imports a name `X` that '
|
|
262
|
-
"`mod` actually `export`s, and Python `from app.mod import X` imports "
|
|
263
|
-
"an `X` that `app/mod.py` actually defines or re-exports; (b) "
|
|
264
|
-
"test/helper files agree on the names they share (e.g. do not import "
|
|
265
|
-
"`repoRoot` when the helper exports `projectRoot`); (c) every imported "
|
|
266
|
-
"module path resolves (no `from .missing import ...` to a module that "
|
|
267
|
-
"does not exist)."
|
|
268
|
-
)
|
|
269
|
-
# (iii) Contract discipline — the anti-oscillation rule. A non-deterministic
|
|
270
|
-
# SUT, told only "symbol X is missing", tends to INVENT a new symbol/file
|
|
271
|
-
# each rerun (a different wrong guess every time → the diagnostics oscillate
|
|
272
|
-
# instead of converging). Forbid invention explicitly: reconcile to what
|
|
273
|
-
# ALREADY exists; a genuinely shared symbol goes in an OWNED module, not a
|
|
274
|
-
# newly-conjured file. (GPT-5.5 Pro consult, 2026-06-15: feedback iii.)
|
|
275
|
-
lines.append(
|
|
276
|
-
"Do NOT invent new symbols, helpers, or files to satisfy an import: "
|
|
277
|
-
"reconcile the import to a symbol the target module ALREADY exports (or "
|
|
278
|
-
"delete the import/usage if it is spurious). If two files must share a "
|
|
279
|
-
"symbol, add it to one OWNED module and import it — never duplicate it or "
|
|
280
|
-
"create an unowned shared file. Make the SMALLEST change that restores "
|
|
281
|
-
"coherence; do not rewrite unrelated code."
|
|
282
|
-
)
|
|
283
|
-
return "\n".join(lines)
|
|
284
|
-
|
|
186
|
+
# NOTE: ``OracleScopeError`` / ``ImplementOracleFinding`` / ``ImplementOracleResult``
|
|
187
|
+
# (and the ``_FEEDBACK_FINDING_CAP`` its ``feedback_message`` uses) now live in
|
|
188
|
+
# ``codd.implement_oracle_types`` (the leaf the oracle adapters share) and are
|
|
189
|
+
# re-imported at the top of this module — see that import for the cycle-free
|
|
190
|
+
# rationale. Byte-for-byte the same definitions; only the home moved.
|
|
285
191
|
|
|
286
|
-
#: How many individual diagnostics to surface in SUT feedback (bounded prompt).
|
|
287
|
-
_FEEDBACK_FINDING_CAP = 12
|
|
288
192
|
|
|
289
193
|
#: Total implement-oracle attempts: one initial check + bounded corrective
|
|
290
194
|
#: retries, sized to the ESCALATION LADDER so every rung can actually be reached
|
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
"""Implement-oracle value-types — the LEAF module both the core gate and the
|
|
2
|
+
Contract-Kernel oracle adapters import (Contract Kernel oracle dispatch §3).
|
|
3
|
+
|
|
4
|
+
WHY A LEAF MODULE
|
|
5
|
+
=================
|
|
6
|
+
The oracle dispatch is moving toward ``LanguageProfile``-driven adapters (a
|
|
7
|
+
``go-toolchain`` / ``typescript-tsc`` / ``python-composite`` adapter resolved from
|
|
8
|
+
the profile). Those adapters — and the generic command-sequence executor that
|
|
9
|
+
drives them — must produce the SAME ``ImplementOracleResult`` /
|
|
10
|
+
``ImplementOracleFinding`` the core gate (:mod:`codd.implement_oracle`) consumes,
|
|
11
|
+
and must raise the SAME ``OracleScopeError``. If those value-objects stayed in the
|
|
12
|
+
gate module, an adapter importing them would create an import cycle
|
|
13
|
+
(gate → adapter → gate). So they live HERE, in a leaf that imports only stdlib;
|
|
14
|
+
the gate re-imports + RE-EXPORTS them (identity preserved — every existing
|
|
15
|
+
``from codd.implement_oracle import ImplementOracleResult`` keeps working and gets
|
|
16
|
+
the SAME class object), and the adapters import them straight from this leaf.
|
|
17
|
+
|
|
18
|
+
This mirrors the ``RunnerExecution`` relocation (v2.71): the value-objects moved to
|
|
19
|
+
:mod:`codd.languages.adapters.runner_report` (a leaf) and
|
|
20
|
+
:mod:`codd.coverage_execution_coherence` re-exports them, so both the gate and the
|
|
21
|
+
adapters share ONE definition with no cycle. ZERO behaviour change — this is a pure
|
|
22
|
+
relocation; the bodies are byte-for-byte what they were in the gate module.
|
|
23
|
+
"""
|
|
24
|
+
|
|
25
|
+
from __future__ import annotations
|
|
26
|
+
|
|
27
|
+
from dataclasses import dataclass, field
|
|
28
|
+
from typing import Any
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
# ── evidence categories (language-neutral; the design's normalization target) ──
|
|
32
|
+
#
|
|
33
|
+
# The whole point of normalization: a Go/Rust adapter later emits the SAME
|
|
34
|
+
# vocabulary so the SUT-facing feedback and any downstream policy are stack-
|
|
35
|
+
# agnostic. ``boundary_violation`` (an e2e/modality contract breach) is in the
|
|
36
|
+
# vocabulary for completeness but is NOT something a pure typechecker emits — the
|
|
37
|
+
# existing AST e2e-contract gate owns that axis; it is here so the category set is
|
|
38
|
+
# the full design set and a future composite/boundary adapter can use it.
|
|
39
|
+
EVIDENCE_MISSING_SYMBOL = "missing_symbol"
|
|
40
|
+
EVIDENCE_MODULE_RESOLUTION = "module_resolution_error"
|
|
41
|
+
EVIDENCE_TEST_NOT_COLLECTED = "test_not_collected"
|
|
42
|
+
EVIDENCE_ENVIRONMENT_BUILD = "environment_build_error"
|
|
43
|
+
EVIDENCE_BOUNDARY_VIOLATION = "boundary_violation"
|
|
44
|
+
EVIDENCE_OTHER = "type_error" # a real coherence error not in the categories above
|
|
45
|
+
|
|
46
|
+
EVIDENCE_CATEGORIES: tuple[str, ...] = (
|
|
47
|
+
EVIDENCE_MISSING_SYMBOL,
|
|
48
|
+
EVIDENCE_MODULE_RESOLUTION,
|
|
49
|
+
EVIDENCE_TEST_NOT_COLLECTED,
|
|
50
|
+
EVIDENCE_ENVIRONMENT_BUILD,
|
|
51
|
+
EVIDENCE_BOUNDARY_VIOLATION,
|
|
52
|
+
EVIDENCE_OTHER,
|
|
53
|
+
)
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
#: How many individual diagnostics to surface in SUT feedback (bounded prompt).
|
|
57
|
+
_FEEDBACK_FINDING_CAP = 12
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
class OracleScopeError(RuntimeError):
|
|
61
|
+
"""The oracle's scope could not be CERTIFIED to cover source + tests.
|
|
62
|
+
|
|
63
|
+
Raised when ``tsconfig.json`` is missing/unparseable, when its
|
|
64
|
+
``include``/``files`` provably excludes the test tree (or the source tree),
|
|
65
|
+
or when ``tsc`` reports it found no inputs. An uncertifiable scope is a HARD
|
|
66
|
+
FAIL — a green oracle over an unknown scope is a false-green, the #1 failure
|
|
67
|
+
mode the design calls out.
|
|
68
|
+
"""
|
|
69
|
+
|
|
70
|
+
|
|
71
|
+
@dataclass(frozen=True)
|
|
72
|
+
class ImplementOracleFinding:
|
|
73
|
+
"""One normalized oracle diagnostic."""
|
|
74
|
+
|
|
75
|
+
category: str
|
|
76
|
+
code: str
|
|
77
|
+
message: str
|
|
78
|
+
path: str | None = None
|
|
79
|
+
|
|
80
|
+
|
|
81
|
+
@dataclass
|
|
82
|
+
class ImplementOracleResult:
|
|
83
|
+
"""Outcome of one implement-time oracle run (one ``tsc`` invocation)."""
|
|
84
|
+
|
|
85
|
+
passed: bool
|
|
86
|
+
executed: bool
|
|
87
|
+
command: str
|
|
88
|
+
findings: list[ImplementOracleFinding] = field(default_factory=list)
|
|
89
|
+
#: EDITABLE source/test targets the failure attributes to (for diagnostics).
|
|
90
|
+
failed_paths: list[str] = field(default_factory=list)
|
|
91
|
+
detail: str = ""
|
|
92
|
+
raw_output: str = ""
|
|
93
|
+
#: Structured diagnostics (code + primary file + symbol/module) for the SCOPED
|
|
94
|
+
#: rerun derivation + the loop-breaking signature. Empty for a pass / for a
|
|
95
|
+
#: non-TS oracle. Kept separate from ``findings`` (the SUT-facing normalized
|
|
96
|
+
#: evidence) because scope derivation needs the per-diagnostic counterpart
|
|
97
|
+
#: keys, not the language-neutral category. See ``codd.implement_oracle_scope``.
|
|
98
|
+
diagnostics: list[Any] = field(default_factory=list)
|
|
99
|
+
#: Orphan artifacts (generated source files no task owns) found by the global
|
|
100
|
+
#: orphan-artifact gate. Populated in WARN mode (observation; the gate does not
|
|
101
|
+
#: fail) and ENFORCE mode (the gate fails). Empty when the gate is off / no
|
|
102
|
+
#: scope index / no orphans. Project-relative paths, for the report + dashboard.
|
|
103
|
+
orphan_artifacts: list[str] = field(default_factory=list)
|
|
104
|
+
|
|
105
|
+
def category_counts(self) -> dict[str, int]:
|
|
106
|
+
counts: dict[str, int] = {}
|
|
107
|
+
for finding in self.findings:
|
|
108
|
+
counts[finding.category] = counts.get(finding.category, 0) + 1
|
|
109
|
+
return counts
|
|
110
|
+
|
|
111
|
+
def feedback_message(self) -> str:
|
|
112
|
+
"""SUT-facing feedback: what the native oracle proved is incoherent.
|
|
113
|
+
|
|
114
|
+
Deliberately concrete and bounded — it names the offending files, the
|
|
115
|
+
diagnostic codes, and the language-neutral category, then directs the SUT
|
|
116
|
+
to make the demanded symbols/modules exist. It NEVER prescribes a verify
|
|
117
|
+
fix (the SUT owns the contents); it states the contract that was broken.
|
|
118
|
+
"""
|
|
119
|
+
lines = [
|
|
120
|
+
"The implement-time coherence oracle REJECTED the generated code: "
|
|
121
|
+
"independently-generated files do not agree on the syntax, module "
|
|
122
|
+
"imports, or imported symbols they demand of each other. Nothing was "
|
|
123
|
+
"accepted. (TypeScript runs `tsc --noEmit`; Python runs an in-process "
|
|
124
|
+
"compile + a first-party import/symbol resolver + `pytest "
|
|
125
|
+
"--collect-only`.)",
|
|
126
|
+
"Fix the source AND tests so every file compiles, every import "
|
|
127
|
+
"resolves, and every imported symbol is actually defined/exported by "
|
|
128
|
+
"its module. Specifically:",
|
|
129
|
+
]
|
|
130
|
+
for finding in self.findings[:_FEEDBACK_FINDING_CAP]:
|
|
131
|
+
where = f"{finding.path}: " if finding.path else ""
|
|
132
|
+
lines.append(f" - [{finding.category}] {where}{finding.code}: {finding.message}")
|
|
133
|
+
extra = len(self.findings) - _FEEDBACK_FINDING_CAP
|
|
134
|
+
if extra > 0:
|
|
135
|
+
lines.append(f" ... and {extra} more diagnostic(s).")
|
|
136
|
+
lines.append(
|
|
137
|
+
"Ensure: (a) every imported name actually exists in its module — "
|
|
138
|
+
'TypeScript `import { X } from "./mod.js"` imports a name `X` that '
|
|
139
|
+
"`mod` actually `export`s, and Python `from app.mod import X` imports "
|
|
140
|
+
"an `X` that `app/mod.py` actually defines or re-exports; (b) "
|
|
141
|
+
"test/helper files agree on the names they share (e.g. do not import "
|
|
142
|
+
"`repoRoot` when the helper exports `projectRoot`); (c) every imported "
|
|
143
|
+
"module path resolves (no `from .missing import ...` to a module that "
|
|
144
|
+
"does not exist)."
|
|
145
|
+
)
|
|
146
|
+
# (iii) Contract discipline — the anti-oscillation rule. A non-deterministic
|
|
147
|
+
# SUT, told only "symbol X is missing", tends to INVENT a new symbol/file
|
|
148
|
+
# each rerun (a different wrong guess every time → the diagnostics oscillate
|
|
149
|
+
# instead of converging). Forbid invention explicitly: reconcile to what
|
|
150
|
+
# ALREADY exists; a genuinely shared symbol goes in an OWNED module, not a
|
|
151
|
+
# newly-conjured file. (GPT-5.5 Pro consult, 2026-06-15: feedback iii.)
|
|
152
|
+
lines.append(
|
|
153
|
+
"Do NOT invent new symbols, helpers, or files to satisfy an import: "
|
|
154
|
+
"reconcile the import to a symbol the target module ALREADY exports (or "
|
|
155
|
+
"delete the import/usage if it is spurious). If two files must share a "
|
|
156
|
+
"symbol, add it to one OWNED module and import it — never duplicate it or "
|
|
157
|
+
"create an unowned shared file. Make the SMALLEST change that restores "
|
|
158
|
+
"coherence; do not rewrite unrelated code."
|
|
159
|
+
)
|
|
160
|
+
return "\n".join(lines)
|
|
161
|
+
|
|
162
|
+
|
|
163
|
+
__all__ = [
|
|
164
|
+
"EVIDENCE_BOUNDARY_VIOLATION",
|
|
165
|
+
"EVIDENCE_CATEGORIES",
|
|
166
|
+
"EVIDENCE_ENVIRONMENT_BUILD",
|
|
167
|
+
"EVIDENCE_MISSING_SYMBOL",
|
|
168
|
+
"EVIDENCE_MODULE_RESOLUTION",
|
|
169
|
+
"EVIDENCE_OTHER",
|
|
170
|
+
"EVIDENCE_TEST_NOT_COLLECTED",
|
|
171
|
+
"ImplementOracleFinding",
|
|
172
|
+
"ImplementOracleResult",
|
|
173
|
+
"OracleScopeError",
|
|
174
|
+
]
|
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
"""Implement-oracle adapter PROTOCOL + context (Contract Kernel oracle dispatch §3).
|
|
2
|
+
|
|
3
|
+
This is the seam the per-language oracle tool-semantics will plug into once the
|
|
4
|
+
dispatch switch happens (steps 5–7): a ``go-toolchain`` / ``typescript-tsc`` /
|
|
5
|
+
``python-composite`` adapter, resolved from the ``LanguageProfile``'s
|
|
6
|
+
``implement_oracle`` declaration, that owns the language-specific knowledge the
|
|
7
|
+
generic machinery deliberately does NOT have — how to certify the oracle's scope,
|
|
8
|
+
how to turn one command's exit/stdout/stderr into normalized findings, and (for the
|
|
9
|
+
``adapter`` kind) how to run a wholly in-process composite.
|
|
10
|
+
|
|
11
|
+
ADDITIVE / UNCONNECTED. Nothing here is wired into the live oracle gate yet. The
|
|
12
|
+
gate (:mod:`codd.implement_oracle`) still dispatches on ``profile.language`` and
|
|
13
|
+
runs its own per-language executors; the concrete ``oracle_go`` / ``oracle_python``
|
|
14
|
+
/ ``oracle_typescript`` adapters land WITH those switch steps. This module ships
|
|
15
|
+
ONLY the Protocol, the context object, and the small value object the generic
|
|
16
|
+
command-sequence executor (:mod:`codd.languages.oracle_executor`) consumes — so
|
|
17
|
+
that executor + its fixtures can be written against a STABLE contract now.
|
|
18
|
+
|
|
19
|
+
LEAF rule (no import cycle). This module imports ONLY:
|
|
20
|
+
* stdlib (``pathlib``, ``typing``),
|
|
21
|
+
* the oracle value-objects leaf (:mod:`codd.implement_oracle_types`), and
|
|
22
|
+
* the profile model (:mod:`codd.languages.profile`).
|
|
23
|
+
It MUST NOT import :mod:`codd.implement_oracle` (the gate), the registry, or the
|
|
24
|
+
generic executor — the dependency edge runs gate → executor → adapters → leaf
|
|
25
|
+
types, never back up. (Mirrors the runner_report adapter leaf.)
|
|
26
|
+
"""
|
|
27
|
+
|
|
28
|
+
from __future__ import annotations
|
|
29
|
+
|
|
30
|
+
from dataclasses import dataclass
|
|
31
|
+
from pathlib import Path
|
|
32
|
+
from typing import Any, Mapping, Protocol, runtime_checkable
|
|
33
|
+
|
|
34
|
+
from codd.implement_oracle_types import ImplementOracleFinding, ImplementOracleResult
|
|
35
|
+
from codd.languages.profile import (
|
|
36
|
+
CommandSpec,
|
|
37
|
+
ImplementOracleProfileSpec,
|
|
38
|
+
LanguageProfile,
|
|
39
|
+
LayoutSpec,
|
|
40
|
+
)
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
@dataclass(frozen=True)
|
|
44
|
+
class OracleContext:
|
|
45
|
+
"""Everything an oracle adapter needs to certify scope + normalize + execute.
|
|
46
|
+
|
|
47
|
+
It carries the ALREADY-RESOLVED ``LanguageProfile`` (the dispatch hands the
|
|
48
|
+
adapter the profile the resolver produced — the adapter never re-resolves a
|
|
49
|
+
language, so there is no ``resolve("go")`` inside an adapter), plus the project
|
|
50
|
+
root, the layout (for cwd/env placeholder substitution), the oracle declaration
|
|
51
|
+
(``kind`` + ``command``/``steps`` + ``adapter`` id), and the run config.
|
|
52
|
+
|
|
53
|
+
Frozen: a context is an immutable description of one oracle run.
|
|
54
|
+
"""
|
|
55
|
+
|
|
56
|
+
project_root: Path
|
|
57
|
+
#: The resolved layout topology (``module_root`` / ``repo_root`` / ``manifest_root``
|
|
58
|
+
#: etc.). The generic executor substitutes these into a command's ``cwd``/``env``
|
|
59
|
+
#: placeholders before spawning. Held separately from ``language_profile`` (though
|
|
60
|
+
#: it is ``language_profile.layout``) so a caller can pass a layout VIEW.
|
|
61
|
+
layout_profile: LayoutSpec
|
|
62
|
+
#: The resolved language contract the dispatch already produced — the adapter
|
|
63
|
+
#: reads ``commands[command_id]`` from it; it NEVER re-resolves a language.
|
|
64
|
+
language_profile: LanguageProfile
|
|
65
|
+
#: The profile's implement-oracle declaration (kind + command/steps + adapter id).
|
|
66
|
+
oracle: ImplementOracleProfileSpec
|
|
67
|
+
#: The run config (``implement.*`` knobs: timeouts, etc.). ``None`` ⇒ defaults.
|
|
68
|
+
config: Mapping[str, Any] | None = None
|
|
69
|
+
|
|
70
|
+
|
|
71
|
+
@dataclass(frozen=True)
|
|
72
|
+
class OracleStepObservation:
|
|
73
|
+
"""One command step's normalized observation (the adapter's verdict on a step).
|
|
74
|
+
|
|
75
|
+
The adapter turns a raw ``(returncode, stdout, stderr)`` into this: the
|
|
76
|
+
language-neutral ``findings`` (each an :class:`ImplementOracleFinding`), the
|
|
77
|
+
editable ``failed_paths`` the findings attribute to, and whether — in the
|
|
78
|
+
adapter's judgement — the step was COHERENT (no incoherence proven).
|
|
79
|
+
|
|
80
|
+
The anti-false-green contract the generic executor relies on:
|
|
81
|
+
|
|
82
|
+
* ``is_clean`` is True ONLY when the adapter is positively satisfied the step
|
|
83
|
+
proved coherence (e.g. ``tsc`` exited 0 over a certified scope). An adapter
|
|
84
|
+
that cannot decide must return ``is_clean=False`` — never default to clean.
|
|
85
|
+
* A non-clean step with EMPTY ``findings`` is an OPAQUE failure: the command
|
|
86
|
+
did not pass but the adapter could not explain why. The executor turns that
|
|
87
|
+
into an ``environment_build_error`` RED (never a benign pass) — so "exited
|
|
88
|
+
nonzero, no parsed diagnostic" can never read as green.
|
|
89
|
+
"""
|
|
90
|
+
|
|
91
|
+
is_clean: bool
|
|
92
|
+
findings: tuple[ImplementOracleFinding, ...] = ()
|
|
93
|
+
failed_paths: tuple[str, ...] = ()
|
|
94
|
+
#: The structured per-diagnostic objects (for the scoped-rerun derivation), if
|
|
95
|
+
#: the adapter produced any. Opaque to the executor; threaded into the result.
|
|
96
|
+
diagnostics: tuple[Any, ...] = ()
|
|
97
|
+
#: A short human reason (always populated for a non-clean observation).
|
|
98
|
+
detail: str = ""
|
|
99
|
+
|
|
100
|
+
|
|
101
|
+
@runtime_checkable
|
|
102
|
+
class ImplementOracleAdapter(Protocol):
|
|
103
|
+
"""The tool-semantics an oracle stack plugs in (Contract Kernel §3).
|
|
104
|
+
|
|
105
|
+
Resolved from ``LanguageProfile.implement_oracle.adapter`` via the adapter
|
|
106
|
+
registry under kind ``"implement_oracle"``. The dispatch calls:
|
|
107
|
+
|
|
108
|
+
* :meth:`certify_scope` ALWAYS (before any command runs) — an uncertifiable
|
|
109
|
+
scope is an :class:`~codd.implement_oracle_types.OracleScopeError` (a green
|
|
110
|
+
oracle over an unknown/empty scope is the #1 false-green), so this method
|
|
111
|
+
either returns a human-readable certification detail or raises.
|
|
112
|
+
* :meth:`normalize_command_result` for EACH command of a ``command`` /
|
|
113
|
+
``composite`` oracle — the generic command-sequence executor spawns the
|
|
114
|
+
command (argv/cwd/env from the referenced :class:`CommandSpec`) and hands the
|
|
115
|
+
raw result here for a language-neutral verdict.
|
|
116
|
+
* :meth:`execute` ONLY for a ``kind="adapter"`` oracle (Python's in-process
|
|
117
|
+
compile + import-resolver + collect-only composite) — there is no shell
|
|
118
|
+
command sequence; the adapter runs the whole oracle and returns the result.
|
|
119
|
+
|
|
120
|
+
A ``command`` / ``composite`` adapter does NOT need to implement ``execute``; an
|
|
121
|
+
``adapter``-kind adapter MUST. The dispatch checks for ``execute`` and reds a
|
|
122
|
+
missing one (a declared ``kind="adapter"`` with no executor is an incomplete
|
|
123
|
+
contract, never a silent pass).
|
|
124
|
+
"""
|
|
125
|
+
|
|
126
|
+
def certify_scope(self, ctx: OracleContext) -> str:
|
|
127
|
+
"""Certify the oracle's scope covers what it must, else raise.
|
|
128
|
+
|
|
129
|
+
Returns a human-readable certification detail on success; raises
|
|
130
|
+
:class:`~codd.implement_oracle_types.OracleScopeError` when the scope
|
|
131
|
+
cannot be proven to cover source + tests (anti-false-green).
|
|
132
|
+
"""
|
|
133
|
+
...
|
|
134
|
+
|
|
135
|
+
def normalize_command_result(
|
|
136
|
+
self,
|
|
137
|
+
ctx: OracleContext,
|
|
138
|
+
*,
|
|
139
|
+
command_id: str,
|
|
140
|
+
command: CommandSpec,
|
|
141
|
+
returncode: int,
|
|
142
|
+
stdout: str,
|
|
143
|
+
stderr: str,
|
|
144
|
+
) -> OracleStepObservation:
|
|
145
|
+
"""Normalize one command's raw result → a language-neutral observation.
|
|
146
|
+
|
|
147
|
+
MUST be conservative: only report ``is_clean=True`` when the step
|
|
148
|
+
positively proved coherence. A non-zero exit with no recognizable
|
|
149
|
+
diagnostic should yield ``is_clean=False`` with EMPTY findings, which the
|
|
150
|
+
executor escalates to an opaque ``environment_build_error`` RED.
|
|
151
|
+
"""
|
|
152
|
+
...
|
|
153
|
+
|
|
154
|
+
|
|
155
|
+
@runtime_checkable
|
|
156
|
+
class ImplementOracleExecutorAdapter(ImplementOracleAdapter, Protocol):
|
|
157
|
+
"""An :class:`ImplementOracleAdapter` that ALSO runs a ``kind="adapter"`` oracle.
|
|
158
|
+
|
|
159
|
+
The Python composite (compile + first-party import/symbol resolver +
|
|
160
|
+
``pytest --collect-only``) is not a shell command sequence — it runs in-process
|
|
161
|
+
and inspects the file lists each layer observed. Such a stack declares
|
|
162
|
+
``kind="adapter"`` and its adapter implements :meth:`execute`, which the
|
|
163
|
+
dispatch calls instead of the generic command-sequence executor.
|
|
164
|
+
"""
|
|
165
|
+
|
|
166
|
+
def execute(self, ctx: OracleContext) -> ImplementOracleResult:
|
|
167
|
+
"""Run the whole in-process composite oracle and return its result."""
|
|
168
|
+
...
|
|
169
|
+
|
|
170
|
+
|
|
171
|
+
def adapter_supports_execute(adapter: object) -> bool:
|
|
172
|
+
"""True when ``adapter`` provides a callable ``execute`` (the kind=adapter check).
|
|
173
|
+
|
|
174
|
+
The dispatch uses this to fail-closed on a ``kind="adapter"`` declaration whose
|
|
175
|
+
registered adapter has no executor: a declared in-process oracle with no
|
|
176
|
+
``execute`` is an incomplete contract (RED), never a silent pass.
|
|
177
|
+
"""
|
|
178
|
+
candidate = getattr(adapter, "execute", None)
|
|
179
|
+
return callable(candidate)
|
|
180
|
+
|
|
181
|
+
|
|
182
|
+
__all__ = [
|
|
183
|
+
"ImplementOracleAdapter",
|
|
184
|
+
"ImplementOracleExecutorAdapter",
|
|
185
|
+
"OracleContext",
|
|
186
|
+
"OracleStepObservation",
|
|
187
|
+
"adapter_supports_execute",
|
|
188
|
+
]
|
|
@@ -83,5 +83,37 @@ def ensure_builtin_adapters_registered(registry: AdapterRegistry | None = None)
|
|
|
83
83
|
_register_once(target, "runner_report", "vitest-json", VitestJsonReportAdapter())
|
|
84
84
|
_register_once(target, "runner_report", "go-test-json", GoTestJsonReportAdapter())
|
|
85
85
|
|
|
86
|
+
# Implement-oracle tool-semantics adapters (Contract Kernel oracle dispatch §3).
|
|
87
|
+
# The plumbing is wired now; the concrete oracle_go / oracle_python /
|
|
88
|
+
# oracle_typescript adapters register inside register_oracle_adapters WITH their
|
|
89
|
+
# dispatch switch steps. Today it registers NOTHING (additive scaffolding only).
|
|
90
|
+
register_oracle_adapters(target)
|
|
91
|
+
|
|
86
92
|
if target is default_adapter_registry:
|
|
87
93
|
_BUILTINS_REGISTERED = True
|
|
94
|
+
|
|
95
|
+
|
|
96
|
+
def register_oracle_adapters(registry: AdapterRegistry) -> None:
|
|
97
|
+
"""Register the built-in ``implement_oracle`` adapters on ``registry`` (lazy/idempotent).
|
|
98
|
+
|
|
99
|
+
The registry plumbing for the Contract Kernel oracle dispatch (§3): the concrete
|
|
100
|
+
per-language oracle adapters (``go-toolchain`` / ``typescript-tsc`` /
|
|
101
|
+
``python-composite``) register HERE under kind
|
|
102
|
+
:data:`codd.languages.contract.KIND_IMPLEMENT_ORACLE`, each via the SAME
|
|
103
|
+
fail-closed :func:`_register_once` (a different adapter at an occupied
|
|
104
|
+
``(kind, id)`` raises — a silent oracle override is exactly the false-green this
|
|
105
|
+
kernel forbids).
|
|
106
|
+
|
|
107
|
+
Currently registers NOTHING: the concrete adapters are still in the per-language
|
|
108
|
+
gate (:mod:`codd.implement_oracle`) and only relocate here with their dispatch
|
|
109
|
+
switch steps (5–7). This is the additive seam — wired, idempotent, collision-safe
|
|
110
|
+
— so those adapters drop in as one ``_register_once`` call each, no new plumbing.
|
|
111
|
+
The adapter classes will be imported INSIDE this function (lazy), never at module
|
|
112
|
+
load, preserving the leaf rule.
|
|
113
|
+
"""
|
|
114
|
+
# No concrete implement_oracle adapters yet. When they land:
|
|
115
|
+
# from codd.languages.adapters.oracle_go import GoToolchainOracleAdapter
|
|
116
|
+
# from codd.languages.contract import KIND_IMPLEMENT_ORACLE
|
|
117
|
+
# _register_once(registry, KIND_IMPLEMENT_ORACLE, "go-toolchain", GoToolchainOracleAdapter())
|
|
118
|
+
# ... (typescript-tsc, python-composite)
|
|
119
|
+
return
|
|
@@ -42,6 +42,12 @@ KIND_TEST_SEMANTICS = "test_semantics"
|
|
|
42
42
|
KIND_RUNNER_REPORT = "runner_report"
|
|
43
43
|
KIND_IMPORT_RESOLVER = "import_resolver"
|
|
44
44
|
KIND_SCAFFOLD = "scaffold"
|
|
45
|
+
#: The implement-time oracle tool-semantics adapter kind (Contract Kernel oracle
|
|
46
|
+
#: dispatch §3). A profile names its oracle adapter id in
|
|
47
|
+
#: ``implement_oracle.adapter``; the registry keys it under this kind. The concrete
|
|
48
|
+
#: oracle_go / oracle_python / oracle_typescript adapters register under it WITH
|
|
49
|
+
#: their dispatch switch steps — none is registered yet (the plumbing is additive).
|
|
50
|
+
KIND_IMPLEMENT_ORACLE = "implement_oracle"
|
|
45
51
|
|
|
46
52
|
|
|
47
53
|
@dataclass(frozen=True)
|